第 29卷第 4期
2007年 11月
V01.29 No.4
November 2oo7
基于 MATLAB实现 3种气 象数据 的读取和绘 图
刘 峰,刘 娟,李 萍 ,林 智
(民航 中南空 中交通管理局气 象中心 ,广东广州 510406)
摘 要 :针对 MICAPS、GRIB和 NetCDF三种气象数据 的特 点 ,利用 MATLAB软 件强大 的数 值计算
和图形制作功能 ,介绍实现数据读取 以及在地图上绘制等值线 、填色等值线 、风矢 量和流线 4种 图形 的
功能和方法 。
关键词 :计算机应用 ;MATLAB绘图 ;气象数据 ;背景地 图
中图分 类号 :TP317 文献标 识码 :B 文章编号 :1007—6190(2007)04—0045—03
随着 气象业 务 的不 断 发展 ,庞大 的气象数 据要求 标
准 和高 效 的 数 据 存 储 和 交 换 格 式 。MICAPS、GRIB和
NetCDF等已经成为通用 的数据 格式 。使 用这些 数据前 ,
需要借助专 门软件或者 自行编制程序完成数据 读取和处
理 J,这对使用者 提出 了较 高的要求 。可以考虑使用具
备数值 计算和可视化 能力 的 MATLAB 软件实 现数据提
取 以及可视化输 出。
利用 MATLAB软件强大的数值计算和 图形制作功能
可实现对 MICAPS、GRIB和 NetCDF三种 气 象 数 据 的读
取,以及在地 图上绘制等值 线 、填 色等值 线 、风矢 量 和流
线 4种 图形 的功 能。本文 介绍 利用 MATLAB在 Windows
环境下 ,如何实 现 MICAPS、GRIB和 NetCDF三种 气 象数
据 的读取 ,以及物理 量图绘制的方 法 ,为 MATLAB在气 象
领域 的应用提供一些参考 。
1 MICAPS数据
MICAPS的数据 文件 为文本 文件 。MICAPS数据有
2种 ,一种是 格 点值 ;另一 种是 离 散点 资 料。 由于 MAT—
LAB具 备对 离散数 据插值 成格 点数据 的功能 ,因此下 面
介绍对第 2种资料 的处 理。
选用的数据是第 2类数据 格式 ,即高空全 要素 填图 。
数据 包括 2部分 :
第 1部分是文件头 ,第 2部 分是数 据 ,包括 :区站 号 、
经度 、纬度 、拔海 高度 、级别 、高 度 、温 度 、温度 露点 差 、风
向 、风 速 。
数据 的预处理分 2步。首先去除文件头 ,即将第 1和
第 2行 删 去 。然 后 将 缺 测 数 据 删 去 ,即将 要 素 值 是
“9999”的行删去 。经过预处理的数据是 10列实数。
1.1 读取资料和插值
使用 MATLAB的函数 fopen()和 fscanf()读取 预处理
后的 MICAPS数据 。代码为 :
刷 =fopen(‘06050608.000’,‘r’):
data
—
all=fscanf(fid,‘%g% g% g% g% g%g% g%
g%g%g’,[10 inf]);%读取 10列数据
lon
一
1=data
— all(2,:); %第 2列是经度
lat
一
1=data
—
all(3,:); %第 3列是纬度
height
_
l=data
_
all(6,:); %第 6列是位势 高度
wd=data
— all(9,:); %第 9列是风 向
WS=data
_ all(10,:); %第 10列是风速
使用插值 函数 griddata()将离 散点值 插值为 格点值。
代码为 :
[1on,lat]=meshgrid([90:1:140],[15:1:50]);%
确定格点经纬度范 围
zl=griddata(1on一1,lat一1,height_l,lon,lat,‘cubic’);
1.2 绘制气象图
陈金辉 研究了使用 MATLAB绘 制气象图 ,但没 有
给出如何使用地 图为底 图。哥伦 比亚大学 开发 了 M—Map
软件包 。主要功能是支 持 18种 地 图投 影方式 、1。分辨 率
的全球地形数据集 和 1/4。分辨率 的海岸 线数据集 。图 1
给出了基 于软件包绘制 的等值线 图和风矢量图。
制作方法如下 :
设置地 图投影 方式 、范 围和海 岸线 使 用 函数 m—proj
()和 Ill—coast()。代码为 :
Ill
—
proj(‘lambert’,‘lon’,[90 140],‘lat’,[15 50]);
%设置地图投影方式 、范 围
Ill
—
coast(‘patch’,[1 .85 .7],‘edgecolor’,
‘black’);%绘制海岸线
绘制等值线 图使用函数 Ill—contour()。代码为 :
Ill
~ contour(1on.1at,z1):
绘 制风矢量 图 ,要先将 风向 、风速值转换为 “、 分量 。
绘 制风矢量 图使用 函数 Ill—quiver()。代码为 :
U(i)=WS(i) sin((wd(i)一180) pi/180);
v(i)=WS(i) COS((wd(i)一180) pi/180);
Ill
~ quiver(1on,lat,U,v);
收稿 日期 :2007—08—09
作者简介 :刘 峰(1972年生),男 ,工程师 ,硕 士,主要从事航空气象预报 和研究 。
维普资讯 http://www.cqvip.com