vtk图形图像开发进阶 pdf_VTK: 用于气候科学研究

Tags: Geosciences , Scientific Computing , VTK

Visualization Toolkit (VTK)被广泛用于科学数据的分析和三维可视化,不过它还有一个得到充分支持但不太为人所知的应用领域,那就是气候科学。Community Data Analhysis Tools (CDAT)是一个数据分析和可视化软件包,由劳伦斯利弗莫尔国家实验室开发,专为气候科学家设计。从2015年开始,CDAT将VTK作为其可视化后端引擎。为了支持CDAT库和解决来自气候社区的需求,我们对VTK中的bug进行了修复并开发了新的特性。下面我们将简要描述一些重要的变化。

将2D绘图导出为PDF和SVG

将VTK升级到更现代化的的OpenGL架构使得渲染得到了显著的加速,并使得引入许多新的渲染特性到VTK中成为了可能。但是一个重要的特性(导出到矢量图形格式),由于使用了新的OpenGL而丢失了,因为它放弃了对OpenGL反馈缓冲区的支持。为了解决这个问题,我们实现了vtkPDFExporter和vtkSVGExporter来将vtkContext2D场景导出为PDF和SVG矢量格式。

631422eb25d65c3ba689ea383b819828.png

任何vtkContext2D绘图都可以导出为PDF和SVG

等间距2D流线

我们开发了vtkEvenlySpacedStreamlines2D,这是一种为2D数据集实现等间隔流线的方法。这种可视化方法使用户能够控制流线的密度,避免流线拥挤,同时提供对良好的二维域覆盖。

fc0b211f464c48ae1285af06fb0f517b.png

等间距2D流线

Cookie Cutter

我们的合作者通常使用一些样式来对他们的模拟结果中感兴趣的区域进行标记。而且这些结果往往需要被包括在印刷出版物中,使用矢量图形输出格式是获得最佳结果的首选方式。考虑到这些需求,我们开发了vtkCookieCutter,这是一种过滤器,可以通过第二个包含多边形的输入指定的循环来裁剪由单元(例如,点、线、多边形和三角形带)组成的输入多边形数据vtkPolyData。

2f39e4484a29cf78fbea05d8c17a076e.png

利用CDAT绘制的地表气温等温图

带标签的等高图

等高图是表示数据集中具有相等标量值的点的图。标签化的等高图(vtkLabeledContourMapper 和[vtkLabeledContourPolyDataItem)使用户可以在等高图中用对应的数值来对数据进行标记,如下图所示。

b5904053859a81d078af54dde0303d18.png

带标签的等高线图

在Context2D上绘制vtkPolyData

vtkContext2D是一个提供2D上下文绘制环境的类。这个类使得将2D图导出为矢量格式成为可能,而这在现代OpenGL中通常是不可能的。通过这项工作,我们可以使用Context2D来绘制CDAT库所需的任意复杂的绘图,而不仅仅是Context2D最初支持的2D图表。

fc4665415d13f85930af094403314bb9.png

使用Robinson投影的CDAT绘图

这些主要的功能,以及其他的一些次要的功能,都被添加到VTK中,以支持气候科学研究。Kitware一直在寻找地球科学领域中的有趣挑战。如果您希望我们为您定制解决方案,请通过kitware@kitware.com与我们联系。

致谢

特别感谢美国能源部劳伦斯·利弗莫尔国家实验室、能源部项目经理贾斯汀·海宁罗博士、LLNL首席调查员迪恩·威廉姆斯和Ghaleb Abdulla,以及能源部首席工作人员查尔斯·杜特罗对这项工作的支持。

往期文章

Neofetch – 通过终端显示Linux系统信息

Linux下常用的图形应用下载工具

如何在Linux上以非root用户运行Docker

Linux下如何拼接PDF文件

如何在Linux上查看图像元数据

本文译自: VTK for Climate Science

作者: Dan Lipsa, Scott Wittenburg, [Sankhesh Jhaveri, Will Schroeder and Aashish Chaudhary

译者: 生材有道

校对: 开源科学计算

原文及本文遵循: [CC BY4.0协议]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值