4.5 KiB
CM95 PBF Production v1.4.3:生产收口与失败恢复
1. 背景
v1.4.2 首轮 Dataset-1 / z0–z12 production:
- 计划任务:20,115
- PASS:19,913
- FAILED:202
- FAILED 分类:
- MVT encoder dropped:171 tile
- hard-gate unmapped:31 tile
- hard-gate 缺口全部为
FSHHAV AREA,共 51 条源 Feature,失败报告中累计命中 73 次 tile-local 记录。
Encoder dropped 主要分布:
depth_contour:313baseline_line:85seabed_line:9baseline_area:5navigation_hazard_area:1navigation_hazard_outline:1
全 Dataset Mapping Gap 审计还发现:
- source variants:191
- gap variants:141
- gap object classes:117
- gap feature rows:81,443
- no exact rule rows:52,879
- explicit/status gap rows:28,564
- inherited hard-gate rows:51(全部
FSHHAV AREA)
因此 v1.4.3 不允许把 5 万多条未知语义对象粗暴映射到错误 NavSea 图层。
2. v1.4.3 决策
2.1 FSHHAV AREA 正式进入 delivery
FSHHAV Dictionary 含义为 Fish haven。
Dataset-1 实际出现 AREA variant,现映射为:
- main:
anchor_caution_hazard_area - outline:
anchor_caution_hazard_outline - point-on-surface:
anchor_caution_hazard_point - canonical:
fish_reef - safety:
hard_gate - icon:
reef_fish - fill:
pattern_fill_fish_reef
AREA、outline、point-on-surface 三者都是同一源对象的不同渲染产物;不得把 AREA 静默降为 unmapped。
2.2 全量 gap 显式分类,但不伪造语义
新增:
config/mappings/cm95_gap_disposition_v1.yaml
141 个已观察 gap variant 全部有明确 disposition:
- 1 variant / 51 rows:
DELIVERY_MAPPED_V1_4_3(FSHHAV AREA) - 28 variants / 28,564 rows:已有显式非 delivery mapping/status
- 112 variants / 52,828 rows:
ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW
后者不是“已经完成映射”,而是明确的语义 backlog;正式后续阶段必须按对象类别逐组审查,不得 generic 映射冒充正确航海语义。
3. MVT 量化策略
v1.3 只保护了 clearance_limit_line 的单一退化场景。v1.4.3 改为统一编码前预量化:
- 使用当前 tile
quantize_bounds + extent计算整数坐标; - Line 必须至少有两个不同量化坐标;
- Polygon exterior 必须至少有三个不同量化点且量化面积非零;
- 不满足条件的 tile-local 几何,不再送入 encoder。
处理分两类:
3.1 对象存在性必须保留
以下图层退化时转换到现有 point layer:
clearance_limit_line→clearance_limit_pointnavigation_hazard_area/outline→navigation_hazard_pointanchor_caution_hazard_area/outline→anchor_caution_hazard_point
报告记入 quantization_fallbacks。
3.2 线性参考/普通面片
例如:
depth_contourbaseline_lineseabed_linebaseline_area
若当前 tile 内量化后已经没有可绘制二维/一维形状,则明确记入 quantization_omissions 后省略当前 tile-local 片段。
这不等于删除源对象;源对象、FID identity 和其它 tile/zoom 中可绘制片段不变。禁止把等深线等线性语义伪造成点。
Encoder 后仍做真实二进制 decode 对账;encoder_dropped_features 必须继续为 0。
4. Release 迁移
v1.4.3 mapping SHA 与 v1.4.2 不同,因此旧 plan 不得继续运行。
新增:
cm95pbf migrate-production-release
流程:
- 用 v1.4.3 mapping 创建新 plan / 新 release_id;
- 读取旧 release ledger;
- 仅复用旧
PASS; - 旧 FAILED/PENDING/RUNNING 一律在新 ledger 中重新 PENDING;
- 若旧 PASS report 命中新 mapping 声明的
delivery_output_changed_object_classes,也不复用; - 旧 PASS 必须同时满足:
- hard_gate_unmapped = 0
- encoder_dropped_features = 0
- planned == output
- PBF/report 文件完整
- 通过的 PBF/report 默认用 hardlink 复用,失败则自动 copy fallback。
v1.4.3 的 delivery output changed class 只有:
FSHHAV
因为旧版所有出现 FSHHAV AREA 的 tile 都已被 hard-gate 阻断,正常预期是复用约 19,913 PASS,只重建约 202 tile。
5. Release 状态语义
finalize-production 现在同时输出:
- production integrity
status semantic_completenesssemantic_backlogquantization_fallbacksquantization_omissions
v1.4.3 即使 production integrity PASS,只要 112 个 pending semantic variant 尚未处理:
semantic_completeness = PENDING_REVIEW
因此不得把 v1.4.3 称为“全国 CM95 语义全部完成”;它是生产生成链/失败恢复/安全硬门收口版。