簡體   English   中英

修復 Geopandas 中的無效幾何圖形

[英]Fix invalid geometry in Geopandas

如何修復 Geopandas dataframe 中的無效幾何圖形。 從:

gpdf_gml_geom_invalid = gpdf_gml_files[gpdf_gml_files.is_valid ==False]
gpdf_gml_geom_invalid.info()

我可以看到有無效的幾何圖形。 我曾嘗試使用 Shapely 來了解可能是無效幾何的來源

gpdf_gml_geom_invalid = gpdf_gml_geom_invalid.set_geometry('geometry')
explain_validity(gpdf_gml_geom_invalid.geometry)

哪個拋出錯誤

AttributeError: 'GeoDataFrame' object has no attribute '_geom'

編輯,添加數據

4     MULTIPOLYGON (((526079.599 251118.907, 526080....
13    MULTIPOLYGON (((541228.102 252251.403, 541203....
16    MULTIPOLYGON (((546165.813 277723.432, 546164....
30    MULTIPOLYGON (((510680.266 267340.564, 510680....
37    MULTIPOLYGON (((520711.924 279690.049, 520721....
Name: geometry, dtype: geometry

這對我有用

def geometry_reviewer(object):
    """
    Simple function that returns output of shapely validation check
    ----------

    Returns
    -------
    <string>
      shapely output
    """  
    return explain_validity(object)

gpdf_gml_files['geometry'].apply(geometry_reviewer)

這將返回一些非常冗長的內容,您可以使用這些內容更容易閱讀

gpdf_gml_files['geom_review_simple'] = gpdf_gml_files['geom_review'].str.split('[').str[0]
gpdf_gml_files.groupby(['geom_review_simple']).size()

output 總結了多邊形驗證問題,然后您可以通過編程解決

geom_review_simple
Interior is disconnected      3
Ring Self-intersection       32
Self-intersection            37
Valid Geometry              359

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM