feat: normalize CM93 objects for S-52 presentation
This commit is contained in:
120
docs/报告/CM95_S52_全国对象规范化阶段报告_v1.md
Normal file
120
docs/报告/CM95_S52_全国对象规范化阶段报告_v1.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# CM95 S-52 全国对象规范化阶段报告 v1
|
||||
|
||||
## 1. 目标
|
||||
|
||||
本阶段沿 OpenCPN CM93 `CreateS57Obj()` 与 S-52 Presentation Lookup 流程,补齐 CM93 私有/扩展对象类到标准 S-57/S-52 Presentation 语义的规范化。
|
||||
|
||||
范围为 Dataset 1 日本数据。本阶段不重建正式 release,只进行全库只读审计、单 Tile 回归和 Presentation 映射实现。
|
||||
|
||||
## 2. 参考资源
|
||||
|
||||
- CM93 对象字典:`/root/sourceserver/cm95-data/CM93JAPAN/CM93OBJ.DIC`
|
||||
- CM93 属性字典:`/root/sourceserver/cm95-data/CM93JAPAN/CM93ATTR.DIC`
|
||||
- OpenCPN `chartsymbols.xml`
|
||||
- OpenCPN `S52RAZDS.RLE`
|
||||
- OpenCPN `cm93.cpp` 中的对象替代逻辑
|
||||
- S-57 object class catalog 与 `attdecode.csv`
|
||||
- 完整 3057 条 Presentation Lookup IR
|
||||
|
||||
## 3. 本阶段新增的主要规范化
|
||||
|
||||
- `ITDARE → DEPARE`
|
||||
- `FSHHAV → FSHFAC`
|
||||
- `BRTFAC → BERTHS`
|
||||
- `TNKCON → SILTNK`
|
||||
- `PRDINS → PRDARE`
|
||||
- `ROADPT → ROADWY`
|
||||
- `VEGARE → VEGATN`
|
||||
- `SLTPAN → LNDRGN + CATLND=15`
|
||||
- `TELPHC → CONVYR + CATCON=1`
|
||||
- `DIFFUS → OBSTRN + CATOBS=3`
|
||||
- `SLIPWY → SLCONS + CATSLC=13`
|
||||
- `LNDSTS → SLCONS + CATSLC=11`
|
||||
- `RMPARE → SLCONS + CATSLC=12`
|
||||
- `DYKARE / DYKCRW → DYKCON`
|
||||
- `SILBUI → SILTNK + CATSIL=1`
|
||||
|
||||
Landmark 类按 S-52 `LNDMRK + CATLMK` 规范化:
|
||||
|
||||
- `CHIMNY → CATLMK=3`
|
||||
- `DSHAER → CATLMK=4`
|
||||
- `FLGSTF → CATLMK=5`
|
||||
- `FLASTK → CATLMK=6`
|
||||
- `MSTCON → CATLMK=7`
|
||||
- `WNDMIL → CATLMK=18`
|
||||
- `WIMCON → CATLMK=19`
|
||||
|
||||
另外保留 OpenCPN Presentation Library 的扩展类大小写别名:
|
||||
|
||||
- `RIVBNK → rivbnk`
|
||||
- `CANBNK → canbnk`
|
||||
|
||||
## 4. 全国审计结果
|
||||
|
||||
Dataset 1 共扫描 `1,282,431` 个 `chart_feature`。
|
||||
|
||||
最终 v7 审计:
|
||||
|
||||
- S-52 Lookup 命中:`1,246,817`
|
||||
- 全对象表观命中率:`97.2229%`
|
||||
- `unsupported_csp_counts = {}`
|
||||
- 条件存在但属性不匹配:`0`
|
||||
- no-candidate:`35,614`
|
||||
|
||||
其中几何可绘制对象总数为 `1,251,374`。
|
||||
|
||||
## 5. 不应计入普通 Presentation 缺口的对象
|
||||
|
||||
以下三类合计 `4,502` 个,不能作为“漏画”处理:
|
||||
|
||||
- `NATARE`:`1,516`,OpenCPN Presentation Library 明确为 `No data` 且 instruction 为空。
|
||||
- `$COMPS`:`1,494`,属于制图罗盘辅助对象。
|
||||
- `M_PROD`:`1,492`,属于生产信息元数据对象。
|
||||
|
||||
剔除上述对象后,需要普通 Presentation 的对象数为 `1,246,872`,其中已命中 `1,246,817`。
|
||||
|
||||
有效覆盖率:`99.9956%`。
|
||||
|
||||
剩余未安全规范化的普通地物仅 `55` 个。
|
||||
|
||||
## 6. 剩余 55 个语义复核项
|
||||
|
||||
- `TREPNT` Point:19
|
||||
- `BUIREL` Area:13
|
||||
- `TOWERS` Area:8
|
||||
- `HILARE` Area:5
|
||||
- `CEMTRY` Point/Area:7
|
||||
- `RADDOM` Point:3
|
||||
|
||||
这些对象没有足够证据支持无损的一对一标准化。本阶段明确保留,不为追求数字上的 100% 而制造猜测映射。
|
||||
|
||||
后续如处理,应继续以 CM93 原始属性、S-57 类定义、S-52 Lookup 条件和 OpenCPN 实际行为共同确认。
|
||||
|
||||
## 7. 福冈湾回归
|
||||
|
||||
重新生成 `z12/3531/1641` v10 normalized PBF:
|
||||
|
||||
- Feature:`3293`
|
||||
- Layer:`23`
|
||||
- `hard_gate_unmapped = []`
|
||||
- unresolved CSP:`0`
|
||||
- `SOUNDG02 = 1881`
|
||||
- `LIGHTS05 = 62`
|
||||
- `OBSTRN04 = 19`
|
||||
|
||||
浏览器实际加载 `presentation_v10.html` 后进入 READY;灯火、灯弧、测深、危险物、岸线构造和原有主图层均正常。
|
||||
|
||||
浏览器唯一 404 为 `/favicon.ico`,与地图资源无关。
|
||||
|
||||
## 8. 结论
|
||||
|
||||
本阶段确认:CM95 当前主要 Presentation 缺口已经不再是大规模对象类未映射问题。
|
||||
|
||||
经过 CM93→S-57/S-52 对象规范化后,全国普通可绘制对象的有效 S-52 Lookup 覆盖率达到 `99.9956%`,且当前实际出现的 CSP 类型均已被 Resolver 支持。
|
||||
|
||||
下一阶段重点应从“补对象类”转向:
|
||||
|
||||
1. 对剩余 55 个小样本对象做语义复核;
|
||||
2. 检查已命中 Lookup 的 `TE/TX/LC/AP` 是否全部被 MapLibre 后端完整执行;
|
||||
3. 检查 Sprite/vector-only symbol 资源闭合;
|
||||
4. 用 OpenCPN 对照图做视觉差异审计,而不是继续扩大类替换表。
|
||||
Reference in New Issue
Block a user