爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 15040|回复: 24

ncl出错问题

[复制链接]
发表于 2014-3-27 19:18:19 | 显示全部楼层 |阅读模式

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

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

x
warning:["CoordArrays.c":591]:No Valid values in Array, unable to compute Min or Max
运行时出现这个错误是什么意思啊 ,怎么弄,求指导

密码修改失败请联系微信:mofangbao
发表于 2014-3-27 19:25:57 | 显示全部楼层
没提示哪一行?
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-27 19:33:00 | 显示全部楼层
BDRUSH 发表于 2014-3-27 19:25
没提示哪一行?

没有啊,我也不太明白。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-27 19:35:48 | 显示全部楼层
BDRUSH 发表于 2014-3-27 19:25
没提示哪一行?

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"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"

begin
pi=3.14159
g=9.8
r=6400000        ;1981.1-2010.12  29nian
       
         v = addfile ("$NCARG_ROOT/lib/ncarg/data/cdf/vwnd.mon.mean.nc", "r")                  
         vf12 = short2flt(v->vwnd(395:754,0:9,:,:))
      

      
        vf1212=new((/360,10,73/),"float")
       
        vf1212=dim_avg_n(vf12,3)
       
       
        p=(/1000.,900.,800.,700.,600.,500.,400.,300.,200.,100./)

        vf2=new((/360,10,73/),"float")
        vf3=new((/360,10,73/),"float")
        vf4=new((/360,10,73/),"float")
       
       
        do it=0,359
         do iy=0,72
          do iz=0,9
           vf2(it,iz,iy)=vibeta(p,vf1212(it,:,iy),1,1013.,p(iz),99.)
           vf3(it,iz,iy)=vf2(it,iz,iy)*cos((iy-36)*2.5*3.14159/180)
           vf4(it,iz,iy)=2*3.14159*6400000*vf3(it,iz,iy)/(9.8*10000000)       
          end do
         end do       
    end do                     
  lev_p   = (/1000.,900.,800.,700.,600.,500.,400.,300.,200.,100./)
  lev_p@units     = "hPa"
  
  mm=new((/360,3,3/),"float")
  do itt=0,359
    do izz=1,8
      do iyy=0,72
             if(vf4(itt,izz,iyy).eq.0)then
                if((iyy.le.56).and.(iyy.gt.44))then
                    mm(itt,izz,0)=iyy*2.5-90
                else
                  if((iyy.le.44).and.(iyy.ge.28))then
                    mm(itt,izz,1)=iyy*2.5-90
                  else
                     if((iyy.ge.16).and.(iyy.lt.28))then
                        mm(itt,izz,2)=iyy*2.5-90
                     end if
                  end if
                 end if
              end if
      end do
     end do
   end do
   mmt=new((/360,3/),"float")
   mmt=dim_avg_n(mm,1)
   

dim = dimsizes(mmt(:,1))  
var_3d_summer=new((/30,12/),"float")
var_3d_cli=new((/12,30/),"float")
var_2d_spring=new(30,"float")
var_2d_summer=new(30,"float")
var_2d_autumn=new(30,"float")
var_2d_winter1=new(30,"float")
var_2d_winter2=new(30,"float")

var_3d_summer = onedtond(mmt(:,1),(/dim/12,12/))  ;ti qu chu ji jie
var_3d_summer!1="season"
var_3d_summer!0="time"

var_3d_cli= var_3d_summer(season|:,time|:)
  
  
var_2d_summer = dim_avg_n(var_3d_cli(5:7,:),0)      ;JJA  
var_2d_winter1 = dim_avg_n(var_3d_cli(0:1,:),0)
var_2d_winter2 = dim_avg_n(var_3d_cli(11,:),0)
var_2d_winter=(var_2d_winter1+var_2d_winter2)/2.      ;DJF
var_2d_spring = dim_avg_n(var_3d_cli(2:4,:),0)      ;MAM
var_2d_autumn = dim_avg_n(var_3d_cli(8:10,:),0)     ;SON
zonal1 =dim_avg_n(var_3d_cli,0)
mmsu=dim_avg(var_2d_summer)
mmw=dim_avg(var_2d_winter)
mmsp=dim_avg(var_2d_spring)
mma=dim_avg(var_2d_autumn)
tt=dim_avg(zonal1)

yy1=new((/5,30/),"float")
yy1(0,:)=(var_2d_spring-mmsp)/(dim_stddev(var_2d_spring))     
yy1(1,:)=(var_2d_summer-mmsu)/(dim_stddev(var_2d_summer))
yy1(2,:)=(var_2d_autumn-mma)/(dim_stddev(var_2d_autumn))
yy1(3,:)=(var_2d_winter-mmw)/(dim_stddev(var_2d_winter))
yy1(4,:)=(zonal1-tt)/(dim_stddev(zonal1))
x=new(30,"float")
x=ispan(1981,2010,1)

wks=gsn_open_wks("png","Ebianbei")  
  
gsn_define_colormap(wks,"cyclic")          ; Change color map
  

res                        = True

res@trXMinF  = 1981
res@trXMaxF  = 2010
res@tiYAxisString = "extent anomalies in NH "  
   
res@xyLineColors          =  (/3,4,5,7,2/)  
res@xyLineThicknessF  = 2
res@xyDashPattern     = 0  
res@pmLegendDisplayMode    = "Always"            
res@pmLegendWidthF         = 0.15                 
res@pmLegendHeightF        = 0.15
res@lgPerimOn              = False
res@pmLegendSide ="Right"
res@xyExplicitLegendLabels = (/"spring","summer","autumn","winter","annual"/)

plot= gsn_csm_xy(wks,x ,yy1,res)
end

  
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-27 19:36:14 | 显示全部楼层
BDRUSH 发表于 2014-3-27 19:25
没提示哪一行?

麻烦了,帮忙看下
密码修改失败请联系微信:mofangbao
发表于 2014-3-27 19:36:24 | 显示全部楼层
脚本贴出来看看
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-27 19:50:27 | 显示全部楼层
BDRUSH 发表于 2014-3-27 19:36
脚本贴出来看看

贴了,主要是想选取纬度的
密码修改失败请联系微信:mofangbao
发表于 2014-3-27 19:59:05 | 显示全部楼层
额,帮你再顶顶,我好像看不出来,哈哈,坐等达人
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-27 20:02:50 | 显示全部楼层
BDRUSH 发表于 2014-3-27 19:59
额,帮你再顶顶,我好像看不出来,哈哈,坐等达人

好的,十分感谢。
密码修改失败请联系微信:mofangbao
发表于 2014-3-27 21:03:09 | 显示全部楼层
本帖最后由 longlivehj 于 2014-3-27 21:05 编辑
水霖玲 发表于 2014-3-27 19:35
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/c ...

我下载的是ncep的vwnd.mon.mean.nc,维数和你用的应该是一致的。然后运行代码,看了一下,发现下面的问题。

在对mm数组赋值的那一大段循环里面,有这样一个if语句:
if(vf4(itt,izz,iyy).eq.0)then
...
end if

然而,在代码中添加print(num(vf4 .eq. 0))语句后运行,发现打印值为0,就是说上面的if块永远不会执行。那么mm里面全部是missing value,导致后面的一系列变量,包括最后的yy1里面全部是missing value。

都是missing value的话,就会出现“warning:["CoordArrays.c":591]:No Valid values in Array, unable to compute Min or Max“的警告。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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