第 29卷第 4期 2007年 11月 廣 東 氣 象 GuangdongMeteorology Vol. 29 No. 4 November 2007 基于 MATLAB實現 3種氣象數據的讀取和繪圖 劉 峰 , 劉 娟 , 李 萍 , 林 智 (民航中南空中交通管理局氣象中心 ,廣東廣州 510406) 摘 要 :針對 M ICAPS、 GR IB和 NetCDF三種氣象數據的特點 ,利用 MATLAB軟件強大的數值計算和圖形制作功能 ,介紹實現數據讀取以及在地圖上繪制等值線、填色等值線、風矢量和流線 4種圖形的功能和方法。 關鍵詞 :計算機應用 ;MATLAB繪圖 ;氣象數據 ;背景地圖 中圖分類號 : TP317 文獻標識碼 :B 文章編號 : 1007 - 6190 (2007) 04 - 0045 - 03 收稿日期: 2007 - 08 - 09 作者簡介:劉 峰 (1972年生 ) ,男 ,工程師 ,碩士 ,主要從事航空氣象預報和研究。 隨著氣象業務的不斷發展 ,龐大的氣象數據要求標準和高效的數據存儲和交換格式。M ICAPS、GR IB 和NetCDF等已經成為通用的數據格式。使用這些數據前 , 需要借助專門軟件或者自行編制程序完成數據讀取和處理 [1 - 4 ] ,這對使用者提出了較高的要求。可以考慮使用具備數值計算和可視化能力的 MATLAB[5 ]軟件實現數據提取以及可視化輸出。 利用 MATLAB軟件強大的數值計算和圖形制作功能可實現對 M ICAPS、GR IB 和 NetCDF三種氣象數據的讀取 ,以及在地圖上繪制等值線、填色等值線、風矢量和流線 4種圖形的功能。本文介紹利用 MATLAB在 W indows 環境下 ,如何實現 M ICAPS、GR IB和 NetCDF三種氣象數據的讀取 ,以及物理量圖繪制的方法 ,為 MATLAB在氣象領域的應用提供一些參考。 1 M ICAPS數據 M ICAPS的數據文件為文本文件 [6 ]。M ICAPS數據有 2種 ,一種是格點值 ;另一種是離散點資料。由于 MAT2LAB 具備對離散數據插值成格點數據的功能 ,因此下面介紹對第 2種資料的處理。 選用的數據是第 2類數據格式 ,即高空全要素填圖。數據包括 2部分 : 第 1部分是文件頭 ,第 2部分是數據 ,包括 :區站號、經度、緯度、拔海高度、級別、高度、溫度、溫度露點差、風向、風速。 數據的預處理分 2步。首先去除文件頭 ,即將第 1和第 2 行刪去。然后將缺測數據刪去 , 即將要素值是 “9999”的行刪去。經過預處理的數據是 10列實數。 1. 1 讀取資料和插值 使用 MATLAB的函數 fopen()和 fscanf()讀取預處理后的 M ICAPS數據。代碼為 : fid = 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_1 = data_all(6, : ) ; %第 6列是位勢高度 wd = data_all(9, : ) ; %第 9列是風向ws = data_all(10, : ) ; %第 10列是風速使用插值函數 gr