浅谈python对网络天气预报数据的整合论文_李宝乐1,,宋尧东2

1、2.民航黑龙江空管分局 黑龙江哈尔滨 150079

摘要:本文探讨了python语言在网络天气预报整合方面的应用。主要数据源于彩云天气网站api接口,主要方法是利用python模块抓取json格式的数据,而后整合写入文件,以满足航空气象用户对网路预报的更高要求。

关键词:python 网络天气预报;数值预报;整合

引言

网络是民众获取天气预报与灾害预警等重要信息的有效途径,网络上有着诸多提供气象预报的网站,例如WeatherOnline、ACCUweather、中央气象台、FORECA、Windy以及中国天气等网站。每一类网站有着其独特性,本文围绕着如何将网络途径所获取气象预报更好的应用到工作当中进行了一些探讨和尝试。

大部分天气预报网站用户主体为普通民众,作为航空气象用户对预报产品有着更高的时间分辨率和空间分辨率要求,这是此类网站所不能满足的。航空气象用户更为关注,诸如某机场的风向、风速、温度、降水量、PM2.5等要素每小时的精确变化。此类产品也对提高预报准确率有一定的帮助。

1、数据与工具

本文采用Python3.6对彩云天气网站的后台预报产品进行抓取与处理,访问网站的API接口可以返回得到以json格式存储数值产品,其接口地址为https://api.caiyunapp.com/v2/cTo07LFeR-gtdrRX/126.2442,45.6148/forecast其中126.2442与45.6148为经纬度。彩云天气数据源于中国气象科学数据共享网和欧洲中短期数值预报中心,对机场天气预报有一定参考意义。选用的Python模块有urllib.request、json、io、win32api,其中urllib.request模块用于访问接口抓取数据,json模块用于处理json格式的数据,io模块用于将处理后的数据以写入txt文件,win32api模块用于自动化。

图一 未格式化显示的json源码

2、实现方式

运用浏览器访问接口地址,返回页面的是json格式的字符串,运用在线工具可以更直观的看到其内部存储的数据。如图2 result 标签下有三种数值产品,时间分辨率分别为小时(hourly)、分钟(minutely)和天(daily)。其中小时类产品细分为天气概况(skycon)、云量(cloudrate)、AQI指数(aqi)、相对湿度(humidity)、气压(pres)、PM2.5(pm25)、降水强度(precipitation)风向风速(wind)和温度(temperate)。除风向风速外每一个产品的子标签有两个属性分别为日期(datetime)和要素值(value),风向风速产品的子标签有三个属性分别为日期(datetime)、风向(direction)和风速(speed)。

图二、格式化显示的json源码

本文选取相对湿度(humidity)、AQI指数(aqi)、PM2.5(pm25)、降水强度(precipitation)风向风速(wind)和温度(temperate)并将数值预报产品整理后写入txt文件。

具体步骤如下:

1.运用urlopen()函数访问接口,并用read()函数读取源码。

2.运用json.load()函数载入源码并格式化

3.选取数值预报产品

4.将数值产品写入txt文件

由于预报结论更新频繁,因此产品文件和源程序会频繁的被打开和关闭。为了简化这一操作,需要引入pyw格式文件以及win32api模块。Pyw格式文件的特点是双击自动执行代码,因此在保存代码时以*.pyw的形式即可。win32api模块可以命令和参数的形式调用windows内的应用,本文调用notepad即记事本实现运行python程序时自动打开产品文件。Win32api模块并未打包在python3.6之内,需要手动进行安装,安装win32api模块需要在命令提示符内执行pip install pypiwin32命令(图三)。通过win32api.ShellExecute()命令和pyw格式文件直接的协作实现双击运行程序自动打开产品文件。

图三 格式化显示的json源码

3、结论

双击执行程序后自动弹出预报产品效果如图四,说明运用python对网络中的预报产品进行整合具有可行性。本文仅进行了数据的抓取,而未对数据进行加工,所使用的模块只占python库中的很小一部分。对于python的深层次应用还有诸多研究探讨的余地。

图四 整合后的天气预报产品

作者简介:

李宝乐,(1985-04-17),男,黑龙江省哈尔滨市,本科,工程师,主要从事航空天气预报及危害航空安全的天气研究工作。

论文作者:李宝乐1,,宋尧东2

论文发表刊物:《基层建设》2018年第32期

论文发表时间:2018/12/18

标签:;  ;  ;  ;  ;  ;  ;  ;  

浅谈python对网络天气预报数据的整合论文_李宝乐1,,宋尧东2
下载Doc文档

猜你喜欢