我试图找出点是否在闭合多边形中(在此问题中:Finding if a point in a dataframe is in a polygon and assigning polygon name to point)但我意识到可能还有另一种方法可以做到这一点:
我有这个 Dataframe
df=
id x_zone y_zone
0 A1 65.422080 48.147850
1 A1 46.635708 51.165745
2 A1 46.597984 47.657444
3 A1 68.477700 44.073700
4 A3 46.635708 54.108190
5 A3 46.635708 51.844770
6 A3 63.309560 48.826878
7 A3 62.215572 54.108190
我想把它变成
id Polygon
0 A1 POLYGON((65.422080, 48.147850), (46.635708, 51.165745), (46.597984, 47.657444), (68.477700, 44.073700))
1 A3 POLYGON((46.635708,54.108190), (46.635708 ,51.844770), (63.309560, 48.826878),(62.215572 , 54.108190))
并对点执行相同的操作:
df1=
item x y
0 1 50 49
1 2 60 53
2 3 70 30
到
item point
0 1 POINT(50,49)
1 2 POINT(60,53)
2 3 POINT(70,30)
我从来没有用过geopandas,在这里有点不知所措。
我的问题是:我如何从一个Pandas Dataframe 到一个具有geopandas属性的 Dataframe ?
感谢任何洞察力!
2条答案
按热度按时间fwzugrvs1#
我建议使用以下方法直接从df获取GeoDataFrame:
它首先使用geopandas的
points_from_xy
创建一个点列表,然后从此列表创建一个Polygon对象。lh80um4z2#
你可以实现如下,但你必须设置正确的数据类型。我知道在ArcGIS中你必须设置数据类型为几何;