爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 26448|回复: 24

[作图] 已解决:NCL绘制wrfout 垂直剖面横坐标转换和设置

[复制链接]

新浪微博达人勋

发表于 2017-1-6 20:19:56 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 lsucky 于 2017-1-9 16:27 编辑

小白一枚,最近在学习ncl,遇到的两个问题在大家的帮助下已解决,总结如下:
(1)将横坐标由格点数转换为经度表示,类似于下图:
360截图20170106200447895.jpg
添加经纬度信息,补全的脚本如下:
  ; Interpolate to pressure
    av_plane = wrf_user_intrp3d(avo,p,"v",plane,0.,False)
    p_plane = wrf_user_intrp3d(p, p,"v",plane, 0.,False)
   lon_plane = wrf_user_intrp2d(xlon,plane,90.,False)
  
    av_plane!0="level"
    av_plane!1="lon"
    av_plane&level = p_plane(:, 0)
    av_plane&lon = lon_plane
    ; MAKE PLOTS                                       
     plot  = gsn_csm_pres_hgt(wks,av_plane,res )

(2)坐标间隔设置问题,指定起点终点和间隔:
      res@tmXBMode = "Explicit"
      res@tmXBValues = fspan(xxx,xxx,4)
      res@tmXBLabels = (/"xxx", "xxx",  "xxx", "xxx"/)

最后再次感谢家园的乐于助人的小伙伴!比心~

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-1-8 10:56:23 | 显示全部楼层
本帖最后由 lsucky 于 2017-1-8 11:13 编辑
pandasp1213 发表于 2017-1-7 09:36
把经度坐标信息补上就行了
av_plane!1="lon"
av_plane&lon = xxx


按照您说的尝试了下,显示错误如下:
fatal:Coordinate variables must be the same dimension as their dimension
fatal:["Execute.c":8575]:Execute: Error occurred at or near line 74 in file p-av.ncl

修改代码如下:
360截图20170108111953110.jpg

密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2017-1-7 09:36:56 | 显示全部楼层
把经度坐标信息补上就行了
av_plane!1="lon"
av_plane&lon = xxx
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-1-8 14:36:14 | 显示全部楼层
lsucky 发表于 2017-1-8 10:56
按照您说的尝试了下,显示错误如下:
fatal:Coordinate variables must be the same dimension as the ...

从你图上看经度方向应该有900个点左右,113.63,113.66两个肯定是不够的呀,所以提示must be the same dimension,得给变量900个经度
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-1-8 18:17:23 | 显示全部楼层
本帖最后由 lsucky 于 2017-1-8 18:19 编辑

修改了维度已经初步得到解决了,非常感谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-1-8 18:20:31 | 显示全部楼层
本帖最后由 lsucky 于 2017-1-8 18:23 编辑
pandasp1213 发表于 2017-1-8 14:36
从你图上看经度方向应该有900个点左右,113.63,113.66两个肯定是不够的呀,所以提示must be the same dim ...


试过修改维度,问题已经基本上解决了,非常感谢!
现在的图的坐标已经是经度了,
顺便再求教一下,横坐标的精度怎么调节?
像上图中只出现一个113,我想让它的间隔为0.1显示。
试过            
      ;res@tmXBValues    = fspan(xxx, xxx, xx)   但并没有成功

1.png


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-1-8 19:26:10 | 显示全部楼层
lsucky 发表于 2017-1-8 18:20
试过修改维度,问题已经基本上解决了,非常感谢!
现在的图的坐标已经是经度了,
顺便再求教一下,横 ...

添加以下语句:
res@tmXBMode                = "Explicit"
res@tmXBValues              = fspan(101,105,5)                    ; Create tick marks
res@tmXBLabels              = (/"101E","102E","103E","104E","105E"/)  ; Create labels
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-1-8 20:24:58 | 显示全部楼层
愛、星晴 发表于 2017-1-8 19:26
添加以下语句:
res@tmXBMode                = "Explicit"
res@tmXBValues              = fspan(101, ...

谢谢!但是是这样的,资料的精度很小,经度范围在112-113.8之间,
function fspan (        start  [1] : numeric,        
                finish [1] : numeric,        
                npts   [1] : integral type   )
第三项必须是整数,所以应该是不能用这个
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-1-8 21:05:11 | 显示全部楼层
lsucky 发表于 2017-1-8 20:24
谢谢!但是是这样的,资料的精度很小,经度范围在112-113.8之间,
function fspan (        start  [1] : nume ...

怎么不可以用,查查这个函数的意思你就知道怎么回事,当然,还有一种方法就是你把想要的刻度都列出来。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-1-8 21:16:45 | 显示全部楼层
愛、星晴 发表于 2017-1-8 21:05
怎么不可以用,查查这个函数的意思你就知道怎么回事,当然,还有一种方法就是你把想要的刻度都列出来。

360截图20170108212055707.jpg

fatal:fspan: number of elements parameter must be of an integral type, cannot continue
刚刚试了一下,确实是不可以呢
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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