爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6392|回复: 1

NCL低于1500米设为缺省值

[复制链接]
发表于 2017-3-30 20:07:39 | 显示全部楼层 |阅读模式

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

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

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任意一个时间,一块区域都是缺省值
;;;;;没有存在报错现象

密码修改失败请联系微信:mofangbao
发表于 2017-3-30 20:39:21 | 显示全部楼层
我记得应该是mask函数
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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