- 积分
- 2293
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2017-4-5
- 最后登录
- 1970-1-1

|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使用ncl对200hPa风进行滤波,处理后的数据变量声明丢失,原本的风资料里变量说明为v200、lat、lon,但是经过处理后,只剩下一个v200的变量说明,lat、lon的变量说明不见了,我会贴上程序,请求各位大佬帮忙解答
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"
begin
fils = systemfunc ("ls /home/export/online1/jhyu/uwnd/u200/*.nc")
nfils=dimsizes(fils)
f=addfiles(fils,"r")
p=new((/nfils/),"float")
do i=0,nfils-1
p(i)=dimsizes(f[i]->V200(:,0,0)) ;闰年p对应366,平年365
end do
slp2=new((/365*37,256,512/),"float")
mi=0
do i=0,nfils-1 ;平闰年区分 i=0->36 对应1979-2015年,共37年,统一化成365天,不论平闰
mi=i*365
if(p(i).eq.365)then ;平年
f2=f[i]->V200(:,:,:)
slp2(mi:mi+364,:,:)=f2 ;0-364 即365天的数据存入
else
f3=f[i]->V200(:,:,:)
slp2(mi:mi+58,:,:)=f3(0:58,:,:) ;将闰年 0-58共59天(31+28)即到2月28号数据存入,f3(59,:,:)数据不管
slp2(mi+59:mi+364,:,:)=f3(60:365,:,:)
end if
end do
slp2(:,:,:)=slp2(:,:,:)/4 ;资料整合原因,进行/4
p2=new((/13505,256,512/),"float") ;13505=365*37 ,用于存放距平值
do i=0,364
x=dim_rmvmean_n(slp2(i::365,:,:), 0) ;dim_rmvmean_n(x, dims)函数:计算数组x第dims的距平值
do j=0,36
p2(j*365+i,:,:)=x(j,:,:) ;将距平值存至p2
end do
end do
copy_VarMeta(slp2, p2)
x_wave = p2( g4_lat_1 | :, g4_lon_2 | :,time| :) ;x_wave一维权重数组,之所以改变维数顺序是为了便于做函数运算,如做纬向平均
ihp2 = 2 ; 这里使用到的是带通滤波器
sigma2 = 1.0 ; Lanczos sigma
nWgt2 =21 ; loose 100 each end 权重系数的计算:2L+1 其中 L指的是时间间隔
fca2 = 1./20. ; start freq
fcb2 = 1./10. ; last freq
wgt2 = filwgts_lanczos (nWgt2, ihp2, fca2, fcb2, sigma2 )
x3 =wgt_runave ( x_wave, wgt2,0) ; 10-20 day
copy_VarMeta(x_wave, x3)
cdfPath = "/home/export/online1/jhyu/pineapple/uwnd/10-20/200.nc"
system("/bin/rm -f "+cdfPath)
ncdf = addfile(cdfPath, "c")
ncdf->v200=x3
print("output is ok!")
end
|
|