一种面向流向特征的基于角度跟踪的海流矢量场可视化方法与流程

文档序号:17292660发布日期:2019-04-03 04:05阅读:386来源:国知局
一种面向流向特征的基于角度跟踪的海流矢量场可视化方法与流程

本发明属于海洋地理信息系统可视化研究领域,涉及到一种面向流向特征的基于角度跟踪的海流矢量场可视化方法。



背景技术:

海流矢量场可视化是海洋地理信息系统可视化研究的一个重要内容,研究和分析海流矢量场的流向特征对渔业、航运、排污和军事等都具有重要的意义。现有矢量场可视化方法主要有直接可视化、几何可视化、纹理可视化和特征可视化等几种。直接可视化方法是在采样点上绘制箭头或其它图标来描述整个矢量场,如2013年卫宝泉等在期刊“海洋环境科学”第32卷第2期发表“基于gis的长海海域流场动态可视化”一文,采用三条线段表示流场方向和大小,该方法直观简单,但当采样点比较密集时很容易导致绘制的图形杂乱无章。几何可视化方法是从矢量场数据中提取出流线、迹线等几何图形并显示,如1997年jobard等在“theeurographicsworkshoponvisualizationinscientificcomputing”会议论文集中撰文“creatingevenly-spacedstreamlinesofarbitrarydensity”,提出了一种区域流线均匀分布的流线放置方法,通过在先前放置流线的附近放置种子点来构建新的流线,该方法尽管可以直观地观察连续的矢量场,但需要经过空间内插和数值积分计算,计算效率较低,并且流线的长度可能不会尽如人意。纹理可视化方法是利用纹理图像中有序排列的颜色点来表达矢量场一定的方向信息,如1991年wijk等在“computergraphics&interactivetechniquesacm”会议上撰文“spotnoisetexturesynthesisfordatavisualization”,将纹理映射技术引入矢量场可视化,沿着一条与局部矢量场方向相同的直线段对白噪声进行卷积来产生纹理。该方法计算代价较高,且生成的纹理图像与海洋大环境基础背景数据难以“透明”叠加显示。特征可视化方法一般是采用基于拓扑结构的分析方法或训练样本提取矢量场中有意义的结构或形状特征(涡旋特征),如1991年helman等在期刊“ieeecomputergraphicsandapplications”第11卷第3期发表“visualizingvectorfieldtopologyinfluidflows”一文,通过计算临界点和连接临界点的分割线,清晰地描绘出矢量场的拓扑构架。徐华勋等于2008年在期刊“计算机辅助设计与图形学学报”第20卷第5期发表“智能流场特征抽取与多分辨率可视化”一文,通过用户选择关注特征区域作为训练样本,采用神经网络抽取出用户关注的特征区域。特征可视化方法计算复杂,并且严重依赖于所应用的领域。

为了从庞大的矢量场数据量中分离出用户关注的流向特征数据,避免在计算机有限屏幕范围内因数据量大造成生成的图形密集看不清等问题,本发明提出了一种面向流向特征的基于角度跟踪的海流矢量场可视化方法,根据矢量的偏转角度,采用3×3窗口角度跟踪技术提取整个海流矢量场的流向特征,并动态叠加到海洋大环境基础背景数据中进行显示。



技术实现要素:

本发明要解决的技术问题是:克服现有技术的上述不足,提供一种面向流向特征的基于角度跟踪的海流矢量场可视化方法,其能够以较快的速度准确从庞大的矢量场数据量中提取出流向特征数据并动态叠加到海洋大环境基础背景数据中进行显示,为海洋科研者研究海洋的环流结构和运移规律提供有力技术支持。

为实现上述发明目的,本发明提供了一种面向流向特征的基于角度跟踪的海流矢量场可视化方法,包括以下步骤:

步骤1,网络服务系统后台程序周期性地接收海流矢量场数据,所述场数据为格式统一的规则网格数据,每个网格单元点表示单个海流矢量;

步骤2,网络服务系统后台程序对海流矢量场数据进行初始化设置,包括设置跟踪的偏转角度阈值、最短流向线上点的数量阈值,并将整个海流矢量场的所有网格单元点设置为未访问;

步骤3,网络服务系统后台程序依次遍历海流矢量场中的网格单元点,若该网格单元点标记为已访问,则重新选取下一个网格单元点,否则,将该网格单元点作为种子点进行角度跟踪,该跟踪过程包括正向跟踪、反向跟踪和舍弃判定等几个环节,从而得到一条连续的流向线;

步骤4,重复步骤3,直到按照行优先次序遍历完海流矢量场中的所有网格单元点,此时已获得整个海流矢量场的流向线集合;

步骤5,网络服务系统后台程序将提取出来的所有流向线传回给前端程序;

步骤6,网络服务系统前端程序根据接收到的流向线集合,将每条流向线上的网格单元点处的海流矢量都映射为矢量箭头,同时对箭头长度做缩短变换,用箭头的长度表示网格单元点处海流的相对速度大小,用箭头的方向表示网格单元点处海流的方向,并将绘制完成的矢量箭头动态叠加到前端海洋大环境基础背景数据中进行显示。

进一步地所述步骤3中,将该网格单元点作为种子点进行角度跟踪的方法具体如下:

步骤a,标记种子点为已访问,并将该种子点作为当前矢量;

步骤b,从当前矢量,即种子点开始正向跟踪,按照网格的邻接关系在3×3窗口中寻找下一位置还未访问、与当前矢量的夹角在偏转角度阈值范围内且夹角最小的网格单元点处的海流矢量作为合法后继矢量,将得到的后继矢量处的网格单元点标记为已访问,并将该后继矢量作为新的当前矢量,继续循环迭代跟踪其后继矢量,直到不存在合法的后继矢量或当前矢量已经到达海流场网格的边界;

步骤c,从当前矢量,即种子点开始反向跟踪,按照网格的邻接关系在3×3窗口中寻找上一位置还未访问、与当前矢量的夹角在偏转角度阈值范围内且夹角最小的网格单元点处的海流矢量作为合法前驱矢量,将得到的前驱矢量处的网格单元点标记为已访问,并将该前驱矢量作为新的当前矢量,继续循环迭代跟踪其前驱矢量,直到不存在合法的前驱矢量或当前矢量已经到达海流场网格的边界;

步骤d,在正向跟踪和反向跟踪结束后,对提取出来的流向线做舍弃判定:如果流向线上的点数量小于设定的阈值,则舍弃该条流向线,并将该条流向线上经过的网格单元点重新设置为未访问。

本发明与现有技术相比的优点在于:本发明采用3×3窗口角度跟踪技术从整个海流矢量场数据中分离出流向特征数据,由网络服务系统前端程序将提取出来的流向特征数据映射为矢量箭头,并动态叠加到海洋大环境基础背景数据中进行显示。与直接可视化方法相比,本发明由于减少了非流向特征的数据,提高了绘制效率,避免了在计算机有限屏幕范围内因全局绘制造成生成的图形密集看不清等问题;与几何可视化方法相比,本发明由于直接利用原始网格数据提取流向线,比插值计算得到的流线更准确,并且能够更为有效地显示海水的流动方向,同时避免了数值积分计算,运行效率更高;与纹理可视化方法相比,本发明计算量小,并且能够有效叠加到海洋大环境基础背景数据中进行显示;与特征可视化方法相比,本发明计算过程简单有效,不需要训练样本或依赖于特定应用领域知识。

附图说明

图1本发明方法的方框示意图;

图2八邻域位置与四象限区域示意图;

图3后继矢量位置搜索示意图;

图4前驱矢量位置搜索示意图;

图5海流直接可视化叠加到海洋大环境基础背景数据后的可视化示意图;

图6流向线叠加到海洋大环境基础背景数据后的可视化示意图;

图7流向线叠加到海洋大环境基础背景数据后的局部放大示意图。

具体实施方式

为了更好地实现上述发明目的,下面将结合附图对本发明中的各个步骤做进一步描述:

如图1所示,本发明的一种面向流向特征的基于角度跟踪的海流矢量场可视化方法,采用3×3窗口角度跟踪技术从整个海流矢量场数据中分离出用户关注的流向特征数据,并在网络环境下动态叠加到海洋大环境基础背景数据中进行可视化。本发明步骤是首先网络服务系统后台程序对接收到的海流矢量场数据进行3×3窗口沿角度正向跟踪与反向跟踪提取出流向线,然后将提取出来的流向线数据以wkt文的格式传回给网络服务系统前端程序,最后网络服务系统前端程序对流向线数据进行映射绘制,并动态叠加到海洋大环境基础背景数据中进行显示。

下面进行详细说明。

步骤1,将接收到的海流矢量场数据文件存放在一个固定文件目录,网络服务系统后台程序周期性地读取海流矢量场数据文件,所述场数据为格式统一的规则网格数据,每个网格单元点表示单个海流矢量,每个海流矢量都由序号、x与y坐标、速度、角度组成。

步骤2,网络服务系统后台程序先初始化设置相邻的前后两个海流矢量的偏转角度的阈值大小本发明设定为10°;再初始化设置最短流向线上点数量n的阈值大小,本发明n设定为规则网格的行数或列数的倍;最后将规则网格中的所有网格单元点都设置为未访问;

步骤3,网络服务系统后台程序依次遍历海流矢量场中的网格单元点,若该网格单元点标记为已访问,则重新选取下一个网格单元点,否则,将该网格单元点作为种子点进行角度跟踪,该跟踪过程包括正向跟踪、反向跟踪和舍弃判定等几个环节,具体处理过程如下:

首先,标记该种子点为已访问,并将该种子点作为当前矢量;

接着,从当前矢量,即种子点开始正向跟踪,按照网格的邻接关系在3×3窗口中寻找下一位置处合法的后继海流矢量。如图2所示,p0为当前矢量的位置,其相邻的矢量位置有p1、p2、p3、p4、p5、p6、p7、p8。若当前矢量位置p0存在后继矢量,则后继矢量位置必存在于其相邻的8个邻接矢量位置中。为了快速地确定后继矢量位置,采用3×3窗口跟踪方法:先以p0为中心,将3×3窗口分成4个象限区域:i象限(0°~90°)、ii象限(90°~180°)、iii象限(180°~270°)、iv象限(270°~360°);再根据当前位置p0处海流矢量的角度值所属的象限区域,在该象限区域内其它3个邻接位置中寻找最恰当的后继矢量位置。如图3所示,假定当前位置p0处海流矢量的角度值位于i象限区域,先判定其邻接位置p5、p7、p8是否已经访问过,若都没有访问,则从这三个候选位置中寻找与当前位置处矢量的夹角最小且夹角值在偏转角度阈值范围内的候选位置作为合法的后继矢量位置;在得到合法后继矢量位置后,将该后继矢量作为当前矢量,继续循环迭代跟踪其后继矢量。当不存在合法的后继矢量或当前矢量已经到达海流场网格的边界时,整个循环迭代跟踪过程终止。

然后,从当前矢量,即种子点开始反向跟踪,按照网格的邻接关系在3×3窗口中寻找上一位置处合法的前驱海流矢量。在寻找前驱矢量时,将以当前矢量位置为中心的4个象限区域分成两组:i象限与iii象限为一组,另一组为ii象限与iv象限。如果当前矢量的角度值位于i象限区域,则其前驱矢量位置必存在于iii象限区域,反之亦然;同理,也适用于另一组ii象限与iv象限。如图4所示,p0为当前矢量位置,其角度值位于i象限,那么其前驱矢量一定位于iii象限区域,在iii象限内判定前驱矢量位置的方法与正向跟踪判定方法完全相同,不再赘述。在得到合法前驱矢量位置后,将该前驱矢量作为当前矢量,继续循环迭代跟踪其前驱矢量。当不存在合法的前驱矢量或当前矢量已经到达海流场网格的边界时,整个循环迭代跟踪过程终止。

最后,在正向跟踪和反向跟踪结束后,为防止得到较短的流向线,对提取出来的流向线做舍弃判定。如果流向线上的点数量小于设定的阈值,则舍弃该条流向线,并将该条流向线上经过的网格单元点重新设置为未访问;否则,保留该条流向线。

步骤4,循环步骤3,当按照行优先次序遍历完规则网格中的最后一个网格单元点时,此时已从整个海流矢量场中分离出流向特征的海流矢量数据,得到整个海流矢量场的流向线集合;

步骤5,网络服务系统后台程序将提取出来的所有流向线以wkt文的格式传回给前端程序;

步骤6,在接收到流向线集合后,网络服务系统前端程序进行绘制,将每条流向线上的网格单元点处的海流矢量都映射为矢量箭头。为防止矢量箭头过长,前端程序对矢量箭头做缩短变换,即在箭头原始长度(海流速度)的基础上乘以一个比例系数ratio(0<ratio<1)。最后网络服务系统前端程序将绘制完成的矢量箭头动态叠加到前端海洋大环境基础背景数据中进行显示。图5所示为海流场直接可视化并叠加到海洋大环境基础数据底图中,从图中可以看出,由于绘制的海流矢量箭头过于密集掩盖了该海域的海水流动方向;图6为利用本发明方法对该海域的流向特征可视化并叠加到海洋大环境基础数据底图中,从图中可以清晰地看出该海域的海水主流动方向;图7是对图6中左下部分进行局部放大。

本发明未详细阐述部分属于本领域技术人员的公知技术。

以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所披露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1