推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python的并行编程技术在海洋数值预报批量二维绘图中的应用

更新时间:2019-12-20 18:26:34 大小:1M 上传用户:songhuahua查看TA发布的资源 标签:python 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

针对海洋数值预报产品批量二维绘图占用时间较长的瓶颈问题,在对当前流行的数值模式产品绘图软件进行对比研究的基础上,利用Python语言多种库函数对海洋数值预报产品批量二维绘图进行高效并行优化处理,并对多进程编程方法在不同规模下的并行效率进行了测试分析。实验结果表明:此批量二维绘图方案高效稳定,可为数值模式产品批量二维绘图业务化运行提供有效技术支撑。


部分文件列表

文件名 大小
基于Python的并行编程技术在海洋数值预报批量二维绘图中的应用.pdf 1M

部分页面预览

(完整内容请下载后查看)
365期  
201910月  
Vol.36No.5  
MARINE FORECASTS  
Oct.2019  
DOI:10.11737/j.issn.1003-0239.2019.05.009  
Python的并行编程技术在海洋数值预报批量  
二维绘图中的应用  
何锡玉,张志远,林士伟  
国人民解放军 91001部队100161)  
针对海洋数值预报产品批量二维绘图占用时间较长的瓶颈问题对当前流行的数值模  
式产品绘图软件进行对比研究的基础上,利用 Python 语言多种库函数对海洋数值预报产品批量二  
维绘图进行高效并行优化处理对多进程编程方法在不同规模下的并行效率进行了测试分析。  
实验结果表明批量二维绘图方案高效稳定为数值模式产品批量二维绘图业务化运行提供  
有效技术支撑。  
关键词:Python洋数值预报量二维绘图行优化  
中图分类号P731 文献标识码A  
文章编号1003-0239201905-0071-06  
数值预报科研务中重要的工作过程。海洋数值  
1 引言  
预报数据包括初始场界场迫场和预报场等  
均为 2D/3D/4D 经度度和时间  
[8]。将海洋数值预报产品批量二维绘图作成  
各种海洋环境保障图形图像等值线/面图线  
量图等海洋环境预报人员众提供丰富  
的图形图像产品非常重要的技术环节[9]。  
进入 21世纪洋在国际政治济中的  
战略地位更加突出洋环境安全在维护国家主  
全和可持续发展中的作用也日益凸显。海洋  
环境保障在经济发展防安全础设施建设等  
方面发挥着越来越重要的作用及到海上安全、  
海洋能源开发与保护洋运输和海洋渔业等许多  
领域和方面[1]。海洋数值预报能够快速提供所关注  
海域未来的海洋环境状况海洋环境保障的最重要  
手段。海洋数值模式分辨率的不断提高量信息的  
不断增长断刺激着业务人员对数据可视化的渴望  
和诉[2-3]作为一种功能强大的开源编程语言,  
Python包含了丰富的软件包和绘图技术而帮助用  
海洋数据可视化在国内外已有大量研究经  
广泛应用于海洋科研和业务中般是通过专业的  
图像处理软件或编程语言来实现。常见的画图语  
言如 Matlabhttps://www.mathworks.com/GrADS  
http://cola.gmu.edu/grads/Rhttps://www.r-pro-  
ject. org/NCL[9-12]  
Matlab 是大型商业软件格不菲要用于数学  
工程计算GrADS 功能相对有限画图过程比较  
繁琐NCL 语言都是处理大气海洋科学数据非  
常优秀前国内外流行的免费工具。相比较而  
近 年 来 在 国 内 外 日 趋 流 行 的 开 源 编 程 语 言  
Python 通用性更好展程序包多持面向对象  
编程组矩阵处理能力强大其在自动运维端  
户完成数据分析建统计模型并展现研究结果[4-7]  
2 海洋数值预报产品二维图形绘制  
Python语言介绍  
海洋数值预报产品二维图形绘制是从事海洋  
收稿日期2018-11-14修回日期2019-04-20。  
基金项目国家重点研发计划项2017YFC14040052016YFB0201105)  
作者简介何锡1980-程师要从事数值预报研究。E-mail
通讯作者张志1978-级工程师要从事海洋数值预报和信息化工作。E-mail:  
36卷  
72  
Web 端 优 势 明 显 。 在 Python 可 视 化 领 域  
matplotlib 最著名的绘图库制图功能不亚于  
MatlabGradsRNCL 等专业绘图工具且借助  
Python 强大的功能和简洁的语法使其在编程方  
面也容易得多。  
码获取变量信息括产品要素度、  
时间等。其次numpy 库对数据进行处理获  
取产品要素数据理非有效值成经纬网格等。  
第三basemap 库定义地图信息括地图投  
辨率纬度范围图网格岸线界  
等。第四matplotlib 库绘制产品要素等值线/  
面图量图线图等和地图信息叠加显示。最  
图像产品添加标注信息括参考色标题  
信息本信息等存输出图像产品。图 2为基于  
Python 的海洋数值预报产维图形绘制  
关键步骤代码。  
借助于 Python实现对海洋数值预报产品的  
实时快速自动数据处理和批量二维图形产品输出,  
更好地推广海洋数值模式产品的应用服务时也  
有助于 Python 这门优秀语言在海洋环境保障领域  
的推广应用。  
3 Python 海洋数值预报二维  
3a 是利用 Python 绘制的西北太平洋有效波  
向数值预报产品图3b 是同一数据目前业  
务化利用 NCL 绘制的西北太平洋有效波高向数  
值预报产品图。可以看到者在等值线走势等  
值线间填充值线标注量箭头绘制等方面表  
现形式上基本一致。当然者也存在一些不同的  
地方括自动生成的色标有所差别认的地图  
分辨率不一致等些都可以在程序脚本中进行手  
动设置以达到美观一致。  
图形绘制  
3.1 技术流程  
采用 Python 语言进行海洋数值预报产品二维  
图形绘制技术流程如图 1所示先通过 Python  
numpynetCDF4 等库对海洋数值预报产品数据  
(格 式 通 常 为 NetCDF)进 行 读 取 然 后 利 用  
matplotlibbasemap 等库绘制地图信息并将海洋数  
值预报产品数据叠加到给定坐标系的地图上而  
生 成 最 终 的 二 维 图 形 产 品 。 以 上 功 能 全 部 以  
Python 脚本文件在后台通过搜索匹配数据定时自  
动执行PNG图像格式输出。  
Python 绘图支持中文体的默认设置中并没  
有中文字体以只要手动添加中文字体的名称即  
可。手动增加如下代码:  
from pylab import *  
mpl.rcParams['font.sans-serif'] = ['SimHei']  
而目前NCL 绘图暂不支持中文务上通过  
合成图的方式以达到在产品图面上添加中文标注,  
即设计好含有汉字的透明背景图和 NCL 绘图通过  
ImageMagick convert 函 数 进 行 合 成 。 在 NCL  
V6.4.0 及 以 上 版 本 可 通 过 导 入 writeslhz for NCL  
Ver 1.0NCL 的有关函数成汉字矢量字体  
的显示处理持显示一级字库汉字 3755 级  
字库汉字 3008 不支持全角字符。而且NCL  
V6.5.0 以前的版本不支持并行以目前业务上使  
用的海洋数值预报产品二维图形绘制 NCL 脚本都  
是串行的过多重 for循环绘制多要素时次多  
层次的海洋数值预报产品图理效率低下用  
时间较多。更为重要的是NCAR 已决定将 Python  
作为未来可视化和分析软件开发的脚本语言平台,  
NCL 的核心语言和文件 I/O 将进入维护模式再  
继 续 新 的 开 发http://ncl. ucar. edu / open_letter_  
3.2 Python的海洋数值预报产品二维图形绘制  
海洋数值预报产品通常为 NetCDF 格式文件。  
首先Python netCDF4 库对产品文件进行解  
1 Python的海洋模式产品批量二维图形绘  
制技术流程  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载