航图笔记工具箱:十个工具的使用场景指南
这个博客写了半年 S-57 和 S-100,每篇文章里出现过的速查表和解析器,最后都沉淀成了工具页里的十个在线工具。这篇按实际工作流的顺序把它们串起来——不是功能清单,是什么场景该抓哪个工具、以及它们各自解决过的真实问题。全部工具纯浏览器本地运行,数据不出本机。各工具的能力与命名以工具页实时版本为准,本文描述截至 2026 年 9 月。
查标准:两张某表
S-57 对象类码表 和 S-57 属性码表:写解析器时最常开的两个页。对象类码表收录 179 个核心 ENC 对象类(编码、缩写、中英文名、图元),实时过滤、高频对象标星,点行即复制;属性码表除了类型和取值域,还做了反向索引——查一个属性能直接看到"被哪些对象类使用",双向跳转互通。典型场景:拿到一份 ENC,某个物标用了冷门属性组合,两个页面对着查五分钟就能定位——比翻 S-57 Appendix A 的 PDF 快得多。第一次接手 ENC 的,配合数据解剖那篇对照着走一遍,比读规范快一周。
S-52 颜色与符号速查:五套标准调色板 63 个令牌的屏显值全量内嵌,一键导出 JSON / CSS 变量直接进代码;166 个 INT 1 符号中文图库,实时过滤分类浏览。写渲染器调颜色、对符号时开着当案头字典。色值数据的来历和设计逻辑在夜航那篇里有完整拆解。
拆数据:从 ENC 到字段
S-57 ↔ S-101 要素对照:160 个 S-57 对象到 S-101 要素的官方转换对照表,带 DCEG 条款引用,还有"不转换清单"——迁移时哪些东西被 S-101 舍弃了,一张表说清。支持 URL 深链过滤,排查"这个 S-57 物标迁过去叫什么"十秒出结果。
坐标 / 磁差速算:经纬度与 Web 墨卡托 / UTM / 高斯-克吕格 / 度分秒 / GCJ02 火星坐标互转,单点批量都行;磁差按 WMM2025 模型算,支持航线批量并含年变率。看着不起眼,但海图数据里的坐标全是度分秒格式,调试时肉眼对位全靠它。
HDF5 / S-100 网格解析器:S-102 水深、S-111 流场的 .h5 拖进去自动渲染热力图——时序帧切换、点选读值、干出与填充值区分,附结构树与属性,内置 NOAA 样本两个。排查"水深怎么读出来是乱的"这类问题时,先看底层 HDF5 的组织再怪代码。
S-100 要素目录解析器:内置 S-101 FC 2.0.0 全量样本——190 个要素类型、5 个信息类型、236 个简单属性、42 个复杂属性、18 组要素级关联,全部可搜索,S-57 别名直达对照。写 S-101 解析器对字段时开它。数据集拆解那篇的 FC 部分就是拿它验证的。FC 是统一的 S-100 框架——实测把 S-123 海上无线电服务的 FC 拖进来也直接解析(S-401 内河、S-131 港口同一套格式)。这个系列里各产品的目录体量数字——S-401 的 178 个要素类型、S-131 的 40+14、S-123 的 18+13——全是它实测出来的,各篇拆解里的数字能对上,就是这条流水线在跑。
S-100 图示表达解析器:这个要重点说。内置样本之外,支持上传整个 PC 分发目录(S-101 / S-131 / S-123 的包都实测通过):718 个符号注册表按调色板着色渲染、Lua 和 XSLT 规则源码分页查看、84 个线型与面填充的 canvas 可视化预览、物标级渲染效果合成(符号实图 + 简单线 + 填充)。压力测试的纪录是一次吞下 S-131 的整个分发目录——53 个文件、657 个 SVG、41 条 Lua 规则一次解析,港口那篇里的规则统计就是这么来的。双规则引擎的事在规则拆解篇里写过,工具就是那篇文章的活标本。
造数据和看效果
S-100 测试数据生成器:基于官方 S-101 要素目录批量生成合成要素实例——1 到 50 个,坐标散布、枚举轮转、数值扰动,导出 JSON / GeoJSON。写解析器最怕"没有样本",这个工具就是给官方测试集之外的日常迭代补位用的。
S-52 昼夜模拟器:一块合成海图按 look-up 表实时渲染,白昼/黄昏/夜间三套标准色板一键切换;浅水、安全、深水三条等深线滑块各自拖动,看填色当场重排。给非开发同事演示"为什么夜航色板不能调暗了事",一个链接胜过千言。
三种角色,三条路径
同一套工具,不同的人进来应该走不同的门:
刚接触 ENC 的开发者:先开对象类码表和数据解剖那篇把 ISO 8211 的记录结构看懂,遇到不认识的物标随手查码表;画法问题切颜色符号速查对照 INT 1。这个阶段最需要的其实是"随时能查",两张码表就解决八成问题。
做 S-57 → S-101 迁移的:主战场是要素对照表和要素目录解析器——160 个对象的官方映射带条款引用,S-101 的 190 个要素类型随时对查;迁移后要造测试数据,生成器按目录批量出货。
写渲染器的:图示表达解析器是主力,规则源码、符号实图、物标合成渲染一页看完;调色板和等深线逻辑用昼夜模拟器实时验证;遇到 S-102/S-111 的格网数据,HDF5 解析器直接拖文件。
工具之间没有强依赖,但按这条路径走,基本每个"我到底该用哪个"的疑问都有答案。
离线完整版
以上工具有一个离线完整版(断网可用),适合船端、隔离网段这类没外网的开发环境:要素目录、图示表达全资产、HDF5 样本这些大块头数据全部内嵌,打开即是完整功能。获取方式见博客页脚的爱发电主页与 CSDN 资源页。工具持续更新,离线包随版本升级。
工具都是解决自己问题时顺手做的,如果你在 ECDIS 或海图开发里有个反复要查、反复要试的东西没有趁手工具,欢迎来信 [email protected] 提议——大概率下一个工具就是它。
我是夜航海图,做海图与地图渲染开发的工程师。博客「航图笔记」同步更新全部文章,欢迎 RSS 订阅;如果内容帮到了你,也欢迎在爱发电请我喝杯咖啡。
♥ 这篇对你有用?在爱发电支持夜航海图——请我喝杯咖啡,工具和文章都会继续更新。
评论
评论基于 GitHub Discussions,需要 GitHub 账号;没有也欢迎通过 RSS 阅读器或各平台评论区交流。