geopandas AttributeError:“MultiPolygon”对象没有属性“external”

2024-10-01 07:49:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个地理数据框。一个是爱荷华州,另一个是北美未来72小时的预兆雨。我想创建一个雨量预报的地理数据框架,它覆盖爱荷华州。但我有个错误。在

state_rain = gpd.overlay(NA_rain,iowa,how='intersection')      

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-39-ba8264ed63c2> in <module>()
  3 #ws_usa[['WTRSHD_ID','QPF']].groupby('WTRSHD_ID').max().reset_index()
  4 #state_rain = sjoin(usa_r,usa,how='inner',op='intersects')
----> 5 state_rain = gpd.overlay(usa_r,joined_states,how='intersection')
  6 ws_state = gpd.overlay(ws,joined_states,how='intersection')
  7 #print ws_usa.loc[ws_usa.WTRSHD_ID == 'IA-04']['QPF']

C:\Anaconda2\lib\site-packages\geopandas\tools\overlay.pyc in overlay(df1, df2, how, use_sindex)
 95 
 96     # Collect the interior and exterior rings
---> 97     rings1 = _extract_rings(df1)
 98     rings2 = _extract_rings(df2)
 99     mls1 = MultiLineString(rings1)

C:\Anaconda2\lib\site-packages\geopandas\tools\overlay.pyc in     _extract_rings(df)
 50                 # geom from layer is not valid attempting fix by buffer 0"
 51                 geom = geom.buffer(0)
---> 52             rings.append(geom.exterior)
 53             rings.extend(geom.interiors)
 54 

AttributeError: 'MultiPolygon' object has no attribute 'exterior'

我检查了type=='MultiPolygon',但是GeoDataFrame都不包含。在

^{pr2}$

如果我做下面的事,十字路口就可以了。在

NA_rain.geometry = NA_rain.geometry.map(lambda x: x.convex_hull)

我的问题有两个:1.为什么没有任何多角形出现在我的纳乌雨地理数据库中,以及2。除了把每一个多边形都变成一个凸壳(这会破坏多边形的详细轮廓),您建议如何处理多多边形问题。在


Tags: inidws地理howstatenageom