2024-09-29 01:25:06 发布
网友
我面临的问题如下:葡萄牙是西班牙旁边的一个国家,它也有一些岛屿。我只想选择葡萄牙大陆,我的意思是,这只是葡萄牙靠近西班牙的一部分,不包括这些岛屿
你能帮我吗
谢谢你的关注
使用OSMNX从OpenStreetMap下载数据时,您可能做了以下操作:
import osmnx as ox import geopandas as gpd region = {'country':'Portugal'} gdf = ox.gdf_from_place(region) fig, ax = ox.plot_shape(gdf, figsize=(7,7))
其结果是:
即葡萄牙的大陆部分及其岛屿Azores
由于大陆部分是最大的,因此您可以使用shapely或GeoPandas来过滤其他部分
但首先,让我们探究数据,这里是gdf:
gdf
它是一个多重多边形。因此,我们需要将其分解,例如,根据this:
exploded_gdf = gdf.explode()
我正在使用GeoPandas版本'0.7.0',这可能不适用于旧版本
'0.7.0'
让我们来探索这一新几何体:
由于大陆部分可能是最大的,您可以根据其面积对其进行计算和排序:
exploded_gdf['area'] = exploded_gdf.area exploded_gdf.sort_values(by='area', inplace=True) exploded_gdf
最后取最大的,这里是最后一个,因此是索引-1:
-1
# Extract the shapely underlying geometry: continental_part = exploded_gdf.iloc[-1]['geometry']
使用OSMNX从OpenStreetMap下载数据时,您可能做了以下操作:
其结果是:
即葡萄牙的大陆部分及其岛屿Azores
由于大陆部分是最大的,因此您可以使用shapely或GeoPandas来过滤其他部分
但首先,让我们探究数据,这里是
gdf
:它是一个多重多边形。因此,我们需要将其分解,例如,根据this:
我正在使用GeoPandas版本
'0.7.0'
,这可能不适用于旧版本让我们来探索这一新几何体:
由于大陆部分可能是最大的,您可以根据其面积对其进行计算和排序:
最后取最大的,这里是最后一个,因此是索引
-1
:相关问题 更多 >
编程相关推荐