如何使用4个点创建多边形?

2024-09-28 19:22:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有CSV文件,其中包含点的坐标(超过100行)。在CSV文件中有两列:纬度、经度。
这些点是一些多边形的左上角。(方块)
所有多边形的大小都相同(例如100x100米)。在

Latitude               Longitude
56.37769816725615     -4.325049868061924
55.37769816725615     -3.325049868061924
51.749167440074324    -4.963575226888083 
...

我可以将CSV加载到dataframe中,我可以从GeoPandas的坐标中创建点(或行内的4个点)。
但是我如何为每一行制作多边形,它连接了4个点?

谢谢你的帮助。在

^{pr2}$

Tags: 文件csvdataframe多边形方块geopandaslatitude纬度
1条回答
网友
1楼 · 发布于 2024-09-28 19:22:35

如果要以米为单位定义平方,请确保使用的是投影CRS(http://geopandas.org/projections.html#re-projecting)。在

然后您可以使用类似的方法(可能有更有效的方法,但这一个是明确的):

from shapely.geometry import Polygon
lat = [0, 2, 4]
lon = [0, 2, 4]

gdf = gpd.GeoDataFrame()
gdf['lat'] = lat
gdf['lon'] = lon

dim = 1  # define the length of the side of the square
geoms = []
for index, row in gdf.iterrows():
    ln = row.lon
    lt = row.lat
    geom = Polygon([(ln, lt), ((ln + dim), lt), ((ln + dim), (lt - dim)), (ln, (lt - dim))])
    geoms.append(geom)

gdf['geometry'] = geoms 

这将从大小为dimxdim的集合坐标生成正方形多边形,由给定坐标定义的点位于左上角。在

相关问题 更多 >