geoparquet-testing
收藏资源简介:
GeoParquet格式的官方测试语料库,包含用于测试GeoParquet 2.0-dev规范的数据集,分为三个层级:data/(小型系统一致性测试文件)、samples/(模拟真实数据集以测试规范特性)和bad_data/(故意违反规范的文件)。语料库旨在验证GeoParquet格式的兼容性和错误处理。
Official test corpus in GeoParquet format, containing datasets dedicated to validating the GeoParquet 2.0-dev specification. It is divided into three hierarchical directories: data/ (small-scale system conformance test files), samples/ (simulated real-world datasets for testing specification features), and bad_data/ (files that intentionally violate the specification). This corpus aims to verify the compatibility and error handling capabilities of the GeoParquet format.
GeoParquet 测试数据集概述
该数据集是 GeoParquet 格式的官方测试语料库,对标 apache/parquet-testing 的设计理念。目标版本为 GeoParquet 2.0(开发中,geo 元数据中版本号为 "2.0-dev")。
数据集结构
数据集分为三个层级,共包含 65 个文件:
| 层级 | 用途 | 文件数量 |
|---|---|---|
data/ |
针对每个规范维度的系统性小型合规测试用例 | 34 |
samples/ |
模拟真实场景、以非平凡规模展示规范特性的数据集 | 9 |
bad_data/ |
故意违反规范的文件,附带机器可读的 manifest.json 清单 |
22 |
每个层级目录均包含独立的 README 文件,索引并说明每个文件所测试的具体内容。
当前状态
- 所有
data/和samples/中的文件均通过 GeoParquet 2.0-dev JSON Schema 验证(CI 持续强制执行)。 - 少量测试用例被有意推迟,包括:原生逻辑类型 CRS 变体(
srid:0+nullgeocrs;PROJJSON geocrs+authority:code),等待工具链支持将自定义 CRS 字符串写入 Parquet 原生 GEOMETRY/GEOGRAPHY 逻辑类型。
使用方式
- Git 子模块(推荐):
git submodule add https://github.com/geoparquet/geoparquet-testing tests/data/geoparquet-testing,可切换到指定发布标签。 - 标签发布压缩包:从 releases 页面 下载,适用于不希望引入子模块依赖的项目。
- 对
bad_data的验证:读取bad_data/manifest.json,尝试打开每个文件,并断言失败模式与清单中的expected_failure代码一致。
文件再生
所有合规测试文件(data/)和负面测试文件(bad_data/)均为确定性的,重新生成可产生字节一致的结果。真实的 samples/ 文件(从上游获取实时数据)以快照形式提交。使用 uv 工具链运行 scripts/generate_all.py 可重新生成全部文件。
贡献
- 在
scripts/下编辑或添加生成器。 - 运行
uv run python generate_all.py。 - 确保相关 README 表格包含新文件。
- 对于新的
bad_data文件,向bad_data/manifest.json添加条目(生成器在调用register(...)时自动完成)。 - 提交 PR,CI 将验证可重现性、模式有效性、README 索引完整性以及 5 MB 的样本预算限制。
许可协议
本仓库生成的所有文件采用 Apache 2.0 许可。samples/ 下的真实样本保留其上游许可,具体引文要求参见 samples/README.md 及各匹配 scripts/samples/<name>.py 文件的头部注释。





