我想使用 geopandas 读取一个 geopackage 文件,它可以读取第一层或带有 layer='' 参数的特定层。但是它如何读取所有层?可能是这样的:
all_layers = gp.read_xxxx('xxx.gpkg')
for layer in layers:
# fetch this layer
Run Code Online (Sandbox Code Playgroud) 使用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) 我正在使用 postgis 处理 postgresql 数据库。我从包含地理信息的数据库生成 csv 文件,但我现在需要生成地理包文件。我对此进行了搜索,但没有找到任何直接制作类似内容的工具。我知道我可以使用 gdal 从 csv 转换为 geopackage 文件,但我不需要这样做。我需要直接从数据库生成地理包文件。任何人都可以帮助我吗?
谢谢
我正在尝试使用该sf包从 GeoPackage 文件中删除矢量图层。“删除”是指永久删除而不是覆盖或更新。我知道该delete_layer选项,但据我所知,这仅用于在将图层替换为同名图层之前删除图层。
不幸的是,我使用非标准编码为 GeoPackage 编写了一个带有名称的层,这有效地使整个 gpkg 文件在 QGIS 中无法读取。因此,我试图找到一种通过 R 删除它的解决方案。
geopackage ×4
gis ×2
r ×2
r-sf ×2
geopandas ×1
postgis ×1
postgresql ×1
python ×1
qgis ×1
spatial ×1