ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

IHO S-57标准电子海图(ENC)结构

IHO S-57标准电子海图(ENC)结构

物理格式:ISO/IEC 8211 交换格式
生产方:中国海事局(MSA)
规模:约350余个独立图幅(cell),每个图幅由1个基础文件+若干更新文件组成

一、文件命名规则

每个文件名形如CNNNNNNN.NNN

1. 扩展名

扩展名含义
.000基础文件,该图幅的原始完整数据
.001~.NNN更新文件(航海通告补丁),按时间顺序逐期累积
  • 举例
    C1210012 有.000 一直到.068 -> 基础版+67次更新
    C1315020只有.000 -> 发布后从未更新过
  • 注意!!
    无人艇加载时,必须先读.000,再按编号把所有.00N更新逐个叠加,才是当前最新的海图。直接用.000等于是过期数据

2. 主文件名——编码[产生国+比例尺等级+图号]


对照本数据集,第3位(导航用途1~6)和图幅数量分布完全吻合:

第3位导航用途大致比例尺本数据集图幅数
1Overview 概览/远海总图<1:300万4幅
2General 总图~1:100万11幅
3Coastal 沿海~1:35万~40幅
4Approach 近岸/进港~1:9万~40幅
5Hatbour 港区~1:2万~150幅
6Berthing泊位>1:4000~110幅

规律:比例尺越小(总图)一张图覆盖越大、图幅数量少;比例尺越大(港区/泊位)一张图覆盖越小、图幅数量多。

二、 单个.000文件的内部数据结构

S-57文件是ISO/IEC 8211[自描述]格式:文件自己带一份“字段说明书”,再跟实际数据。所以每个文件分两大块:
S-57把数据组织成三大类记录:
###1. 数据集级记录(整张图只有一组,描述[这张图本身])

字段全名作用
DSIDData Set Identification图名、生产机构(AGEN)、更新号(UPDN)、发布日期等
DSSIData Set Structure Information本图的统计:物标总数(NOFR)、空间记录等
DSPMData Set Parameter Measurement编译比例尺(CSCL)、坐标系/投影、图幅地理边界范围等核心参数

2. 空间记录(VRID开头)——几何骨架

只存纯粹的几何(点、线、多边形坐标),不带任何[这是什么]的语义:

字段含义
VRID空间记录的ID+类型(孤立节点/连接节点/边)
SG2D/SG3D二维/三维坐标(存的是相对坐标,要乘DSPM里的CSCL才还原成WGS84经纬度)
VRPT矢量指针(把节点串成边、把边串成拓扑)

3. 物标记录(FRID开头)——语义内容(航海最关心的)

把现实地物(灯塔、沉船、水深区…)描述出来,并通过指针挂到几何上:

字段含义
FRID物标记录ID+物标类别
FOID物标全局标识(FIDN + FIDS,跨图幅唯一)
ATTF国标标准属性(如水深值、灯质、颜色)
NATF国家本地属性
FFPT物标 -> 物标的关联指针
FSPT物标 -> 空间的指针(把语义挂到VRID几何上)

物标种类遵循S-57 Object Catalogue(约180多类),对无人艇避障/航迹规划最关键的几类:

  1. DEPARE 可水深区、SOUNDG 测探点
  2. OBSTRN 障碍物、WRECKS 沉船、UWTROC 水下礁石
  3. SLCONS 岸线、MARCUL 海藻/养殖区、 LIGHTS 灯标

三、更新文件(.NNN)和基础文件(.000)的区别

结构和 .000 基本一样,但多了几个带C(Control)的[控制指针]字段:

这些Control字段里的 RUIN 就是操作指令:

所以 ECDIS加载更新时,是按记录级别做增/改/删,不需要重发整张图——这就是-57海图能持续、低成本保持最新的机制。

四、USV航迹规划时的实操要点

  1. 别自己手解二进制——IS8211 + S-57解析很繁琐,直接用现成库:
    GDAL/ORG(命令行 ogrinfo/ogr2ogr 直接读S-57)
    或OpenCPN内核、pydro(NOAA)

  2. 务必按顺序应用全部更新(.000 -> .001 -> …-> 最大号),否则用的就是过期图。

  3. 坐标是WGS84经纬度,但文件里存的是相对坐标,需用DSPM的CSCL还原。

  4. 避障核心:从物标层(FRID/FOID/ATTF)提取 OBSTRN / WRECKS / UWTROC / DEPARE-SOUNDG / MARCUL,通过 FSPT 指针拿到它们的几何,构建可航水域(栅格或矢量),再做路径搜索。

返回列表