基于Python的生活气象指数预报制作的优化
Optimization of Life Weather Index Forecasting Based on Python
DOI: 10.12677/OJNS.2021.94055, PDF, HTML, XML, 下载: 499  浏览: 795 
作者: 姜 慧, 景安华, 陈艳丽:菏泽市气象局,山东 菏泽
关键词: Python生活气象指数预报CIMISS自动制作Python Life Weather Index Forecast CIMISS Automated Production
摘要: 菏泽市气象局开展生活气象指数预报已经有十几年时间,数据获取是由预报员主观制作,不能自动制作上传,耗时费力。因此,需要对气象指数预报的制作进行优化。随着数值预报模式越来越准确,除短历时强降水和突发灾害性天气有待提高外,其他要素预报基本不需要主观订正,这就为指数预报自动化提供了数据支持。运用Python开发工具,通过全国综合气象信息共享平台(CIMISS)的气象数据统一访问接口(MUSIC接口)的REST服务读取气象预报内容,依据预报模型和预报方程计算生活气象指数,自动制作指数预报并上传到气象监测预警平台。
Abstract: It has been more than ten years since the Heze Meteorological Bureau carried out the forecast of daily Life Meteorological Index. Data acquisition is subjectively produced by forecasters, and cannot be automatically produced and uploaded, which is time-consuming and labor-intensive. Therefore, it is necessary to optimize the production of meteorological index forecast. As the numerical prediction model becomes more and more accurate, except for short-duration heavy rainfall and sudden disastrous weather, the subjective correction is not needed for other elements, which provides data support for the automation of index prediction. Using the Python development tool, the weather forecast content is read through the REST service of the national integrated weather information sharing platform (CIMISS) weather data unified access interface (MUSIC interface), and the living weather index is calculated according to the forecast model and forecast equation, and automatically make the index forecast and upload it to the weather monitoring and early warning platform.
文章引用:姜慧, 景安华, 陈艳丽. 基于Python的生活气象指数预报制作的优化[J]. 自然科学, 2021, 9(4): 486-491. https://doi.org/10.12677/OJNS.2021.94055

1. 引言

随着社会经济的发展和人民生活水平的提高,人民对生活气象指数的关注度和需求越来越高,当周围环境的气象因素发生显著变化时,人民的生活活动和身体健康会受到明显的影响,人民需要了解和掌握与自己生活密切相关的各种气象要素的变化,采用对应的措施来合理安排生活和生产以及保护环境,因此,与人民生活息息相关的生活气象指数预报气象服务应运而生 [1] [2] [3]。目前,国内大多数省市气象局都已经开展了各种各样的气象生活指数预报服务,科学指导人们利用气象预报信息,合理地安排生产生活,为提高公众的生活质量和工作效率起到了不可替代的作用。

菏泽市位于山东省西南部,属暖温带季风大陆性季候,四季分明,光热资源丰富。降水多在夏季,水热同季,适合大多数作物生长,但同时也是气象灾害天气多发地区。原来的生活气象指数预报数据获取和制作由预报员主观输入,不能自动制作上传,耗时费力,时效性差。因此,对生活气象指数预报自动制作发布的需求尤为迫切。

Python作为一门解释性面向对象编程语言,开源免费,具有易学、可移植性、可扩展性及含有丰富的第三方库等多种优点,被国内外商业公司采用,在科研领域的应用也越来越广泛。特别是处理大数据时,具有成熟的数据挖掘、机器学习、深度学习等功能模块,使用者社区活跃 [4]。Python支持Matlab,IDL,Fortran等的矩阵数据处理,在气象气候研究领域有诸多应用,如建模、时间序列分析、空气质量分析、卫星数据处理、气象观测、GIS、数据可视化、格点数据处理、模式比较、工作流集成和大数据处理分析等 [5]。

目前,国内大多数地市利用Python,针对生活气象指数预报的研究较少。鉴于此,本文利用Python语言通过CIMISS平台,对指数预报的制作方式优化,实现指数预报的自动化制作。

2. 生活气象指数预报建模

对生活气象指数预报建模,如图1所示,该模型主要包括四部分:获取未来24小时气象要素预报数据模块,指数预报模型模块、各种气象指数计算模块和气象指数产品发布模块。获取未来24小时气象要素预报数据模块:利用Python语言,读取CIMISS的MUSIC接口的数据,主要是获取未来24小时内的最高最低气温、最大最小相对湿度、天气系统及四个时段(早晨、中午下班、下午上班、下午下班)的天空状况、气温、湿度、风向、风速、等预报内容。数据输入到气象指数预报模型,依据气象指数预报模型,计算出各种气象指数的等级,根据气象指数的等级,做出响应的生活提示和建议,最终把自动制作的指数预报产品自动上传到菏泽市气象监测平台,供科技服务中心人员发布至微信、微博、电视台,给公众出行、生活,提供科学的指导。

Figure 1. Modeling of weather index forecast

图1. 气象指数预报的建模

3. CIMISS数据服务接口

全国综合气象信息共享平台CIMISS (China Integrated Meteorological Information Service System)实现了国家级气象数据的整合集约,标志着国家级和省级首次建立了统一的数据环境,作为气象业务服务、管理的核心基础数据支撑平台,CIMISS提供多种实时的历史数据在线存储服务,能使资料入库的时间缩短20%,数据访问效率提高2~5倍 [6]。

MUSIC接口(Meteorological Unified Service Interface Community),基于国省统一数据环境(CIMISS),面向气象业务和科研,提供标准统一、功能丰富、调用高效的数据访问服务和应用编程接口(API),为国、省、地、县各级应用系统提供唯一权威的数据接入服务 [7]。具有强大的服务功能,访问接口可以提供全面的数据获取功能。针对气象应用系统,能提供多种不同的服务方式,主要包括客户端调用服务、web service、REST服务和脚本服务。其中,客户端调用主要面向大数据量的获取,提供高效的数据传输,如数值预报系统。Web Service和REST服务主要针对前台交互应用,提供便捷的编程体验,如气象业务内网。脚本调用主要服务于非编程人员,不用编程即可获取数据,如科研用户 [8]。

MUSIC接口支持跨平台、多语言的开发,web service、REST服务支持所有平台和语言的调用。客户端调用服务和脚本服务,支持主流的操作系统,包括Linux 32/64bit、AIX、HP-UX、Windows 32/64bit等,提供多种语言的客户端开发包,包括C#、Java、C/C++、Fortran、PHP、Python等 [9] [10]。

4. 指数预报优化技术路线

MUSIC接口提供各种各样的数据应用服务,服务方式主要包括客户端调用、web service、REST服务、调用脚本 [10]。针对这几种服务方式,共提供9中标准的调用方法,用户可以根据需求选择合适的接口、资料和返回格式,来获取气象数据。

Requests 是用Python语言编写,基于urllib,采用Apache2 Licensed开源协议的HTTP库。Requests进行HTTP请求逻辑比较清晰,比urllib代码行数减少,更容易理解,能节省大量的时间和大量减轻编写代码人员的工作量,易于代码的测试和维护,下面是采用requests访问需要HTTP认证资源的代码:

import requests

r=requests.get(‘http://api.github.com’,auth=(‘user’,’pass’))

本文使用Python开发工具,通过全国综合气象信息共享平台(CIMISS)的气象数据统一访问接口(MUSIC接口),采用REST服务,按时间段、区站号检索精细化城镇预报要素数据,获取服务产品,依据预报模型和预报方程计算生活气象指数,核心代码如下:

s = requests.session()

#服务地址,将xx.xx.xx.xx替换为实际地址

url = ‘http://xx.xx.xx.xx/cimiss-web/api’

parameters ={

‘userid’:’xxx’,#用户名

‘pwd’:’xxx’,#密码

‘elements’:’,’join([‘Year’,’Mon’,’Day’,’Hour’,’Validtime’,’WIN_D’,’WIN_S’,PRS,’TEM’,’RHU’,’WEP’],#目标元素

‘datacode’=’SEVP_CHN_WEFC_RFFC’

‘TimeRange’ =’[20210701000000,20210702010000]’

‘staids’:’54906’ #站点

‘dataformat’=’text’

}

r = s.get(url,params=parameters)

ifr.json()[‘returncode’]==str(0):

with open(“result.txt”,”w+”) as f:

f.write(r.text)

5. 指数预报制作优化前后两种方式的对比

5.1. 优化前指数预报制作方式

指数预报的数据由预报员主观制作。图2是全省统一的气象指数预报业务系统,点击界面里面的指数计算进入到图3界面即指数预报制作系统,预报员在指数预报制作界面操作,根据实际情况输入未来24小时内最高最低气温、最大最小相对湿度、天气系统及四个时段(早晨、中午下班、下午上班、下午下班)的天空状况、气温、湿度、风向、风速、天气系统等预报内容,点击“计算”,依据预报模型和预报方程计算出各种环境气象指数的等级,并根据预报提出生活建议和提示,将指数预报结果显示在图3的右侧界面,实现生活指数预报产品的输出,最后点击“上网”将指数预报显示在菏泽市气象监测平台。整个过程比较繁琐,花费时间较多,大量的时间,工作量较大。

Figure 2. Meteorological index forecast business system

图2. 气象指数预报业务系统

Figure 3. The production interface of meteorological index forecasting system

图3. 气象指数预报系统制作界面

5.2. 优化后的指数预报制作方式

技术路线如4.2,使用Python的requests包,通过CIMISS平台的MUSIC接口,采用REST服务,从CIMISS系统中检索获取气象要素数据,依据预报模型和预报方程计算各种生活气象指数,指数包含上下班天气、穿衣指数、风寒指数、舒适度指数、晒衣指数、空气污染气象条件指数、疾病气象指数、感冒指数、中暑指数、晒粮指数、大棚蔬菜运输指数、高速公路行车指数和城市火险指数等,实现指数预报的自动制作并于每日16点之前将指数预报自动上传至气象监测平台。实现了指数预报的自动化制作,大量节省了预报员的制作预报时间,为业务工作提供了便捷。图4是指数预报自动制作上传的页面显示。目前,指数预报自动制作上传程序在菏泽市气象台稳定运行。

Figure 4. Index forecast automatic production upload page

图4. 指数预报自动制作上传页面

6. 结论

本文通过Python相对于其它计算机语言的优势,分析Python在气象行业的应用情况。利用Python在CIMISS的MUSIC接口的应用,对气象指数预报的制作进行优化,实现了指数预报的自动化制作及上网。结果表明,优化后的指数预报,在为预报员制作指数预报节省大量的时间和精力的同时,提高了预报的时效性。目前,指数预报自动制作及上传程序,已在菏泽市气象台进行业务运行,运行稳定。

参考文献

[1] 李国强, 曹明, 郭英才, 等. 环境与生活气象指数在气象服务中的意义及作用[J]. 环境与发展, 2017, 29(6): 184-184.
[2] 黄归兰, 黄增俊, 黄磊, 等. 广西大明山景区气候特点及气象指数研究[J]. 气象研究与应用, 2015, 36(1):76-79.
[3] 崔雪姣, 梁潮江, 吴钩, 等. 开平碉楼景区旅游气象指数的预报方法[J]. 广东气象, 2018, 40(6): 57-60.
[4] 张茗芳. 动态语言Python探讨与比较[J]. 企业科技与发展. 2012, 331(13): 57-60.
[5] 张鑫. CIMISS数据环境模式产品可视化设计[J]. 信息技术, 2020, 44(9): 37-40.
[6] 张格苗. 全国CIMISS系统正式业务运行[N]. 中国气象报, 2016-12-25(8).
[7] 熊安元, 赵芳, 王颖, 等. 全国综合气象信息共享系统的设计与实现[J]. 应用气象学报, 2015, 26(4): 500-512.
[8] 李志鹏, 李志鹏, 胡佳军, 杨立苑. 基于CIMISS的气象数据处理时效监视系统设计与实现[J]. 气象与减灾研究, 2016, 39(4): 309-313.
[9] 熊劦, 邓卫华, 胡佳军, 等. 基于CIMISS的区域灾害性天气实时监测与报警系统的设计与实现[J].气象科技, 2017, 45(3): 453-459.
[10] 连高欣, 王琪, 沈岳峰, 等. Python语言在CIMISS中的应用[J]. 气象科技, 2018, 46(4): 699-706.