python - 创建一个等间距空间网格的shapefile

时间:2015-03-11 10:50:49

标签: python shapefile matplotlib-basemap

我是GIS的新手,我一直在使用地图绘制带有纬度,经度坐标的地图。我想在地图上建立一个500米方形的空间网格,然后用这个新的空间约束将这些点相交。输出应该是.shp文件。

到目前为止,我一直在使用底图包轻松阅读并在表单中绘制一些已制作的网格:

Code minx miny maxx maxy

说明每个方格(代码),其顶点的坐标。鉴于选定的空间区域为:

,我无法弄清楚如何制作新的网格
# Projection CYL Cylindrical Equal Distance Projections (PlateCarree)
m = Basemap(projection='cyl',
    llcrnrlat=41.1905,urcrnrlat=41.5404,
    llcrnrlon=1.9144,urcrnrlon=2.6628,
    resolution='c')

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

最后,我用Geopandas和Basemap管理了所有的事情。首先,我发现script将空间部分(在UTM Zone 31投影中)划分为500 m的同等空间网格。然后我必须将网格坐标转换为Lat / Lon,以便与我的点匹配:

import geopandas as gpd

geofile_in = 'UTMgrid.shp'
geofile_out = 'LATLONgrid.shp'

g = gpd.read_file(geofile_in)

originalcrs = {u'units': u'm', u'ellps': u'WGS84', u'datum': u'WGS84', u'proj': u'utm', u'zone': 31}
targetcrs = {u'ellps': u'WGS84', u'datum': u'WGS84', u'proj': u'longlat'}

# Set the original crs (UTM Zone 31 N)
g.crs = originalcrs
# Transform the Grid to the target crs (Lon, Lat)
g.to_crs(crs=targetcrs, inplace=True)
# Save to .shp file
g.to_file(geofile_out)

希望有所帮助。

相关问题