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

python - create a shapefile equally spaced spatial grid

我是 GIS 的新手,我一直在使用地图绘制地图上的纬度、经度坐标点。我想在地图上构建一个 500 m 方形空间网格,以便稍后将这些点与这个新的空间约束相交。输出应该在 .shp 文件中。

到目前为止,我一直在使用 basemap 包来轻松阅读并以以下形式绘制一些已经制作好的网格:

Code minx miny maxx maxy

说明每个正方形(代码)的顶点坐标。给定一个选定的 space 区域,我不知道如何制作新网格:

# 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')

如有任何帮助,我们将不胜感激。

我终于用 Geopandas 和 Basemap 搞定了所有事情。首先,我找到了一个 script 将 space 的部分(在 UTM Zone 31 投影中)划分为 500 米的等 space 网格。然后我不得不将网格坐标转换为 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)

希望对您有所帮助。