爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: 小其其格

NCL绘制wrfout风场垂直剖面并叠加地形

  [复制链接]

新浪微博达人勋

 楼主| 发表于 2019-8-21 12:40:44 | 显示全部楼层
Bozhero 发表于 2019-8-21 10:21
楼主你好,我仍然坚持我的观点,你的atan2((endlat-startlat),(endlon-startlon)) 写反了,应该是atan2((en ...
  1. alfa   = atan2((endlat-startlat),(endlon-startlon))         ;计算线段AB与x轴方向的夹角
  2.     angle  = 90-alfa*180/PI  ;转换为与X轴的夹角
  3.     uv     = u*cos(alfa)+v*sin(alfa)                                 ;由于atan2函数正北为0度,因此线段AB与x轴方向的夹角angle和atan2函数出来的alfa之间要换算过
  4.     print("angle of Line AB with X in plot is " +angle+" Degree")
复制代码


我是按照这个方法计算的,出图效果如下:

plt_UW_mdBz_08.ab3.ncl.000002.png plt_UW_mdBz_08.ab3.ncl.000003.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-8-21 12:56:48 | 显示全部楼层
Bozhero 发表于 2019-8-21 10:21
楼主你好,我仍然坚持我的观点,你的atan2((endlat-startlat),(endlon-startlon)) 写反了,应该是atan2((en ...

其实应该是这里有一些小问题:

  1. ;uv     = u*cos(alfa)+v*sin(alfa)                                 ;由于atan2函数正北为0度,因此线段AB与x轴方向的夹角angle和atan2函数出来的alfa之间要换算过
  2.     uv     = u*sin(alfa)+v*cos(alfa)                                 ;由于atan2函数正北为0度,因此线段AB与x轴方向的夹角angle和atan2函数出来的alfa之间要换算过
复制代码


alfa是与y轴的交角,因此这里计算uv公式要换一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-8-21 13:26:39 | 显示全部楼层
Bozhero 发表于 2019-8-21 10:21
楼主你好,我仍然坚持我的观点,你的atan2((endlat-startlat),(endlon-startlon)) 写反了,应该是atan2((en ...

已经在主页修订了相关脚本和图,谢谢提醒!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-22 15:14:30 | 显示全部楼层
楼主的脚本确实给人启发很大,谢谢楼主,另外楼上说的先把u、v各自都插值到剖面基线上也亲测可行~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-8-22 16:02:02 | 显示全部楼层
Bozhero 发表于 2019-8-22 15:14
楼主的脚本确实给人启发很大,谢谢楼主,另外楼上说的先把u、v各自都插值到剖面基线上也亲测可行~

给你严谨的治学风格点赞
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-23 22:02:39 | 显示全部楼层
求问大神 我要画垂直剖面的组图 不需要显示给定线段的那幅图 请问应该怎么处理呢 而且我发现wrf_overlays不能用于gsn_panel。。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-23 22:04:39 | 显示全部楼层
还有我要是画垂直速度的垂直剖面图 数据里的wa和omega用哪个更合适呢 那么我还需要处理uv再画垂直剖面图嘛
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-24 11:01:45 | 显示全部楼层
嗨 大神 我仔细研究了一下你的脚本 有些地方还是没有搞懂 求大神指教
首先是do ip = 1, 1,1 这句 那他出来的ip不就是1吗 执行的也就是
if(ip .eq. 1) then
      ;angle = 90.
      X_plane = wrf_user_intrp2d(xlon,plane,angle,opts) ;This function interpolates 2D model data onto a specified line.
      X_desc = "longitude"
为什么还需要后面的两个if呢?
还有我不知道大神的数据是什么样的 为什么经纬度设置的这么小 nx却还等于10 。我设置的比大神要大些 可nx却等于1,请问是正常的吗
以下是我计算出的结果:
(0)     Requested  min/max xlon = 86.5/88.5
(0)     Actual     min/max xlon = 86.516/88.5116
(0)     Calculated min/max xlon = 86.516/88.5116
(0)     ----
(0)     Requested  min/max xlat = 43.5/45.1
(0)     Actual     min/max xlat = 43.5146/45.0975
(0)     Calculated min/max xlat = 43.5146/45.0975
(0)     ----
(0)     经度格点0 = 53
(0)     经度格点1 = 99
(0)     ----
(0)     纬度格点0 = 53
(0)     纬度格点1 = 104
(0)     ----
(0)     angle of Line AB with X in plot is 38.6598 Degree
(0)     xmin and xmax in plot is 86.4737 and 88.437
(0)     xspan and nx in plot is 67 and 1
而且为什么我的经纬度格点0都是53,可经纬度格点1却不一样
求大神解答!!已经困惑我2天了啊啊啊
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-24 11:07:35 | 显示全部楼层
本帖最后由 supersupergirl 于 2019-8-24 16:29 编辑

等一个答复
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-24 11:15:49 | 显示全部楼层
本帖最后由 supersupergirl 于 2019-8-24 16:29 编辑

而且就是为什么要用atan2函数计算角度呢 我看官网的例子angle=90不就是沿纬度的垂直剖面 angle=0不就是沿经度的垂直剖面吗 用函数计算后是因为可以指定经纬度了是吗?求大神解答!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表