2016-02-04 51 views
1

我有一個GeoDataFrame與一些多邊形(從一些縣形狀文件)。geopandas:如何「正常化」geoseries

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,... 

它們是相同的狀態,並且情節看起來是一樣的。我對形狀文件不熟悉,但認爲如果我可以「正常化」這些多邊形(將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之間)。我可以遍歷這些多邊形並將它們分解並分割它們,但我希望有一種更優雅的解決方法。

運行最新的devand版本的geopandas 0.1.0,python 2.7(我知道...可以繼續前進),OSX。

回答

2

您需要將其中一個幾何圖形重新投射或轉換爲常用的座標參考系統。

請參閱documentation for GeoSeries.to_crs(crs=None, epsg=None)來做到這一點。

第一個GeoDataFrame看起來像EPSG:4326(這是猜測,還有其他地理座標參考系統)。第二個可能是UTM或國家平面投影。