爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4588|回复: 2

[作图] 使用ncl对200hPa风进行滤波,处理后的数据变量声明丢失

[复制链接]

新浪微博达人勋

发表于 2018-7-4 21:33:23 | 显示全部楼层 |阅读模式

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

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

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

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-7-4 21:37:35 | 显示全部楼层
原本的资料是1979-2015年的ERI资料,以下是经过ncl_filedump的内容C:\Users\Administrator\Desktop\1.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-7-4 21:40:08 | 显示全部楼层
在原本的数据中 经过ncl_filedump 显示的变量有V200、g4_lat_1、g4_lon_2,但是程序的结果却将后面两个变量声明给丢失了,请问问题出在哪,该如何解决
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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