欢迎光临
我们一直在努力

S-124:把航海警告变成数据

动态图层家族写到第四块,性质变了:S-104 水位、S-111 流场是环境参数,连续、渐变、按小时演进;S-124 航行警告是事件——灯标熄灭、新发现沉船、水上施工临时划设。它不渐变,它突然出现、要求被看见、过些天又被撤销。

先看一条警告在今天的真实形态。这是国内某海事局发布的一份施工通告(节选):

×航通〔2023〕0127号 某海事局关于某运河航道工程施工№.HD15标段作业的通告各有关单位及船舶:某航道建设公司将进行某运河航道工程施工№.HD15标段作业。现将有关事项通告如下:一、作业时间:2023年4月7日至2025年2月16日。二、施工安全作业区:起于某大桥南侧200m,止于某港东航道起点…… 三、施工船舶:××、××、××等30余艘(名单略)……

值班驾驶员读到它,抄进值班日志,把作业区手绘到纸质海图上,完工的日子再划掉。S-124(航行警告产品规范)做的事,就是让这条通告变成结构化数据,直接叠加进 S-101 电子海图——人读的通告,变成机读的字段:

同一条警告的两种形态:通告与数据字段的对应

同一条警告,拆成数据看

把这份国内海事机构发布的真实数据集(S-124 Ed 2.0.0 格式)拆开是这样的:

通告里的数据里的干什么用
×航通〔2023〕0127号 · 某海事局 · 2023 年 messageSeriesIdentifier + MRN(urn:mrn:…:NavigationWarning:v1:…,这里已截断) 全球唯一身份,任何系统都能无歧义引用
"施工作业" warningHazardType = Construction operation 类型化的事件分类,可筛选、可联动
作业区水域范围 几何 Polygon:125 个坐标点的狭长走廊 画在海图上的那圈品红虚线边界
作业时间 fixedDateRange:2023-04-08 09:31 → 2025-02-17 到期自动下线,不靠人工撤销
30 余艘施工船名单 船名/MMSI/船长/船宽共 74 个属性字段 监管信息一并数字化

最后这行值得停一下:连"哪 30 艘船可以施工"都进了数据。这份警告区的范围是沿航道的狭长走廊——125 个坐标点、南北约 17.4 公里、东西约 8.3 公里,从上游大桥南侧一直铺到港口东航道起点。几何不是个抽象概念,是每一个转向点都测过的工程事实。

要素目录(Feature Catalogue Ed 2.0.0)里的真实类型名也值得记:一条警告由若干 NavwarnPart(分段,各自携带几何)组成,配套 NavwarnAreaAffected(受影响区域)与 TextPlacement(文字摆放位置)——"文字放哪"在 S-124 里也是一个要素,而不是渲染器拍脑袋。

警告不改口,只发新的

NAVAREA/海事通告体系有个容易被软件工程师忽略的老规矩:警告从不原地修改。工程提前完工了,不会有人"编辑"这份 0127 号通告,而是发布一条新警告:

(新警告) Cancel ×航通〔2023〕0127号.

对数据消费者来说,这意味着"警告的最新状态"永远要顺着引用链算出来:新警告引用旧警告,旧的随之下线。引用关系是要素目录里明确定义的信息关联——navwarnReferences,目录定义原文:"警告与其目的相关的先前信息之间的关系"——而不是藏在正文里的一句话。漏解析一条撤销引用,屏幕上就多一个"幽灵警告",比没有警告更糟。

它从哪来,到哪去

生产端挂在 WWNWS(世界航海警告服务)体系:全球按大洋划成 16 个 NAVAREA 区,每区由协调国发布区域警告,往下再分沿海、地方两级。S-124 给这条百年老链路加了数字化出口——海事机构除了发通告,还可以直接发布标准数据文件,ECDIS 拉取后自动叠加。

传统侧的 NAVTEX 值得多说一句:它工作在中频 518 kHz(国际频道,英文)和 490 kHz(本国语言频道),是窄带字符广播——只有文本,没有几何,覆盖范围以电台为中心约 400 海里。一条警告的"位置"要靠报务员在脑内换算成经纬度,这些先天限制正是 S-124 要补的课:同样的警告,字符电文给人读,结构化数据给机器读,双轨并行、互为保底。

渲染端:品红虚线,加上一套状态机

先分清职责:S-124 只负责把警告的几何、正文、引用链编码出来;怎么画由 Portrayal Catalogue(Ed 2.0.0)写成机器可读规则来约束,最终叠加在 S-101 底图之上。照着规则渲染,就是"符合标准":

  • 边界:CHMGD 色(日间板色值 #C045D1)0.64mm 虚线,周期 40.18mm——品红是海图上"人工覆盖信息"的专用色,在蓝绿主调的水面上不和任何真实要素混淆;区域内部不填充,不遮挡底图
  • NW 方框符号:边界线型自带一个方框 "NW" 符号,沿边界周期性重复——图面上靠它告诉值班员"这里有条警告";点状警告则用圆形变体;同一位置多条警告则叠一个计数标注
  • 正文不糊图:警告正文由 TextPlacement 要素管理摆放,配合警告列表/弹层阅读,图面上只留几何边界与符号
  • 注意级提醒:新警告几何与计划航路相交时,按 ECDIS 表现标准触发提醒(声音/弹窗)——不允许指望船员自己"刷"出来

真正的难点在状态机。拿这份数据集走完一生:

阶段触发屏幕上的表现怎么退出
出现 起始时刻到点生效(fixedDateRange.dateStart),且几何与本船/计划航路相交 品红虚线边界 + "NW" 标签框 + 注意级提醒 船员确认,或警告到期/被撤销
驻留 船员已确认 画法与确认状态无关——边界和标签照常显示,变化只在提醒层面:已确认的不再重复弹 撤销引用到达,或到期
下线 dateEnd 到点,或提前发布撤销 边界、标签、提醒状态、列表项整体移除

拼起来就是屏幕上的样子:

航警叠加在海图上的真实效果:品红虚线边界加 NW 方框符号(按 Portrayal Catalogue Ed 2.0.0 绘制)

这份警告的 fixedDateRange 把到期时刻写死在了字段里——像这样跨度近两年的长期警告,"到点自动消失"是数据给的权利,不需要任何人记得去删。

对比一下:S-104/111 再复杂也只是"值在变",S-124 是值在生灭。工程上是两种物种:前者主要做插值和换色,后者主要做状态同步和引用链管理。而状态同步对不对、撤销链漏没漏,靠肉眼盯屏幕很难验证——下一篇讲讲怎么用官方测试数据集给渲染器当陪练。


我是夜航海图,做海图与地图渲染开发的工程师。博客「航图笔记」同步更新全部文章,欢迎 RSS 订阅。

赞(0)
未经允许不得转载:171主机测评 » S-124:把航海警告变成数据
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址