台风轨迹数据获取及MATLAB读取

台风轨迹数据获取及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中
在这里插入图片描述

  • 11
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
Vue是一种流行的JavaScript框架,用于构建用户界面。OpenLayers是一个开源的JavaScript库,用于在web浏览器中显示交互式地图。结合Vue和OpenLayers,我们可以实现台风轨迹的可视化。 首先,我们需要获取台风的相关数据。可以从台风数据的API或其他数据源中获取实时或历史台风数据数据通常包含台风的经纬度坐标和其他相关信息,如风力、风速等。 在Vue组件中,我们可以使用OpenLayers来显示地图。首先,在Vue组件中引入OpenLayers库,并在Vue的生命周期钩子中初始化地图。可以使用OpenLayers的地图视图类(MapView)来设置地图的中心坐标和缩放级别。 接下来,我们需要将台风轨迹数据添加到地图上。可以使用OpenLayers的矢量图层(Vector Layer)来添加台风轨迹。将每个台风点的经纬度坐标转换为OpenLayers的几何对象,并将其添加到矢量图层中。 为了使台风轨迹更具交互性,可以在每个台风点上添加弹出窗口,显示该点的详细信息。可以使用OpenLayers的弹出窗口类(Overlay)和交互类(Interaction)来实现这一功能。 最后,根据需求,可以添加其他地图元素,如底图切换、比例尺、图例等,以增强用户体验。 总之,使用Vue和OpenLayers,我们可以方便地将台风轨迹可视化,并提供交互功能。这种方式可以帮助用户更直观地了解台风路径和特征,从而提高对台风的认知和应对能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值