海图的信息都存储在字段中,不同字段对应真实世界不同的实体,字段间存在上下级的树状关系,子有的子字段可重复出现。结合S-57的数据模型,本节分四个部分介绍常用的字段的含义。
1. 数据集描述记录
存储的是该S-57文件的全局信息,如海图版本号、图号、发布日期、生产商、投影规则、所包含记录统计信息等,该字段至多在文件中出现一次。常用的标签如下:DSID
,DSSI
,DSPM
,DSAC
,CATD
。
1.1 DSID数据集标识
字段标签: DSID | 字段名称:数据集标识 Data Set Identification |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
记录名称 Record name | RCNM | b11 | "DS" {10} |
记录标识号 Record identification number | RCID | b14 | 范围:1 ~ 232-2 |
交换目的 Exchange purpose | EXPP | b11 | "N"{1}:新数据集 "R"{2}:是已有数据集的修订 |
预期用途 Intended usage | INTU | b11 | 说明数据集用途的数值(详见附录B--产品说明) |
数据集名称 Data set name | DSNM | A() | 说明数据集名称的字符串(详见附录B--产品说明) |
版本号 Edition number | EDTN | A() | 说明版本号的字符串(详见附录B--产品说明) |
更新号 Update number | UPDN | A() | 说明更新号的字符串(详见附录B--产品说明) |
更新日期 Update application date | UADT | A() | 在此之前的更新需要先被处理 |
发布日期 Issue date | ISDT | A() | 该版本海图发布时的日期 |
S-57 版次 Edition number of S-57 | STED | A() | "03.1" 当前S-57标准的版本号 |
产品规范说明 Product specification description | PRSP | b11 | "ENC"{1}:电子航海图 "ODD"{2}:IHO物标目录数据字典 |
产品规范版次 Product specification edition number | PSDN | A() | 非标准产品的相关说明 |
应用文档标识 Application profile identification | PRED | A() | 产品说明的版本号 |
生产机构 Producing agency | PROF | b11 | "EN"{1}:新版ENC "ER"{2}:修订版ENC "DD"{3}:IHO数据字典 |
注释 Comment | COMT | A() | 注释字符串 |
1.2 DSSI数据集结构信息
字段标签: DSSI | 字段名称:数据集结构信息 Data Set Structure Information |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
数据结构 Data structure | DSTR | b11 | “CS”{1}:制图线 “CN”{2}:连接节点 “PG”{3}:平面图 “FT”{4}:完全拓扑 “NO”{255}:与拓扑无关 |
ATTF词汇级别 | AALL | b11 | 用于ATTF字段的词汇级别 |
NATF词汇级别 | NALL | b11 | 用于NATF字段的词汇级别 |
元记录数 Number of meta records | NOMR | b14 | 数据集中的无记录数 |
制图记录数 Number of cartographic records | NOCR | b14 | 数据集中的制图记录数 |
地理记录数 Number of geo records | NOGR | b14 | 数据集中的地理记录数 |
集合记录数 Number of collection records | NOLR | b14 | 数据集中的集合记录数 |
孤立节点记录数 Number of isolated node records | NOIN | b14 | 数据集中的孤立节点记录数 |
连接节点记录数 Number of connected node records | NOCN | b14 | 数据集中的连接节点记录数 |
边记录数 Number of edge records | NOED | b14 | 数据集中的边记录数 |
面记录数 Number of face records | NOFA | b14 | 数据集中的面记录数 |
该字段不一定存在于文件中,若需要可自行统计
1.3 DSPM数据集参数
字段标签: DSPM | 字段名称:数据集参数 Data Set Parameter |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
记录名称 Record name | RCNM | b11 | “DP”{20} |
记录标识号 Record identification number | RCID | b14 | 范围:1 ~ 232-2 |
水平基准面 Horizontal geodetic datum | HDAT | b11 | 从属性HORDAT中取值(见附录A-物标目录1) |
垂直基准面 Vertical datum | VDAT | b11 | 从属性VERDAT中取值(见附录A-物标目录) |
深度基准面 Sounding datum | SDAT | b11 | 从属性VERDAT中取值(见附录A-物标目录) |
数据编辑比例尺 Compilation scale of data | CSCL | b14 | 海图的编辑比例尺2 |
深度测量单位 Units of depth measurement | DUNI | b11 | 从属性DUNITS中取值(见附录A-物标目录) |
高度测量单位 Units of height measurement | HUNI | b11 | 从属性HUNITS中取值(见附录A-物标目录) |
位置精度单位 Units of positional accuracy | PUNI | b11 | 从属性PUNITS中取值(见附录A-物标目录) |
坐标单位 Coordinate units | COUN | b11 | “LL”{1}:纬度/经度单位3 “EN”{1}:东/北单位 “UC”{3}:海图/地图单位 |
坐标乘数因子 Coordinate multiplication factor | COMF | b14 | 坐标值由浮点变为整数的乘数因子4 |
水深化整因子 Sounding multiplication factor | SOMF | b14 | 水深值由浮点变为整数的乘数因子5 |
注释 Comment | COMT | A() | 注释字符串 |
- 附录A - 物标目录:是海图物标的数据字典,对于枚举型及列表型数据,每一取值的含义可从数据字典获得;
- 海图数据进行数字化时的比例尺,在此比例尺下显示海图最为合适;
- ENC的坐标单位只能使用纬度/经度表示
- 以存储方便及高效,经纬度坐标是以整型存储到电子海图里的,实际使用时需要除以乘数因子:
即:浮点数 = 整数 ÷ 乘数因子- 水深点数据是以整型存储到电子海图里的,实际使用时需要除以乘数因子;
1.4 DSAC数据集精度
字段标签: DSAC | 字段名称:数据集参数 Data Set Accuracy |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
记录名称 Record name | RCNM | b11 | “DA”{40} |
记录标识号 Record identification number | RCID | b14 | 范围:1 ~ 232-2 |
绝对水平精度 Absolute positional accuracy | PACC | b14 | 水平精度的最佳估计1 |
绝对垂直精度 Absolute horizontal/vertical measurement accuracy |
HACC | b14 | 垂直精度的最佳估计1 |
绝对水深精度 Absolute sounding accuracy | SACC | b14 | 水深精度的最佳估计1 |
浮点化整因子 Floating point multiplication factor | FPMF | b14 | 精度值的化整参数 |
注释 Comment | COMT | A() | 注释字符串 |
- 精度的最佳估计值需要利用FPMF转化成浮点型
1.5 CATD分类目录
字段标签: CATD | 字段名称:分类目录 Catalogue Directory |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
记录名称 Record name | RCNM | A(2) | “CD” |
记录标识号 Record identification number | RCID | I(10) | 范围:1 ~ 232-2 |
文件名 File name | FILE | A() | 文件名(见附录B-产品规范) |
文件长名 File long name | LFIL | A() | 表示文件长名的字符(见附录B-产品规范) |
卷标 Volume | VOLM | A() | 存放FILE字段所指的文件的交换集卷标(见附录B-产品规范) |
编码方法 Implementation | IMPL | A(3) | “ASC”:采用ASCII编码 “BIN”:采用二进制编码 ENC默认二进制编码 |
最南纬度 Southernmost latitude | SLAT | R() | 文件地理范围的最南端纬度,南纬为负 |
最西经度 Westernmost longitude | WLON | R() | 文件地理范围的最西端经度,西经为负 |
最北纬度 Northernmost latitude | NLAT | R() | 文件地理范围的最北端纬度,南纬为负 |
最东经度 Easternmost Longitude | ELON | R() | 文件地理范围的最东端经度,西经为负 |
校验码 CRC | CRCS | A() | 存储循环冗余校验码 |
注释 Comment | COMT | A() | 注释字符串 |
该字段不一定存在于文件中,若需要可自行统计
2. 特征记录
存储与空间记录相关的特征信息,如记录类型、组别、标签、特征--特征记录关系、特征--空间记录关系等。完整的特征记录树状结构图如下:
常用的标签如下:FRID
,FOID
,FFPT
,FSPT
,ATTF
,NATF
。
2.1 FRID特征记录标识符
字段标签: FRID | 字段名称:特征记录标识符 Feature Record Identifier |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
记录名称 Record name | RCNM | b11 | “FE”{100} |
记录标识号 Record identification number | RCID | b14 | 范围:1 ~ 232-2 |
物标几何类型 Object geometric primitive | PRIM | b11 | “P”{1}:点 “L”{2}:线 “A”{3}:面 “N”{255}:未指定 |
分组 Group | GRUP | b11 | 范围:1~254,255为无分组 |
物标标记/编码 Object label/code | OBJL | b12 | 有效的物标标记/编码 |
记录版本 Record version | RVER | b12 | 包含记录版本的序列号 |
记录更新指令 Record update instruction | RUIN | b11 | “I”{1}:插入 “D”{2}:删除 “M”{3}:修改 详情见后文更新记录 |
2.2 FOID特征物标标识符
字段标签: FOID | 字段名称:特征物标标识符 Feature Object Identifier |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
出版机构 Producing agency | AGEN | b12 | 机构代码 |
特征标识号 Feature identification number | FIDN | b14 | 范围:1 ~ 232-2 |
特征子标识号 Feature identification subdivision | FIDS | b12 | 范围:1 ~ 232-2 |
2.3 FFPT特征记录到特征物标指针
记录特征记录与特征物标间的关系。
字段标签: FFPT1 | 字段名称:特征记录到特征物标指针 Feature Record to Feature Object Pointer |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
长名 Long Name | LNAM2 | B(64) | 外部指针 |
关系标识 Relationship indicator | RIND | b11 | “M”{1}:主 “S”{2}:从属 “P”{3}:同级 其他值可由相关产品规范定义 |
注释 Comment | COMT | A() | 注释字符串 |
- 该字段为重复字段,即字段区会存储一条以上的记录;
- 长名LNAM由8字节组成的整数,由FOID的三属性拼接而成。LNAM(8字节)=AGEN(2字节)+FIDN(4字节)+FIDS(2字节)。
2.4 FSPT特征记录到空间记录指针
记录特征记录与空间记录间的关系。
字段标签: FSPT1 | 字段名称:特征记录到空间记录指针 Feature Record to Spatial Record Pointer |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
名称 Name | NAME | B(40) | 外部指针 |
方向 Orientation | ORNT | b11 | “F”{1}:正向 “R”{2}:反向 “N”{255}:未知 |
用法指示符 Usage indicator | USAG | b11 | “E”{1}:外部 “I”{2}:内部 “C”{3}:由数据界限分隔外部 “N”{255}:未知 |
屏蔽指示符 Masking indicator | MASK | b11 | “M”{1}:屏蔽 “S”{2}:显示 “N”{255}:未知 |
- 该字段为重复字段,即字段区会存储一条以上的记录;
- 名称NAME由5字节组成的整数,由空间记录中的两属性拼接而成。NAME(5字节)=RCNM(1字节)+RCID(4字节)。
2.5 ATTF特征记录属性
以键-值对的方式存储特征记录的属性。
字段标签: ATTF1 | 字段名称:特征记录属性 Feature record attribute |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
属性 Attribute label/code | ATTL | b12 | 有效的属性标记/编码2 |
值 Attribute value | ATVL | A() | 对应属性的合法值的字符串 |
- 该字段为重复字段,即字段区会存储一条以上的记录;
- 属性标记/编码及合法的取值范围见附录A。
2.6 NATF特征记录国家属性
以键-值对的方式存储特征记录的国家属性。
字段标签: NATF1 | 字段名称:特征记录国家属性 Feature record national attribute |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
属性 Attribute label/code | ATTL | b12 | 有效的属性标记/编码2 |
值 Attribute value | ATVL | A() | 对应属性的合法值的字符串 |
- 与ATTF类似,但是用非英语的本地官方语言存储,该字段为重复字段,即字段区会存储一条以上的记录;
- 属性标记/编码及合法的取值范围见附录A。
3. 空间记录
存储海图物标的空间信息(如经纬度、水深等)。完整的空间记录树状结构图如下:
常用的标签如下:VRID
,ATTV
,VRPT
,SG2D
,SG3D
。
3.1 VRID矢量记录标识符
字段标签: VRID | 字段名称:矢量记录标识符 Vector Record Identifier |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
记录名称 Record name | RCNM | b11 | “FE”{100} |
记录标识号 Record identification number | RCID | b14 | 范围:1 ~ 232-2 |
记录版本 Record version | RVER | b12 | 包含记录版本的序列号 |
记录更新指令 Record update instruction | RUIN | b11 | “I”{1}:插入 “D”{2}:删除 “M”{3}:修改 详情见后文更新记录 |
3.2 VRPT矢量记录指针
记录特征记录与空间记录间的关系。
字段标签: VRPT1 | 字段名称:矢量记录指针 Vector Record Pointer |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
名称 Name | NAME | B(40) | 外部指针 |
方向 Orientation | ORNT | b11 | “F”{1}:正向 “R”{2}:反向 “N”{255}:未知 |
用法指示符 Usage indicator | USAG | b11 | “E”{1}:外部 “I”{2}:内部 “C”{3}:由数据界限分隔外部 “N”{255}:未知 |
拓扑指示符 Topology indicator | TOPI | b11 | “B”{1}:起点 “E”{2}:终点 “S”{3}:左面 “D”{4}:右面 “F”{5}:包含面 “N”{255}:未知 |
屏蔽指示符 Masking indicator | MASK | b11 | “M”{1}:屏蔽 “S”{2}:显示 “N”{255}:未知 |
- 该字段为重复字段,即字段区会存储一条以上的记录;
- 名称NAME由5字节组成的整数,由空间记录中的两属性拼接而成。NAME(5字节)=RCNM(1字节)+RCID(4字节)。
3.3 SG2D二维坐标
以二维坐标表示地理经纬度,其中XCOO表示经度,YCOO表示纬度。
字段标签: SG2D | 字段名称:二维坐标 2-D Coordinate |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
Y轴坐标 Coordinate in Y axis | YCOO | b24 | Y坐标 |
X轴坐标 Coordinate in X axis | XCOO | b24 | X坐标 |
该字段为重复字段,即字段区会存储一条以上的记录;
3.4 SG3D三维坐标
以三维坐标表示指定经纬度的水深,其中XCOO表示经度,YCOO表示纬度,VE3D表示水深。
字段标签: SG3D | 字段名称:三维坐标 3-D Coordinate |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
Y轴坐标 Coordinate in Y axis | YCOO | b24 | Y坐标 |
X轴坐标 Coordinate in X axis | XCOO | b24 | X坐标 |
三维(水深)值 3-D (sounding) value | VE3D | b24 | 水深值 |
该字段为重复字段,即字段区会存储一条以上的记录;
3.5 ATTV矢量记录属性
以键-值对的方式存储矢量记录的属性。
字段标签: ATTV1 | 字段名称:矢量记录属性 Vector Record Attribute |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
属性 Attribute label/code | ATTL | b12 | 有效的属性标记/编码2 |
值 Attribute value | ATVL | A() | 对应属性的合法值的字符串 |
- 该字段为重复字段,即字段区会存储一条以上的记录;
- 属性标记/编码及合法的取值范围见附录A。
4. 更新记录
S-57文件中,无论是特征记录还是空间记录,都有一个唯一的[NAME]值。由于需要确保数据的完整性,当主文件被发布后需要更新时,电子海图系统开发商与数据运营商并不能直接修改文件,而是以更新文件的形式向外发布具体[NAME]所对应的记录的增、删、改等更新信息。由于更新文件也是一个符合S-57格式的文件,所以其解析过程与S-57主文件一致。更新文件除了正确携带数据描述记录,特征记录、空间记录外,还需要指明上述记录该如何与主文件整合。这些整合指令被存储到FFPC
、FSPC
、VRPC
、SGCC
字段中,不同字段的更新机制一样,只是针对的对象不同而已。
4.1 记录更新指令
物标记录更新指令RUIN
指明了需更新的操作,其分为:
指令 | 说明 |
---|---|
新增{1} | 新增记录,版本号[RVER]应该为“1” |
删除{2} | 找到短名[NAME]的记录,标记删除 |
修改{3} | 找到短名[NAME]的记录,进行修改,分两种情况: 1. 对记录属性的键值对进行修改:若原属性不存在,则新增;若原属性存在,则更新;若需删除,则属性值为 删除符 2.对原指针记录(即数组)的修改:通过对应的指针控制字段来操作,详情如下。 |
4.1 FFPC特征记录到特征物标指针控制
字段标签: FFPC | 字段名称:特征记录到特征物标指针控制 Feature Record to Feature Object Pointer Control |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
更新指令 Feature object pointer update instruction | FFUI | b11 | “I”{1}:插入 “D”{2}:删除 “M”{3}:修改 |
指针序号 Feature object pointer index | FFIX | b12 | 需操作的序号,从0开始 |
指针数量 Number of feature object pointers | NFPT | b12 | 需操作的数目 |
针对特征记录到特征物标指针(FFPT,存储的是一系列有序的特征记录长名[LNAM])的更新,FFUI明确更新指令,FFIX是更新的相对于FFPT起始序号,NFPT是需要的个数:
如:FFUI{1,插入},FFIX{3,序号第3},NFPT{4,需操作4个指针}:表明在原FFPT处,从序号第3起,插入4个新的指针。
4.2 FSPC特征记录到空间记录指针控制
字段标签: FSPC | 字段名称:特征记录到空间记录指针控制 Feature Record to Spatial Record Pointer Control |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
更新指令 Feature to spatial record pointer update instruction | FSUI | b11 | “I”{1}:插入 “D”{2}:删除 “M”{3}:修改 |
指针地址 Feature to spatial record pointer index | FSIX | b12 | 需操作的序号,从0开始 |
指针数量 Number of feature to spatial record pointers | NSPT | b12 | 需操作的数目 |
与FSPT类似,但是针对特征记录到空间记录指针(FSPT)的更新。
4.3 VRPC矢量记录指针控制
字段标签: VRPC | 字段名称:矢量记录指针控制 Vector Record Pointer Control |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
更新指令 Vector record pointer update instruction | VPUI | b11 | “I”{1}:插入 “D”{2}:删除 “M”{3}:修改 |
指针地址 Vector record pointer index | VPIX | b12 | 需操作的序号,从0开始 |
指针数量 Number of vector record pointers | NVPT | b12 | 需操作的数目 |
与FSPT类似,但是针对矢量记录指针(VRPT)的更新。
4.4 SGCC坐标控制
字段标签: SGCC | 字段名称:坐标控制 Coordinate control |
---|
子字段名 | 标记 | 二进制格式 | 子字段内容和说明 |
---|---|---|---|
更新指令 Coordinate update instruction | CCUI | b11 | “I”{1}:插入 “D”{2}:删除 “M”{3}:修改 |
指针地址 Coordinate pointer index | CCIX | b12 | 需操作的序号,从0开始 |
指针数量 Number of coordinate | CCNC | b12 | 需操作的数目 |
与FSPT类似,但是针对空间坐标记录(包含三维)的更新。