爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3594|回复: 6

[脚本编辑] 【已经解决】求助!用6小时资料求解月平均,画出来的全是缺测值

[复制链接]

新浪微博达人勋

发表于 2015-4-13 15:54:47 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 monkey小可 于 2015-4-13 22:05 编辑

各位版友好!
小弟最近用grads用6小时资料计算月平均的结果,用的gs文件如下:
'reinit'
'sdfopen D:\Paper\0413/LU1990_2040-2060.nc'
'set fwrite D:\Paper\0413/LU1990-2040-2060.grd'
'set gxout fwrite'
data0=0
year=2040
while(year<=2060)
month=1
while(month<=12)
    if(month=1|month=3|month=5|month=7|month=8|month=10|month=12)
         data=124
       else
         if(month=4|month=6|month=9|month=11)
           data=120
             else
               if(month=2&(year=2020|year=2024|year=2028|year=2032|year=2036|year=2040))
                 data=116
                else
                  if(month=2)
                    data=112
                  endif
               endif
         endif
     endif
data0=data0+data
t1=data0-data+1
t3=data0
say t1 t3
'set x 1 116'
'set y 1 102'
'set z 1'
'set t 1'
'define cc=ave(t2,t='t1',t='t3')'
'd cc'
*'d ave(rainc+rainnc,t='t1',t='t2')'
month=month+1
endwhile
year=year+1
endwhile
'disable fwrite'
'reinit'

但是得到的结果画出来的图却是这个样子的

1

1


contouring: -2.5e+38 to 2.5e+38 interval 5e+37
图的ctl文件是这样的:
dset D:\Paper\0413\LU1990-2040-2060.grd
options  byteswapped
undef -5.66684e+22
title  OUTPUT FROM WRF V3.6.1 MODEL
pdef  116 102 lcc  36.500  102.000   58.500   51.500  60.00000  30.00000  102.00000  50000.000  50000.000
xdef  426 linear   53.98895   0.22522523
ydef  236 linear    8.76476   0.22522523
zdef   1 linear 1 1  
tdef 252 linear 00Z01JAN2020     1mo      
VARS   1
T2             1  0  TEMP at 2 M (K)
*RAINC          1  0  ACCUMULATED TOTAL CUMULUS PRECIPITATION (mm)
ENDVARS

我已经被这个问题困扰了好久,以前也遇到过这种问题,感觉像是缺测值参与了计算,不知道是不是修改一下缺测值就ok呢?还是gs文件里面出了问题呢?请各位版友不吝赐教!谢谢啦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-13 20:08:26 | 显示全部楼层
options 中的 byteswapped 换成little_endian或者big_endian,试试吧。不同的系统可能计算出来的不一样。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-13 20:48:37 | 显示全部楼层
你那个’‘undef -5.66684e+22’‘是资料输出的值吗?感觉怪怪的。T2是两米高的温度,你set clevs 试试?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-13 22:03:29 | 显示全部楼层
梦纯 发表于 2015-4-13 20:08
options 中的 byteswapped 换成little_endian或者big_endian,试试吧。不同的系统可能计算出来的不一样。

按照你的建议,真的成功了,膜拜大神,确实是这个问题,在linux下面的顺序和windows下面不一样,多谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-13 22:04:38 | 显示全部楼层
星雨 发表于 2015-4-13 20:48
你那个’‘undef -5.66684e+22’‘是资料输出的值吗?感觉怪怪的。T2是两米高的温度,你set clevs 试试?

谢谢你的回复,是Unix和WINDOWS系统下读取2进制数据的方式正好是相反的。一个是从高位往低位,一个是从低位往高位这个原因。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-14 16:26:06 | 显示全部楼层
monkey小可 发表于 2015-4-13 22:04
谢谢你的回复,是Unix和WINDOWS系统下读取2进制数据的方式正好是相反的。一个是从高位往低位,一个是从低 ...

受教了,3Q
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-25 22:31:41 | 显示全部楼层
想请问楼主,'set x 1 116'
'set y 1 102',这个是怎么来的
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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