ArcGIS Bathymetry 管理水深数据的方法

Posted 李远祥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ArcGIS Bathymetry 管理水深数据的方法相关的知识,希望对你有一定的参考价值。

使用 ArcGIS Bathymetry 管理水深数据

本章导读:ArcGIS Bathymetry 是ArcGIS平台的一个扩展模块,是用于现实和管理水下地形数据的一个扩展模块。目前大多数的介绍仅限于官方网站的英文说明,对绝大部分人来说,这是个比较陌生的软件以及需要比较专业的使用场景。笔者会在本章比较全面的介绍 ArcGIS Bathymetry 的功能以及使用场景。 BY 李远祥

ArcGIS Bathymetry 介绍

ArcGIS Bathymetry 是ArcGIS平台用来显示和管理水下地形数据的一个扩展模块,一般面向海洋、海事、航道管理、测绘等专业领域,属于解决方案型的扩展模块。跟ArcGIS Maritime 扩展一样,被 Esri 作为 solution 产品进行销售。

跟 ArcGIS Maritime 不太一样的是,Maritime 产品针对的是传统的老标准 S-57 数据,Esri 官方网站也说明了Maritime 是还支持 S-63 、S-58 等标准。ArcGIS Bathymetry 是首个ArcGIS 产品首个支持 S-100 系列标准的产品,虽然目前只是针对 S-102 水深表面标准产品,但总算也是开了个好头,毕竟现在 S-100 系列标准也只有 S-102 在实际中使用。

传统的 S-57 系列标准最初是没有跟 GIS 挂钩的,基本上就是自成体系,早期更是主要面向终端应用,很难融入到 GIS 这种面向信息化管理的体系中。因此在信息化时代,S-57 标准很难有大的作为。 Esri 产品曾经很努力往海图方向发展,这就是为什么早期有PLTS,后续有nautical (这些都是 ArcGIS Maritime 产品的前身)这些产品。这都是 Esri 力求将海图应用纳入到 GIS 应用当中。很可惜的是,由于海图的数据标准与 GIS 的标准很难对应上,无论怎样通过 Geodatabase 进行建库,都很难解决海图与 GIS 统一管理统一应用的问题。直到 ArcGIS 从10.3 版本开始 ,在海图的发布中终于“壮士断臂” ,p抛弃掉使用 GDB 的方式渲染海图,重新编写了海图渲染引擎,这才比较友好的支持传统海图标准。

S-100 标准是在2010年正式发布,其最大的改变是将原来的 S-57 面向结构的方式转变为面向对象方式进行组织数据,全面向 GIS 靠拢,估计IHO成员中肯定加入了不少的 GIS 厂商 ,属于标准的一次重大调整。但目前来说,新标准还很少在市面上看到有应用。由于原来的 S-57 标准没有针对栅格表面方面的应用,又或者 S-61 中的 RNC 并没有得到认可,反而导致了 S-102 标准更先一步在执行,以此解决海图中栅格数据的系列问题。

ArcGIS Bathymetry 则是最早一批支持 S-102 标准的 GIS 软件。在 ArcGIS 的官方网站上可以看到非常详细的产品介绍,不过都是全英的。目前bathymetry 和 maritime 产品都没有中文官方说明。可以点击网址参考 ArcGIS Bathymetry 官方说明

从文字上的描述来看,其主要功能是:

  • 创建栅格和点水深模型
  • 挖掘更有价值的数据
  • 减少生成数据产品时不必要的数据复制
  • 建立一个符合标准的可互操作的数据管理系统

具体可以参考其功能说明ArcGIS Bathymetry 功能说明

ArcGIS Bathymetry 软件和工具

ArcGIS Bathymetry 在桌面端是有扩展的,其安装介质是跟 Maritime Charting 在一起,安装的时候是可以选择安装,但授权则是和 Maritime Charting 分开授权,属于一个单独授权的产品。

安装之后跟 ArcGIS 其他模块基本上是一致的,有 Bathymetry 的工具条和工具箱可用。如下图所示,其提供的可视化界面和工具不是非常多(只能说一级的界面不多)。

但这些工具以及说明都是比较专业的,必须有一定的海图专业背景的人才能看明白。其主要的工具不在ToolBox,而是在工具条中。

工具条工具主要用于创建 Bathymetry 库结构,包括各种的连接和管理;另外就是添加和制作 Bathymetry 数据产品。

第一个工具就是创建一个 BIS 库 ,需要指定一个 GDB (可以是文件型的或者 SDE 数据库)进行构建。

其构建的设置也非常简单,需要BIS库的名称,指定对应的 GDB ,BIS 库的描述,坐标系,以及 BIS 库创建时的一些缓存视图目录及元数据目录 。如下图

ArcGIS Bathymetry 是使用镶嵌数据集的方式来管理 BAG 数据的,所以,基于镶嵌数据集的所有设置,都在 Bathymetry 中适用。 其中 Overviews 目录就是镶嵌数据集用作制作栅格缓存的保存路径。如果后期需要将 Bathymetry 制作的数据产品进行发布,那么,这个目录必须注册到 ArcGIS Server 的文件目录中。

构建完成之后,会在 GDB 生成 BIS 的数据目录信息,如下图所示

这几张表格分别记录的是进库的 BAG 索引、目录、具体的数据说明以及模型等。

工具条中第二个按钮是管理 BIS 数据库的连接。可以创建多个 BIS 库,同时默认激活其中一个 BIS 库。

第三个按钮是 BIS 库的设置,可以针对每一个 BIS 库进行单独设置。

第四个按钮是诊断 BIS 库,验证一些参数是否有效。

第二部分的是 Bathymetry 数据的导入、管理和模型生成。
Manage Collection 的主要功能是定义 BAG 数据导入时的一些必要元数据信息,例如状态、描述、组织、联系人、日期、分类等。最后会写入到 BIS 库中的 BISCollection 表格中。

Add Bathymetry 工具是直接导入 BAG 数据,其作用是创建一个 Bathymetry 的数据集,并将这些 BAG 数据在 BIS 库中进行登记。如下图所示

在选定 BAG 数据之后,点击 Add 按钮,弹出另外的一个框对每一个 BAG 数据进行元数据的必要补充。

BAG 自带的元素据信息会自动录入。

在录入窗口中可以罗列出每一个 BAG 的情况,可以直接预览到 BAG 的栅格,Collection 标签对应的 Collection 管理设置的信息,可以理解为类似 ArcMap 中的编辑模板,可以下拉选择一些信息。

Extended Metadata 标签页中带绿色小点,是必须补全的参数,指定了传感器的一系列信息,如下图所示

Internal Metadata 标签页中就是原来 BAG 中识别过来的元数据信息(这种感觉就是 ArcGIS 镶嵌数据集的感觉,做到了自动识别)

当所有的设置完成后, BAG 数据就完成了到 BIS 的登记,如下图所示

这个过程结束之后,可以回到 BIS 库查看其登记的记录了。

从图上可以看到,上面操作的 BAG 数据集创建之后,实际上是一个镶嵌数据集,各个 BAG 文件的信息都会登记在对应的表格中。而 Collection 、Internal Metedata等则以XML的方式放在 BIS 库设定目录下的带 Config 字样的目录下, BAG 数据的预览图则是保存在 overviews 目录下。

Explore Bathymetry 按钮,从字面上是查看浏览 Bathymetry 数据,其机界面很简单,主要部分还是一些查找和过滤,如下图所示:

但实际上这个是一级界面,可以直接从一级界面中通过各种的过滤条件可以实现 BAG 数据的整体查找和过滤,例如可以通过测绘日期、传感器信息、数据精度等等进行过滤。例如可以按照数据的测绘日期去进行过滤,这样可以更有效的管理历史数据。

如果想将 BAG 数据移除出 Bathymetry dataset,则可以选中某一个或者多个 BAG ,点击右键将其删除,如下图

至于其他的修改都可以通过右键菜单进行呼出。
各种过滤条件设置好之后都可以保存下来,方便下次直接加载这个过滤文件,这样可以针对这些条件组织成各种不同的测深数据产品。这就是前面所说的通过 Bathymetry 扩展可以减少数据产品的复制。

需要构建 BAG 产品的话,可以选中所需的 BAG 数据,右键菜单,选择 Add Selected to Compose Surface ,用选好的 BAG 构建一个地形表面。这就是常说的海底地形了。

在设置好对应的一些参数之后,最常用的应该是将这些数据另存为镶嵌数据集。点击 Save Surface model as 按钮,将数据令存在镶嵌数据集,如下图

在另存为表面模型时,选择勾选镶嵌数据集,并设置好镶嵌数据集的一些参数,可以直接生成对应的镶嵌模型,如下图所示

这个镶嵌数据集数据还是引用原来 BIS 的数据,原则上是不产生任何新的数据,以确保一旦 BIS 做了修改,原来制作的数据产品都必须跟着修改,如下图所示,新生成的镶嵌数据集在属性上可以看到引用的 BisDatasetId。

Bathymetry 数据发布

前面通过介绍了ArcGIS Bathymetry 工具创建 BIS 库和管理 BAG 数据,以及生成数据产品,接下来就是将这些制作好的数据产品进行发布。
由于 BAG 数据产品是通过镶嵌数据集进行组织的,所以,其发布需要用到 ArcGIS Server 的 Image Server 扩展。

发布的方式非常简单,流程跟镶嵌数据集的发布一样。右键点选镶嵌数据集,选择[共享为影像服务]

然后根据向导设置设置影像服务的各个参数。具体操作可以参考之前文章 ArcGIS 栅格函数在线调用详解 中的内容。

注意:必须将 BIS 库以及对应的目录注册到 ArcGIS Server 对应的目录中。

水下地形的渲染可以使用【栅格函数模板】去定义,同样可以参考 ArcGIS 栅格函数在线调用详解 中定义栅格函数模板的内容。

在发布之前,必须要对镶嵌数据集重新构建项目缓存,不然通过网页调用服务,会导致概要视图缺失,地图会出现马赛克情况。

在栅格函数模板方面,笔者建议使用【晕渲地貌函数】,其相当于做了一次山体阴影以及晕渲叠加,如下图所示。

然后在发布的过程中指定这个模板作为默认的晕渲,如下图所示:

服务发布完成后,可以通过页面进行浏览,查看具体的情况。

笔者通过 NOAA 的网站,发现它发布的海底地形服务,同样也是使用 ArcGIS 的 Image Server 进行发布,而且定义了多个栅格函数模板,方便开发者利用前端 javascript API 进行调用。

可以参考 NOAA发布的公开服务

BIS 与 镶嵌数据集的对比

BAG 数据在 ArcMap 中都是以栅格的形式进行识别,如下图所示

使用镶嵌数据集同样可以对其进行组织和管理。

那么为什么还需要 ArcGIS Bathymetry 扩展?

首先,镶嵌数据集是面向通用的栅格数据管理,一般针对卫星传感器数据,能够自动识别各种卫星传感器的参数,并写入到镶嵌数据的元素据中。但 BAG 数据显然不属于这个范畴。如果确定了要发布的数据,没有任何的管理功能,普通镶嵌数据集足以胜任发布工作。

ArcGIS Bathymetry 扩展很明显更加专业,能够更好的解读 S-102 标准,并且在元素中加入了扩展,通过其管理工具可以实现各种水深产品的管理和制作,是一个以管理作为手段的工具。

总结

ArcGIS Bathymetry 是一个专门针对 S-102 标准进行水深数据管理的 GIS 扩展工具,可以非常方便的管理水深数据并制作多种水深数据产品,结合 ArcGIS Server 和 Image Server 扩展,从数据的入库、管理、制作、发布、应用多个方面一体化集成,是 ArcGIS 面向海图方向的重要解决方案。

更多的GIS主流和非主流技术,可以持续关注CSDN的GIS制图乐园,以及微信公众号【GIS制图乐园】。BY 李远祥

以上是关于ArcGIS Bathymetry 管理水深数据的方法的主要内容,如果未能解决你的问题,请参考以下文章

ArcGIS Maritime Server 开发教程ArcGIS Bathymetry 扩展模块

ArcGIS Maritime Server 开发教程ArcGIS Bathymetry 扩展模块

ArcGIS Maritime Server 开发教程二三维水深服务

ArcGIS Maritime Server 开发教程二三维水深服务

ArcGIS Maritime Server 开发教程二三维水深服务

ArcGIS实验教程——实验四十:ArcGIS洪水淹没分析案例教程