台风轨迹数据获取及MATLAB读取
文章目录
在研究一个有问题的时候,发现了一个有趣的现象,因此需要相应的台风数据加以佐证,下面将介绍数据来源及MATLAB数据读取
数据来源:
中国气影局热带气旋资中心,最佳路径数据集
数据截止目前更新到1949-2019年数据
数据使用需要进行引文:
- Ying, M., W. Zhang, H. Yu, X. Lu, J. Feng, Y. Fan, Y. Zhu, and D. Chen, 2014: An overview of the China Meteorological Administration
tropical cyclone database. J. Atmos. Oceanic Technol., 31, 287-301.
doi: 10.1175/JTECH-D-12-00119.1- Lu, X. Q., H. Yu, M. Ying, B. K. Zhao, S. Zhang, L. M. Lin, L. N. Bai, and R. J. Wan, 2021: Western North Pacific tropical cyclone
database created by the China Meteorological Administration. Adv.
Atmos. Sci. doi: 10.1007/s00376-020-0211-7 (in press)
数据格式如下所示:
MATLAB 读取程序
读取文件保存于MAT
程序将数据从数据集.txt
格式文件中读取,以结构体数组形式保存于.mat 文件中
clear;close all;clc;
%% Control Panal
ctrl.year = 2016;
%% OpenFile
file_path = ['.\CMABSTdata\CH',num2str(ctrl.year),'BST.txt'];
fid = fopen(file_path); % Open File
item = 1;
while 1
newLine = fgetl(fid);
if feof(fid)
break;
end
if newLine(1:5) == '66666'
typhoonData(item).international_ID = strtrim(newLine(6:10));
typhoonData(item).traceLine = str2num(newLine(11:15)); %路径数据的行数
typhoonData(item).tcNumber = strtrim(newLine(16:20)); % tropical cyclone number 热带气旋编号
typhoonData(item).typhoonID = strtrim(newLine(21:25)); % 台风编号
typhoonData(item).tcEndRecord = str2num(newLine(27)); % 热带气旋终结记录
% 0表示消散,1表示移出西太合风委员会的责任海区,2表示合并,3表示准静止
typhoonData(item).sampleInterval= str2num(newLine(29)); % 每行路径间隔小时数
typhoonData(item).typhoonName = strtrim(newLine(31:50));
typhoonData(item).dataSetDate = newLine(66:73);
item = item + 1;
end
for num = 1:1:typhoonData(item-1).traceLine
dataLine = fgetl(fid);
typhoonData(item-1).data(num).year = dataLine(1:4);
typhoonData(item-1).data(num).month = dataLine(5:6);
typhoonData(item-1).data(num).day = dataLine(7:8);
typhoonData(item-1).data(num).hour = dataLine(9:10);
typhoonData(item-1).data(num).strength = dataLine(12);
typhoonData(item-1).data(num).Lat = str2double(dataLine(14:16))*0.1;
typhoonData(item-1).data(num).Long = str2double(dataLine(18:21))*0.1;
typhoonData(item-1).data(num).pres = str2num(dataLine(23:26));
typhoonData(item-1).data(num).Wnd = str2num(dataLine(31:34));
% typhoonData(item-1).data(num).Owd = str2num(dataLine(37:39));
end
disp(['Finished reading: ',typhoonData(item-1).typhoonName]);
end
disp('=============Finished reading all data!=============')
fileName = ['TF',num2str(ctrl.year),'.mat'];
save(fileName,'typhoonData');
disp('=============Successfully Saved Filed=============')
编写程序水平有限,如有不正确请见谅!
MAT数据格式组成
以2016年数据为例,数据存放于typhoonData变量中,为
1
×
29
1\times29
1×29 struct。包含9个字段
单个台风的数据存放于data中