【问题标题】:Convert Geopandas Multipolygon to Polygon将 Geopandas 多多边形转换为多边形
【发布时间】:2021-08-20 11:04:15
【问题描述】:

我有一个带有多面几何的地理数据框:

我想将它们转换为多边形,即填充多边形的孔并使其成为单个多边形。

我试过this similar question的代码:


from shapely.geometry import MultiPolygon, Polygon
gdf['Polygon'] =  gdf['SHAPE'].apply( lambda x: MultiPolygon(Polygon(p.exterior) for p in x))

但我得到了错误:

TypeError: 'Polygon' object is not subscriptable

我已经尝试过堆栈溢出的其他解决方案,但没有成功。

有什么想法吗?

这里是数据类型:

FID                 int64
LHO                object
Shape__Area       float64
Shape__Length     float64
SHAPE            geometry

以下是获取 shapefile 的完整代码:


import pandas as pd
import geopandas as gpd
from arcgis import GIS
gis = GIS(verify_cert=False,api_key='your_api_key')

search_result = gis.content.search(query="title:National_LHO", item_type="Feature Layer")

# get layer
layer = search_result[0].layers[0]

# dataframe from layer
df= pd.DataFrame.spatial.from_layer(layer)

gdf = gpd.GeoDataFrame(df)

gdf = gdf.set_geometry('SHAPE')

gdf = gdf.set_crs(epsg='3857')

gdf = gdf.to_crs(epsg='4326')

【问题讨论】:

  • 你能删除 .exterior 吗?
  • 你还能打印列的dtypes吗?
  • @anarchy 我已经编辑了我的帖子以添加数据类型和更多信息。
  • 你能把数据框的副本粘贴几行吗?因为我似乎无法正确安装 arcgis 包,您也可以上传前几行的 csv 文件,这样会更容易

标签: python geopandas shapely


【解决方案1】:

您可以在 GeoDataFrame 上使用名为 .explode 的方法:

gdf_exploded=gdf.explode()

您可以找到文档here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 2021-04-01
    • 2021-03-21
    相关资源
    最近更新 更多