我正在尝试按照here所述设置Geopandas对象的crs
。
示例文件可从here下载
import geopandas as gdp
df = pd.read_pickle('myShp.pickle')
我上传了屏幕截图以显示坐标值
然后,如果我尝试更改crs
,则多边形的值不会更改
tmp = gpd.GeoDataFrame(df, geometry='geometry')
tmp.crs = {'init' :'epsg:32618'}
我再次显示屏幕截图
如果我尝试:
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.
答案 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