尽管我的geopandas数据看起来只包含行,但其类型可能包含MultiLineString类型。如果这样的话,这时如果用 row['geometry'].coords获取坐标
则给出该错误。
解决办法:在读取坐标之前,需要将gdf中的所有MultiLineString分解成单个的LineString类型。
这里只需要一行代码即可解决问题。
d = {"col1": ["name1", "name2"],
"geometry": [
MultiPoint([(1, 2), (3, 4)]),
MultiPoint([(2, 1), (0, 0)]),],}
gdf = geopandas.GeoDataFrame(d, crs=4326)
col1 geometry
0 name1 MULTIPOINT (1.00000 2.00000, 3.00000 4.00000)
1 name2 MULTIPOINT (2.00000 1.00000, 0.00000 0.00000)
exploded = gdf.explode(ignore_index=True)
exploded
col1 geometry
0 name1 POINT (1.00000 2.00000)
1 name1 POINT (3.00000 4.00000)
2 name2 POINT (2.00000 1.00000)
3 name2 POINT (0.00000 0.00000)
工作中的点滴记录分享在此。