集合(ensemble)模拟数据可视化是科学可视化的一个重要研究方向,特别是针对气象学这一特定领域。通过扰动初始条件或者使用不同的预测模型公式,集合方法会生成代表大气未来可能状态的一些数据成员。分析集合预报中的时间演化和可变性是这类问题的一个重要的任务。

在已有的方法中,spaghetti plots (意大利面条图)是一种比较常用的分析气象标量场集合数据中等高线(iso-contour)的变化的方法。具体来讲,对于每个时间步,都有一个spaghetti plot展示某一iso-value下所有集合成员的等高线,这些spaghetti plots往往并列放置。如果需要看其动态演变,则需要通过动画的方式。

但是,由于用户需要感知大量的视觉信息,动画很难建立连续时间步下等高线之间的关联。针对这一问题,今年的SciVis上提出了一种新的方法,可以分析集合天气预报数据中等高线的时空演变[1]。

文中的方法包含三个部分。如图1所示,首先将所有集合成员具有相似时间演化特性的等高线进行聚类,得到一个初始的等高线分类。然后,使用一个时间层次聚类的方法将这些初始的等高线类沿时间步反向合并,得到一个时间层次上的聚类树。最后,设计了一种空间-时间聚类可视化的方法来展示聚类信息。下面我们将一一介绍各个步骤。

在初始等高线分类中,用户首先选择一个感兴趣的时间窗口,然后在一个给定的iso-value下得到所有集合成员在这个时间窗口下的等高线。之后,使用符号距离函数(signed distance function, SDF)将这些等高线转化为高维空间中的点,然后就可以使用一些标准的聚类方法对这些点进行聚类,从而得到对应等高线的初始聚类。

文中用了合成聚类(agglomerative hierarchical clustering, AHC)的方法,一开始将每个的等高线都看成是一个个的类,然后迭代地将相似的类进行两两合并,直至最终只剩下一个类或者所需要的类数。

对于每个类的所有等高线,我们可以从中选择一个中位等高线(median contour),其对应的高维空间的点到其他所有点的距离平方的和最小。有了中位等高线,我们再将所有等高线的空间标准差通过环绕在中位等高线的条带展示出来,以表示该类中所有等高线的空间差异,这种可视化形式叫做等高线变化图(contour variability plot),如图2所示。

为了得到所要的时间层次聚类,作者使用了AHC方法中的linkage criterion来决定类之间何时会合并。其思想就是,假设有n个类,根据类间距离的计算组织一个n×n的linkage矩阵形式,矩阵每个单元表示两个类之间的距离。这里面类与类之间的距离是基于类中等高线对应的高维空间点之间的欧式距离计算得到。

作者定义了一个类间距离的阈值,然后在初始等高线分类的基础上,沿着反向时间步的方向对这些类进行合并。对于每一个时间步,当有两个类的距离小于阈值时,这两个类会被合并,并且对应的linkage矩阵也会更新。这一过程一直迭代进行,直到该时间步上不再可以聚类。接着会进行前一个时间步的合并过程,直至在第一个时间步上形成一个最终的类,如图3所示。

得到时间层次聚类树后,文章设计了一种空间-时间聚类可视化的可视化,包括两种形式。一种是空间-时间聚类面(space-time cluster surfaces)。对于每一个类,它是将其每个时间步上中位等高线的符号距离场堆叠起来形成一个空间-时间的3维距离场,然后使用光线追踪和三线性插值绘制该3维场的level-0 set,得到一个平滑的变化聚类面,如图4(a)所示。

为了展示聚类中等高线在时间上的传播,还可以将所有等高线对应的符号距离值的标准差映射成颜色反应在聚类面上。如图4(b)所示,其表示了随时间的增加聚类成员在空间的伸展也越大,表示不确定性越大。

另一种可视化表示形式是堆叠时间切片(stacked time-cuts)。因为对每一个时间步,一个类可以用一个等高线变化图来表示,因此将这个类对应的一系列离散时间步的等高线变化图由下至上堆叠起来,便形成了堆叠时间切片。如图5所示,可以很清楚看到聚类随着时间的增长的演化。

总的来讲,这篇文章针对二维时变标量场集合数据的等高线,使用一种新的方法展示其在时间和空间上的演化。不过,该方法建立在聚类只有合并没有分裂这一假设上,其合理性值得推敲。不过这也正是这一方法可以改进的地方。

如果可以将等高线在演化过程中的出现、合并、分裂以及消亡等事件以一种比较好的形式展示出来,例如故事线等,可以让用户更好地对该类问题进行分析和理解。此外,文章使用的堆叠时间切片的可视化方法在时间步比较多的情况下还不是非常灵活,这一点也是需要改进的地方。

本文作者:Jiang Zhang

来源:51CTO

针对天气预报集合数据的时间层次聚类和可视化相关推荐

  1. R语言层次聚类(hierarchical clustering):数据缩放、PCA聚类结果可视化、fpc包的clusterboot函数通过bootstrap重采样的方法评估hclust层次聚类的稳定性

    R语言层次聚类(hierarchical clustering):数据缩放.PCA聚类结果可视化.fpc包的clusterboot函数通过bootstrap重采样的方法评估hclust层次聚类的稳定性 ...

  2. 层次聚类定义、层次聚类过程可视化、簇间距离度量、BIRCH、两步聚类、BIRCH算法优缺点

    层次聚类定义.层次聚类过程可视化.簇间距离度量.BIRCH.两步聚类.BIRCH算法优缺点 目录

  3. 聚类算法总结 划分法,层次聚类,基于网格,基于密度,谱聚类,基于模型,模糊聚类

    划分法: K-means:随机选择k个类的初始中心,对每一个样本都求解到k个中心点的距离,将它归类到距离最短的中心所在的类别.通过计算与类别内样本平均距离最小的点作为新的中心点.直到类别的聚类中心点不 ...

  4. 原理+代码|详解层次聚类及Python实现/层次树怎么看/如何从层次树中查看聚类过程(附源数据)

    前言 聚类分析是研究分类问题的分析方法,是洞察用户偏好和做用户画像的利器之一.聚类分析的方法非常多,能够理解经典又最基础的聚类方法 -- 层次聚类法(系统聚类) 的基本原理并将代码用于实际的业务案例是 ...

  5. python 两阶段聚类_使用Python进行层次聚类

    使用 scipy.cluster.hierarchy.linkage进行层次聚类 from scipy.cluster.hierarchy import dendrogram, linkage,fcl ...

  6. 【机器学习】层次聚类

    写在篇前   层次聚类(hierarchical clustering)是一种通用的聚类算法之一,它通过自下而上合并或自上而下拆分来构建嵌套聚类.这种簇的层次结构表示为树(或树状图),树的根汇聚所有样 ...

  7. matlab 层次聚类不均等巨雷,matlab层次聚类

    层次聚类是基于距离的聚类方法,MATLAB中通过pdist.linkage.dendrogram.cluster等函数 来完成.层次聚类的过程可以分这么几步: (1) 确定对象(实际上就是数据集中的. ...

  8. 全国天气预报信息数据接口 API

    全国天气预报信息数据接口 API,精确到行政区的7日天气预报 日4次数据更新 / 小时级天气预报. 产品功能 全国天气预报每隔 6 小时更新数据: 精确到行政区级别的天气预报数据: 提供最长 7 天的 ...

  9. 利用层次聚类算法进行基于基站定位数据的商圈分析

    1. 背景与挖掘目标 1.1 背景 • 随着个人手机和网络的普及,手机已经基本成为所有人必须持有的工具. • 根据手机信号再地理空间的覆盖情况结合时间序列的手机定位数据可以完整的还原人群的现实活动轨迹 ...

最新文章

  1. 在一台电脑上使用两个github账号
  2. mysql 插入_Mysql中创建表格及插入数据
  3. Word无法打开该文件,因为文件格式与文件扩展名不匹配的解决办法
  4. qt自定义按钮类,每个按钮自带一个右键弹出框,如何使同一时刻只显示一个弹出框
  5. 备抵附加账户的期末余额_会计账户的分类(二)
  6. 计算机专业是理科吗,计算机类和普通理科有什么区别?
  7. Android开发之Scroller
  8. 实践案例丨利用小熊派开发板获取土壤湿度传感器的ADC值
  9. DOTNET零碎要点---字符串截取操作
  10. 用Python处理Excel文件
  11. 微软警告:Office 已遭IE RCE 新0day 攻击
  12. 在 MAC下安装 Exuberant ctags
  13. VGG16网络结构要点
  14. Spring Boot 实现微信点餐系统
  15. 用户名片 3:页面实现
  16. 「信号机制」Python信号处理—signal模块
  17. 软件测试仿真系统,嵌入式系统软件仿真自动化黑盒测试平台
  18. 今天开始正式认认真真学习Python,以上!
  19. 工业通讯桥接器用途及选型
  20. web安全性测试用例

热门文章

  1. (三)AJAX基本介绍和简单实例03
  2. Chrome v28 会在pwd目录下生成libpeerconnection.log文件
  3. 用U盘安装VMware ESXi4
  4. linux 读取命令行输入,Linux read命令的使用
  5. 这12种方法轻松合并Python中的列表
  6. 3 css 奖品出现弹出动画_【技术】nuxt中引入wow和animate.css 页面随滚动条出现动画...
  7. PTA数据结构与算法题目集(中文)7-29
  8. HDU2899(二分查找+or+模拟退火算法)
  9. poj3481(map的使用)
  10. 2021牛客寒假算法基础集训营1 题解