本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
使用默认验证规则集验证GeoPackage:
gpkg_path=相对路径/至/文件.gpkg docker run -v "$(pwd)":/gpkg --rm pdok/geopackage-validator validate --gpkg-path "/gpkg/${gpkg_path}"
使用默认验证规则集及模式文件验证GeoPackage:
schema_path=相对路径/至/模式.json gpkg_path=相对路径/至/文件.gpkg docker run -v "$(pwd)":/gpkg --rm pdok/geopackage-validator validate --gpkg-path "/gpkg/${gpkg_path}" --table-definitions-path "/gpkg/${schema_path}"
生成模式文件:
schema_path=相对路径/至/模式.json gpkg_path=相对路径/至/文件.gpkg docker run -v "$(pwd)":/gpkg --rm pdok/geopackage-validator generate-definitions --gpkg-path "/gpkg/${gpkg_path}" > "$schema_path"
GeoPackage验证器可验证.gpkg文件是否符合一系列标准规范。当前支持的检查项如下(另见“show-validations”命令):
| 验证代码** | 描述 |
|---|---|
| UNKNOWN_ERROR | 不得出现意外的(GDAL)错误。 |
| RQ0 | 遗留项: * GeoPackage必须符合给定JSON或YAML定义中的表名。 |
| RQ1 | 图层名称必须以字母开头,允许的字符为小写a-z、数字或下划线。 |
| RQ2 | 图层必须至少包含一个要素。 |
| RQ3 | 遗留项: * 图层要素应具有允许的几何类型(POINT、LINESTRING、POLYGON、MULTIPOINT、MULTILINESTRING或MULTIPOLYGON之一)。 |
| RQ4 | GeoPackage不应定义视图。 |
| RQ5 | 几何应有效。 |
| RQ6 | 列名必须以字母开头,允许的字符为小写a-z、数字或下划线。 |
| RQ7 | 表应具有带唯一索引的要素ID列。 |
| RQ8 | GeoPackage必须符合给定的JSON或YAML定义。 |
| RQ9 | 所有几何表必须具有rtree索引。 |
| RQ10 | 所有几何表的rtree索引必须有效。 |
| RQ11 | OGR索引要素计数必须是最新的。 |
| RQ12 | 仅允许以下EPSG空间参考系统:28992、3034、3035、3038、3039、3040、3041、3042、3043、3044、3045、3046、3047、3048、3049、3050、3051、4258、4936、4937、5730、7409。 |
| RQ13 | 所有GEOMETRY要素必须使用相同的默认空间参考系统。 |
| RQ14 | gpkg_geometry_columns表中的geometry_type_name必须为POINT、LINESTRING、POLYGON、MULTIPOINT、MULTILINESTRING或MULTIPOLYGON之一。 |
| RQ15 | 所有表几何必须与gpkg_geometry_columns表中的geometry_type_name匹配。 |
| RQ16 | 所有图层和列名长度不得超过53个字符。 |
| RC17 | 建议所有GEOMETRY类型列命名为“geom”。 |
| RC18 | 建议所有GEOMETRY类型列使用相同的名称。 |
| RC19 | 建议仅在必要时使用多维几何坐标(高程和测量值)。 |
| RC20 | 建议所有(MULTI)POLYGON几何的外环采用逆时针方向,所有内环采用顺时针方向。 |
| UNKNOWN_WARNINGS | 建议关注意外的(GDAL)警告。 |
* 遗留要求仅在验证命令中明确请求验证集时执行。
** 从0.8.0版本开始,建议项与要求项纳入同一序列。此后,检查项将始终保留其代码的整数部分,即使后续验证类型在要求和建议之间转换。
各规则的荷兰语详细解释及原因可参考此处。
GeoPackage验证器支持以下GeoPackage版本:
本工具需要:
推荐使用Docker镜像。若满足上述依赖,也可通过pip安装(pip install pdok-geopackage-validator)。
拉取最新版本的Docker镜像(首次使用或更新时需要):
docker pull pdok/geopackage-validator:latest
或从源码构建Docker镜像:
docker build -t pdok/geopackage-validator .
可直接在容器中运行命令,子命令可直接调用:
docker run -v ${PWD}:/gpkg --rm pdok/geopackage-validator validate -t /path/to/generated_definitions.json --gpkg-path /gpkg/tests/data/test_allcorrect.gpkg
要执行RQ8验证,需先生成定义文件:
docker run -v ${PWD}:/gpkg --rm pdok/geopackage-validator generate-definitions --gpkg-path /path/to/file.gpkg
Usage: geopackage-validator validate [OPTIONS] GeoPackage验证器,用于验证本地文件或S3存储中的文件。当文件路径以'/vsis3'或'/vsicurl'开头时,将使用GDAL虚拟文件系统访问S3上的文件,无需直接下载。详见[***] VSI环境参数和可选参数以S3_为前缀(AWS_前缀的环境参数同样适用)。 示例: vsicurl: geopackage-validator validate --gpkg-path /vsicurl/[***] vsis3: geopackage-validator validate --gpkg-path /vsis3/bucketname/key/to/public.gpkg --s3-signing-region eu-central-1 --s3-secret-key secret --s3-access-key acces-key --s3-secure=false --s3-virtual-hosting false --s3-endpoint-no-protocol minio-url.nl 环境变量方式: S3_SECRET_KEY=secret S3_ACCESS_KEY=acces-key S3_SIGNING_REGION=eu-central-1 S3_SECURE=false S3_VIRTUAL_HOSTING=false S3_ENDPOINT_NO_PROTOCOL=minio-url.nl geopackage-validator validate --gpkg-path /vsis3/bucketname/key/to/public.gpkg AWS环境变量方式: AWS_SECRET_ACCESS_KEY=secret AWS_ACCESS_KEY_ID=acces-key AWS_DEFAULT_REGION=eu-central-1 AWS_HTTPS=NO AWS_VIRTUAL_HOSTING=FALSE AWS_S3_ENDPOINT=minio-url.nl geopackage-validator validate --gpkg-path /vsis3/bucketname/key/to/public.gpkg Options: --gpkg-path FILE 指向geopackage.gpkg文件的路径 [环境变量: GPKG_PATH] -t, --table-definitions-path FILE 指向表定义JSON或YAML文件的路径(通过generate-definitions命令生成) --validations-path FILE 要运行的验证集路径。若未指定validations-path和validations,将运行所有验证 [环境变量: VALIDATIONS_FILE] --validations TEXT 逗号分隔的验证规则列表(例如--validations RQ1,RQ2,RQ3)。若未指定validations-path和validations,将运行所有验证 [环境变量: VALIDATIONS] --exit-on-fail 验证失败时以代码1退出 --yaml 输出YAML格式 --s3-endpoint-no-protocol TEXT S3服务的端点(不含协议)[环境变量: S3_ENDPOINT_NO_PROTOCOL] --s3-access-key TEXT S3服务的访问密钥 [环境变量: S3_ACCESS_KEY] --s3-secret-key TEXT S3服务的密钥 [环境变量: S3_SECRET_KEY] --s3-bucket TEXT S3存储桶名称 [环境变量: S3_BUCKET] --s3-key TEXT S3存储桶中的文件键 [环境变量: S3_KEY] --s3-secure BOOLEAN 是否使用TLS安全连接S3 [环境变量: S3_SECURE] --s3-virtual-hosting TEXT TRUE:通过虚拟主机名标识存储桶(如mybucket.cname.domain.com);FALSE:将存储桶作为URI顶层目录(如cname.domain.com/mybucket)。便捷参数,等同于GDAL的AWS_VIRTUAL_HOSTING [环境变量: S3_VIRTUAL_HOSTING] --s3-signing-region TEXT S3签名区域。便捷参数,等同于GDAL的AWS_DEFAULT_REGION [环境变量: S3_SIGNING_REGION] --s3-no-sign-request TEXT 设置后禁用请求签名,适用于公共访问权限的存储桶。便捷参数,等同于GDAL的AWS_NO_SIGN_REQUEST [环境变量: S3_NO_SIGN_REQUEST] -v, --verbosity LVL 日志级别:CRITICAL、ERROR、WARNING、INFO或DEBUG --help 显示帮助信息并退出
示例:
docker run -v ${PWD}:/gpkg --rm pdok/geopackage-validator validate -t /path/to/generated_definitions.json --gpkg-path /gpkg/tests/data/test_allcorrect.gpkg
仅运行特定验证规则:
通过文件指定:
docker run -v ${PWD}:/gpkg --rm pdok/geopackage-validator validate --gpkg-path tests/data/test_allcorrect.gpkg --validations-path tests/validationsets/example-validation-set.json
或通过命令行指定:
docker run -v ${PWD}:/gpkg --rm pdok/geopackage-validator validate --gpkg-path tests/data/test_allcorrect.gpkg --validations RQ1,RQ2,RQ3
显示验证命令中可执行的所有可能验证规则:
Usage: geopackage-validator show-validations [OPTIONS] 显示验证命令中可执行的所有可能验证规则。 Options: -v, --verbosity LVL 日志级别:CRITICAL、ERROR、WARNING、INFO或DEBUG --help 显示帮助信息并退出
Usage: geopackage-validator generate-definitions [OPTIONS] 为本地或S3存储中的GeoPackage生成表定义。生成的JSON或YAML定义文件可在验证步骤中通过--table-definitions-path参数使用。当文件路径以'/vsi'开头时,将使用GDAL虚拟文件系统访问S3上的文件,无需直接下载。详见[***] VSI环境参数和可选参数以S3_为前缀(AWS_前缀的环境参数同样适用)。 示例: vsicurl: geopackage-validator validate --gpkg-path /vsicurl/[***] vsis3: geopackage-validator generate-definitions --gpkg-path /vsis3/bucketname/key/to/public.gpkg --s3-signing-region eu-central-1 --s3-secret-key secret --s3-access-key acces-key --s3-secure=false --s3-virtual-hosting false --s3-endpoint-no-protocol minio-url.nl 环境变量方式: S3_SECRET_KEY=secret S3_ACCESS_KEY=acces-key S3_SIGNING_REGION=eu-central-1 S3_SECURE=false S3_VIRTUAL_HOSTING=false S3_ENDPOINT_NO_PROTOCOL=minio-url.nl geopackage-validator generate-definitions --gpkg-path /vsis3/bucketname/key/to/public.gpkg Options: --gpkg-path FILE 指向geopackage.gpkg文件的路径 [环境变量: GPKG_PATH] --yaml 输出YAML格式 --s3-endpoint-no-protocol TEXT S3服务的端点(不含协议)[环境变量: S3_ENDPOINT_NO_PROTOCOL] --s3-access-key TEXT S3服务的访问密钥 [环境变量: S3_ACCESS_KEY] --s3-secret-key TEXT S3服务的密钥 [环境变量: S3_SECRET_KEY] --s3-bucket TEXT S3存储桶名称 [环境变量: S3_BUCKET] --s3-key TEXT S3存储桶中的文件键 [环境变量: S3_KEY] --s3-secure BOOLEAN 是否使用TLS安全连接S3 [环境变量: S3_SECURE] --s3-virtual-hosting TEXT TRUE:通过虚拟主机名标识存储桶(如mybucket.cname.domain.com);FALSE:将存储桶作为URI顶层目录(如cname.domain.com/mybucket)。便捷参数,等同于GDAL的AWS_VIRTUAL_HOSTING [环境变量: S3_VIRTUAL_HOSTING] --s3-signing-region TEXT S3签名区域。便捷参数,等同于GDAL的AWS_DEFAULT_REGION [环境变量: S3_SIGNING_REGION] --s3-no-sign-request TEXT 设置后禁用请求签名,适用于公共访问权限的存储桶。便捷参数,等同于GDAL的AWS_NO_SIGN_REQUEST [环境变量: S3_NO_SIGN_REQUEST] -v, --verbosity LVL 日志级别:CRITICAL、ERROR、WARNING、INFO或DEBUG --help 显示帮助信息并退出
建议使用docker-compose进行本地开发,可实时代码编辑和测试,并确保使用正确的GDAL/OGR版本及Spatialite 5.0.0。首先使用本机的用户ID和组ID构建本地镜像:
docker-compose build --build-arg USER_ID=`id -u` --build-arg GROUP_ID=`id -g`
可通过以下命令运行脚本:
docker-compose run --rm validator geopackage-validator
该命令可直接访问当前目录下的文件。如需访问其他文件,可在docker-compose.yaml中添加或编辑卷配置。
Docker中已安装IPython:
docker-compose run --rm validator ipython
为保持Python文件格式统一,可定期运行:
docker-compose run --rm validator black .
定期运行测试,同时检查pyflakes和black格式:
docker-compose run --rm validator pytest
在GitHub中发布时,需更新geopackage_validator.constants.py中的__version__,创建并推送新标签至master分支,然后在GitHub中创建新发布。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429