爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8904|回复: 13

wrfout画降水图

[复制链接]

新浪微博达人勋

发表于 2018-1-25 12:46:42 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 小温馨岁月 于 2018-1-25 12:48 编辑

wrfout输出数据为日数据:wrfout_d01_1966-08-01_00:00:00.nc
wrfout_d01_1966-08-02_00:00:00.nc
想要查看0801日的降水量,所以
ncl脚本中分别计算了0801和0802的Raintotal:
RAINC = wrf_user_getvar(f0,"RAINC",0)
RAINNC = wrf_user_getvar(f0,"RAINNC",0)
RainTotal=RAINC+RAINNC


RAINC1 = wrf_user_getvar(f1,"RAINC",0)
RAINNC1 = wrf_user_getvar(f1,"RAINNC",0)
RainTotal1=RAINC1+RAINNC1


然后相减:RainTotal2 = RainTotal1-RainTotal

结果输出的RainTotal2的最小值为:-8.847564e-09。最大值为:797.0039

出图为:


这个图海上的值非常大,而中国地区值非常小,想知道出现这样的结果是什么原因呢?
是试验转的不对还是ncl的问题?
rain_day.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-1-25 12:49:17 | 显示全部楼层
还望各路大神指教
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-1-25 16:50:51 | 显示全部楼层
问题不够清楚吧,至少把观测降水图放着,中国地图画一画
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-1-25 17:15:46 | 显示全部楼层
男紫汗 发表于 2018-1-25 16:50
问题不够清楚吧,至少把观测降水图放着,中国地图画一画

恩,我使用wrfout输出数据画的降水图,wrf试验的范围圈的就是中国地区。
我想问的是:我算0801日降水的脚本是否是正确的呢?
如果是正确的,为什么出来的图,海上值很大,但是中国地区却很小
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-1-26 15:33:54 | 显示全部楼层
降水发生在青藏高原西南侧,区域没问题,但是日降水绝对值太大,是否是你缺省值设置问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-1-29 20:35:59 | 显示全部楼层
Adam-Lee 发表于 2018-1-26 15:33
降水发生在青藏高原西南侧,区域没问题,但是日降水绝对值太大,是否是你缺省值设置问题

我设置了缺省值,但是还是这样
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-1-29 20:38:16 | 显示全部楼层
小温馨岁月 发表于 2018-1-29 20:35
我设置了缺省值,但是还是这样

f0 = addfile("wrfout/wrfout_d01_1965-08-31_00:00:00.nc","r")

  RAINC = wrf_user_getvar(f0,"RAINC",0)
  RAINNC = wrf_user_getvar(f0,"RAINNC",0)
  RainTotal=new((/174,209/),float,-999)
  do i=0,173
    do j=0,208
      if((.not.ismissing(RAINC(i,j))).and.(.not.ismissing(RAINNC(i,j))).and.(RAINC(i,j).gt.0.0).and.(RAINNC(i,j))) then
            RainTotal(i,j)=RAINC(i,j)+RAINNC(i,j)
      end if
    end do
  end do      

  f1 = addfile("wrfout_d01_1965-09-01_00:00:00.nc","r")
  
  RAINC1 = wrf_user_getvar(f1,"RAINC",0)
  RAINNC1 = wrf_user_getvar(f1,"RAINNC",0)
  RainTotal1=new((/174,209/),float,-999)
  do i=0,173
    do j=0,208
      if((.not.ismissing(RAINC1(i,j))).and.(.not.ismissing(RAINNC1(i,j))).and.(RAINC1(i,j).gt.0.0).and.(RAINNC1(i,j))) then
            RainTotal1(i,j)=RAINC1(i,j)+RAINNC1(i,j)
      end if
    end do
  end do

  RainTotal2=new((/174,209/),float,-999)
  do i=0,173
    do j=0,208
      if((.not.ismissing(RainTotal1(i,j))).and.(.not.ismissing(RainTotal(i,j))).and.(RainTotal1(i,j).gt.0.0).and.(RainTotal(i,j))) then
           RainTotal2(i,j) = RainTotal1(i,j)-RainTotal(i,j)
      end if
    end do
  end do
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-1-30 16:59:18 | 显示全部楼层
小温馨岁月 发表于 2018-1-29 20:38
f0 = addfile("wrfout/wrfout_d01_1965-08-31_00:00:00.nc","r")

  RAINC = wrf_user_getvar(f0,"RAIN ...

你这里不用写循环,直接做加减就行,由ncl内部进行数组化运算。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-1-31 13:29:03 | 显示全部楼层
Adam-Lee 发表于 2018-1-30 16:59
你这里不用写循环,直接做加减就行,由ncl内部进行数组化运算。

直接做加减也是上图的结果
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-1 10:12:06 | 显示全部楼层
小温馨岁月 发表于 2018-1-31 13:29
直接做加减也是上图的结果

直接减可以让代码简单些。。。
换个别的思路,你可以先单独画出来这两天的结果看看,贴出来我再给你找找原因
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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