地理数据流水线要让转换结果可重复、可验证和可追溯

说明格式转换、坐标操作、几何修复、质量检查和交付如何组成受控流水线,并避免静默数据损失。

地理数据流水线要让转换结果可重复、可验证和可追溯

地理数据流水线把下载、解压、格式转换、坐标操作、清洗、切片和发布串联起来。命令全部成功,只能证明软件没有报告致命错误;字段截断、CRS 误判、几何丢失和无数据变化仍可能静默发生。

输入契约固定数据身份

每个输入应记录来源、版本、获取时间、许可、校验和、格式和预期范围。文件名相同不代表内容相同,远程服务也可能更新结果。不可变快照或内容摘要是复现基础。

契约还应包含对象数、字段、几何类型、CRS、时间范围和允许缺失。上游新增字段可能兼容,改变单位或枚举含义则必须阻断并评审。

压缩包和目录要防止路径穿越、重复文件和编码问题。大文件在完整读取前可先检查头信息,但最终仍需全量校验。

转换能力取决于驱动和选项

GDAL 支持大量栅格与矢量驱动,每种格式对字段类型、名称长度、空值、维度和 CRS 的能力不同。转换前应查询驱动能力,明确哪些信息会降级。

默认创建选项未必适合交付。压缩、分块、金字塔、字符编码和几何维度都要显式配置并版本化。命令行和库版本也属于结果谱系。

中间格式应尽量无损。多次在有损格式之间往返,会累积精度和语义损失。用于显示的简化、量化产品应与分析主数据分开。

坐标操作需要明确源与目标

源 CRS 只能在已知正确时指定;给未知坐标贴标签不是重投影。坐标转换要记录操作链、格网、适用区域和预期精度,垂直坐标不能被忽略。

跨日界线、极区和目标投影边界需要专门样例。栅格重投影还要选择重采样方法,分类数据不能使用会生成新类别的连续插值。

转换后应检查范围、单位、像元大小、轴序和控制点。只比较地图视觉重合,可能被客户端自动投影掩盖错误。

几何清洗不能静默改变对象

无效几何、重复顶点、自相交和空对象需要分类统计。自动修复可能改变面数、边界和面积,应保留原始对象、修复方法和差异。

容差去重与简化要依据数据精度。使用任意小数阈值可能合并合法邻近对象。拓扑规则也取决于产品规范,面重叠在地籍中错误,在土地覆盖时间层中可能合法。

错误记录可以进入隔离区并生成报告,但是否允许部分交付必须预先约定。默默跳过失败对象会让数量对不上却无人发现。

对账应覆盖结构、统计和空间

基础对账包括文件数、对象数、空值、字段和值域。空间对账包括范围、面积长度汇总、几何类型、有效率和抽样叠加。栅格还要检查尺寸、波段、统计、无数据、缩放和地理变换。

ISO 19157-1 将质量放在明确范围、度量和报告中。流水线门禁应引用产品用途和阈值,不能对所有数据使用同一“零错误”标准。

抽样可发现语义问题,但关键不变量应全量检查。对账结果必须连接输入输出版本,便于比较两次运行。

幂等、发布和谱系完成闭环

相同输入、代码和参数重复运行应产生等价输出。临时目录、随机顺序和时间戳要受控,失败重试不能重复插入或覆盖已发布版本。

发布采用暂存、验证和原子切换,消费者不应看到半套瓦片或新旧文件混合。对象存储清单、数据库事务或版本目录可实现不同程度原子性。

谱系记录每个输出来自哪些输入、执行环境、参数、日志和质量报告。发现上游错误后,才能定位受影响产品并重跑。

监测还要覆盖延迟、吞吐、失败分类和数据新鲜度。成功流水线的标准不是绿色任务,而是交付数据在语义、空间和质量上满足约定,并可说明它如何产生。

质量门禁的分层

质量检查可以分为结构、几何、空间参考、属性和业务五层。结构层检查文件可读性、字段和类型;几何层检查空对象、有效性和维度;空间参考层检查坐标范围与轴顺序;属性层检查空值、唯一性和枚举;业务层再判断对象关系、覆盖范围和时间逻辑。前一层失败时应阻止后续发布,但不一定阻止生成诊断产物。

基线与阈值需要随数据集保存。面积或要素数变化可能是正常更新,也可能是截断,固定的绝对阈值无法适应不同区域。可同时使用绝对规则、与上一版本的差异比例以及抽样人工检查。任何自动修复都应统计修复数量并保留原始输入;大规模几何修复可能改变边界和拓扑,不能静默发生。

发布时应生成机器可读清单,包含输入校验和、工具版本、参数、坐标操作、输出统计和质量结论。相同输入与配置应得到可解释的一致结果,外部网格或坐标库更新则必须触发版本变化。

流水线还应隔离单个坏文件与整批失败。允许跳过异常输入时,必须把它列入失败清单并使批次处于不完整状态,不能以任务退出码为零掩盖缺失。重跑只处理失败项时,也要重新核对整批清单,确认没有重复、漏项或版本混合。

资料依据