2022-04-18 19:20来源:m.sf1369.com作者:宇宇
海洋环境信息如浪、潮、流属于矢量场数据。这些海洋矢量场信息,由于其数据的分布性、动态性、异构性及抽象性,传统的空间数据共享方式无法满足用户对海洋环境信息实时动态可视化共享的要求。在此,以海洋流场数据为例,探讨在多源、异构、分布式环境下,实现海洋矢量场远程实时可视化的技术难点及实现方法。
5.3.3.1 海洋矢量场信息网络动态可视化技术难点
海洋要素矢量场数据(如浪、潮、流)作为一种抽象的对场空间的某一特征进行描述的数据,是非几何地理空间数据,它同时具有数值和方向特征。这种场空间数据不同于几何地理空间数据,一方面它与空间位置相关,同时又可独立于几何地理空间对象而存在(刘荣高等,2001),因此不能像几何地理空间数据那样直接对其进行几何图像的可视化表达,必须采用有效的算法进行这类数据的可视化表达,从而实现对这类数据的 GIS 网络远程可视化。
对于海洋矢量场可视化表达的技术方法,需要解决以下几个方面的主要问题:
(1)解决网络环境下海洋矢量场的可视化表达技术。矢量场的可视化表达一般至少要包括三个主要步骤(李海生,2001): 矢量数据的预处理、矢量数据的映射以及矢量数据的绘制和显示。其数据流模型如图 5.12 所示。网络环境下同样需要按照图 5.12 的各环节进行海洋矢量场快速可视化技术研究。
图 5.12 矢量场可视化的数据流模型
(2)网络环境下海洋矢量场数据的可视化查询检索及实时分析技术。众所周知,GIS除了可以进行空间数据的可视化表达外,其重要的功能就是可以实现空间数据复杂的分析功能。而海洋专业用户对于海洋矢量场的使用,除了能简单直观地可视化浏览海洋数据外,还需要能实时地进行海洋矢量场的空间可视化查询和空间分析等,因此为了能够达到网络上充分共享海洋矢量场数据的目的,如何在网络环境下提供灵活、准确地矢量场数据可视化查询分析功能也是需要解决的一个关键技术。
(3)海洋不同于陆地,其时空变换比较频繁。过程也相对比较复杂,因此在进行海洋矢量场的可视化表达时,针对每一种海洋矢量场数据如何有效地进行其时空过程的表达也是需要考虑的一个问题,尤其是在网络环境下,采用何种方式进行时空动态可视化表达同样是技术难点。
5.3.3.2 海洋矢量场信息网络动态可视化实现方法
针对以上分析的海洋矢量场信息网络动态可视化的技术难点,下面具体说明海洋矢量场可视化的实现方法。
5.3.3.2.1 海流数据的网络动态可视化
为了实现将远程服务器上的海流数据在客户端进行可视化表达,以便于用户的分析和使用,采用客户端与服务器端协同操作的模式。服务器端负责接收客户请求,根据用户请求进行数据处理,将本地形式的数据格式转换成约定的客户端需要的数据格式,然后发送数据。客户端负责向服务器发送请求,接收服务器端响应的数据,进行矢量场数据的处理、映射、可视化和查询等功能。而这一切实现的基础都是 Web Service。其逻辑流程如图 5.13 所示。
图 5.13 海流可视化逻辑流程图
从图 5.13 可以看出,客户端的计算机通过 Internet 连接网络中提供 Web Service 接口的海流矢量场数据服务器,而提供数据的服务器其数据组织方式可以是文件方式也可以是数据库方式,服务器自身将数据转换成客户端需要的格式将数据发送给客户端。同时,提供矢量场数据服务的也可以是同一组织内部不同应用程序之间的 A2A(Aplication_ to_Aplication)方式的整合,这一过程通过 Intranet 完成。
由于海流数据远程可视化主要由海流数据服务器端预处理、海流数据的映射、海流数据的显示和查询三个步骤进行,下面按照这三个步骤分别阐述具体技术方法。
(1)服务器数据的预处理。对海流数据的预处理是矢量场可视化方法的数据预处理步骤对海流数据的具体实现。数据预处理的目的是将服务端数据提供者的数据转化成客户端需求的组织方式。由于海流数据的来源多种多样,数据格式不统一,因此必须将不同来源的数据转化成客户需求的格式,从而达到屏蔽多源数据的异构性,以利于客户端对数据的处理和显示。
对于海流而言,对其描述主要是通过记录海流在某点的经度、纬度来标示其空间坐标点位,用在该点的海流的流速和方向和时间记录海流的属性。这样,便可以约定将数据组织成为以经度、纬度、速度、方向为序并以逗号间隔的字符串来组织数据,并通过字符数组存储某一空间场中的所有海流数据,同时,由于某一场空间中的海流数据是以时间为共同属性组成同一集合,这样我们还需要将同一时间的海流数据的时间值作为数组的第一个元素保存,再将该数组传给客户端,以便其使用。数据组织如图 5.14 所示。
图 5.14 海流数据组织图
(2)海流数据的映射。由于矢量场数据是抽象数据,没有办法将其直接可视化,因此,在显示之前需要将海流数据转换成便于显示的几何数据,以便在客户端进行可视化。将抽象的海流数据转化成为便于显示的几何数据需要经过映射。映射的方法有很多种,主要有基于几何形状的矢量场映射方法、基于纹理生成的矢量场映射方法和基于光学特性的矢量场映射方法[7]。选择比较简单的基于几何形状的点图标法,用矢量箭头表示海流的方向,其长度表示海流的大小。由于在第一个步骤中,经过预处理的海洋矢量场数据已经是用字符数组形式给出,因此该步骤中便可以依次提取数组中的每一个元素,并依据逗号分隔符提取每一元素包含的数据项。对于海流数据的空间位置由提取的经度、纬度来获得,矢量箭头的长短和方向则可由提取出的海流速度和方向来决定。这样,通过计算便可以得到表示海流矢量箭头的各个点的点位,从而就可以进行海流的可视化。
(3)可视化浏览。经过上述处理,可以将抽象的海流数据以矢量箭头这种图形的方式进行可视化。具体采用ESRI公司的ArcEngine进行客户端的二次开发。在实现中,通过ArcEngine中“几何”(Geometry)对象以“要素”(是ArcGIS中进行辅助显示的一类要素)形式进行表达。并将同一类型的“几何”对象以图形图层方式进行管理。之所以用“几何”对象对海流数据进行可视化表达由于只需在内存中创建和处理可视化对象而不需要对磁盘进行操作因而其处理速度快。同时,由于海流的可视化表达是通过网络而获得远程服务器中的数据,采用“几何”对象方式对海流进行可视化表达不必再创建磁盘文件,系统维护简单,且在此对海流数据只进行可视化和查询分析操作,使用“几何”对象已完全可以满足我们对海流数据可视化表达的需要。且将同一时段的海流数据组织在同一个数据层中。而对于“几何”要素而言,其包括点、线、面等多种类型。在此具体使用线类型将海流数据以线要素的方式将其绘制在相应的图层中。
5.3.3.2.2 可视化查询分析
为了使用户能够方便地查询某一空间位置海流的属性,就需要保存每一空间点位的海流的属性值。由于任意“几何”要素其“名称”属性可以存储字符串数据,因此在本研究中借用“几何”要素的“名称”属性保存每一空间点位海流的属性值。当用户需要了解某一空间点位海流的详细属性信息时,通过鼠标点击,系统就可以获得鼠标点击位置的空间坐标,进而便可得到该点位海流的“几何”要素,提取其相应的属性值显示给客户端。
5.3.3.2.3 海流时空过程表达
对海流的时空过程的表达也是海流数据可视化应用的一个重要方面。通过前边海流数据的可视化过程,对海流数据以时间段的方式将同一时间段的海流组织到同一数据层中。因此便可以通过“时空快照序列”这种时空数据模型的方式对海流进行过程化表达。时空快照模型是由一系列不同时间内的时空数据层所组成,该模型用一个时刻的空间数据层记录地理现象的状态,通过一系列不同时间内空间数据层的集合便可以反映地理现象的时空演化过程。相应的,只要控制各海流数据层的可见性,每次只使一个海流数据层可见,并依次显示每个海流数据层,便可以反映海流的时空演化过程。