徐 进 李 颖 陈 澎 刘丙新 崔 璨 周 颖
S-102水深表面产品规范分析*
徐 进 李 颖 陈 澎 刘丙新 崔 璨 周 颖
从S-102标准规定的数据结构、数据组织、数据维护等方面入手,基于S-100标准的结构体系,介绍水深数据网格数据内容,基于航海安全用途的跟踪列表机制、航海表面规范的数字认证模块和可扩展的模板应用模式,深入分析离散四边形网格和离散点集的两种覆盖类型、索引关系、必须明确的切片方案等内容,并对S-102标准四种重要类型的元数据、基于“层次数据格式”第五版(HDF5)的数据编码方式以及水深覆盖和网格覆盖的重要实现类等方面进行进一步研究,为S-102标准的应用提供一定的理论基础。
S-102标准;S-100标准;电子海图;海事测量数据
OI:10.16176/j.cnki.21-1284.2016.12.006
2010年1月,国际海道测量组织(International
ydrographic Organization,缩写IHO)公开表示《S-7数字海道测量数据传输标准》已不再适合目前海道测量数据应用的现实需求,同时发布了《S-100通用海道测量数据模型》。[1-2]S-100标准的建立是基于地理信息系统标准,采用面向对象的组织方式,[3]对数据进行表达、存储与应用。但是S-100标准中的内容主要是标准体系和部分案例说明,尚未涉及具体的产品。[4-6]2012年4月,IHO公开发布了《S-102水深表面产品规范》的正式版本。
S-100标准区别于《S-57数字海道测量数据传输标准》,而采用全新模式制定的《通用海道测量数据模型》。S-100标准内容共分12个部分,分别为:概念模式语言、IHO地理空间信息注册表体系结构、通用要素模型与开发应用模式、元数据、要素目录、坐标参考系统、要素编辑空间模式、影像与格网数据、要素图形表征方式、编码格式、海道测量数据产品规范及其要素完整描述、更新与出版相关产品的程序。
S-102标准是基于S-100标准体系和ISO TC211标准建立的具体到水深数据层面的产品技术规范,属于S-100标准体系结构中的一个子集。[7]S-102标准中的产品模式与S-100标准中的第8部分内容影像与格网数据保持一致。[8-9]S-102标准指出,水深表面产品的首要目的是支持安全航行,第二目的则是作为一个独立的水深信息数据,用于其他用途。S-102标准中定义了用于共享水深覆盖区域数据的内容模式和交换文件格式,其水深表面数据可以独立应用,同时也可以作为ENC数据的一层或与其他S-100标准的数据结合使用。
S-102标准中的水深表面数据产品提及了“航海表面(Navigation Surface,简称NS)”概念。“航海表面”是指可以保障航海航行安全的海洋表面,包括水深实测值和不确定水深估计值,以这两种水深值替换,由航道测量师凭借经验判断得到的水深值,从而最大限度地保障航海安全。[10]这就意味着,除了水深实测值和不确定水深估计值以外,它还包括由“航道测量特权”的测量师重写的水深值。从本质上讲,在航道测量的重要领域,这是一个能够直接区分水深值是否由人为估计的有效手段。此外,在S-102标准中,由航道测量师估计的水深值依然会被保留在跟踪列表中,可以根据需要随时调出。
S-102标准中的水深表面数据产品由水深属性网格数据(Bathymetric Attributed Grid,BAG)和数字认证模块(Digital Certification Block,DCB)组成,如图1所示。
图1 S-102标准中水深表面产品数据结构
从时空域的角度考虑,水深表面数据产品的空间域是世界范围的,但是其时间域却是无限的。水深表面数据产品的生产商(例如国家航道测量局)可以自定义开始和结束使用某个产品的时间。
1.水深属性网格
S-57标准中,水深数据属于电子海图航海物标数据中的一种,未被单独列出,且均采用矢量数据方式进行管理。而S-100标准支持的数据模式包含几何空间模式和覆盖空间模式,[11]S-102标准中的水深表面数据被单独列为一个子产品,属于覆盖空间模式,采用栅格数据方式进行管理。水深表面产品的数据类型是一个带有元数据的四边形网格状覆盖区域栅格数据,用以表示海域、湖泊、河流或其他通航水道的水深模型,即水深属性网格。[12]一个独立的水深属性网格覆盖对象虽然只能表示地球表面单分辨率的一个连续区域,但却能表示数据从原始网格到最终产品的整个环节。需要注意的是,水深属性网格数据集之间可以形成无缝连接的连续覆盖。
水深属性网格数据包括版本标签(Version Tag)、元数据(Metadata)、可估测水深覆盖(Estimated Elevation Coverage)、不确定水深覆盖(Uncertainty Coverage)、选择性覆盖(Optional Coverage)和跟踪列表(Tracking List)等信息。其中,跟踪列表是提供重写水深值的离散覆盖。它包含水深表面产品任意一个结点的水深值和不确定水深值的简单列表,可以根据跟踪列表数据集和元数据中存储的相关信息,查找人工干预变化的相关记录。为了保障安全航行,跟踪列表中特定的水深值,可以用于估计和校正水深值数据。
2.数字认证模块
“航海表面”规定中特别指出,只有经过认证的最终水深属性网格产品才能用于航海用途。为了提供水深网格产品的认证机制,S-100标准突破了S-57标准中的尚无认证措施的现状,在S-102中标准引入了数字认证模块。如果水深表面数据产品的目的是用于航海用途,则该产品必须包含数字认证模块,[13]这样用户就可以追查到应用的数据是否已被注册认证。
在传统的航道测量数据处理流程中,对于航海用途的所有测量数据,都有一个严格的监管链机制。在监管链中的每一个阶段,都有一个责任权威机构检查数据和应用数据的程序,并授权数据适用于预期的用途。[14]这种机制能够更好地使数据用于最终绘制,保证测量数据能与其他数据进行融合编译,或者用于辅助安全导航设备的研制。通常来讲,这种机制都会以在测量数据报告或者公文中进行物理签名或盖章作为认证方式。然而,对于一个全数字化的产品,为数据对象进行物理签名或者盖章是不可能的。此外,对于水深表面产品这样密集的电子数据,在数据传输过程中,因为某个单体数据发生错误导致航行重大变化的不可测性会大大增加。因此,S-102标准中全新设计了一种数字签名方案(Digital Signature Scheme,简称DSS),旨在为航道测量师提供一种等效于物理签名或盖章的数字化工具,确保对数据的任何修改,无论是正确或者错误的行为,都会很容易地被检测出来。
DSS的基本单位是数字签名(Digital Signature,S)。DS是由S-102标准数据集的内容(例如编码数据文件的内容)和密钥(Secret Key,SK)的原理计算出来的一个多字节数字序列。这种DS属于个人或者单位签署的水深表面产品,就被称为签名授权(Signature Authority,SA)。SK仅在SA中进行注册。如果水深表面产品经过了SA,该产品对应的SK原理就会进行保密设置。DS值针对水深内容(Bathymetric Content)和SK来说是唯一的。在这个意义上,用一个特定的SK,没有两个BAG会生成相同的DS。同时针对相同的水深内容,没有两个K会生成相同的DS。
对应SK,一个公共密钥(Public Key,PK)可以自由分发。即使使用PK,也没有办法计算出DS值。然而,如果给定一个水深内容和一个由SK构建的DS,就很容易验证水深内容是否经过改编,或者验证另一个SK是否创建新的认证。
除了支持DSS所需的DS,数字认证模块包含了一个访问元数据认证事件的接口。这是为了确保用户可以提供任何条件认证事件适当灵活的描述,或者提供验证数据的预期用途。“签名标识(Signature ID)”将是一个独特的顺序构造标识符。通过它,一个认证模块可以明确地关联到一个元数据认证事件。
3.模板应用模式
区别于S-57标准中,水深数据的定义已经做出了明确规范,在S-102标准中,水深数据的定义采用了模板应用模式(Template Application Schema,TAS),即它没有在水深表面产品规范中规定所有的变量和属性,同时支持其他方面的选择和改变。例如国家海道测量局可以在遵循这个模板的基础上,根据自己的额外需要,提出符合实际应用的模式,这些额外需求主要包括水深数据网格是否采用切片(Tiling)方案、如何选择切片拼接方案、自定义数据范围、分辨率和自定义其他符合自身特殊情况的参数。[15]但是它们都要遵循S-100标准中的规定和结构,并且支持S-102标准中的模板应用模式,这样就能保证其他部门或机构能够通过S-102标准的模板应用模式和数据配置文件来实现水深产品数据的应用共享。
4.覆盖类型
在S-102标准中,覆盖(Coverage)作为一种要素类型被定义。其覆盖类型有两种,如图2所示。
图2 覆盖区域类型结构图
第1种是一组离散的四边形网格覆盖类型,包括S-102水深覆盖(S102_DepthCoverage)、-102不确定水深覆盖(S102_UncertaintyCoverage)和S-1 0 2选择性水深表面覆盖(S102_OptionalSurfaceCoverage)。这种覆盖类型的划分是继承于S-1 0 0标准中的网格覆盖(S100_GridCoverage)。在《S-102水深表面产品规范》中,这覆盖类型的大多数参数都已经被定义和描述。
第2种覆盖类型是离散点集覆盖,包括S-102校正覆盖(S102_CorrectionCoverage)和S-102跟踪列表覆盖(S102_TrackingListCoverage)。S-102跟踪列表覆盖包括一组已经校正、重新应用的位置相关离散点集。为了确保航海安全,一个航道覆盖区域必须明确地显示出已经纠正准确的特定点集水深值。而S-102校正覆盖区域正好用来提供纠正的背景数据。确定水深的覆盖函数将运行于覆盖产生的合并连续数学表面。这种生成合并连续数学表面的方法会替换经过矫正重写的S-102标准水深值网格矩阵。
值得注意的是,水深表面产品针对的是混合的覆盖数据。S-102标准中规定水深表面产品至少包含两种离散网格覆盖区域,即水深覆盖区域和不确定水深覆盖区域,这两种覆盖区域在实际应用中是相互依存的。
5.切片方案
与S-57标准中不同,在S-100标准中,水深数据采用栅格格式进行管理,由于其数据量过大,在S-102标准中,明确规定了水深数据管理引入切片技术。水深覆盖切片是将一个感兴趣的区域分解划分为更小、更容易管理的数据块或者分区的技术。每一个切片方案都是S-102标准水深数据产品中一个含有水深区域、不确定区域、跟踪列表、边缘匹配元数据等完整的水深网格数据。切片方案是一个离散网格覆盖的技术方案,因此需要完整网格覆盖的描述。但这并不是意味着切片方案要把数据集所有的信息表述出来,而是要把切片方案中的数据集索引关系表述清楚,使其切片能够被快速索引或查询。
S-102标准中,切片方案实现类之间的结构关系如图3所示。这个结构源于S-100标准。针对切片方案,S-102标准仅是制定了一个框架,目的是为了兼容数据生产商或国家海道测量局之间不同的切片方案。目前S-102标准中的切片方案采用外部定义方式。但是,切片标识符必须包含在S102_Tile类重定义的XML元数据中。值得建议的是,S-102标准应在未来加强内部定义切片方案的能力,增加内部切片序列规范和单个切片方案中的数据集整合等内容规范。
图3 S-102标准中切片方案实现类之间的结构
6.元数据
S-100标准中的元数据规范,相比S-57标准,不仅仅是单一的继承关系,更是全面的更新升级,并提供了灵活的扩展空间。S-100标准中的元数据旨在通过元数据信息,获取关于标识空间和时间范围、质量、应用模式、空间参考系统,以及分发数字地理数据等信息。元数据同时适合于数据共享交换应用、地理与非地理资源完整描述的目录编排。
S-102标准水深表面产品中的元数据信息大多数来自于S-100和ISO19115标准。其中,只有强制性的元数据、数据集的识别和谱系说明的元数据来自于ISO 19115元数据标准。S-100标准中,元数据标准提供了用于描述、验证和交换海道组织生产的地理数据集元数据的规范。[16]选择性增加的部分元数据来自ISO 19130标准,特别是关于获取水深数据的声呐设备方面的元数据。数据识别的最小量(Minimum Level)元数据是所有应用都必须获取的,包括数据库应用、Web应用和数据集产品。然而,S-102标准中需要特定的元数据属性来定位数据集,同时需要谱系属性来建立定义跟踪列表的过程和建立数据的谱系关系。
元数据中的元素与其所在的元数据模式有关。元数据模式包括产品定义和产品扩展内容。这两种模式都存在强制性和条件性元数据元素。只有一些元数据元素是强制性的,同时一些选择性元数据元素中包含了一些条件性强制元数据。它们只有在某些说明,某些属性或者要素是在有条件的情况下,才能被应用或建立。
S-102标准中用于表述地理信息数据集的核心元数据(包括强制性和选择性)元素,由表1所示,其中M表示强制性的元数据元素,C表示条件性的元数据元素,O表示可选择性的元数据元素。从表1中可以看出,核心元数据中,可选择性元数据元素种类的数量是最多的。定义可选择性元数据元素是为了满足编码人员完整记录数据描述的需求。
表1 S-102标准中应用的核心元数据
S-102标准中,具体的元数据类型包含发现元数据(Discovery Metadata)、结构元数据(Structure etadata)、质量元数据(Quality Metadata)和获取元数据(Acquisition Metadata)。发现元数据应用于数据集(S102_DataSet)水平与图像和网格数据集(S102_IGCollection)水平。那就意味着,整个数据集都必须有发现元数据。如果是包含几个切片的整合数据集,不仅是每个切片都有发现元数据,整合数据集本身也要有发现元数据。结构元数据是用来描述一个集合实例的结构,包括一个切片方案的所有相关说明信息。由于约束在不同的独立文件(例如,来自不同法律来源的文件)中是不同的,或者安全约束是不同的,因此约束信息是结构元数据中的一个重要部分。其他的结构元数据是网格表示和参考系统信息。质量元数据是用来描述一个集合实例的数据质量。获取元数据在S-102标准中是可选择的。一个生产商或者国家海道测量局可以在水深表面产品文件中增加获取元数据信息。获取元数据的实现类来自ISO19115和ISO19130。SO19130-2的后续文件中包含了声呐参数的描述。
1.数据探测技术
水深探测技术有很多种,例如声呐(SONAR)和激光雷达(LIDAR)技术。S-102水深表面产品元数据中可以包括数据获取方面的信息,但不是必需的。S102_AcquisitionMetadata获取元数据类虽然在S-102标准中已经被定义,但是国家级版本中,信息元素可以根据各国的需要,填充至元数据类中。
2.数据编码
S-102水深表面产品规范采用了“层次数据格式”第五版(Hierarchical Data Format Version 5,简称HDF5)进行数据编码。HDF5是一种独立架构的软件库和支持存储检索海量复杂数据集的文件格式。HDF5文件组织在一个分层(组群和数据集群)的结构中。一个HDF5组(Group)为水深表面产品的数据内容提供顶层结构。中间件采用HDF5定义的“数据集”类型或者是“属性”类型。在每个数据集内,进一步进行结构划分的依据是数据类型和存储空间参数。“属性”类型中还提供了数据集特定的元数据。
由于S-102标准中数据与编码是相互独立的,因此编码格式并不局限于HDF5,同时可以转换成GeoTIFF或者XML的编码格式。
3.重要的实现类
S-102标准中重要的实现类共有15种,它们之间的关系如图4所示。其中S102_BathymetryCoverage类是水深表面产品数据中最主要的类,由S102_BathymetryValues类、S102_UncertaintyValues类、S102_OptionalSurfaceValues类等三个类聚合而成,拥有最小水深值(minimumElevation)、最大水深值(maximumElevation)、矢量偏移(offsetVectors)等12个属性值。DirectPosition类存储了不同坐标参考系统中的不同坐标值。Vector是存储了表示空间位置的坐标序列,拥有尺度(dimension)和坐标序列(coordinates)两个属性。CV_GridEnvelope类提供了网格边界包络中两个极端的网格坐标,包括最小值(low)和最大值(high)两个属性。CV_GridCoordinate类是包含CV_GridPoint类网格坐标的数据类型,拥有坐标值(coordValues)一个属性。CV_SequenceRule类包含要素属性信息序列中用于制图的网格坐标值。拥有类型(type)和扫描方向(scanDirection)两个属性。S102_TrackingListCoverage类是离散的点覆盖,用于记录S102_BathymetryCoverage类中被覆盖的结点,这种覆盖允许海道测量人员在航海安全的考虑下,设置一定的水深偏差,拥有设置范围(domainExtent)属性。S102_TrackingListValues类是在S102_BathymetryValues类中用于提供修改设定值的离散覆盖,它拥有跟踪编码(trackCode)、列表系列(listSeries)、几何图形(geometry)和值(value)4个属性。S102_SurfaceCorrectionCoverage类是离散的点覆盖类,为数学或者地形表面提供S102_BathymetryCoverage类中结点的垂直偏移量,拥有设置范围(domainExtent)和参数(parameter)等属性。S102_SurfaceCorrectionValues类存储离散覆盖的纠正值,用于将水深覆盖关联到平均海平面、椭球体或者其他数据。EX_GeographicExtent类和EX_BoundingBox类都是来自ISO19115的元数据类,用于描述其他实现类要素或元素地理空间范围和边界,可以选择性使用。
4.数据维护机制
S-102标准中的数据集维护采用替换覆盖切片或者基础数据集的方式。这就意味着,一个水深表面产品,或者含有覆盖和其相关元数据的切片方案,会被作为一个单元进行替换。这点与同为S-100标准框架下的《S-101电子海图产品规范》中矢量数据的增量更新模式是截然不同的。然而,在切片方案中,覆盖数据必须被看作为一个单元,导致整个切片方案甚至是水深数据产品发生变化。如果跟踪列表被某水深产品使用,则其替换的内容还包括其航行安全信息关联的跟踪列表。需要说明的是,每一个替换的切片方案或者数据集都必须有自己的数字签名。
图4 实现类关系图
水深表面产品规范的整体框架结构具有很强的可扩展性,不仅在内容模型方面,甚至是支持内容模型的编码方面都可以进行扩展。扩展的内容还包括是否采用可选择性覆盖、是否需要文件合格、兼容产品是否有效等方面。水深表面产品中水深范围信息的其他层面规范尚未在标准中进行说明,预计在S-100标准框架下会在未来的S-10x产品规范中进行完善。
S-102标准在S-100通用海道测量数据模型标准的框架体系下,从数据结构、认证机制、应用模式、数据组织、数据维护等方面,对水深表面产品进行了规范设计,为水深数据在海事测绘、船舶通航、海上执法、海事评估等领域的数据应用与共享奠定了理论基础。本文从水深网格属性、数字认证模块、模板应用模式、覆盖类型、切片方案、元数据等方面为切入点,对比S-57标准,介绍了S-102标准的内容与特征,期望对新一代海事测绘数据的应用共享,具有一定的借鉴意义。
S-102标准中仅在BAG组成和扩展性内容中提到了选择性水深覆盖类型,但是未作详细描述,这样会给生产商在产品生产中造成一定困惑,期望在版本更新的过程中对“选择性水深覆盖”类型作进一步解释。
[1]WARD R,ALEXANDER L,GREENSLADE B.IHO S-100:The new IHO hydrographic geospatial standard for marine data and information[J].International Hydrographic Review,2009(1):44-55.
[2]刘力,程为平,冯新强,等.新一代ENC数据标准S-101与S-57的对比分析[J].科技资讯,2014(17):34-37.
[3]王昭.新一代电子航海图标准S-101的研究进展[J].海洋测绘,2013(1):72-75.
[4]ALEXANDER L,BROWN M,GREENSLADE B,etal. Development of IHO S-100 The New IHO Geospatial Standard for Hydrographic Data[J].International Hydrographic Review,2007 (1):56-67.
[5]ALEXANDER L,HUET M.Relationship of Marine Information Overlays (MIOs) to Current/Future IHO Standards [J].International Hydrographic Review,2007(2):80-82.
[6]刘灿由,翟京生,陆毅,等.新一代电子航海图标准S-101结构分析[J].海洋测绘,2013(1):76-79.
[7]王昭,汪连贺,谢志茹.S-100的体系结构和若干重要概念[J].海洋测绘,2011(2):76-79.
[8]陈爱平,聂乾震,曾晖,等.S-100通用海道测量数据模型[M].天津:天津科学技术出版社,2011:137-173.
[9]王斌,吴礼龙,宁方辉,等.IHO S-100地理信息注册器的结构与管理[J].海洋测绘,2011(3):70-72.
[10]BASE U C.Bathymetric Data Management for the Future[J]. Hydro international,2008,15:14-16.
[11]MALYANKAR R, HAUGE J J.The IHO S-100 Standard and e-Navigation Information[S].IALA e-Nav10/INF/7,2011.
[12]Open Navigation Surface Working Group. Description of Bathymetric Attributed Grid Object (BAG)[S].2006:3-4.
[13]张岳,张大萍.水深表面产品规范S-102分析[J].海洋测绘, 2014(1):80-82.
[14]张岳,曲萌,王荣林.水深表面产品规范S-102的研究[J].测绘与空间地理信息,2013(11):208-210.
[15]IHO.Bathymetric Surface Product Specification[S].International Hydrographic Bureau,2012:9-15.
[16]周晖,刘仲刚,贾建军.IHOS-100中概念模式语言的应用[J].海洋测绘,2009(4):57-59.
徐进(1985—),男,大连海事大学航海学院,实验师,博士
李颖(1968—),女,大连海事大学航海学院,教授,博士
陈澎(1982—),男,大连海事大学航海学院,讲师,博士
刘丙新(1984—),男,大连海事大学航海学院,讲师,博士
崔璨(1988—),男,大连海事大学航海学院,博士研究生
周颖(1991—),女,大连海事大学航海学院,硕士研究生
中央高校基本科研业务费专项(3132016003)