# CM93 母数据库精度规范 v2 ## 固定常量 - CM93 raw grid: 0..65535 - CM93 Mercator semi-major axis: **6378388.0 m** - 标准化母库:WGS84 经纬度语义 / SRID 4326 - Python 坐标计算:CPython float(C double) - WKB X/Y:IEEE-754 8-byte double ## 禁止 - numpy.float32 作为坐标 - MySQL FLOAT 保存最终经纬度 - importer 阶段 round - simplify - snap - quantize - 自动 make_valid 后替换原 geometry ## 转换 1. 读取 raw uint16 X/Y。 2. 使用 header 的 easting/northing bounds 恢复 CM93 Mercator。 3. 若 feature 所属 `_m_sor` coverage 有 `_wgsox/_wgsoy`:在 Mercator 米坐标中减去 offset。 4. 使用 6378388.0 执行 CM93 Mercator → lon/lat。 5. WKB 写 MySQL,第二参数显式 SRID=4326。 ## 数据可追踪 必须同时保存: - source cell path - SHA-256 - header - raw decoded tables - raw feature record - raw attribute payload/value - `_wgsox/_wgsoy` - normalized geometry 因此标准化公式未来如需修订,不必重新取得原 CM93 光盘/目录即可重新解释数据库 raw 数据。 ## 审计门槛 默认: - parser 结构计数全部一致 - EOF 精确一致 - source SHA-256 一致 - raw chunk 总字节 = source file bytes - source/database Feature/Attribute/Geometry/Sounding 计数一致 - WKB round-trip precision tolerance = **1e-12 degree** `--validate-geometry` 的拓扑 validity 是额外信息,不允许通过自动修复掩盖原数据结构。