在this geopandas
示例中,为了防止包含极点的形状(会变得无限大)的问题,在重新投影到墨卡托投影之前,南极陆块从GeoDataFrame
掉落。
我想知道,是否有可能找到更健壮的重投影方法,从而无需手动调整数据框。特别是因为我正在使用的数据集没有南极洲的单独行:
我有两个想法:
crs
的信息>例如,在epsg website上,显示“使用区域”:
[我们可以使用它来准备重新投影之前的数据:将任何向南延伸超过-80度的形状掉落,或者将其与描述目标crs使用区域的shapely Polygon
相交,源crs-在这种情况下为标准epsg:4326
,因此为Polygon([(-180,-80), (-180,84), ...])
。
这种方法的问题
:我不确定,是否可以从任何地方以编程方式访问任何crs
的使用信息区域,例如从GeoDataFrame
对象开始。Just do it,然后稍后取出错误复制的部分。以我目前的情况为例,重新投影的地理数据框gdf_merc = gdf.to_crs(epsg=3395)
确实有错误...
...但是通过在几何图形的字符串表示中搜索inf
词,我可以在Polygon
...中找到有问题的MultiPolygon
...>
In [360]: for i, polygon in enumerate(gdf_merc.geometry[0]): ...: if 'inf' in str(polygon): ...: print(i) 0
...然后将其删除:
使用这种方法的问题
:似乎很详尽,我更希望防止出现任何问题。关于如何解决这些方法的任何想法,或者还有第三种方法?
一条评论:我对一般情况感兴趣,在这种情况下,[[any
crs可以重新投影到,所以我不想抢先删除南极洲(“以防万一”),因为其他投影可能很完美很好,更重要的是,他们可能还有其他问题所在。 非常感谢!在此大熊猫的示例中,为了防止包含极点的形状出现问题(其中...
要从df中提取: