70 lines
1.7 KiB
Markdown
70 lines
1.7 KiB
Markdown
# CM93 Importer v0.2.0 离线验证报告
|
||
|
||
## 范围
|
||
|
||
本报告验证 CM93 parser、geometry 标准化和 MySQL 写入批次结构。
|
||
由于 ChatGPT 执行环境无法访问用户本机 MySQL,本报告不声称已经替用户执行 MySQL 实际插入;真实数据库验收由 `import --limit-cells 5` + `audit` 完成。
|
||
|
||
## 固定真实样本
|
||
|
||
用户提供的 147 个 A~G CM93 cell。
|
||
|
||
结果:
|
||
|
||
```text
|
||
cells 147
|
||
parse failures 0
|
||
features 100621
|
||
attributes 112746
|
||
```
|
||
|
||
与前期独立解析计数一致。
|
||
|
||
## Geometry + 写入结构回归
|
||
|
||
对 147 个 cell 全部执行:
|
||
|
||
```text
|
||
parse
|
||
→ coverage build
|
||
→ Point/Line/Area/Sounding normalization
|
||
→ embedded offset matching
|
||
→ WKB generation
|
||
→ 模拟 MySQL insert tuple / dependent-id mapping
|
||
```
|
||
|
||
结果:
|
||
|
||
```text
|
||
cells 147
|
||
features 100621
|
||
attributes 112746
|
||
geometry issues 36
|
||
unmatched coverage 4
|
||
```
|
||
|
||
36 个 geometry issue 主要为源 polygon self-intersection;v0.2.0 不自动 make-valid。
|
||
4 个 unmatched coverage 为仍有可保存几何、但 representative point 未落入 `_m_sor` coverage 的 cartographic/text 类对象;按 policy 保存 0 offset 并在 `_cm93.coverage_match_method` 中记录 `unmatched`,不静默猜测最近 coverage。
|
||
|
||
## 精度规则
|
||
|
||
- Python float / C double
|
||
- MySQL Geometry double
|
||
- CM93 Mercator `6378388.0`
|
||
- 不 round
|
||
- 不 simplify
|
||
- 不 quantize
|
||
- sounding 原始 X/Y/Z 同时保存
|
||
- raw feature / raw attribute / decoded CM93 table block 保存
|
||
|
||
## 下一验证门槛
|
||
|
||
用户机器:
|
||
|
||
```powershell
|
||
cm93db import --scale G --limit-cells 5
|
||
cm93db audit --sample-cells 5
|
||
```
|
||
|
||
只有数据库实际写入和 WKB 读回精度审计 PASS 后,再启动 30,097 cell 全量导入。
|