geopandas:如何"规范化" geoseries

时间:2016-02-04 21:40:42

标签: python gis shapely geopandas

我有一些带有一些多边形的GeoDataFrame(来自一些县形状文件)。

0       POLYGON ((-118.71455 46.822508, -118.67662 46....
1       POLYGON ((-118.663169 47.043673, -118.66334 47...
2       POLYGON ((-118.484262 46.73667, -118.495995 46...
3       POLYGON ((-118.483051 46.839378, -118.482689 4...
4       POLYGON ((-118.82874 46.77891, -118.822177 46....
5       POLYGON ((-118.606476 46.96391999999999, -118....

我试图将这些多边形的某些交叉点与另一个GeoDataFrame(相同状态)中的一些多边形交叉。然而,多边形的坐标完全不同。

0       POLYGON ((552346.2856999999 380222.8998000007,...
1       POLYGON ((529754.7249999996 409135.9135999996,...
2       POLYGON ((552333.0957000004 371726.9315000009,...
3       POLYGON ((542734.0181999998 376530.5831000004,...
4       POLYGON ((552291.6204000004 362052.4251000006,...

他们是同一个州,情节看起来一样。我是shapefile的新手,但想想我是否可以"规范化"这些多边形(将x维度中的所有点除以其最小值,y维度相同),然后两个DataFrame中的多边形应具有可比性。

我试过了:

df.scale(origin=(1,1))

以及

df.scale(xfact=1.0/df.total_bounds[0], yfact=1.0/df.total_bounds[1])
没有任何运气。他们只返回原始值(或接近,值应介于1和2之间)。我可以循环遍历这些多边形并解开它们并将它们分开,但我希望它有一种更优雅的解决方法。

运行最新开发版本的geopandas 0.1.0,python 2.7(我知道......时间继续前进),OSX。

1 个答案:

答案 0 :(得分:2)

您需要将其中一个几何图形重新投影或转换为公共坐标参照系。

请参阅documentation for GeoSeries.to_crs(crs=None, epsg=None)来执行此操作。

第一个GeoDataFrame看起来像EPSG:4326(这是猜测,还有其他地理坐标参考系统)。第二种可能是UTM或州平面投影。