爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 11898|回复: 11

[作图] [已解决]NCL(XY图)若两种资料时间精度不同怎么画在一张图上,共用一个X轴

[复制链接]

新浪微博达人勋

发表于 2015-2-21 10:13:49 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ·.飘稦▂_ 于 2015-2-25 19:19 编辑

谢谢7l talkd~
使用overlay函数就可以了
类似的例子参考官网 http://www.ncl.ucar.edu/Applications/Scripts/conOncon_1.ncl


要进行模式资料与实况站点资料的对比,模式资料是间隔15分钟(模式输出是5分钟,但是画出来看了一下5min与15min的图形差不多),实况资料是间隔是1小时,平时是使用RIP画图的,但是RIP不能画时间序列图,需要借助于NCL(参考的是WRF官网中RIP的教程),因为接触NCL也没有几天,由于时间精度不同,怎么都没有办法画出图片。

现在的想法是,把实况资料中没有的时次,填上-99.99(设置为缺省值),但是NCL好像是由于实况资料缺省值太多,就不画了..
求问大神们应该怎么办?

PS:如果模式资料改为1小时间隔,有些过程就对不上..所以希望还是使用模式15min间隔资料与实况1hr间隔资料在一张图上进行对比


文件如下
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
;***********************************************
begin
;***********************************************

  files = systemfunc("cut -c18-22 station.txt")
  location = systemfunc("cut -c24-35 station.txt")
;station 是存放8个站点信息的文件 files是站点号 location是经纬度

  do i=0,7

;slp(0,:)存放模式输出的slp资料,slp(1,:)存放实况slp资料
    slp      = new((/2,65/),float)

;time存放模式时间,将世界时转为当地时        
    time = stringtofloat( systemfunc("cut -c21-22,38-40 slp_"+files(i)+".tser") ) + 8
    slp(0,:)  = stringtofloat( systemfunc("cut -c54-68  slp_"+files(i)+".tser" ) )

;time1读取实况资料时间,暂存在time1中。slp1读取实况资料slp,暂时存在slp1
    time1 = stringtofloat( systemfunc("cut -f1  "+files(i)+".txt" ) )
    slp1  = stringtofloat( systemfunc("cut -f4  "+files(i)+".txt" ) )

;把实况资料调整成跟模式输出时间精度一致,没有资料的时刻设置成-99.99
;模式输出有65个时次,实况有12个时次
    a=0
    do j=0,64
        if ( a .gt. 11)then
                a=11
        end if
        e = time(j)-time1(a)
        if ( (abs(e) .lt. 0.1) .and. ( a .lt. 12) ) then
                slp(1,j) = slp1(a)
                a=a+1
        else
                slp(1,j)=-99.99
        end if
    end do
  slp@_FillValue = -99.99

;绘图
  wks_slp = gsn_open_wks("png","slp_"+files(i))

  res_slp = True
  res_slp@tmXTOn         = False        
  res_slp@xyLineThicknesses = 2.0      
  res_slp@xyLineColor   =  (/"blue","red"/)  
  ;res_slp@xyDashPatterns = (/0,1/)  
  res_slp@trXMinF         = 12        ; set minimum X-axis value
  res_slp@trXMaxF         = 23        ; set maximum X-axis value
  res_slp@tiYAxisString = "slp"
  res_slp@tiXAxisString = "Time"
  res_slp@tiMainString = files(i)+"  "+location(i)

  plot  = gsn_csm_xy(wks_slp,time,slp,res_slp)  

  end do

end  

最后只能得到每个站点的 模式slp曲线,没有实况的曲线
(把slp@_FillValue = -99.99取消掉,可以得到“实况”红色的曲线..但是不能用啊..)

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

新浪微博达人勋

 楼主| 发表于 2015-2-21 21:21:50 | 显示全部楼层
或者.. 我一开始思路就不对了?..求大家指一条明路...
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-2-23 06:13:39 | 显示全部楼层
您说的是这种吗?两套画图配置,xy绘图,其中一个用tmXB控制横轴即可
力图.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-2-23 20:31:13 | 显示全部楼层
chhgxyclp 发表于 2015-2-23 06:13
您说的是这种吗?两套画图配置,xy绘图,其中一个用tmXB控制横轴即可


                               
登录/注册后可看大图

我是想画共用一个Y轴的量 不过横坐标是时间,
但是两个量的时间分辨率不同,不知道这样子的情况应该怎么解决

不过 我也可以试试这个办法 最后把右边的坐标值取消就可以了吧
非常感谢~


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

新浪微博达人勋

发表于 2015-2-23 23:03:27 | 显示全部楼层
·.飘稦▂_ 发表于 2015-2-23 20:31
我是想画共用一个Y轴的量 不过横坐标是时间,
但是两个量的时间分辨率不同,不知道这样子的情况应该怎 ...

噗。。。。我没好好看帖子!现在才理解你的意思。。抱歉。。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-2-24 00:28:59 | 显示全部楼层
我也是需要这样画图,模拟结果1h,站点资料10min和30min。帮顶关注下。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-2-24 21:11:24 | 显示全部楼层
搜索一下overlay函数可以帮楼主实现
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-2-25 18:25:40 | 显示全部楼层
talkd 发表于 2015-2-24 21:11
搜索一下overlay函数可以帮楼主实现

多谢~~ 用overlay就可以了~
NCL真的好强大啊

非常感谢,解决我困扰多日的问题~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-2-25 18:27:13 | 显示全部楼层
fhmny 发表于 2015-2-24 00:28
我也是需要这样画图,模拟结果1h,站点资料10min和30min。帮顶关注下。

问题解决啦~ 使用overlay函数就可以了~ 可以参考官网 http://www.ncl.ucar.edu/Applications/Scripts/conOncon_1.ncl
这个例子,差不多的~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-12 15:45:45 | 显示全部楼层
使用overlay函数就可以了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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