收藏 分销(赏)

基于Python的气象数据可视化方法应用研究.pdf

上传人:自信****多点 文档编号:634071 上传时间:2024-01-19 格式:PDF 页数:4 大小:1.82MB
下载 相关 举报
基于Python的气象数据可视化方法应用研究.pdf_第1页
第1页 / 共4页
基于Python的气象数据可视化方法应用研究.pdf_第2页
第2页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、2023 年第 7 期32计算机应用信息技术与信息化基于 Python 的气象数据可视化方法应用研究王添男1,2 李新庆2 王艳萍2 孙 芳2 谢雨婷3WANG Tiannan LI Xinqing WANG Yanping SUN Fang XIE Yuting 摘要 多源、异构、海量气象数据,如何实现快速可视化加工分析,提高数据应用价值,已成为气象行业亟待解决的关键性问题之一。基于此,提出了一种结合 Python 工具集与气象大数据云平台(天擎)的气象数据可视化分析方法。首先,采用天擎数据环境作为实验数据集,对气象数据特征进行分析和描述;其次,对数据集进行预处理,实现多源气象数据格式的标准

2、和统一;最后,采用基于 python 的 Matplotlib、Cartopy 等工具集进行开发,实现气象数据的常规可视化应用。结果表明,研究成果能够为用户提供不同维度的气象数据可视化服务。关键词 气象数据;可视化;Matplotlib;Cartopy;工具集 doi:10.3969/j.issn.1672-9528.2023.07.0081.中国气象局旱区特色农业气象灾害监测预警与风险管理重点实验室 宁夏银川 7500212.宁夏气象防灾减灾重点实验室 宁夏银川 7500213.宁夏警官职业学院 宁夏银川 750021 基金项目 中国气象局旱区特色农业气象灾害监测预警与风险管理重点实验室 2

3、020 年科研项目(CAMP-202005);中国气象局旱区特色农业气象灾害监测预警与风险管理重点实验室 2022 年度青年培养项目(CAMT-202204)0 引言数字经济时代,数据在推动社会发展中起到了关键性作用,气象部门利用卫星、雷达、自动气象观测站等现代观测设备每日都可以获得大量气象数据。面对高频次、海量气象数据,充分挖掘和分析数据,才能产生更高的价值、更好地服务于用户。数据展现在数据技术价值链的末端,可直接作用于用户决策过程。数据展现方法的选择会直接决定数据可视化技术的优劣,进而影响数据最终应用和决策1。文本、表格等传统的数据表现形式仅能展示单一维度的数据,影响用户对数据接受和理解的

4、效率,难以满足用户在大量数据中快速获取重点信息的需求。在各类数据展现的方法中,数据可视化技术依靠信息传递速度快、效率高、数据显示多维性、直观性、图形色彩种类丰富等优点被用户所接受。本文使用 Python 从天擎接口获取 2022 年部分地面气象要素数据(结构化数据)以及 NAS 中存储海温数据(非结构化数据),并依赖 Matplotlib、Cartopy 等工具包进行可视化应用研究,通过对气温、海温、湿度、空气质量、风级风向和温湿度等要素的可视化展示,实现气象数据快速、准确的可视化图形绘制,为下一步气象大数据可视化研究提供技术思路。1 基于天擎的气象数据特征分析气象数据从量级、频次、数据类型和

5、数据质量方面,具备大数据 4 V 特征(volume、velocity、variety、veracity)2-4。面对海量气象数据,分析背后的价值显得尤为重要,本文研究的数据集均来自天擎。作为全国气象部门新一代数据环境支撑平台,天擎主要围绕大数据资源进行技术构建,具备海量数据存储、全业务贯通、数据高效应用的能力,可提供“数算一体”的平台化服务5。天擎利用分布式存储技术对各类气象资料数据进行存储,并按照业务应用场景对数据存储进行分类分级,通过数据存储管理网站建设,实现了对数据库、存储结构、权限控制、能力开放等功能。利用数据同步、数据迁移与清除、数据备份与恢复等功能,实现数据的高效流转。天擎中非结

6、构化数据索引信息通过解码程序进入文件索引库,产品文件转存在 NAS 存储中,需要毫秒级服务的实时非结构化数据(雷达、模式、卫星等核心数据)存储在Cassandra 数据库中。文件索引库中存储的信息可进行备份和恢复。当 NAS 存储中的产品文件过期后,系统可以通过数据迁移功能将过期数据删除,并同步修改对应产品文件的索引信息,天擎数据存储流程如图 1 所示。本文非结构化数据通过 NAS 获取海温数据集进行研究和可视化分析。结构化数据主要通过接口调用的方式在大数据云平台获取数据,访问接口是用户从 MUSIC 环境中获得所需资料的必备通道6。不同数据类别对应不同资料接口,主要包含地面、高空、海洋、辐射

7、、农业气象、大气成分等 14 类资料,且服务接口采用 RESTFul、能力开放 API 等调用方式,为用户提供在线数据下载或查阅服务。本文结构化数据通过接口获取地面资料进行可视化分析,数据名称为 SURF_CHN_MUL_HOR(中国地面逐小时数据)、SURF_CHN_MUL_DAY(中国 2023 年第 7 期33计算机应用信息技术与信息化地面日值数据),服务接口采用 getSurfEleByTime(按时间检索地面数据要素),共选择 TEM_Avg(平均气温)、RHU_Avg(平均相对湿度)、WIN_D(风向)、WIN_S(风速)等关键要素进行分析。2 气象数据可视化工具选型本文在前期对常

8、用的可视化工具进行工具选型,以适合气象行业应用需求。目前,广泛使用的可视化工具产品有多种多样,由于使用方法、适应范围、产品底层架构、服务目标分类标准不同而区分不同的工具,详情可见表 1。表 1 可视化工具分类表分类标准工具类型分类 1举例分类 2举例使用方法工具开箱即用TableauGephi代码开发使用D3.jseChartsMatplotlib适应范围泛用类D3.jseChartsTableauMatplotlib领域专业类Gephi(关系分析)产品底层架构平台性工具TableauGephi插件性能工具D3.jseChartsMatplotlib服务目标统计图形D3.jseChartsGe

9、phiMatplotlib信息图Tableau表 1 对常见的几类可视化工具进行对比说明:D3(Data-Driven Documents)在数据和文档之间承担驱动程序的角色7,以代码为主进行开发,有良好的插件接口、可扩展性较强,但对使用者有编程的要求;Echarts 使用一种配置式为主的代码开发模式,入手难度较 D3 框架低,对个性化定制的支持有限,值得在一些无过多定制需求、需要快速开发的项目中使用;Tableau 是一款专注于结构化数据的快速可视化工具,可安装即用,支持多种数据源且适配于多个领域。因不支持代码级别操作,在数据细节展示控制以及可视化效果调节方面不能很好地处理;Gephi 是一

10、款专注于关系分析软件,下载安装之后以工具方式运行,不需要用户拥有代码开发经验,被称为复杂关系分析界的“PhotoShop”。Gephi 主要用于各种网络和复杂系统,动态和分层图的交互可视化8。Python 因其简单易学、免费开源、丰富资源库等优点被广泛应用于各行各业9。Pandas是Python的一个数据分析包,支持快速处理数据的函数;NumPy 是一个运行速度非常快的数学库,主要用于高性能科学计算、数据分析以及数组计算10。Matplotlib 函数库可用于数据可视化展示,支持绘制各种线图、散点图、柱状图、等高线图、条形图、3D 图形等等。Cartopy 函数库用于生成地图和其他地理空间数据

11、分析图形,可提供对 Matplotlib 协作接口,使用最简单直观的方式生成 GIS 地图11-12。综上所述,本文采用 Cartopy、Matplotlib 等 Python 工具依赖包,结合天擎为用户提供不同维度的气象数据可视化服务。3 数据预处理3.1 实验环境本文开发代码和运行环境均在 Linux 系统环境下安装、部署和实施,且下载安装了 Anaconda 用于搭建 python 开发环境。Anaconda 作为 Python 的包和环境的管理器,它涵盖了多种常用的数据科学包,可解决不同版本的 Python 兼容问题、Python 库依赖混乱、环境切换等问题,实现单独虚拟环境的快速创建

12、、保存、加载和切换。具体环境配置清单如下:操作系统:Centos 7 64 位企业版操作系统;处理器:Intel(R)Xeon(R)CPU E7-4830 v4 2.00 GHz;服务器缓存:Redis-3.0;数据库:虚谷数据库。3.2 导入库和数据集本项目中 Python 开发需要的库有 cartopy、matplotlib、numpy、pandas、math 等。数 据 预 处 理 环 节 需 要 借 助numpy、pandas 库进行操作。Numpy 作为很多高级扩展库的基础库主要用于高性能科学计算、数据分析以及数组计算,特别是支持条件运算、矩阵运算、统计运算、数组运算等。Pandas

13、 集成了很多数据处理函数和时间序列分析功能,能够很方便的读取源文件(csv、json、excel、sql 等)、数据判空、自动对齐、分组等功能。使用 Pandas 读取天擎接口获取的原始气象数据集,用表2 中的方法即可。本文从天擎获取当日数据、近 14 天预报的原始气象数据,分别命名为“weather1”“weather14”,因此读取方式为 pd.read_csv(weather14.csv,encoding=gb2312)。表 2 Pandas 读取数据集方法表源文件格式读取方式含义csvpd.read_csv()读取含有逗号分隔值文件格式的数据jsonpd.read_json()读取 j

14、son 类型的数据文件excelpd.read_excel()读取 excel 文件sqlpd.read_sql()读取数据库文件图 1 天擎数据存储流程2023 年第 7 期34计算机应用信息技术与信息化3.3 数据清洗3.3.1 气象数据判空与填充 数据完整对于后期可视化结果呈现的重要性不言而喻,本文使用 pandas 库中提供的 isnull()方法定位空值的位置,若数据集中空值包含多种样式(n/a、NA、-、na),则可对多种样式进行定义。以当日气象数据“温度”判空为例,将含有 na,-的格式都判定为空,方式如下:missing_values=na,-df=pd.read_csv(we

15、ather14.csv,na_values=missing_values)df 温度.isnull()对空数据处理的方式有两种:删除、填充。若是天擎接口返回数据级比较大,而 isnull 方法判断出的空值比较少,对结果展示的影响微乎其微,可直接采用 dropna()方法进行删除。如果对缺失数据进行填充,就需要考虑填充数据的合理性,可按需选用局部平均值(mean方法)、中位数值(median方法)、众数值(mode方法)和算法填充(拉格朗日中值算法)进行补充。3.3.2 清洗错误数据或格式有误数据 数据集的不同列对应不同含义的数据,对出现错误数据进行移除。对日表中小时数据不在 0,23 之间会使

16、用 drop()方法做“行删除”操作。weather14 表中含有天气现象的文本描述以便于后期分析,在数据清洗过程中,若出现非文本字符描述可进行删除。对风级、降雨量、相对湿度、AQI 指数出现远大于合理范围的数据进行删除。3.3.3 数据集成和分组聚合 对气象数据可视化分析以时间点来区别可分为当天数据展示、未来两周天气预测数据可视化展示。因涉及气象数据的属性比较多、对天擎缺失的数据通过其他方式在接口获取等原因导致数据分散在不同的 excel 文件中,这种情况可使用 concat()函数通过级联操作实现文件合并。pandas 提供的分组操作 groupby()方法和数据库语句的 group by

17、 作用相似,运用该方法即可实现所需信息的查询及分组聚合。4 Python 可视化设计与实现4.1 非结构化数据非结构化数据经过解码程序进入文件索引库,产品文件转存在 NAS 存储。本文选取 19812021 年月平均海温数据进行可视化研究分析,NAS 中存储的海温数据集是 NC 文件,该数据集经过插值处理,填补网格空白,并且创建了空间上完整的海面温度图,空间分辨率为0.50.5。实验研究步骤如下。步骤 1:读取 NC 数据集并解析得出四维数组,分别是时间、经度、纬度、SST(海温);步骤 2:对数据集进行降纬操作,获取具体年份数据展开分析;步骤 3:为研究印度洋气候变化、海气关系的具体需求,将

18、 NC 文件转换为 grd文件,选取 20 140 E,60 30 N 范围内数据进行分析,核心代码如下:NetcdfFile ncf=NetcdfFile.open(data/sst.mon.mean.nc);FileOutputStream fos=new Convert_fl oatTobyte f2b=new Convert_fl oatTobyte();float sst=(float)ncf.findVariable(sst).read().copyToNDJavaArray();步骤 4:使用 Matplotlib 对非结构化数据(海温)的图像进行绘制,详见图 2,核心代码如下;

19、plt.contourf(long,lati,data10,:,:)plt.colorbar(label=Sif,orientation=horizontal)plt.show()图 2 1981 年 1 月印度洋海平面温度的可视化(单位:)步骤 5:数据验证,使用 GrADS 软件打开 NC 文件,选取与步骤 2 3 相同时间及范围进行绘图,对比分析图像的准确度,结果显示图像一致。4.2 结构化数据本文结构化数据从天擎提供接口获取地面气象资料,主要实验步骤如下:步骤 1:数据依赖导入(Matplotlib、cartopy 等)、原始数据集读取;步骤 2:对原始数据集进行数据清洗处理环节;步骤

20、 3:数据计算,以绘制日平均风速图为例进行说明,接口获取的是站点小时数据,可通过计算得到日平均风速数据(其他要素同理);步骤 4:使用 cartopy 库进行地理绘图,实现指定区域 GIS 地图上不同气象要素的叠加;步骤 5:使用 matplotlib 库 中 的函数进行不同种类的图像绘制与展示,主要有折线图、柱状图、饼图、玫瑰图、散点图五大类。本文使用 cartopy库 在 宁 夏 GIS 地 图上实现不同气象要素的叠加,包括日平均风速图、日平均气温图、日最低气温等图。图 3 2022 年 4 月 17 日平均风速图 2023 年第 7 期35计算机应用信息技术与信息化以日平均风速图为例进行

21、说明,获取宁夏区域内各站点小时风速数据,计算得出日平均风速。经过插值计算转换成格点数据,之后比对获取色标中对应颜色,通过渲染的方式在不同经纬度填充获取的色标颜色,实现不同区域色彩填充,详见图 3。画图过程中可依赖 cartopy 库中 add_feature()函数给GIS 底图添加各种特征,绘制不同省份区域 GIS 地图核心函数主要有 get_map()、draw_map()两个函数,get_map()函数传入地图名称,返回 MapPolygon 对象被 draw_map()函数接收,draw_map()函数最终调用 plt.plot 执行绘图操作,核心函数关键代码如下:fi g=plt.f

22、i gure(fi gsize=(10,10)ax=fi g.add_subplot(111,projection=ccrs.PlateCarree()draw_map(get_map(宁夏),color=k)plt.savefi g(./prov4.png,bbox_inches=tight)折线图以气象日数据的“温度曲线图”为例进行说明,使用 matplotlib 库中的 plot()函数进行绘制。以时间(小时)为横坐标,温度为纵坐标,温度绘制中设置 plot()函数常规参数:plt.plot(x,y,color=red,label=温度),含义是以数组 x中存放的数据为横坐标(时间),平

23、均温度与之设置相同,只是 linestyle 属性设置为虚线显示。同样使用 plot()函数绘制的折线图,核心代码如下所示,柱状图类似,此处不做赘述。plt.plot(x,y,color=red,label=温度)plt.scatter(x,y,color=red)plt.plot(0,24,tem_ave,tem_ave,c=blue,linestyle=-,label=平均温度)plt.xticks(x)玫瑰图以“风级风向图”为例进行说明,采用 14 天预报数据绘制,此图需要气象数据集的时间、风向、风级三个要素,在图中赋值显示,同时采用 for 循环获取指定范围的风速平均值数据 temp,

24、作为数据极径在图中显示。当日风级风向图、未来 14 天风级风向预报图见图 4。图 4 风级风向图为最终可视化结果的统一展示,绘制不同图的每个方法均调用了 plt.title()函数对每幅图进行命名以及标题样式设置。每幅图都使用到了中文,为解决中文以及特殊符号显示问题,统一在 main 函数中做了如下引用:plt.rcParamsfont.sans-serif=SimHeiplt.rcParamsaxes.unicode_minus=False5 结语数据可视化技术在数据技术价值链的末端,可视化结果能直接为用户决策过程提供有效支撑。因此,研究气象数据可视化技术,充分挖掘气象数据的潜在价值十分必要

25、。本文使用 Python 与天擎对气象数据开展可视化技术研究。首先通过Pandas 对天擎接口获取的气象数据进行预处理与封装,实现多源气象数据格式的标准和统一;其次借助 Matplotlib、Cartopy函数库实现数据可视化展示,通过对气象数据的加工,以色斑图、曲线图、柱状图、散点图、玫瑰图形式将气温、海温、湿度、空气质量、风级风向和温湿度相关性等各个气象要素整合输出,可以快速、准确地得到数据的可视化图形,提高了数据分析处理的效率,为下一步气象大数据可视化研究提供技术思路。参考文献:1 黄玺磊.大数据的最后一公里:数据可视化技术 J.中国金融电脑,2017(02):37-43.2 李社宏.大

26、数据时代气象数据分析应用的新趋势 J.陕西气象,2014(02):41-44.3 古锐昌,丁钰琳.Tableau 在气象大数据可视化分析中的应用 J.广东气象,2017,39(06):40-42.4 沈文海,何文春,孙超.从两个典型应用看气象信息业务的数据工作 J.中国信息化,2017(09):70-76.5 王添男,李新庆,徐晓庆,等.基于气象大数据云平台的自动化告警应用研究J.宁夏工程技术,2021,20(04):352-356.6 张鑫,曹蕾,韩基良.基于 Python 气象数据处理与可视化分析 J.气象灾害防御,2020,27(01):29-33.7 赵聪.可视化库 D3.js 的应用

27、研究 J.信息技术与信息化,2015(02):107-109.8 关迎晖,向勇,陈康.基于 Gephi 的可视分析方法研究与应用 J.电信科学,2013,29(S1):112-119.9 阙金煌.基于 Anaconda 环境下的 Python 数据分析及可视化 J.信息技术与信息化,2021(04):215-218.10 陈路,陈道喜,陆卫忠,等.基于 Python+Matplotlib 的成绩统计设计与实现J.智能计算机与应用,2020,10(08):275-276+280.11 任磊,杜一,马帅,等.大数据可视分析综述 J.软件学报,2014,25(09):1909-1936.12 樊仲欣,姚菊香,姚琦.基于 Python 的矢量天气图自动填图系统设计与实现J.实验室研究与探索,2022,41(09):82-86+145.【作者简介】王添男(1995),女,宁夏固原人,研究生/助理工程师,研究方向:主要从事气象数据应用研究。通讯作者:李新庆(1983),男,陕西周至人,研究生/高工,研究方向:气象数据监控技术应用研究。(收稿日期:2022-12-10 修回日期:2023-01-25)

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服