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)