使用 geopandas 写入 .gpkg 时丢失 crs

Losing the crs when writing to .gpkg with geopandas

当我编写 .gpkg 时,我丢失了 CRS。我尝试使用 .set_crs 设置 CRS,或者在编写 .gpkg 时添加 CRS(这会造成错误 - “fiona._env - 警告 - 数据集 filename.gpkg 不支持图层创建选项EPSG

我的代码

for layername in fiona.listlayers(file):                 
    vector = geopandas.read_file(file, layer=layername)
    vector.set_crs(4326)
    vector.to_file(filename + ".gpkg", layer = layername, driver='GPKG')

for layername in fiona.listlayers(file):                 
    vector = geopandas.read_file(file, layer=layername)
    vector.to_file(filename + ".gpkg", layer = layername, driver='GPKG', epsg=4326)

都没有用。

vector.set_crs(4326)在默认情况下不起作用。您要么需要分配它,要么指定 inplace=True.

for layername in fiona.listlayers(file):                 
    vector = geopandas.read_file(file, layer=layername)
    # vector.set_crs(4326, inplace=True)  # one option
    vector = vector.set_crs(4326)  # other option
    vector.to_file(filename + ".gpkg", layer = layername, driver='GPKG')

你的第二次尝试没有成功,因为 to_file 没有你试图丢失的 espg 关键字,并且在传递给 Fiona 和 GDAL 的参数中丢失了(它默默地忽略它)。