本发明涉及信息可视化分析技术领域,具体为一种基于气象数据的自然分区可视化方法。
背景技术:
近年来,在物质生活不断充实的大背景下,人们对自然环境的关注度越来越高。作为人类描述气候情况最主要的六个自然气象因子,风速、日照时数、最高温度、最低温度、相对湿度和降雨量成为关注的热点。
科研人员对各项气象因子使用统计学或计算机学的手段进行时序分析,包括线形趋势、振荡周期以及数值预测,可以为后续的蒸散、干旱、能量等时空分布研究提供依据。在这个过程中,有学者关注到,五年为西南地区气候干湿震荡的第一个周期。除了对气象因子进行时序变化分析及预测,研究者同样关注以多个气象因子为代表的整体气候变化情况。他们留意到,行政区划可能分割了原本完整的自然地理环境,为后续的抽样、分析、解释研究带来不便。
因此,水文气象领域开始尝试利用气象站点的观测数据对自然条件进行时空分布研究,以对动植物保护、旱情预警、水利设施建设等提供指导。有学者尝试以气象因子数据作为地点的属性,对站点所在地进行自然分区,从而便于进行不同气候或功能区的横向对比。在这个环节中,选取到足够数量足够类型的气象因子,可以获取到较为科学的分类结果。如果能将气象因子的时序分析与分区情况联系在一起,探索相似气候区域在空间上的演化情况,或许能发现一些有趣的特征。
可视化技术是一种利用人眼感知能力对数据进行交互进行可视表达以增强认知的技术。它将数据转化为可感知的图形、符号、颜色等,来增强数据识别效率,传递有效信息。由于可视化技术的直观与高效,越来越广泛地被应用到科学研究与实际应用中。在可视化方法上,开发人员不仅可以将方差、簇间距离等数值化指标解释性呈现,也可以通过簇间探索性交互比较,评估聚类效果的好坏,辅助专家进行再聚类。
水文与气象领域对可视化手段的引入提升了专业人士对数据的分析能力。研究人员采用柱状图或折线图体现单一气象分子的分析。聚类交互方面,学者一般会关注气象信息的集成预测,而不是自然条件的分区变化。而对于自然分区,研究者一般使用arcgis等地理信息管理软件直接将分区的结果以单一的地图视图做分布呈现,难以有良好的交互和解释效果。
上述关于地理分区、气象因子分析和气象聚类交互的研究方法有很多不足之处。首先,地理分区的应用要求对分析任务有针对性地选取聚类指标,而基于气象因子的自然分区研究中的气象因子选取过少,并且地理分区的研究往往忽略自然指标随时间变化的事实,导致结果缺乏客观性、时代性。其次,水文气象领域的专家自行进行聚类分区之后难以有效进行客观评估,只能依据自身行业经验粗略判断,且无法低成本地调整结果。此外,气象因子研究和气象聚类系统缺少对气象因子和气象数据的交互可视化方法,不便于研究者分析,结果的直观性和可解释性也不足。
技术实现要素:
本发明所要解决的技术问题是提供一种基于气象数据的自然分区可视化方法,不仅可为用户提供自然分区(相似气候)结果,还可实现气候相似区域的时序探索,进一步得出气候特征分布、代表站点等的客观有效的解释性信息。
为解决上述技术问题,本发明采用的技术方案是:
一种基于气象数据的自然分区可视化方法,包括以下步骤:
s1:数据获取
根据各地气象站点原始数据,清洗筛选有效信息、提炼气象因子,对采集到的气象数据按季度做降维处理,再进行数据结构设计以及数据存储;
s2:数据处理
通过聚类处理与量化评估,利用聚类量化指标对分区全局结果进行评估,计算代表站点的综合与单维相似度,生成有关集群、簇、点的信息表;
s3:可视化映射
设计全局呈现与定量评估视觉编码,用柱形、雷达图轴截距分别表示分区全局结果和评估数值;设计站点时空分区视觉编码,用地理视图的散点和时间轴点选分别表示地理环境中站点位置和选中时间范围;设计点簇关系视觉编码,用气泡、箭头、柱状、平行坐标线条分别表示区域内气象因子相似度、气象因子属性分布、站点数、区域间气象因子属性分布;
s4:可视化布局
依据用户选取的时段与簇数范围,通过堆叠柱状图模型输出聚类全局呈现映射,将全局序号、堆叠柱状图模型、定量评估雷达图模型三者对应成行,完成分区全局呈现与评估可视化布局;
设置全局序号与地理视图的关联关系,设置时间轴点选与簇号、运行按钮的关联关系,通过墨卡托投影,将站点经纬度映射到二维地图上,映射聚类的簇序号到站点颜色上,完成分区时空可视化布局;
对簇内代表点综合相似度排序,映射为站点轴的前后顺序,计算气象因子单维相似度到气泡半径的映射,将该时期中簇内各个气象因子的均值、上四分位数、下四分位数映射为平行坐标系的线条和单轴箭头图的箭头,为簇和站点的数值映射不同的箭头颜色,完成点簇关系可视化布局。
进一步地,在步骤s1中,数据获取与清洗具体为:
s11:选取较为完善的站点,确立站点的名称、坐标信息,完成站点信息表;
s12:采集每个气象站点五十年中六个气象因子的逐日气象数据,完成气象数据表,气象因子包括风速、日照时数、最高温度、最低温度、相对湿度、降雨量;
s13:对于每个气象站点在聚类时间单元内的逐日数据按季度取平均值,若有缺失数据则将前后相邻年份该季度数据取均值进行填充,完成以季度为单位的降维工作,形成气象季度数据表。
进一步地,在步骤s2中,数据处理包括:
s21:针对数据特点及气象属性,对数据进行2-12个簇的k-means聚类处理,之后对每次聚类分区结果计算五个评估指标并将其各自归一化、写入数据库,生成有关分区全局结果的信息表;
s22:计算簇的特征包括六个气象因子各自的上四分位数、下四分位数、簇内站点均值三项统计学指标,完成簇信息表;
s23:处理簇内六个气象因子与簇均值的单相似度以及气象因子整体的余弦相似度,并以一个簇为单位进行归一化处理,完成站点信息表;
s24:根据站点信息与研究属性的对应关系,进行数据库结构设计;
s25:将所提取的有效信息、选择的气象因子等对应的数据及结构导入mysql数据库中。
进一步地,在步骤s3中,全局呈现与定量评估包括:簇数控制模块、每行全局结果的簇号、划分结果和量化评估;簇数控制模块包括可拖动的滑块、簇数区间的数字、重运行按钮;在每行全局结果中,簇号直接表示为数字,划分结果用堆叠柱状图表示,单个柱状的长度和颜色表示该簇内站点的数目和所属关系,量化评估由雷达图表示,五个轴分别对应五个评估指标归一化后的数值。
进一步地,在步骤s3中,站点时空分区视觉包括:地理视图和时间轴点选模块;地理视图由真实地理环境保留省界国界经墨卡托投影映射而来,其上的散点位置由站点的经纬度映射而成,散点的颜色与所属簇的颜色对应;时期轴由十个箭头图案组成。
进一步地,在步骤s3中,点簇关系视觉包括:代表站点排序视图、点簇属性视图、簇间属性视图;代表站点排序视图中,每行轴代表一个站点,气象因子的综合余弦相似度映射为轴的排序,气象因子的单维相似度映射为轴上对应因子气泡的大小,气泡的颜色对应所属簇的颜色;点簇属性视图中,每行轴代表一个气象因子;簇间属性视图中,柱状图的长度表示簇内站点数,其前方的簇名可勾选,平行坐标系代表该时期下所选中簇在六个气象因子维度上的平均数值,折线颜色对应簇的颜色,从中用户也可依据簇间属性的分离程度主观评估分区的结果。
进一步地,所述步骤s4具体为:
s41:将用户的簇数选择区间设计为两个可拖动的滑块,链接簇数、时期和滑块,输出簇数选择视图,设计堆叠柱状图,其颜色与地理视图对应,储存集群呈现信息,渲染并输出其呈现视图,完成全局呈现与定量评估可视化布局;
s42:使用墨卡托投影法读取地图信息到二维平面,读取站点信息,由聚类呈现视图传入的簇号按站点查询颜色,进行可视化渲染,输出地理视图,完成站点时空分区呈现可视化布局;
s43:设计多轴气泡图、多轴箭头图和平行坐标系分别代表各站点气象因子余弦相似度排序、点簇属性分布关系和簇间特征比较,渲染并输出其视图,完成点簇关系可视化布局。
进一步地,在步骤s4中,全局呈现与定量评估可视化布局的实现过程为:
s41a:设置滑块拖动效果,设置rerun按钮,连接滑块位置与簇数、时期与rerun按钮的触发;
s41b:获取rerun按钮按动时的簇数区间和时期范围,查找簇号和时期对应的分区全局结果序号;
s41c:查找全局结果序号对应的聚类方法、簇的种类数、五个评估指标以及每个簇的属性,包括簇序号、颜色、簇内站点数;
s41d:渲染输出全局呈现与定量评估相关视觉通道:包括簇数控制模块、每行全局结果的簇号、划分结果和量化评估;簇数控制模块包括可拖动的滑块、簇数区间的数字、重运行按钮rerun;在每行全局结果中,簇号直接表示为数字,划分结果用堆叠柱状图表示,单个柱状的长度和颜色表示该簇内站点的数目和所属关系,量化评估由雷达图表示;
s41e:设置每行的“点选后背景变暗”以及点击rerun后刷新该部分视图的效果。
进一步地,在步骤s4中,站点时空分区呈现可视化布局的实现过程为:
s42a:以中国西南五省为中心的缩放粒度,将世界地图保留国界和省界,采用墨卡托投影方法投影到二维平面;依据站点的纬度、经度、站点名称、所属簇的颜色映射到地图上,设置鼠标滚轮缩放功能,设置鼠标悬浮显示站点名称;输出地理视图;
s42b:竖直依次放置十个箭头作为时期轴,每个时期块右侧绘制该聚类时期的开始年份;设置选中效果,将选中的时期箭头映射为聚类的时期传入全局呈现与定量评估布局中;输出时期轴视图;
s42c:设置点选堆叠柱状图后刷新站点地理分区时空视图,并更新地理视图左上方的全局结果序号。
进一步地,在步骤s4中,点簇关系可视化布局的实现过程为:
s43a:鼠标点击地理视图的站点后,获取该站点所属簇的簇序号、颜色,另有同属该簇的所有站点的区站号、站点名称、站点数目、站点整体的余弦相似度以及单个气象因子的相似度;
s43b:设置代表性站点视图中的六行轴;在簇内查找站点余弦相似度最高的六个站点并排序;将站点名称标注在轴的左侧,依次将单个气象因子的相似度映射为气泡的大小绘制的轴上,气泡的颜色对应簇的颜色;
s43c:在s43a步骤中同步获得该站点的区站号所属簇的簇序号;借由簇序号获取同属该簇的所有站点每季度的气象因子数据;
s43d:计算一个时期每个簇内所有站点气象因子的上四分位数、均值、下四分位数,计算该时期内该站点区站号下气象因子的均值;
s43e:设置点簇属性关系视图中的六行轴;将六个气象因子标注在轴的左侧,依据该气象因子最大最小值将轴线映射为数轴;将站点在每个气象因子下的均值在数轴上用蓝色箭头表示,附以数值;将簇在每个气象因子下的上四分位数、均值、下四分位数在数轴上用三个红色箭头表示,附以数值;
s43f:设置鼠标点击地理视图的站点后刷新代表性站点视图和点簇属性关系视图;
s43g:点选堆叠柱状图后获取全局结果序号下所有簇的簇序号、颜色、包含的站点数,以及包含s43d中所计算的簇属性均值;
s43h:设置簇间比较的柱状图区域,行数按分区结果中的簇数的最大值定义;对于每行视图,布局为勾选框、“cluster 簇号”、柱状图;簇内站点总数、颜色映射为柱状图的长度和颜色;
s43i:绘制平行坐标系;平行坐标系由六个坐标轴组成,对应六个气象因子;将簇属性的均值和颜色映射为平行坐标系中的折线;
s43j:设置全局呈现与定量评估布局中堆叠柱状图点选后刷新簇间关系比较视图。
与现有技术相比,本发明的有益效果是:
1)本发明弥补了现状中存在的自然地理分区过程中气象因子选取过少,数据缺乏时代性和客观性的不足。该可视化方法考虑气象因子的时代性,捕捉到六个气象因子作为聚类分区的指标;此外,该方法以干湿震荡周期为时间单位聚类,有多个时间段供用户灵活选取,使分区结果兼具客观性和时代性。如此不仅能探索不同相似气候区域的空间分布,更能分析同一相似气候区域的时序演进。
2)本发明弥补了用户专家无法进行客观评估、也无法根据评估情况低成本调整分区结果的不足。该可视化方法设计通过五种聚类评估指数和三种视图相结合的聚类评估方法,方便专家在客观评定的基础上融合自身行业经验,重新调整分区策略,获取最为适宜的结果。
3)本发明弥补了现状中气象因子和气象聚类研究缺乏系统性的不足,以1967-2016年西南五省114个气象站点逐日逐年的气象数据为例,能够基于本方法,构建实现基于气象数据的自然分区可视化分析系统。该方法在传统分区运行结果的框架之外,有效提高了操作过程的用户友好性和交互性,在结果分析尤其是点簇关系上提高了分区结果的直观性、可解释性。
附图说明
图1为本发明基于气象因子自然分区的可视化方法框架。
图2为采用本发明可视化方法后的整体效果示意图。
图3是本发明中全局呈现与定量评估示意图。
图4是本发明中站点分区时空可视化示意图。
图5是本发明中簇内代表站点排序示意图。
图6是本发明中点簇属性分布示意图。
图7是本发明中簇间特征比较示意图一。
图8是本发明中簇间特征比较示意图二。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细说明。
本发明通过有效的信息可视化方法,结合多视图联动策略以及灵活的交互手段,实现自然分区交互式可视分析方法,包括:数据采集与清洗,数据处理与存储,可视化映射,可视化布局实现,具体如下:
一、数据采集与清洗
根据各地气象站点原始数据,筛选有效信息、提炼气象因子。
1、获取数据。气象数据以一个站点为单位存储为xls文件,包含45年逐日数据,共1万6千行左右。文件的原始字段有:scode、yyyy、mm、day、wind等。数据包含的字段为区站号、站台名称、省份、纬度、经度、海拔、开始年月、截止年月、缺测情况。
2、以原始数据记录的完整度确立气象站点。筛选出数据较为完整的114个西南五省站点气象数据,以及比较关注的六个气象因子(风速wind、日照时数tsun、最高温度tmax、最低温度tmin、相对湿度rh、降雨量rain)。完成站点信息表station_info。
3、按照确立的气象站点,保存其对应的逐日气象信息,完成气象数据表stastion_all。
二、数据处理与存储
1、数据降维预处理
由于站点运行的各方面因素,存在气象站点缺少一些逐日数据的情况,这使得各个站点的时序气象因子属性长度参差不齐,并且过高的维度不利于后续聚类的进行。出于以上两个方面的考虑,本方法将每个气象站点在聚类时间单元内的逐日数据按季度取均值,保留气象数据的季度周期特点。
1)对于每个气象站点在聚类时间单元内的逐日数据按季度取平均值;
2)个别站点如果缺乏整个季度数据,则该均值取前一年对应季度均值和后一年对应季度均值的算数平均数;
3)完成以季度为单位的预处理,完成气象季度数据表scode_quarter。
2、聚类处理与量化评估
将同一时期内114个站点的逐季度气象数据在本节中建立并维护在一张多维列表all_data中,作为每次聚类的对象。其中,行是各个站点(114行),列为六个气象因子逐季度的值(20*6列),即114条数据、每条120个属性。
1)对数据进行2-12个簇的k-means聚类处理。结果中,clusters_id是一串整型数字,表示一次分区全局结果的整体序号,其编码意义为:分期时段 聚类方法 簇数,如412含义为第四个时期(1982-1986年)使用k-means方法分为两个簇的结果。result表示站点所属簇号,即站点所在的相似气候区域的编号,从0开始编码。color表示该簇的颜色,依据簇序号和已有的颜色列表为每个簇分配颜色。伪代码如下:
for每种聚类簇数kinrange(2,13)
foreachitemindata_all
kmeans=kmeans(n_clusters=k,random_state=0).fit(item)
获取聚类标签result=kmeans.
获取聚类中心center=kmeans.cluster_centers_
2)对每次分区结果(一个clusters_id)计算五个聚类评估指标(calinski-harabazindex、silhouettecoefficient、davies-bouldinindex、compactness、separation)并归一化调整。完成分区全局的数据表clusters_info。
ch=metrics.calinski_harabaz_score(item,labels)
forjin(0,ch的长度)#归一化处理
c[j]=(ch(j)min(ch))/(max(ch)min(ch))
sc=metrics.silhouette_score(item,labels)
forjin(0,ch的长度)#归一化处理
c[j]=(ch(j)min(ch))/(max(ch)min(ch))
db=metrics.davies_bouldin_score(item,labels)
forjin(0,ch的长度)#归一化处理并对越小越好的指标取反
c[j]=1--(ch(min(ch))/(max(ch)min(ch))
sp=sp.sp(center)
forjin(0,ch的长度)#归一化处理并对越小越好的指标取反
c[j]=1-(ch(min(ch))/(max(ch)min(ch))
cp=kmeans.inertia_/len(item)
forjin(0,ch的长度)#归一化处理
c[j]=(ch(j)min(ch))/(max(ch)min(ch))
3、点簇特征处理
对于一个分区全局来说,要处理簇间关系、点簇属性分布关系、代表站点。这三种关系的属性计算后将存储在簇信息表cluster_info和点信息表point_info中。
点的特征主要体现在与簇内各气象因子均值的相似程度,包括六个气象因子的单相似度以及气象因子整体的余弦相似度。出于视图映射需要,所有的相似度之后以一个簇为单位进行归一化处理。
1)簇的特征包括六个气象因子的各自的上四分位数、下四分位数、所含的均值。计算后存储为簇信息表cluster_info。伪代码如下:
在cluster_info表中查找clusters_id、result
生成列表结构:
clusters_id[],result
foreachiinrange(0,len(clusters_id)):#对于每个集群的每个簇
在point_info表中查找scode,条件是第i个clusters_id和第i个result
生成列表结构:scode[]
foreachjinrange(0,len(scode[])):
在clusters_info表中查找time,条件是对应第i个clusters_id
生成当前时期的date年季度范围:datemax和datemin
在scode_quarter表中查询wind,tsun,tmax,tmin,rh,rain条件是datemin<=date=datemax
将查询结果生成列表并追加wind[],tsun[],tmax[],tmin[],rh[],
#计算簇内特征:计算簇内特征:
wind_max=np.percentile(wind,75)
wind_max=np.percentile(wind,75)
wind_min=np.percentile(wind,25)wind_min=np.percentile(wind,25)
wind_mean=np.mean(wind)
wind_mean=np.mean(wind)
……
……
rhrain=np.mean(np.mean(rainrain))
2)站点的特征包括与簇均值相比,各个气象因子的单维相似度以及气象因子的余弦相似度,得到所有相似度后以一个簇为单位进行归一化处理,完成站点信息表point_info。其中,整体余弦相似度的计算公式为:
用伪代码表示为:
在point_info表中查找clusters_id,scode,result
生成列表结构:clusters_id[],scode[],result[],
foreachiinrange(0,len(clusters_id)):
在clusters_info表中查找time,条件是对应第i个clusters_id
生成当前时期的date年季度范围:datemax和datemin
在scode_quarter表中查询wind,tsun,tmax,tmin,rh,rain条件是datemin<=date<
datemax,且scode[i]与之对应
生成列表并计算这20个季度的均值:wind=np.mean(wind)……,形成point_cos
在cluster_info表中查找wind_mean等簇的均值,条件是clusters[i]和result[i]
与之对应,获得clusters_mean
foreachjinrange(0,len(point_cos)):
point_cos=point_cos-clusters_mean)#相似距离
#追加余弦相似度
point_cos.append(cosine_similarity([point_info,cluster_info])[0][1]
#归一化
max_wind_cos=max(wind_cos)……获取一个簇内一个因子相似距离的最大值
min_wind_cos=min(wind_cos)……获取一个簇内一个因子相似距离的最小值
foreachminrange(0,len(scode)):
wind_cos[k]=1-wind_cos[k]/(max_wind_cos_min_wind_cos)获得相似度
捕捉一个簇只有一个站点的情况,各维度相似度置1
在point_info表中更新wind_cos……mean_cos的值,条件是与clusters_id[i]和scode[i]对应
4、数据结构设计
1)根据气象数据特点,如每个站点分别对应一个逐日和逐季度的气象数据表、每个分区全局表对应多个簇信息表、每个簇信息表对应多个点信息表,设计数据库实体关系模型。
2)将所提取的气象信息、处理后的数据等按对应的数据结构导入mysql数据库中。伪代码如下:
在station_all表中插入scode、name、la、lo。
在station_info表中插入scode、yyyy、mm、day、wind、tsun、tmax、tmin、rh、rain。
在clusters_info表中插入clusters_id、method、time、ch、sc、db、sp、cp
在point_info表中插入clusters_id、scode、result、wind_cos、tsun_cos、tmax_cos、tmin_cos、rh_cos、rain_cos、mean_cos。
在cluster_info表中插入clusters_id、result、color、wind_max、wind_min、wind_mean、tsun_max、tsun_min、tsun_mean、tmax_max、tmax_min、tmax_mean、tmin_max、tmin_min、tmin_mean、rh_max、rh_min、rh_mean、rain_max、rain_min、rain_mean。
三、可视化映射
1)可视化映射针对六个气象因子的数据特征和统计学指标,包括站点分区时空可视化、集群呈现与定量评估可视化、点簇关系可视化等三大可视化方法;由聚类呈现的试图传入的簇号按站点查询颜色,将la、lo映射为地图上的位置,color映射为点的颜色,可视化渲染输出地理视图,time映射为时间块的点选属性,输出时间轴试图;由储存集群信息,映射cluster_sum到堆叠状图的个数,映射scode_sum到柱状图的长度,渲染并输出集群呈现视图。
2)查找clusters_id对应五个指标(ch、sc、db、cp、sp),映射归一化后的指标到雷达图的五个轴上;将气象因子单维相似度映射为气泡的大小、将综合余弦相似度映射为多轴气泡图的排序,渲染并输出簇内代表点排序视图,将wind等时期的均值映射到盒型图竖线上,渲染并输出点簇属性分布视图。
3)设置关联return按钮,链接簇数、时期与return按钮的触发,设置点选联动组件,链接method到地理视图左上角文本框,链接clusters_id到地理视图。在簇间关系比较中,设置勾选组件,按簇号排序,左侧提供勾选框用于展示簇,右侧提供簇内站点数提高解释性,在比较簇间各自特点的同时,用户也可基于簇的分离情况对聚类效果进行主观评价。
四、可视化布局
使用墨卡托投影法读取地图信息到二维平面,读取站点信息,由聚类呈现视图传入的簇号按站点查询颜色,进行可视化渲染,输出地理视图,完成站点分区时空呈现可视化布局;将用户的簇数选择区间设计为两个可拖动的滑块,链接簇数、时期和滑块,输出簇数选择视图,设计堆叠柱状图,其颜色与地理视图对应,储存集群呈现信息,渲染并输出其呈现视图,完成集群呈现与定量评估可视化布局;设计多轴气泡图、多轴箭头图和平行坐标图分别代表各站点气象因子余弦相似度排序、点簇属性分布关系和簇间关系比较,渲染并输出其视图,完成点簇关系可视化布局。具体如下:
1、站点分区时空呈现可视化布局:
墨卡托投影是一种等角度的圆柱投影。该投影在地轴方向拟合了一个圆柱体,并以圆柱轴心为放射中心,将地球的经纬网映射到圆柱体表面上使得外围的角度保持一致,圆柱表面的地球投影就是所求的地图。本方法从气象站点分布的实际需求出发,以墨卡托投影作为站点到地图的映射方法。在这个过程中,经纬度
x=λ-λ0
2、全局呈现与定量评估设计与实现可视化布局
1)设置滑块拖动效果,设置rerun按钮,连接滑块位置(position)与簇数(result)、时期(time)与rerun按钮的触发;
2)获取rerun按钮按动时的簇数区间(cluster_sum)和时期(time)范围,查找簇号(result)和时期(time)对应的分区全局结果序号(clusters_id);
3)查找全局结果序号(clusters_id)对应的聚类方法(method)、簇的种类数(cluster_sum)、五个评估指标(ch、sc、db、cp、sp)以及每个簇的属性,包括result(簇序号)、color(颜色)、scode_sum(簇内站点数);
4)渲染输出全局呈现与定量评估相关视觉通道;
5)设置每行的“点选后背景变暗”效果。
3、点簇关系可视化布局:
1)鼠标点击地理视图的站点后,获取该站点所属簇的簇序号(result)、颜色(color),另有同属该簇的所有站点的区站号(scode)、站点名称(name)、站点数目(scode_sum)、站点整体的余弦相似度(mean_cos)以及单个气象因子的相似度(wind_cos、tsun_cos、tmax_cos、tmin_cos、rh_cos、rain_cos)。
2)设置代表性站点视图中的六行轴。在簇内查找站点余弦相似度(mean_cos)最高的六个站点并排序。将站点名称(name)标注在轴的左侧,依次将单个气象因子的相似度(wind_cos、tsun_cos、tmax_cos、tmin_cos、rh_cos、rain_cos)映射为气泡的大小绘制的轴上,气泡的颜色对应簇的颜色(color)。
3)在1)步骤中同步获得该站点的区站号(scode)所属簇的簇序号(result)。借由簇序号获取同属该簇的所有站点每季度的气象因子数据(wind、tsun、tmax、tmin、rh、rain)。
4)计算一个时期每个簇内所有站点(共20个季度的)气象因子的上四分位数、均值、下四分位数(如wind_max、wind_mean、wind_min等),计算该时期内该站点区站号(scode)下(20个季度的)气象因子的均值(wind_quar_mean、tsun_quar_mean、tmax_quar_mean、tmin_quar_mean、rh_quar_mean、rain_quar_mean)。
5)设置代表性站点视图中的六行轴。将六个气象因子(风速wind、日照时数tsun、最高温度tmax、最低温度tmin、相对湿度rh、降雨量rain)标注在轴的左侧,依据该气象因子最大最小值将轴线映射为数轴。将站点在每个气象因子下的均值在数轴上用蓝色箭头表示,附以数值;将簇在每个气象因子下的上四分位数、均值、下四分位数在数轴上用三个红色箭头表示,附以数值。
6)设置鼠标点击地理视图的站点后刷新代表性站点视图和点簇属性关系视图。
7)点选堆叠柱状图后获取全局结果序号(clusters_id)下所有簇的簇序号(result)、颜色(color)、包含的站点数(cluster_sum),以及包含s43d中所计算的簇属性均值(wind_mean、tsun_mean、tmax_mean、tmin_mean、rh_mean、rain_mean)。
8)设置簇间比较的柱状图区域,行数按分区结果中的簇数(result)的最大值定义。对于每行视图,布局为勾选框、“cluster 簇号(result)”、柱状图。簇内站点总数(cluster_sum)、颜色(color)映射为柱状图的长度和颜色。
9)绘制平行坐标系。平行坐标系由六个坐标轴组成,对应六个气象因子(风速wind、日照时数tsun、最高温度tmax、最低温度tmin、相对湿度rh、降雨量rain)。将簇属性的均值(wind_mean、tsun_mean、tmax_mean、tmin_mean、rh_mean、rain_mean)和颜色(color)映射为平行坐标系中的折线。
10)设置全局呈现与定量评估布局中堆叠柱状图点选后刷新簇间关系比较视图。
1.一种基于气象数据的自然分区可视化方法,其特征在于,包括以下步骤:
s1:数据获取
根据各地气象站点原始数据,清洗筛选有效信息、提炼气象因子,对采集到的气象数据按季度做降维处理,再进行数据结构设计以及数据存储;
s2:数据处理
通过聚类处理与量化评估,利用聚类量化指标对分区全局结果进行评估,计算代表站点的综合与单维相似度,生成有关集群、簇、点的信息表;
s3:可视化映射
设计全局呈现与定量评估视觉编码,用柱形、雷达图轴截距分别表示分区全局结果和评估数值;设计站点时空分区视觉编码,用地理视图的散点和时间轴点选分别表示地理环境中站点位置和选中时间范围;设计点簇关系视觉编码,用气泡、箭头、柱状、平行坐标线条分别表示区域内气象因子相似度、气象因子属性分布、站点数、区域间气象因子属性分布;
s4:可视化布局
依据用户选取的时段与簇数范围,通过堆叠柱状图模型输出聚类全局呈现映射,将全局序号、堆叠柱状图模型、定量评估雷达图模型三者对应成行,完成分区全局呈现与评估可视化布局;
设置全局序号与地理视图的关联关系,设置时间轴点选与簇号、运行按钮的关联关系,通过墨卡托投影,将站点经纬度映射到二维地图上,映射聚类的簇序号到站点颜色上,完成分区时空可视化布局;
对簇内代表点综合相似度排序,映射为站点轴的前后顺序,计算气象因子单维相似度到气泡半径的映射,将该时期中簇内各个气象因子的均值、上四分位数、下四分位数映射为平行坐标系的线条和单轴箭头图的箭头,为簇和站点的数值映射不同的箭头颜色,完成点簇关系可视化布局。
2.根据权利要求1所述的一种基于气象数据的自然分区可视化方法,其特征在于,在步骤s1中,数据获取与清洗具体为:
s11:选取较为完善的站点,确立站点的名称、坐标信息,完成站点信息表;
s12:采集每个气象站点五十年中六个气象因子的逐日气象数据,完成气象数据表,气象因子包括风速、日照时数、最高温度、最低温度、相对湿度、降雨量;
s13:对于每个气象站点在聚类时间单元内的逐日数据按季度取平均值,若有缺失数据则将前后相邻年份该季度数据取均值进行填充,完成以季度为单位的降维工作,形成气象季度数据表。
3.根据权利要求1所述的一种基于气象数据的自然分区可视化方法,其特征在于,在步骤s2中,数据处理包括:
s21:针对数据特点及气象属性,对数据进行2-12个簇的k-means聚类处理,之后对每次聚类分区结果计算五个评估指标并将其各自归一化、写入数据库,生成有关分区全局结果的信息表;
s22:计算簇的特征包括六个气象因子各自的上四分位数、下四分位数、簇内站点均值三项统计学指标,完成簇信息表;
s23:处理簇内六个气象因子与簇均值的单相似度以及气象因子整体的余弦相似度,并以一个簇为单位进行归一化处理,完成站点信息表;
s24:根据站点信息与研究属性的对应关系,进行数据库结构设计;
s25:将所提取的有效信息、选择的气象因子等对应的数据及结构导入mysql数据库中。
4.根据权利要求1所述的一种基于气象数据的自然分区可视化方法,其特征在于,在步骤s3中,全局呈现与定量评估包括:簇数控制模块、每行全局结果的簇号、划分结果和量化评估;簇数控制模块包括可拖动的滑块、簇数区间的数字、重运行按钮;在每行全局结果中,簇号直接表示为数字,划分结果用堆叠柱状图表示,单个柱状的长度和颜色表示该簇内站点的数目和所属关系,量化评估由雷达图表示,五个轴分别对应五个评估指标归一化后的数值。
5.根据权利要求1所述的一种基于气象数据的自然分区可视化方法,其特征在于,在步骤s3中,站点时空分区视觉包括:地理视图和时间轴点选模块;地理视图由真实地理环境保留省界国界经墨卡托投影映射而来,其上的散点位置由站点的经纬度映射而成,散点的颜色与所属簇的颜色对应;时期轴由十个箭头图案组成。
6.根据权利要求1所述的一种基于气象数据的自然分区可视化方法,其特征在于,在步骤s3中,点簇关系视觉包括:代表站点排序视图、点簇属性视图、簇间属性视图;代表站点排序视图中,每行轴代表一个站点,气象因子的综合余弦相似度映射为轴的排序,气象因子的单维相似度映射为轴上对应因子气泡的大小,气泡的颜色对应所属簇的颜色;点簇属性视图中,每行轴代表一个气象因子;簇间属性视图中,柱状图的长度表示簇内站点数,其前方的簇名可勾选,平行坐标系代表该时期下所选中簇在六个气象因子维度上的平均数值,折线颜色对应簇的颜色,从中用户也可依据簇间属性的分离程度主观评估分区的结果。
7.根据权利要求1所述的一种基于气象数据的自然分区可视化方法,其特征在于,所述步骤s4具体为:
s41:将用户的簇数选择区间设计为两个可拖动的滑块,链接簇数、时期和滑块,输出簇数选择视图,设计堆叠柱状图,其颜色与地理视图对应,储存集群呈现信息,渲染并输出其呈现视图,完成全局呈现与定量评估可视化布局;
s42:使用墨卡托投影法读取地图信息到二维平面,读取站点信息,由聚类呈现视图传入的簇号按站点查询颜色,进行可视化渲染,输出地理视图,完成站点时空分区呈现可视化布局;
s43:设计多轴气泡图、多轴箭头图和平行坐标系分别代表各站点气象因子余弦相似度排序、点簇属性分布关系和簇间特征比较,渲染并输出其视图,完成点簇关系可视化布局。
8.根据权利要求7所述的一种基于气象数据的自然分区可视化方法,其特征在于,在步骤s4中,全局呈现与定量评估可视化布局的实现过程为:
s41a:设置滑块拖动效果,设置rerun按钮,连接滑块位置与簇数、时期与rerun按钮的触发;
s41b:获取rerun按钮按动时的簇数区间和时期范围,查找簇号和时期对应的分区全局结果序号;
s41c:查找全局结果序号对应的聚类方法、簇的种类数、五个评估指标以及每个簇的属性,包括簇序号、颜色、簇内站点数;
s41d:渲染输出全局呈现与定量评估相关视觉通道:包括簇数控制模块、每行全局结果的簇号、划分结果和量化评估;簇数控制模块包括可拖动的滑块、簇数区间的数字、重运行按钮rerun;在每行全局结果中,簇号直接表示为数字,划分结果用堆叠柱状图表示,单个柱状的长度和颜色表示该簇内站点的数目和所属关系,量化评估由雷达图表示;
s41e:设置每行的“点选后背景变暗”以及点击rerun后刷新该部分视图的效果。
9.根据权利要求7所述的一种基于气象数据的自然分区可视化方法,其特征在于,在步骤s4中,站点时空分区呈现可视化布局的实现过程为:
s42a:以中国西南五省为中心的缩放粒度,将世界地图保留国界和省界,采用墨卡托投影方法投影到二维平面;依据站点的纬度、经度、站点名称、所属簇的颜色映射到地图上,设置鼠标滚轮缩放功能,设置鼠标悬浮显示站点名称;输出地理视图;
s42b:竖直依次放置十个箭头作为时期轴,每个时期块右侧绘制该聚类时期的开始年份;设置选中效果,将选中的时期箭头映射为聚类的时期传入全局呈现与定量评估布局中;输出时期轴视图;
s42c:设置点选堆叠柱状图后刷新站点地理分区时空视图,并更新地理视图左上方的全局结果序号。
10.根据权利要求7所述的一种基于气象数据的自然分区可视化方法,其特征在于,在步骤s4中,点簇关系可视化布局的实现过程为:
s43a:鼠标点击地理视图的站点后,获取该站点所属簇的簇序号、颜色,另有同属该簇的所有站点的区站号、站点名称、站点数目、站点整体的余弦相似度以及单个气象因子的相似度;
s43b:设置代表性站点视图中的六行轴;在簇内查找站点余弦相似度最高的六个站点并排序;将站点名称标注在轴的左侧,依次将单个气象因子的相似度映射为气泡的大小绘制的轴上,气泡的颜色对应簇的颜色;
s43c:在s43a步骤中同步获得该站点的区站号所属簇的簇序号;借由簇序号获取同属该簇的所有站点每季度的气象因子数据;
s43d:计算一个时期每个簇内所有站点气象因子的上四分位数、均值、下四分位数,计算该时期内该站点区站号下气象因子的均值;
s43e:设置点簇属性关系视图中的六行轴;将六个气象因子标注在轴的左侧,依据该气象因子最大最小值将轴线映射为数轴;将站点在每个气象因子下的均值在数轴上用蓝色箭头表示,附以数值;将簇在每个气象因子下的上四分位数、均值、下四分位数在数轴上用三个红色箭头表示,附以数值;
s43f:设置鼠标点击地理视图的站点后刷新代表性站点视图和点簇属性关系视图;
s43g:点选堆叠柱状图后获取全局结果序号下所有簇的簇序号、颜色、包含的站点数,以及包含s43d中所计算的簇属性均值;
s43h:设置簇间比较的柱状图区域,行数按分区结果中的簇数的最大值定义;对于每行视图,布局为勾选框、“cluster 簇号”、柱状图;簇内站点总数、颜色映射为柱状图的长度和颜色;
s43i:绘制平行坐标系;平行坐标系由六个坐标轴组成,对应六个气象因子;将簇属性的均值和颜色映射为平行坐标系中的折线;
s43j:设置全局呈现与定量评估布局中堆叠柱状图点选后刷新簇间关系比较视图。
技术总结