Geopandas:无法更改geopandas对象的crs

时间:2019-05-23 11:47:30

标签: python geopandas

我正在尝试按照here所述设置Geopandas对象的crs

示例文件可从here下载

import geopandas as gdp
df = pd.read_pickle('myShp.pickle')

我上传了屏幕截图以显示坐标值

enter image description here

然后,如果我尝试更改crs,则多边形的值不会更改

tmp = gpd.GeoDataFrame(df, geometry='geometry')
tmp.crs = {'init' :'epsg:32618'}

我再次显示屏幕截图

enter image description here

如果我尝试:

import geopandas as gdp
df = pd.read_pickle('myShp.pickle')
df = gpd.GeoDataFrame(df, geometry='geometry')
dfNew=df.to_crs(epsg=32618)

我得到:

ValueError: Cannot transform naive geometries.  Please set a crs on the object first.

1 个答案:

答案 0 :(得分:1)

crs设置为:

gdf.crs = {'init' :'epsg:32618'}

不会转换您的数据,它只会设置CRS(基本上说:“我的数据在此CRS中表示”)。在大多数情况下,使用geopandas.read_file读取数据时已经设置了CRS(如果您的文件包含CRS信息)。因此,只有在您的数据尚无CRS信息时,才需要上述内容。

如果您实际上想将坐标转换为其他CRS,则可以使用to_crs方法:

gdf_new = gdf.to_crs(epsg=32618)

请参见https://geopandas.readthedocs.io/en/latest/projections.html