高维数据可视化

高维数据是一种非常常见的数据类型,其中包含了多种属性。比如:数值模式输出结果通常包含多种物理参量及多个时次,还有一些空间位置信息。尽管高维数据非常常见,但是高维数据的分析一直是个挑战。那么如何才能有效的分析高维数据呢?就此问题,本文主要介绍一些气象领域的高维数据可视化工具。

Vis5D是一个3D可视化系统[注1],主要应用于气象模拟数据的3D可视化,比如:常规3D网格的时间序列模式输出数据。它是第一个能够将时变体数据集可视化为3D动画的完全交互系统,而且还是第一个开源的3D可视化系统。Vis5D已经升级为Vis5D+项目,开始了新一轮的更新。

Vis5D中的5D表示的是包含3D网格时间序列的大气/海洋物理参数集,前3D表示经度,纬度和高度,第4维表示时间,第5维表示物理变量,如温度,风等。图形用户界面使用户可以非常方便的可视化每一个参数,当然,也可以对多个参数进行可视化。Vis5D的关键创新点是它能够让用户很快的看到模拟结果的动画显示效果。其提供的内存管理功能可以对大数据集单个时步数据进行可视化,而不需要对整个时间序列进行计算,对于小数据集来说,可以直接动态显示整个数据集。vis5d同时提供了API[注2],对于开发者来说可以将Vis5D的功能扩展到其他系统或编程语言,比如”胶水语言“python,这样能有效降低Vis5D的学习曲线。

利用Vis5D可视化模式数据之前,需要将模式输出数据转换为v5d。官方文档中提供了fortran和C语言版本的程序提供转换操作,但是学习成本比较高。如果你的数据格式是HDF5,你可以利用h5utils[注3]工具中的h5tov5d将HDF5格式文件转换为v5d格式文件(注意:编译h5utils之前需要先编译vis5d),除此之外,grib2v5d[注4]工具提供将GRIB格式数据转换为v5d格式,对于NetCDF格式,ARWpost(旧版支持)提供了vis5d的编译选项,可以支持将WRF模式输出转换为v5d格式[注5]。还有WRF2VIS5D提供了转换支持[注6]。

目前有很多数据格式互相转换的工具,如果你所使用的数据格式无法直接转换到vis5d支持的格式,则可以转换为hdf5或grib或NetCDF中的任何一种,然后再转换为vis5d支持的格式即可。

Vis5D可视化效果

图片来源于NSSL[注7]

除了Vis5D之外,美国国家大气研究中心计算信息系统实验室开发的VAPOR也可以进行3D可视化,并且主要作为海洋,大气研究者的可视化和研究平台,其可以直接导入NetCDF,GRIB数据格式,以及WRF,ROMS产生的数据格式[注8]。

VAPOR可以直接导入WRF模式所产生的数据,而无需转换操作。通过VAPOR的图形界面"ImportWRF-ARWdataintodefaultsession"按钮即可导入WRF模式数据。更多的可视化数据操作见官方文档[注9]。VAPOR提供了和IDL,NCL,Python交互使用的示例及接口[注10],还提供了Python脚本编辑器,可以非常方便的提取和创建变量(谁用谁知道~)。

VAPOR可视化效果

图片来源于VAPOR[注11]

可视化真的是一门艺术!尤其是高维数据的可视化!国外在这方面的研究真的是太多了。除了以上介绍的以外,还有很多可视化项目。比如VisAD以及基于VisAD和IDV的McIDAS-V等等。

VisAD是交互协作可视化及分析数值数据的Java库。作为纯Java实现的库,其优点是不依赖于平台,而且支持数据共享以及实时的用户协作;可以适应几乎任何数值数据,并且支持不同用户之间共享数据,不同的数据源和不同的学科,支持NetCDF,hdf5,HDFEOS,GIF,JPEG,TIFF,Vis5D,ASCII等文件格式。最重要的是提供了Python接口,但需要安装Jython[注12-13]。

McIDAS-V完全支持Java和Java3D,因此可以运行在任何平台。McIDAS-V支持多种数据格式以及远程获取数据功能,比如数值模式以及再分析网格数据格式(NetCDF,GRIB,Vis5D,GEMPAK),大多数格式的卫星图像,LevelII和III等雷达数据以及GIS使用的数据格式[注14-15]。如果你需要利用Python扩展一些功能,McIDAS-V允许使用Jython库编辑器添加自定义Jython方法,在主菜单中选择Tools-Formulas-JythonLibrary即可,如下图:

更多使用方法见注15DataAnalysis-JythonMethods

McIDAS-V可视化效果

图片来源于McIDAS-V[注16]

上面提到的高维数据可视化工具中,Vis5D和VisAD的学习成本相对较高,而McIDAS-V和VAPOR相对容易上手,而且都提供了用户界面及Python接口,VAPOR还提供了和IDL及NCL交互使用的示例,除此之外两者都支持大量的数据格式,尤其是一些数值预报模式。这能够节省很多不必要的学习成本。

敬请期待后续高维数据可视化示例——WRF模式结果可视化。

注1:


转载请注明:http://www.xolkj.com/bjff/8895.html