欢迎来到天天文库
浏览记录
ID:36644745
大小:318.50 KB
页数:4页
时间:2019-05-13
《基于MATLAB实现3种气象数据的读取和绘图》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、万方数据第29卷第4期2007年11月广东气象GuangdongMeteorologyv01.29No.4Novenlber2007基于MATLAB实现3种气象数据的读取和绘图刘峰。刘娟.李萍.林智(民航中南空中交通管理局气象中心.广东广州S10406)摘要:针对MICAPS、GRIB和NetCDF三种气象数据的特点。利用MATLAB软件强大的数值计算和图形制作功能,介绍实现数据读取以及在地图上绘制等值线、填色等值线、风矢量和流线4种图形的功能和方法。关键词:计算机应用;MATLAB绘图;气象数据
2、;背景地图中图分类号:TF317文献标识码:B文章编号:1007—6190(2007J04—0045—03随着气象业务的不断发展,庞大的气象数据要求标准和高效的数据存储和交换格式。MICAPS、GRIB和NetCDF等已经成为通用的数据格式。使用这些数据前.需要借助专门软件或者自行编制程序完成数据读取和处理”-.】.这对使用者提出了较高的要求。可以考虑使用具备数值计算和可视化能力的MATLAB”。软件实现数据提取以及可视化输出。利用MATLAB软件强大的数值计算和图形制作功能可实现对MICAPS、
3、GRIB和NetCDF三种气象数据的读取,以及在地图上绘制等值线、填色等值线、风矢量和漉线4种图形的功能。本文介绍利用MATLAB在Windows环境下,如何实现MICAP$、GRIB和NetCDF三种气象数据的读取,以及物理量图绘制的方法.为MATLAB在气象领域的应用提供一些参考。1MICAPs数据MICAP$的数据文件为文本文件”’。MICAPS数据有2种。一种是格点值;另一种是离散点资料。由于MAT-LAB具备对离散数据插值成格点数据的功能,因此下面介绍对第2种资料的处理。选用的数据是第2
4、类数据格式,即高空全要素填图。数据包括2部分:第1部分是文件头。第2部分是数据,包括:区站号、经度、纬度、拔海高度、级别、高度、温度、温度露点差、风向、风速。数据的预处理分2步。首先去除文件头,即将第1和第2行删去。然后将缺测数据删去,即将要素值是“9999”的行删去。经过预处理的数据是10列实数。1.1读取资料和插值使用MATLAB的函数fopen()和f8canf()读取预处理后的MICAPS数据。代码为:rid=fopen(‘06050608.000’.‘r’);data_all=fscan
5、f(rid,‘%g%g%g%g%g%g%g%g%g%g’'[10iIlf]);%读取10列数据lonl=data_all(2,:);%第2列是经度lat_l=data_all(3.:);%第3列是纬度height一1=dataall(6,:);%第6列足位势高度wd=data_all(9,:);%第9列是风向ws=data_all(10.:);%第10列是风速使用插值函数griddata()将离散点值插值为格点值。代码为:[1∞。hit]=∞h蒯([90:1:140]'[15:1:50]);%确定
6、格点经纬度范围zl=扣ddata(Ion.1,lat_l。heightI,lon,lat,‘cubic’);1.2绘制气象圈陈金辉”o研究了使用MATLAB绘制气象图,但没有给出如何使用地图为底图。哥伦比亚大学开发了M—Map软件包。主要功能是支持18种地图投影方式、10分辨率的全球地形数据集和1/4。分辨率的海岸线数据集。图1给出了基于软件包绘制的等值线图和风矢量图。制作方法如下:设置地图投影方式、范围和海岸线使用函数m一州()和re_coast()。代码为:mp’oj(‘lⅢberI’,‘Io
7、n’,[90140],‘lat’'[1550]);%设置地图投影方式、范围nl—coast(‘patch’,[1.85.7],‘edgecolor’,‘black’);%绘制海岸线绘制等值线图使用函数mcontour()。代码为:m_contour(10n,lat,z1);绘制风矢量图,要先将风向、风速值转换为n、一分量。绘制风矢量图使用函数re_quiver()。代码为:u(i)=w(i)·咖((wd(i)一180)+pi/lso);v(i)=ws(i)·c0B((wd(i)一180)‘pi/1
8、80);re_quiver(Ion,lat,U,v);收稿日期:2007一∞一09作者简介:刘峰(1972年生).男,工程师,硕士,主要从事航空气象预报和研究。万方数据广东气象第29卷圈I使用MICAPS数据绘制的等值线圈和风矢量圈M—M叩软件包没有绘制流线图的函数,但MATLAB中有绘制流线的函数streamslice()。基于streamslice(),作者编制了在地图底图上绘制流线的函数rn—streamslice()(图2)。调用方式为:m_streamslice(Ion,
此文档下载收益归作者所有