标签: geopackage

geopandas 可以获取地理包(或其他矢量文件)的所有图层吗?

我想使用 geopandas 读取一个 geopackage 文件,它可以读取第一层或带有 layer='' 参数的特定层。但是它如何读取所有层?可能是这样的:

all_layers = gp.read_xxxx('xxx.gpkg')
for layer in layers:
    # fetch this layer
Run Code Online (Sandbox Code Playgroud)

python geopandas geopackage

6
推荐指数
1
解决办法
2614
查看次数

st_write 拒绝覆盖 R 中 geopackage 中的图层

使用sfR 中的包,我正在读取存储在地理包中的一系列图层,过滤它们,然后将它们重新保存为新的地理包。
当我设置我的脚本时,我测试了其中一个层并且它工作正常,但是当在层列表上运行相同的代码时,它失败了,因为测试层已经存在。的文档st_write有 append 和 overwrite 参数,但设置为 replace 而不是 append ( append = FALSEor overwrite = TRUE) 会导致它失败并出现错误

st_write.sf(., dsn = gpkg_out, layer = layername, overwrite = TRUE) 中的错误:无法识别的参数覆盖

st_write.sf(., dsn = gpkg_out, layer = layername, append = FALSE) 中的错误:无法识别的参数追加

我更新了 sf 包的副本,但它仍然失败并出现相同的错误。我通过删除文件系统中的文件找到了解决方法,但是如果我只是尝试替换一层,这将是有问题的。

有谁知道这是一个已知问题还是一种使其替换而不是附加图层的方法?

我的代码:

library(sf)
library(tidyverse)

gpkg <- "D:/GIS/Sugar/SugarEC_hydropts.gpkg"  # name of existing geopackage

layers = st_layers(gpkg)$name
layers
# [1] "ec1520"  "ec17200" "ec224"   "ec2500" 
#  "ec271"   "ec4680"  "ec488"   "ec5540"  "ec8140"  "ec9860" 

gpkg_out <- …
Run Code Online (Sandbox Code Playgroud)

r spatial r-sf geopackage

4
推荐指数
2
解决办法
1586
查看次数

是否可以将 postgresql 数据库上的查询转换为 geopackage 文件

我正在使用 postgis 处理 postgresql 数据库。我从包含地理信息的数据库生成 csv 文件,但我现在需要生成地理包文件。我对此进行了搜索,但没有找到任何直接制作类似内容的工具。我知道我可以使用 gdal 从 csv 转换为 geopackage 文件,但我不需要这样做。我需要直接从数据库生成地理包文件。任何人都可以帮助我吗?

谢谢

gis postgresql postgis geopackage

2
推荐指数
1
解决办法
1196
查看次数

从 GeoPackage 中删除图层

我正在尝试使用该sf包从 GeoPackage 文件中删除矢量图层。“删除”是指永久删除而不是覆盖或更新。我知道该delete_layer选项,但据我所知,这仅用于在将图层替换为同名图层之前删除图层。

不幸的是,我使用非标准编码为 GeoPackage 编写了一个带有名称的层,这有效地使整个 gpkg 文件在 QGIS 中无法读取。因此,我试图找到一种通过 R 删除它的解决方案。

gis r qgis r-sf geopackage

2
推荐指数
1
解决办法
1385
查看次数

标签 统计

geopackage ×4

gis ×2

r ×2

r-sf ×2

geopandas ×1

postgis ×1

postgresql ×1

python ×1

qgis ×1

spatial ×1