首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地质灾害中几何类型的转换(和保存)

地质灾害中几何类型的转换(和保存)
EN

Stack Overflow用户
提问于 2020-07-01 12:43:12
回答 1查看 595关注 0票数 0

我有一个包含线性环的GeoDataFrame,我想(有条件地)将它转换成多边形。听起来很简单:

代码语言:javascript
复制
from shapely.geometry import Polygon

def update_geom(row):
    if (row.aoi_type=='blocks') or (row.aoi_type=='locale'):
        return Polygon(row.geometry)
    else:
        return row.geometry

gdf['geometry']=gdf.apply(update_geom,axis=1)

这看起来很好--如果我检查一下GeoDataFrame,我可以看到LINESTRING(...) => POLYGON(...)gdf.sample().iloc[0].geometry在笔记本中正确地把这个形状绘制成一个多边形。

但这就是奇怪的地方。我这么做的时候..。

代码语言:javascript
复制
gdf.to_file('filename',index=False)
updated_gdf=gpd.read_file('filename')

updated_gdf又回到了LINESTRING()的时代。

有什么想法?修复?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-01 13:16:53

如果您要保存到shapefile (从您的代码来看),您将面临文件格式的限制。SHP只支持一种几何类型。因此,虽然GeoDataFrame可以在一个几何列中使用混合的LineStrings和多边形,但是shapefile不是,而且允许您只保留一个。

您可以尝试另一种格式(如GeoJSON),或者根据几何类型将GeoDataFrame拆分为两种,然后再保存到(2) shapefiles。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62677144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档