- 积分
- 10887
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-10-27
- 最后登录
- 1970-1-1
|
GrADS
系统平台: |
|
问题截图: |
- |
问题概况: |
NCL多层次插值遇到问题 |
我看过提问的智慧: |
看过 |
自己思考时长(天): |
1 |
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
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
in1 =addfile("/home/hp/hgt.mean.nc","r")
time = in1->time
lon2d = in1->lon
lat2d = in1->lat
lev = in1->level
hgt = in1->hgt(382:781,:,::-1,:)
;-------------------------------------------------------------------------------------------
summer = new((/34,17,73,144/),float)
do k=0,33
summer(k,:,:,:)=(hgt(12*k,:,:,:)+hgt(12*k+1,:,:,:)+hgt(12*k+2,:,:,:)+hgt(12*k+3,:,:,:))/4.0
end do
newsummer = new((/34,17,181,360/),float)
newsummer!0="time"
newsummer!1="lev"
newsummer!2="lat"
newsummer!3="lon"
newsummer&time=ispan(1979,2012,1)
newsummer&lev=hgt&level
newlat = fspan(-90,90,181)
newlon = fspan(0,360,360)
newlat@units = "degrees_north"
newlon@units = "degrees_east"
do l=0,16
newsummer(:,l,:,:)=linint2(lon2d,lat2d,hgt,True,newlon,newlat,0)
end do
hgt@lat2d=lat2d
hgt@lon2d=lon2d
newsummer@_FillValue=-9.99e+33
newsummer@missing_value=newsummer@_FillValue
newsummer&lat=newlat
newsummer&lon=newlon
newsummer&lev@units="hpa"
newsummer&time@units="year"
newsummer&lat@units="degrees_N"
newsummer&lon@units="degrees_E"
newsummer=dim_standardize(newsummer,1)
printVarSummary(newsummer)
fout=addfile("/home/hp/hgt11-2.nc","c")
fout->hgt=newsummer(0:33,:,:,:)
end
#######################################################################
以上为程序,报错为: Unable to allocate memory for output array
错误行为: newsummer(:,l,:,:)=linint2(lon2d,lat2d,hgt,True,newlon,newlat,0)
数据有17层,单层插值时这个函数没有问题,多层遇到问题,加了循环也还是有问题,请问要如何改正。
|
|