python - 如何使用 shapely 提取包含在 3 级中的多个多边形?
问题描述
我有一组包含在 CSV 文件中的 xy 坐标列表(3 级列表)列表中的多面体,并且希望使用 shapely 获得这些多面体。
当多边形包含在列表(2 级列表)的列表中时,我能够很好地提取多边形,但当它是 3 级列表(多多边形)时则不能。我怎样才能做到这一点?
我认为它与从文件中读取数据无关。这是代码的摘录:
rapid = pd.read_json('RAPID/RAPID_edit.txt', orient='records')
rapid.geometry = pd.json_normalize(rapid.geometry)
rapid_geo = rapid
rapid_geo['polycount'] = rapid_geo.geometry.astype(str).str.count("\[\[")
rapid_geo_sp = rapid_geo[rapid_geo.polycount.isin([1])]
rapid_geo_mp = rapid_geo[~rapid_geo.polycount.isin([1])]
rapid_geo_sp.geometry = rapid_geo_sp.geometry.astype(str).str.replace("[[[", '[[', regex=False)
rapid_geo_sp.geometry = rapid_geo_sp.geometry.astype(str).str.replace("]]]", ']]', regex=False)
rapid_geo_sp.geometry = rapid_geo_sp.geometry.apply(lambda x: Polygon(eval(x)))
rapid_geo_mp.geometry = [[[tuple(lst_3) for lst_3 in lst_2] for lst_2 in lst_1] for lst_1 in rapid_geo_mp.geometry]
rapid_geo_mp.geometry = np.array(rapid_geo_mp.geometry)
rapid_geo_mp.geometry = unary_union([shape(poly['geometry']) for poly in rapid_geo_mp.geometry])
解决方案
推荐阅读
- r - 如何将选定的值分配给变量
- swiftui - SwiftUI:如何获得完美圆角的视图
- python - 打印用户输入生成的字典内容
- android - 如何修复滚动视图崩溃的 Android 应用程序?
- laravel - 其他语句在 Laravel 中返回空白
- python - 尝试根据子字符串从文本文件中打印行
- java - Java xmpp tcp 连接生成器异常:“NoSuchFieldError:ifpossible”
- ruby-on-rails - 使用 git init 时是否重新初始化了现有的 Git 存储库?
- javascript - 使用 Lodash 和 React 对数字字符串进行排序?
- google-maps - 如何在 SwiftUI 中以编程方式在工作表中显示视图?