98 lines
2.7 KiB
Markdown
98 lines
2.7 KiB
Markdown
> 注意:本文件记录 v1.4 初版。生产范围已在 v1.4.1 改为 z0–z12;以 `CM95_PBF生产化阶段_v1_4_1.md` 为准。
|
||
|
||
# CM95 PBF 生产化阶段 v1.4(历史:z10–z12 初版)
|
||
|
||
## 1. 基线
|
||
|
||
本版本以已经通过 21 张 AOI 双 Gate 的 v1.3 为冻结内核。以下行为不得在本阶段随意改变:
|
||
|
||
- `cm95_to_navsea_v1.yaml` 语义映射;
|
||
- z10/z11/z12 extent;
|
||
- scale ladder / coverage mask;
|
||
- relation20 助航合成;
|
||
- `OBJNAM/NOBJNM` 直接名称规则;
|
||
- stable FID manifest;
|
||
- hard-gate quantization fallback;
|
||
- encoder 写后 Feature ID 对账。
|
||
|
||
v1.4 只增加生产编排层。
|
||
|
||
## 2. 新增生产闭环
|
||
|
||
### `plan-production`
|
||
|
||
从 MySQL 只读读取 `chart_cell` 与 `chart_coverage`,按当前 tile policy 中每个 zoom 的 scale ladder 枚举真实需要的 tile。
|
||
|
||
优先使用真实 coverage polygon;若某 Cell 没有 coverage,则使用 Cell bbox 作为保守 fallback,避免漏图。
|
||
|
||
生产计划冻结:
|
||
|
||
- Dataset fingerprint;
|
||
- mapping SHA256;
|
||
- tile policy SHA256;
|
||
- FID manifest fingerprint/count;
|
||
- profile;
|
||
- zoom;
|
||
- 完整 XYZ job 列表。
|
||
|
||
任何输入在计划创建后变化,`build-production` 必须拒绝继续。
|
||
|
||
### `build-production`
|
||
|
||
- SQLite 账本;
|
||
- PASS 自动跳过;
|
||
- 上次异常中断的 RUNNING 自动恢复 PENDING;
|
||
- FAILED 最多重试指定次数;
|
||
- 有限线程并发;
|
||
- 每个 tile 继续使用 v1.3 builder 自带 hard-gate 与 encoder 对账;
|
||
- 空 tile 允许 PASS,但不写 `.pbf`。
|
||
|
||
### `finalize-production`
|
||
|
||
发布前重新读取所有 report 与真实 PBF,要求:
|
||
|
||
- 所有计划 job = PASS;
|
||
- hard-gate unmapped = 0;
|
||
- encoder dropped = 0;
|
||
- nav name conflict = 0;
|
||
- planned output = report output = decoded PBF feature count;
|
||
- tile 内同 layer Feature ID 无重复。
|
||
|
||
同时执行全量 style filter 契约与动态 sprite closure,并生成每个 PBF 的 SHA256/bytes/feature/layer inventory。
|
||
|
||
## 3. 产物结构
|
||
|
||
```text
|
||
build/
|
||
production/
|
||
cm95_production_plan_v1.json
|
||
|
||
releases/
|
||
<release_id>/
|
||
production_run_v1.sqlite
|
||
production_run_summary_v1.json
|
||
release_manifest_v1.json
|
||
|
||
pbf/
|
||
delivery/
|
||
{z}/{x}/{y}.pbf
|
||
|
||
reports/
|
||
delivery/
|
||
{z}/{x}/{y}.json
|
||
{z}/{x}/{y}.trace.jsonl
|
||
```
|
||
|
||
`release_id` 由 Dataset fingerprint + plan hash 确定,相同输入得到相同 release identity。
|
||
|
||
## 4. 当前阶段不做
|
||
|
||
- 不选择 HTTP/Nginx/FastAPI serving;
|
||
- 不改变 NavSea 客户端;
|
||
- 不改 importer/schema;
|
||
- 不增加新正式 source-layer;
|
||
- 不改变 v1.3 safety semantics;
|
||
- 不自动清理旧 release。
|
||
|
||
Serving 在完整 Dataset production release PASS 后再单独决定。
|