日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Matlab实现热带气旋不同风期的风速转换

發布時間:2023/12/29 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab实现热带气旋不同风期的风速转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

IBTrACS [點擊跳轉] 中的熱帶氣旋風速來源于各個機構,風速并不統一;根據WMO出版的《熱帶氣旋不同平均風期之間的轉換指引》(《Guidelines for Converting between Various Wind Averaging Periods in Tropical Cyclone Conditions》),這里將各類風速通知轉換成10min平均風速,轉換關系和參考代碼如下:

%% clc; clear;%% fullpath = mfilename('fullpath'); [path, name] = fileparts(fullpath);xlsxfile = strcat(path, '/ibtracs.since1980.list.v04r00.xlsx');%% [A, T, R] = xlsread(xlsxfile);%% SID = R(3 : size(R, 1), 1); A = A(2 : size(A, 1), :); WMO_WIND = A(:, 10); LANDFALL = A(:, 15); WMO_AGENCY = R(3 : size(R, 1), 13);USA_WIND = A(:, 23); % 1-minute wind speeds TOKYO_WIND = A(:, 45); % Maximum sustained wind speed [10-min averaging period] CMA_WIND = A(:, 57); % Two-minute mean maximum sustained wind HKO_WIND = A(:, 62); NEWDELHI_WIND = A(:, 67); % 3-minute REUNION_WIND = A(:, 75); % 10 minute BOM_WIND = A(:, 95); % 10-minute NADI_WIND = A(:, 120); % 10 minute WELLINGTON_WIND = A(:, 124); % 10-minute DS824_WIND = A(:, 129); TD9636_WIND = A(:, 134); TD9635_WIND = A(:, 138); NEUMANN_WIND = A(:, 144); MLC_WIND = A(:, 149);STORM_SPEED = A(:, 161); STORM_DIR = A(:, 162);%% % in land, V10 / V1 = 1 / 1.21 | at sea, V10 / V1 = 1 / 1.05 % in land, V10 / V2 = 1 / 1.12 | at sea, V10 / V2 = 1 / 1.02 % in land, V10 / V3 = 1 / 1.09 | at sea, V10 / V3 = 1 / 1.00USA_WIND10 = USA_WIND - USA_WIND; CMA_WIND10 = CMA_WIND - CMA_WIND; NEWDELHI_WIND10 = NEWDELHI_WIND - NEWDELHI_WIND;idx_sea = find(LANDFALL > 0); idx_land = find(LANDFALL == 0);% at sea USA_WIND10(idx_sea) = USA_WIND(idx_sea) / 1.05; % 1min to 10min CMA_WIND10(idx_sea) = CMA_WIND(idx_sea) / 1.02; % 2min to 10min NEWDELHI_WIND10(idx_sea) = NEWDELHI_WIND(idx_sea) / 1.00; % 3min to 10min% in land USA_WIND10(idx_land) = USA_WIND(idx_land) / 1.21; % 1min to 10min CMA_WIND10(idx_land) = CMA_WIND(idx_land) / 1.12; % 2min to 10min NEWDELHI_WIND10(idx_land) = NEWDELHI_WIND(idx_land) / 1.09; % 3min to 10min%% uniAGENCY = unique(WMO_AGENCY); codeAGENCY = zeros(size(WMO_AGENCY)); % codeAGENCY: USA_WIND10 idx_atcf -> 1 | idx_cphc -> 1 | idx_hurdat_atl -> 1 | idx_hurdat_epa -> 1 % codeAGENCY: BOM_WIND idx_bom -> 2 % codeAGENCY: NADI_WIND idx_nadi -> 3 % codeAGENCY: NEWDELHI_WIND10 idx_newdelhi -> 4 % codeAGENCY: REUNION_WIND idx_reunion -> 5 % codeAGENCY: TOKYO_WIND idx_tokyo -> 6 % codeAGENCY: WELLINGTON_WIND idx_wellington -> 7idx_atcf = find(strcmp(WMO_AGENCY, uniAGENCY(2))); idx_bom = find(strcmp(WMO_AGENCY, uniAGENCY(3))); idx_cphc = find(strcmp(WMO_AGENCY, uniAGENCY(4))); idx_hurdat_atl = find(strcmp(WMO_AGENCY, uniAGENCY(5))); idx_hurdat_epa = find(strcmp(WMO_AGENCY, uniAGENCY(6))); idx_nadi = find(strcmp(WMO_AGENCY, uniAGENCY(7))); idx_newdelhi = find(strcmp(WMO_AGENCY, uniAGENCY(8))); idx_reunion = find(strcmp(WMO_AGENCY, uniAGENCY(9))); idx_tokyo = find(strcmp(WMO_AGENCY, uniAGENCY(10))); idx_wellington = find(strcmp(WMO_AGENCY, uniAGENCY(11)));codeAGENCY([idx_atcf; idx_cphc; idx_hurdat_atl; idx_hurdat_epa]) = 1; codeAGENCY(idx_bom) = 2; codeAGENCY(idx_nadi) = 3; codeAGENCY(idx_newdelhi) = 4; codeAGENCY(idx_reunion) = 5; codeAGENCY(idx_tokyo) = 6; codeAGENCY(idx_wellington) = 7;%% for codi = 1 : 7idx_curcode = find(codeAGENCY == codi);curSID = unique(SID(idx_curcode));for curSIDi = 1 : size(curSID, 1)[codi curSIDi size(curSID, 1)]codeAGENCY(find(strcmp(SID, curSID(curSIDi)))) = codi;end end%% Vmax_10min = zeros(size(codeAGENCY)); Vmax_10min(find(codeAGENCY == 1)) = USA_WIND10(find(codeAGENCY == 1)); Vmax_10min(find(codeAGENCY == 2)) = BOM_WIND(find(codeAGENCY == 2)); Vmax_10min(find(codeAGENCY == 3)) = NADI_WIND(find(codeAGENCY == 3)); Vmax_10min(find(codeAGENCY == 4)) = NEWDELHI_WIND10(find(codeAGENCY == 4)); Vmax_10min(find(codeAGENCY == 5)) = REUNION_WIND(find(codeAGENCY == 5)); Vmax_10min(find(codeAGENCY == 6)) = TOKYO_WIND(find(codeAGENCY == 6)); Vmax_10min(find(codeAGENCY == 7)) = WELLINGTON_WIND(find(codeAGENCY == 7));%% % There are the values of codeAGENCY with 0 % Vmax_10min(codeAGENCY == 0) = mean(Vmax1, Vmax2, ..., VmaxN that have transed to V_10min) all_Vs = [TOKYO_WIND, REUNION_WIND, BOM_WIND, NADI_WIND, WELLINGTON_WIND, USA_WIND10, CMA_WIND10, NEWDELHI_WIND10]; all_V10min = mean(all_Vs, 2, 'omitnan'); % % OUT = [V10min, STORM_SPEED, STORM_DIR]; outVmax_10min = Vmax_10min; outVmax_10min(find(codeAGENCY == 0)) = all_V10min(find(codeAGENCY == 0)); outVmax_10min(find(outVmax_10min == 0)) = -1; outVmax_10min(isnan(outVmax_10min)) = -1;%% outpath = strcat(path, '\adj_V10min.since1980.xlsx'); xlswrite(outpath, num2cell(outVmax_10min));

總結

以上是生活随笔為你收集整理的Matlab实现热带气旋不同风期的风速转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。