日间;夜间:
确切的问题是如何生成所需尺寸的半等边多边形,例如大约100x100m、10000x1000m、5000x5000m的网格覆盖地球?**在
背景故事:
我正在构建一个基于python的微服务,对于给定的LAT,LON(WGS84)将返回带有一些数据的json,例如匹配的国家/城市/或选定的多边形网格。在
使用country/city/cr杂波的部分工作得很好,因为我使用shapefile和R-tree快速检查点是否在区域内。在
我正在为以下情况而挣扎:想象一下,我有大量基于GPS的样本,其中包含一些我想要的数据,例如在一些geo-bin(网格)上的平均值。在
我试着把地球划分成半矩形区域(对于Merkator投影),以后我可以用“contains”或“within”函数。在
目前它是通过SQL查询和使用SIN/COS和舍入的“groupby”完成的
(图片链接)
由于使用shapefile和来自WGS84请求的即将到来的数据,我的想法是跳转到merkator(或webmerkator)生成geopandas多边形,并使用to_crs函数跳回WGS84。在
world = world[(world.name != "Antarctica") & (world.name != "Fr. S. Antarctic Lands")]
world = world.to_crs({'init': 'epsg:3857'})
plotworld = world.plot( figsize=(20,10))
plotworld.set_title("Merkator")
# Keep map proportionate
plotworld.axis('equal')
#Draw saple polygon rectangle (in merkator)
x_point_list = [0.5*1e7,0.75*1e7,0.75*1e7,0.5*1e7]
y_point_list = [-0*1e7,0*1e7,0.25*1e7,0.25*1e7]
polygon_geom = Polygon(zip(x_point_list, y_point_list))
crs = {'init': 'epsg:3857'}
polygon = gp.GeoDataFrame(index=[0], crs=crs, geometry=[polygon_geom])
polygon.plot(ax=plotworld,color='red')
#transform to WGS84
world = world.to_crs({'init': 'epsg:4326'})
polygon = polygon.to_crs({'init': 'epsg:4326'})
plotworld2= world.plot( figsize=(20,10))
polygon.plot(ax=plotworld2,color='red')
我的问题是:如何生成所需尺寸的半等边多边形,例如大约100x100mx1000m,5000x5000m的网格来覆盖地球?在
我已经浏览了很多geopandas/shapely网站,其中显示了一些关于一些形状的教程,但是没有人提到如何绘制/生成具有所需尺寸的箱子。在
但我不太理解多边形的变化。在
感谢任何帮助!在
目前没有回答
相关问题 更多 >
编程相关推荐