本发明属于数据可视化,涉及海洋数据可视化领域,特别涉及一种海洋三维温盐流数据的可视化方法。
背景技术:
1、数据可视化在科学研究、决策支持中发挥着重要的作用,这项技术通过将复杂的数据集转换为图形、图像的形式,使得抽象的数值信息变得直观易懂,从而有效地辅助科研人员进行数据观测和分析。在海洋科学研究中,三维温盐流数据的可视化是一个关键环节,它涉及到从海洋观测和遥感数据中提取有用信息,并以易于理解的方式展示给研究人员。海洋数据因其复杂性和多变性,传统的二维图表难以全面地展示海洋数据的空间分布和动态变化。近年来,随着计算机图形学和可视化技术的发展,更加高级的可视化技术逐渐能够满足展示海洋数据多维特性的需求,如颜色映射和矢量场可视化等。然而,现有可视化方法在处理大规模、高维度的海洋数据集时仍面临着一系列的挑战,尤其是在数据预处理阶段,如何从包含噪声和异常值的原始数据集中提取出真正有用的信息是一个技术难点。此外,颜色映射技术虽然在视觉上增强了数据的表现能力,但是如何保证在颜色映射过程中的准确性,以及根据数据特点选择合适的映射方法也需要进行研究。
2、海洋数据的多维度特性要求我们在可视化过程中采用高效的数据处理算法,以实现数据的快速集成。例如温度、盐度、密度等参数在空间与时间分布上都保持关联,这些数据的处理就需要保持一致性与准确性。其次由于海洋数据采集具有较高难度,获取到的海洋数据中可能存在缺失或者错误值,如何准确地处理这些异常数据并生成平滑的、连续的可视化结果是一个技术难题,尽管现有的三维可视化工具在一定程度上满足了这些需求,但在数据的科学准确性、视觉效果和用户交互方面仍有改进空间。
技术实现思路
1、针对现有技术存在的不足,本发明提供一种海洋三维温盐流数据的可视化方法,用于解析包含海洋温度、盐度等特征值的数据文件并生成可视化图片。
2、为了解决上述技术问题,本发明采用的技术方案是:
3、一种海洋三维温盐流数据的可视化方法,包括以下步骤:
4、步骤1、自动化读取数据文件并预处理:
5、自动化读取海洋观测数据以及配置文件,并对数据进行预处理,其中预处理包括使用掩膜标记数据异常值或者无效数据、通过自适应插值方法对缺失数据进行修复;
6、步骤2、数据规范化与颜色映射:
7、将步骤1预处理后的数值信息根据用户自定义的颜色映射规则转换为颜色信息,输出为jpg格式,实现海洋数据的二维可视化效果;
8、步骤3、绘制等值线图案:
9、首先将步骤1预处理后的数据信息进行规范化得到数据纹理,然后通过阈值处理将数据纹理转换为二值化图像,并使用图像修复算法对数据纹理进行平滑处理,遍历等值线的索引数组,通过计算等值线关键点的实际位置来构建轮廓线,然后绘制贝塞尔曲线,得到最终的等值线图案;
10、步骤4、可视化矢量数据或三维数据:
11、若海洋数据包含矢量环境数据或需三维展示,则分别构建json格式文件以模拟海流运动或将数据填充至vtkimagedata对象并写入vti文件,实现海洋数据的矢量模拟和三维可视化。
12、进一步的,步骤1中,海洋数据预处理具体采用以下步骤进行:
13、1)从配置文件中获得的信息包括水域数据water_mask_datas,如果数据值不是空值且不是异常值,则相应的water_mask掩膜位置被设置为255,表示水面区域;接下来遍历输入的原始数据,一旦检测到异常值或者无效数据,使用mask掩膜变量来标记这些数据点,将其标记数据缺失区域;
14、2)对于缺失的数据,采用一种自适应的方法,根据海洋数据的空间分布特征,基于周围有效像素点动态选择插值算法来填补缺失值,具体是:在处理缺失数据前定义好邻域范围,在局部邻域内计算数据的梯度,根据梯度大小衡量数据的变化率,在梯度小的区域,选择线性插值进行像素修复;在梯度大的区域,选择样条插值来进行像素修复;通过多次迭代修复所有的缺失像素,若处理后仍有像素无法填充,则将水面区域掩膜对应的像素值设置为0,直到所有缺失像素都被处理。
15、进一步的,步骤2中,具体采用以下步骤进行:
16、步骤201、数据规范化:根据给定的配置信息,决定是否需要计算每个数据点的规范化值,这一步是将数据值映射到一个标准化的颜色索引范围内;
17、步骤202、确定所在颜色区间:根据数据值确定其在颜色索引数组中的位置,找到包含该数据值的颜色区间,并记录下该区间的左右端点索引;
18、步骤203、取区间左端颜色值或取插值结果:根据配置文件中的信息决定是否进行颜色插值,如果设置为0则直接返回区间左端点的颜色值;否则,进行颜色插值以得到更加平滑的颜色过渡;
19、步骤204、应用于每个像素点:将计算得到的颜色值应用于每个像素点,生成最终的颜色映射图像。
20、进一步的,步骤203中,颜色插值的具体过程为:对于选定的颜色区间,使用线性插值方法,通过计算两个区间端点颜色的加权平均值得到最终该像素点的rgb颜色值:
21、;
22、;;
23、;
24、其中,crelativevalue是原数据值或根据配置文件归一化到0~1范围内的值,ci是当前颜色区间起始索引所对应的数据值,cnext是当前颜色区间末尾索引所对应的数据值,通过公式计算得到相对数据值在当前区间内的插值系数α,rleft、rright、gleft、gright、bleft、bright分别是当前颜色区间起始索引和末尾索引的rgb值,r、g、b是每个像素点对应的rgb值。
25、进一步的,步骤3中,等值线绘制的具体步骤是:
26、步骤301、二值化处理及修复:首先将步骤1预处理后的数据信息规范化到一个统一的范围内,并使用构造函数将其存储为数据纹理;然后将数据纹理转换为二值化图像,其中根据每个像素点对应数据是否高于阈值来分配黑白色;然后对二值化图像进行膨胀操作以及图像修复操作,填充数据不连续部分;
27、步骤302、构建关键点数组并优化:首先,遍历二值化图像,通过分析像素值和给定的阈值来确定等值线条的路径,构建线条的关键点数组,然后遍历关键点数组,实现去重;
28、步骤303、构建轮廓并计算控制点:通过关键点数组构建轮廓,然后计算贝塞尔曲线的控制点对线条进行拟合与绘制,得到等值线;然后对生成的等值线进行优化,去除过于接近的点;
29、步骤304、数值文本标注:根据用户配置文件的需要,在等值线上添加数值文本标注;
30、步骤305、输出等值线图案:根据用户需要将等值线输出为svg格式或者png格式。
31、进一步的,构建等值线条关键点数组的具体实现方法是:首先考虑将当前像素点及其周围的像素点作为搜索邻域,检查该点数据值是否满足水域范围,若满足条件则继续进行相关计算;接下来,通过以下公式,根据阈值threshold和周围像素点对应的数据值来确定关键点的实际位置,使得等值线更加平滑地贴合数据的实际分布:
32、;
33、;
34、;
35、;
36、;
37、;
38、;
39、;
40、;
41、;
42、其中,、、、、、、、分别表示左上、右上、左下、右下像素点的横纵坐标,、、、分别表示左上、右上、左下、右下像素点对应的数据值,threshold是通过将用户在config.json文件中定义的等值线数组进行规范化计算后得到的阈值,scale是缩放因子,stride是步长;通过上述公式,得到等值线在当前像素点及其邻居像素点处的交点,用于后续的绘制过程;
43、接下来,根据tempcount的值动态生成等值线段,具体来说:初始化计数器tempcount变量为0,然后根据四个端点所对应的数据以及阈值的比较结果更新tempcount的值,这里使用不同的权重来区分左上、右上、左下、右下的点;根据tempcount的值来确定等值线可能穿过的像素边界,使用之前计算得到的left、top、right、bottom决定等值线在局部区域内的走向,将等值线段加入一个用于存放等值线的lines数组中,并将两个端点作为关键点,并继续遍历剩下的像素点;遍历完成后对所有关键点进行排序和降重,构建轮廓线。
44、进一步的,步骤3中,构建轮廓线的具体步骤为:创建三个数组contours、isclosedcontour和usedlines来标记轮廓点集、轮廓是否闭合以及线段是否用于构建轮廓;首先寻找可以作为轮廓起始点的点,从起始点开始不断查找新点并检查可连接的线条,将连接的关键点添加到轮廓线数组中,跟踪已经使用过的线条,避免重复使用,直到所有点都被用于构建轮廓,无法找到可连接的线条;接下来去除构建的轮廓中距离过近的点,并记录轮廓是否闭合的信息;对于每一个轮廓,通过计算得到控制点后绘制贝塞尔曲线,得到最终的等值线图案。
45、进一步的,步骤3中,在输出等值线图案前还需进行数值文本的标注,数值文本标注的具体步骤为:评估每个关键点处地局部轮廓方向,计算正弦值来确定轮廓的倾斜方向;评估文本标注的预期宽度,选出文本标注位置。
46、进一步的,步骤4中,若海洋数据中含有海流矢量环境数据,则需要遍历数据文件获取对应的经度、纬度以及指定类型的数据,用以构建json格式的数据文件,使用粒子系统模拟海流的运动;
47、若需要采用三维的方式展示不同层深的海洋数据,则需要循环遍历三维数据集中的每个像素点,将变量数据填充到图像数据集中的对应位置,并将填充好数据的vtkimagedata对象写入到vti文件中用以可视化三维效果。
48、与现有技术相比,本发明优点在于:在数据预处理阶段,使用了两个掩膜mask和water_mask标记数据中的无效像素和水域像素,这种区分使得本发明可以专注于水面区域缺失数据的修复工作,能够有效地节省计算资源;同时,根据数据的空间分布特征,动态选择不同的插值算法,这种自适应插值方法能够更好地适应数据的局部特性。
49、在绘制等值线阶段,与经典的marching squares算法相比,本发明改进了传统的直线段绘制,使用贝塞尔曲线来平滑等值线,使得线条表示更加流畅和美观。除此之外,本发明可以根据不同的阈值动态地绘制等值线,并提供了评估最佳文本标注位置的功能,能够更加灵活地适应不同数据集,使得等值线上的数值信息能够无遮挡地直观显示,增强了绘制结果的可读性。本发明支持将等值线输出为svg格式,适用于高质量的图像渲染和缩放,显著提高了绘制质量和可读性。