登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我的降水数据只要1500米以上的,所以要用if语句将1500米以下的设为缺省值。可是我设完之后这个数据每一个点都变成了缺省值,不论是否1500米以上,而且只有这个数据文件是这样(同样的循环用别的数据文件中是没有错的),我的这个数据文件经度是-180:180的,间距是0.5*0.5,但是地形文件是0:360的,我用了插值函数,将地形变为(-180:180),单独print地形是没有错的,但是进入if语句循环后,就全部变为缺省值了。下面是我的文本,求大神解救
;;;;;;;;前面的读地形文件的设置我都省略了,前面肯定没有错 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" load"$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl" begin
r1 =addfile("/media/613/gpcc.nc","r")
o3 = r1->p(937:1260,{-90:90},{-180:180})
o3&lat@units="degrees_north"
o3&lon@units="degrees_east" t9 =month_to_season (o3, "JJA")
t10 = dim_avg_n_Wrap(t9,(/0/))
; Read terrain data from a C binary file
elev =read_elev_data("/root/ncl/data/hindcastqzgy/database/ETOPO5.DAT") ;读地形高度文件
elev =elev ({-90:90},{0:360}) elev2=linint2(elev&lon,elev&lat,elev,False,o3&lon,o3&lat,0) ;地形插值
copy_VarCoords(t10,elev2) ;到这里我都可以print出来elev
do i=0,359
do j=0,719
if(.not.ismissing(elev2(i,j)).and.elev2(i,j).ge.1500.)then ;会进入循环,并且比1500米大的数据的确存在(地形文件正确)
o3(:,i,j)=o3@_FillValue
end if
end do
end do
print(o3(2,{25:35},{85:105})) ;print任意一个时间,一块区域都是缺省值
;;;;;没有存在报错现象
|