关于台风轨迹图,这次由于作业需要就画了一幅轨迹图,参考原图选自论文:

LIU Zenghong, XU Jianping, SUN Chaohui, WU Xiaofen. An upper ocean response to Typhoon Bolaven analyzed with Argo profiling floats [J]. Acta Oceanol. Sin., 2014, 33(11), 90–101

大家有兴趣可以自行查找论文进行阅读,本文所绘制台风轨迹图选取论文中的Bolaven(1215号)台风,台风数据采自JMA(由于本人还在学习中,论文中Unisys weather information system尚不会使用,望了解unisys weather的伙伴有时间可以指导,在此感谢>-

如有错误还望批评指正!

1 关于台风轨迹绘制

台风轨迹的绘制可以通过m_patch或者m_line等命令进行绘制;

1.1 m_patch

以下是m_patch绘制的简单示范图:

在使用m_patch的时候需要注意lat的最后一个值需要是NaN,不然得到的图像将会是一片阴影覆盖部分

m_proj('mercator','lat',[15,30],'lon',[120,150]);

m_coast('patch',[.7 .7 .7],'edgecolor','none');

m_grid('linestyle',':','box','fancy','tickdir','out','linecolor','w',...

'alpah','0.5','ytick',[15:5:30],'xtick',[120:5:150]);

lat(end)=NaN; %就是这句,一定要设置NaN,否则图像是面,而非线!

m_patch(lontc,lattc,'k');

在patch命令中可以直接设置线条为渐变颜色,但是在m_patch中,可能是由于命令要求不同,在mmap文件m_patch.m中注释要求颜色设置需要是字符或者1x3 RGB数组,因此个人在设置渐变时失败,大家也可以各自尝试一下,共享经验!

命令行输入openExample(‘graphics/CreateMulticoloredLineExample’)就可以调用运行matlab中patch设置渐变线条的示例,以下是示例结果:

1.2 m_line

最后在中呈现的图就是用m_line绘制的了,这里需要注意的是,m_line是绘制线条,两点确定一条直线,本人一开始没有意识到这一点,最后得到的结果不连续。

f1 = figure(1);

m_proj('mercator','lat',[15,30],'lon',[120,150]);

m_coast('patch',[.7 .7 .7],'edgecolor','none');

m_grid('linestyle',':','box','fancy','tickdir','out','linecolor','w',...

'alpah','0.5','ytick',[15:5:30],'xtick',[120:5:150]);

colormap(m_colmap('jet',41));

colorbar;

caxis([15,55]);

cmap = colormap(f1);

n = length(lontc);

for i = 1:n

if (isnan(ws(i))==1)

ci = cmap(1,:);

else

ci = cmap(ws(i)-14,:);

end

hold on

if (i == 1)

m_line(lontc(1:2),lattc(1:2),'Color',ci,'linewidth',4);

else

m_line(lontc(i-1:i),lattc(i-1:i),'Color',ci,'linewidth',4);

end

end

....然后是一些图像注释等代码(此处省略)

这里大致分析一下代码内容:

m_proj,coast,grid进行基本投影海岸等设置

选取想要应用的colorbar并设置想要的范围并返回得相应的cmap,这里要注意,本人在设置时候colormap(m_colmap(‘jet’,41)),这样得到的cmap恰好是41x3 RGB矩阵,恰好caxis为[15,55],并以1为步长时的数组大小为41,这样从15到55,方便每个整数对应一个1x3 RGB矩阵

ci就是根据具体风速所提取的RGB矩阵,再通过for循环,对m_line进行拼接,这里m_line每两点画一个,颜色ci为相应速度大小在colorbar中对应的RGB,然后画n次

注意事项:m_line需要是两点才能防止间断,ci是相应最大风速大小根据colorbar返回的颜色

2 关于argo位置的标记

argo位置标记直接使用m_plot即可,此处不作赘述

3 关于colbar颜色返回值

在1.2中有应用到colorbar某特定数值的RGB返回,这里再次进行总结

colormap jet(n),表示设置颜色数为n,类型为jet的colormap,该colormap是由nx3的RGB矩阵构成的,jet可以替换成自己喜欢的colormap类型

cmap = colormap;可以返回该colormap的cmap值,若有多个坐标区域,注意要标明在哪个坐标区域

caxis可以设置colorbar对应的燕娥范围,如中采用的是15~55,那对应1中n的设置最好是(55-15+1)的整倍数

根据相应的大小提取RGB数组,如要选择风速为20时候colorbar对应的RGB数组,ci=cmap((20-14),:)

通用公式:已设置colormap颜色数n,caxis范围[a1,a2],当数值为A时的RGB为:ci=cmap((A-a1+1)*(n/(a2-a1+1)),:)

-------**注意上述通用公式只是一个总结,不一定完全适用于所有的情况,在使用过程中要抓住两个要点,① colormap不是完全连续的,colormap(n),是把颜色谱分成n段;②提取colormap后,根据自己的选出的值会落在那个段中决定,然后选择相应的顺序。**[修正于2019/04/29]

matlab 台风数据插值,matlab画台风轨迹图小tip相关推荐

  1. 如何利用MATLAB进行数据插值?

    文章目录 前言 1 引例-零件加工问题 2 数据插值的计算机制 3 数据插值的实现方法 3 应用案例1-粮储仓的通风控制问题 4 应用案例2-机动车刹车距离问题 5 应用案例3-沙盘制作问题 总结 前 ...

  2. MATLAB将两条曲线画在同一个图上

    在MATLAB中将两条曲线画在同一个图上,如果直接采用下面的代码,那么画的第二个图会将第一个图覆盖 plot(x,p1,'LineWidth',2); plot(x,p2,'LineWidth',2) ...

  3. matlab提取数据画图,matlab提取excel表格数据画图-如何将Excel中的数据导入MATLAB并在MATLAB中画出图......

    在matlab上如何导入excel表格然后画图 工具:matlab 2018b 1.打开matlab,点击主页下面导入数据,可以导入excel数据,在此将自己命名的huitushuju文件导入: 2. ...

  4. 用matlab如何画根轨迹图,MATLAB绘制根轨迹ppt课件

    <MATLAB绘制根轨迹ppt课件>由会员分享,可在线阅读,更多相关<MATLAB绘制根轨迹ppt课件(11页珍藏版)>请在人人文库网上搜索. 1.MATLAB绘制根轨迹,由传 ...

  5. 【Matlab】数据插值

    数据插值 插值与拟合的区别: 实现方法:插值要求曲线穿过样本点,而拟合不需要穿过样本点,只要求总体误差最小. 结果形式:插值是分段逼近样本点,没有同一的逼近函数:函数拟合则用一个函数去逼近,有完整的表 ...

  6. matlab怎么输出插值,matlab插值方法0.ppt

    matlab插值方法0 * 数学建模暑期培训 数 据 插 值 * 实验目的 实验内容 2.掌握用数学软件包求解插值问题. 1.了解插值的基本内容. [1]一维插值 [2]二维插值 [3]实验作业 * ...

  7. adams数据导出matlab,adams数据导入matlab

    Matlab 数据导入方法在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文 件.MATLAB 使用多种格式打开和保存数据.本章将要介绍 MATLAB 中文件...... adam ...

  8. python画车辆轨迹图_如何利用 Python 绘制酷炫的 车辆轨迹 — 速度时空图?三维数据用二维图像呈现...

    说明:本文系交通攻城狮原创文章,如需转载请私信联系,侵权必究. 2020,第 30 期,编程笔记 建议直接阅读精编版:如何利用 Python 绘制酷炫的 车辆轨迹 - 速度时空图?三维数据用二维图像呈 ...

  9. matlab tcpip数据解析,Matlab数据输出、从MATLAB 以tcpip形式传输数据到 vvvv

    Matlab数据输出..从MATLAB 以tcpip方式传输数据到 vvvv 想要使用vvvv进行控制,但是数据是从matlab里算出的 就想到tcp/ip方式连接 查找很多资料,可大多数都是在MAT ...

最新文章

  1. RecyclerView 的findFirstVisibleItemPosition()与findLastVisibleItemPosition()
  2. nboot,eboot和uboot
  3. SIFT特征提取-应用篇
  4. TabHost选项卡的 功能和用法
  5. 字符串转换 - 应该熟练掌握的东西
  6. spark task和stage划分原理
  7. 什么是重构,什么不是重构
  8. Spring5 源码下载注意事项
  9. WebClient UI MVC data binding的实现
  10. MySql允许被远程访问
  11. 曝光:一位来自微软公司的粉丝 写给我的信
  12. 设计模式--模板方法模式--Java实现-- java访问控制关键字用法
  13. Unity3D DoTween插件 的基本用法
  14. python创建配置文件_python3 如何创建一个.ini的配置文件。
  15. 百度SEO尊诺网络移动端百度发包程序3.0
  16. 网络流(17/24)
  17. 用Python分析豆瓣,评分最低的演员原来是他
  18. 为什么巡检在工业生产中如此重要?
  19. 书单 | 测试工程师必读经典好书,你读过几本?
  20. 任正非最新签发:鼓励来华为“胡说八道”

热门文章

  1. Serializable接口
  2. CES中国企业被查抄案最新进展:美公司主动撤诉
  3. atitit. java jsoup html table的读取解析 总结
  4. AngularJS开发指南7:AngularJS本地化,国际化,以及兼容IE低版本浏览器
  5. StorSimple 简介
  6. 2011年使用天正建筑8.0注册版(附注册机)
  7. 抗侧力构件弹性位移如何计算_穿心棒法盖梁施工计算书(工字钢)
  8. vscode开发python使用教程_在VS Code上搭建Python开发环境的方法
  9. oracle创建数据库总结,oracle创建数据库和用户方法总结
  10. 面试官问我:spring、springboot、springcloud的区别,我笑了