更新:

日期 内容
2022.09.13 代码中 Vg_Holland2 = r * abs(f) / 2;r 的单位是 km,需要乘以 1000 转化为 m

仅使用Matlab实现Holland圆对称风场,不考虑热带气旋的移动速度和前进方位角。


主要的参数设定:

参数 公式
空气密度 ρ=1.15kg⋅m−3\rho=1.15 kg·m^{-3}ρ=1.15kg⋅m−3
外围环境气压 Pn=1010.0hPaP_n = 1010.0 hPaPn​=1010.0hPa
气压差 ΔP=Pn−Pc\Delta P = P_n - P_cΔP=Pn​−Pc​
科氏力参数 f=2∗7.292∗0.00001∗sin(Latc∗π/180.0)f = 2 * 7.292 * 0.00001 * sin(Lat_c * \pi / 180.0)f=2∗7.292∗0.00001∗sin(Latc​∗π/180.0)
最大风速半径 Rm=−18.18∗log(ΔP)+112.2R_m = -18.18 * log(\Delta P) + 112.2Rm​=−18.18∗log(ΔP)+112.2
Holland B系数 B=1.881−0.00557∗Rm−0.01295∗∣Latc∣)B = 1.881 - 0.00557 * R_m - 0.01295 * |Lat_c|)B=1.881−0.00557∗Rm​−0.01295∗∣Latc​∣)
气压场 Pr=Pc+ΔP∗exp(−(Rm/r)B)P_r = P_c + \Delta P * exp(-(R_m / r) ^ B)Pr​=Pc​+ΔP∗exp(−(Rm​/r)B)
梯度风场 Vg(r)=ΔPBρ(Rmr)Bexp(−(Rmr)B))+(r⋅f2)2+r⋅∣f∣2V_g(r)=\sqrt{\Delta P \frac{B}{\rho}(\frac{R_m}{r})^Bexp(-(\frac{R_m}{r})^B))+(\frac{r·f}{2})^2} + \frac{r·|f|}{2}Vg​(r)=ΔPρB​(rRm​​)Bexp(−(rRm​​)B))+(2r⋅f​)2​+2r⋅∣f∣​
近地表10m处的平均风速 V10m(r)=Km∗Vg(r)V_{10m}(r) = K_m * V_g(r)V10m​(r)=Km​∗Vg​(r)
KmK_mKm​取值标准 Km={0.81,Vg<60.81−2.96∗10−3∗Vg,6≤Vg<19.50.77−4.31∗10−3∗Vg,19.5≤Vg<450.66,Vg≥45K_m=\begin{cases}0.81, V_g < 6 \\0.81 - 2.96 * 10 ^ {-3} * V_g, 6\leq V_g<19.5 \\0.77 - 4.31 * 10 ^ {-3} * V_g, 19.5\leq V_g<45\\0.66, V_g \ge 45\end{cases}Km​=⎩⎨⎧​0.81,Vg​<60.81−2.96∗10−3∗Vg​,6≤Vg​<19.50.77−4.31∗10−3∗Vg​,19.5≤Vg​<450.66,Vg​≥45​

生成0.25°分辨率的风场:


附Matlab代码:
其中,basetif.tif是一个0.25°的影像
中心经纬度以及中心气压:
Pc=995hPaP_c = 995 hPaPc​=995hPa
Latc=10.125°Lat_c = 10.125 °Latc​=10.125°
Lonc=120.125°Lon_c = 120.125 °Lonc​=120.125°

%%
clc;
clear;%%
fullpath = mfilename('fullpath');
[path, name] = fileparts(fullpath);%%
%
basetif = strcat(path, '\basetif.tif');
[A_M, R_M] =  geotiffread(basetif);info = geotiffinfo(basetif);
A_I = zeros(size(A_M));
A_J = zeros(size(A_M));for i = 1 : size(A_I, 1)A_I(i, :) = i;
endfor j = 1 : size(A_J, 2)A_J(:, j) = j;
end[A_Lat, A_Lon] = pix2latlon(info.RefMatrix, A_I, A_J);%%
P_c = 995; % hPa
Lat_c = 10.125; % °
Lon_c = 120.125; % °%%
%
rou_air = 1.15; % kg m-3%
P_n = 1010.0;
dertP = P_n - P_c;
Rm = -18.18 * log(dertP) + 112.2; % R2 = 0.84
B = 1.881 - 0.00557 * Rm - 0.01295 * abs(Lat_c);
f = 2 * 7.292 * 0.00001 * sin(Lat_c * pi / 180.0);% great cricle arc
R_earth = 6371;
arcLAT1 = A_Lat * pi / 180.0;
arcLAT2 = Lat_c * pi / 180.0;
arcLON1 = A_Lon * pi / 180.0;
arcLON2 = Lon_c * pi / 180.0;cos_sita = sin(arcLAT1) .* sin(arcLAT2) + ...cos(arcLAT1) .* cos(arcLAT2) .* cos(arcLON1 - arcLON2);
sita = acos(cos_sita);
r = R_earth * sita + 0.001;P_r = P_c + dertP * exp(-(Rm ./ r) .^ B);Vg_Holland1 = 100 * dertP * B / rou_air * (Rm ./ r) .^ B .* exp(-(Rm ./ r) .^ B);
Vg_Holland2 = r * abs(f) / 2 * 1000;
Vg_Holland = (Vg_Holland1 + Vg_Holland2 .^ 2) .^ 0.5 - Vg_Holland2;%%
Vg = Vg_Holland;Km = zeros(size(Vg_Holland));
Km(Vg < 6) = 0.81;
Km(Vg >= 6 & Vg < 19.5) = 0.81 - 2.96 * 10 ^ (-3) * (Vg(Vg >= 6 & Vg < 19.5) - 6);
Km(Vg >= 19.5 & Vg < 45) = 0.77 - 4.31 * 10 ^ (-3) * (Vg(Vg >= 19.5 & Vg < 45) - 19.5);
Km(Vg >= 45) = 0.66;V_10m = Km .* Vg;outfile = strcat(path, '\V_10m.tif');
geotiffwrite(outfile, single(V_10m), R_M);

Matlab实现Holland风场相关推荐

  1. MATLAB画NCEP风场

    clc clear ncFilePath='G:\NCEP\u.nc'; ncFilePath2='G:\NCEP\v.nc'; % ncFilePath3='G:\NCEP\omega.nc'; n ...

  2. matlab 模拟风,【Matlab实现】风场仿真

    空间相关湍流风变化的模拟方法如下[1,2].实现了两种可能的垂直风廓线和两种可能的风谱.用户可以自由实现新的功能.风的共相干是一个简单的指数衰减,正如Davenport[3]所做的那样.如果在网格中模 ...

  3. matlab绘制风场图(矢量图、箭头图)

    在搜索过程中,找到了MATLAB绘制海面风场图像,但实现过程中,显示出错 m_pcolor (line 43) data(i)=NaN.又是第一次接触matlab,有点儿懵.不过搞了一下午总算搞懂了, ...

  4. matlab模拟风场竖桥向时程,索梁结构应急桥抖振响应分析

    抖振是桥梁在大气紊流风作用下的响应,是一种不可避免的随机强迫振动,且抖振响应影响行车的舒适性.近年来,在桥梁风工程研究方面大量学者采用时域分析法研究了桥梁结构的抖振响应[1-3].Davenport在 ...

  5. matlab 模拟风,三维空间相关风场的计算机模拟及Matlab程序实现

    第 14 卷第 2 期2008 年 6 月 空 间 结 构 SPATIAL STRUCTURES Vol. 14 No. 2 Jun. 2008 收稿日期:200610208. 作者简介:刘文洋(19 ...

  6. MATLAB读取nc格式数据并可视化显示(以海面风场反演为例)

    MATLAB读取nc数据并实现可视化 (以全球海洋风场反演为例-更新版) 1.海面风场数据下载 从ECNWF(https://apps.ecmwf.int/datasets/data/era40-da ...

  7. MATLAB 矢量图(风场、电场等)标明矢量大小的方法——箭头比例尺及风矢杆图的绘制

    作者: 中国科学院大气物理研究所 律成林 摘要:本文主要讲述了在MATLAB中标明矢量图中矢量大小的方法,其中最主要的方法是绘制箭头比例尺.作为运算速度非常快的软件,MATLAB的一个缺点为缺乏在图窗 ...

  8. matlab模拟风场竖桥向时程,大跨度桥梁三维脉动风场的计算机模拟

    随着大跨度桥梁建设步伐的加快,桥梁抗风问题的研究显得日益突出[1].由于时域分析方法可以直接计算频域分析中难以处理的非线性响应,反映桥梁的全过程工作状态,因而对大跨度桥梁的风载作用下的抖振行为进行非线 ...

  9. matlab海面风场时间变化,台湾海峡海面风场的季节性变化特征分析

    台湾海峡海面风场的季节性变化特征分析 Analysis of Seasonal Characteristics of Wind Fields in Taiwan Strait DOI: 10.1267 ...

最新文章

  1. Redis整合Spring Data Redis 开发key和value乱码
  2. 在SLES-11-SP1-i586上搭建apache+php环境
  3. docwizard c++程序文档自动生成工具_工具用的好,老师下班早!老师的高效办公利器都在这!...
  4. 小学五年级计算机二课活动记录,小学五年级主题班会的活动记录
  5. C#学习笔记-数据的传递(公共变量)以及Dictionary
  6. linux手动生成dump文件权限不足_linux下生成dump文件方法及设置
  7. android string.format()长度,Android通过String.format格式化(动态改变)字符串资源的显示内容...
  8. Intel 64/x86_64/IA-32/x86处理器通用寄存器 (2) - 64位通用寄存器
  9. 解决Python开发过程中依赖库打包问题的方法
  10. 收集小型机snap日志文件步骤
  11. [摘译]js内存泄漏常见的四种情况
  12. 支付宝弄了个“双12 ” 岛国民众都high了
  13. ACM 学习笔记(六) 图论
  14. plc vb c语言编程,【实例】VB实现plc与上位机通讯应用程序
  15. How to Root Nexus 5 on Android 4.4.4 KTU84P and Install CWM Recovery
  16. eclipse安装插件速度很慢的解决方案
  17. 基于树莓派SHT20温湿度采样
  18. 数字化背景下的经济社会发展的新特征 新趋势
  19. vs code git 编辑器中拉取(pull) 的时候报错 [rejected] v1.0.0 -> v1.0.0 (would clobber existing tag)
  20. 如何使用docker和docker-compose在本地Testnet上开发EOS区块链

热门文章

  1. python录音详解_Python爬虫实战案例:取喜马拉雅音频数据详解
  2. HCL实验:用VRRP实现路由备份及负载分担
  3. unity2019安装完后打不开直接闪退_VS2019打不开或没反应该怎么解决?
  4. 【Avro一】Avro入门
  5. Kafka 的 Java 消费者如何管理 TCP 连接?
  6. 2020年 IOS 逆向 反编译 注入修改游戏或APP的调用参数新手系列教程——使用theos tweak 注入hook修改游戏执行代码上传动态头像
  7. 数字图像与机器视觉基础补充(2)--颜色转换+分割车牌
  8. [ Java ] 实现两个数加减乘除的简易计算器
  9. STM32实战(1):搭建模板工程
  10. Linux系统的时间管理及优化