GeoPandas transforming CRS:无法转换朴素的几何图形。请先在对象上设置一个crs
GeoPandas tranforming CRS: Cannot transform naive geometries. Please set a crs on the object first
我创建了一个这样的GeoDataFrame
gdf = gp.GeoDataFrame([], columns=['foo', 'geometry'], crs = "epsg:4326")
然后我用数据填充gdf
。然后我想改造gdf
的CRS
gdf.to_crs(epsg = "25833")
这给了我
ValueError: Cannot transform naive geometries. Please set a crs on the object first.
这让我很困惑。 gdf.crs
的输出是
<Geographic 2D CRS: EPSG:4326>
Name: WGS 84
Axis Info [ellipsoidal]:
- Lat[north]: Geodetic latitude (degree)
- Lon[east]: Geodetic longitude (degree)
Area of Use:
- name: World.
- bounds: (-180.0, -90.0, 180.0, 90.0)
Datum: World Geodetic System 1984 ensemble
- Ellipsoid: WGS 84
- Prime Meridian: Greenwich
我试过了
gdf.set_crs(epsg = "4326")
然后
gdf.to_crs(epsg = "25833")
得到了相同的结果。
为什么 GeoPandas 不能重新投影坐标?
crs = "epsg:4326"
在 GeoDataFrame
(gdf = gp.GeoDataFrame(...)
) 初始化时执行此操作似乎不是一个好主意。
除此之外,设置 CRS
必须使用 inplace = True
。
gdf.set_crs(epsg = "4326", inplace = True)
也在转型:
gdf.to_crs(epsg = "25833", inplace = True)
我创建了一个这样的GeoDataFrame
gdf = gp.GeoDataFrame([], columns=['foo', 'geometry'], crs = "epsg:4326")
然后我用数据填充gdf
。然后我想改造gdf
CRS
gdf.to_crs(epsg = "25833")
这给了我
ValueError: Cannot transform naive geometries. Please set a crs on the object first.
这让我很困惑。 gdf.crs
的输出是
<Geographic 2D CRS: EPSG:4326>
Name: WGS 84
Axis Info [ellipsoidal]:
- Lat[north]: Geodetic latitude (degree)
- Lon[east]: Geodetic longitude (degree)
Area of Use:
- name: World.
- bounds: (-180.0, -90.0, 180.0, 90.0)
Datum: World Geodetic System 1984 ensemble
- Ellipsoid: WGS 84
- Prime Meridian: Greenwich
我试过了
gdf.set_crs(epsg = "4326")
然后
gdf.to_crs(epsg = "25833")
得到了相同的结果。
为什么 GeoPandas 不能重新投影坐标?
crs = "epsg:4326"
在 GeoDataFrame
(gdf = gp.GeoDataFrame(...)
) 初始化时执行此操作似乎不是一个好主意。
除此之外,设置 CRS
必须使用 inplace = True
。
gdf.set_crs(epsg = "4326", inplace = True)
也在转型:
gdf.to_crs(epsg = "25833", inplace = True)