- 积分
 - 92
 
	- 贡献
 -  
 
	- 精华
 
	- 在线时间
 -  小时
 
	- 注册时间
 - 2011-7-11
 
	- 最后登录
 - 1970-1-1
 
 
 
 
 
 
 | 
	
 
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册 
 
 
 
x
 
大家好,想读出.nc文件,因为是NCEP网格数据,三维数据,共应读出776个月的数据,每个月是192*94 的格点,我想把每月的数据循环输出到同一个TXT文件中,可是最后输出的还是一列,不是192*94列,并且读第二个月的数据后,前面的数据也被冲掉,不知道怎么回事.  谢谢了 
 
pro readCDF 
 
  finame = 'd:\nswrs.nc' 
 
  NCid = NCDF_OPEN(finame) 
  NCinfo = NCDF_INQUIRE(NCid) 
;  print, NCinfo.Nvars 
 
; 查询NC文件中的变量,以及变量的 att 信息 
  FOR iVar = 0, NCinfo.Nvars-1 DO BEGIN 
    Varinfo = NCDF_VARINQ(NCid, iVar) 
    print, "Var Name: ", Varinfo.Name 
    print, "Att Number: ", Varinfo.Natts 
 
    FOR iAtt = 0, Varinfo.Natts-1 DO BEGIN 
      AttName = NCDF_ATTNAME(NCid, iVar, iAtt) 
      NCDF_ATTGET, NCid, iVar, AttName, Att 
      print, AttName, ":  ", STRING(Att) 
    ENDFOR 
    print, "" 
  ENDFOR 
 
; 读取数据 
 
for p=0,776 do begin 
 
    varname='nswrs' 
    m=192 
    n=94 
    a01=fltarr(192,94,1,776) 
    ;a01=a01*0.1+3156.5 
    a1=fltarr(192,94) 
    a2=fltarr(192,94) 
 
    fileID01=ncdf_open(finame) 
    varID01=ncdf_varid(fileID01,varname) 
    ncdf_varget,fileID01,varID01,data01 
    a01=data01 
 
    a1=a01[0:191,0:93,p:p] 
    a2=congrid(a1,m,n,/interp) 
 ;输出到TXT 
openw,lun,'e:\nswrs.txt',/get_lun,/append 
point_lun,lun,p*size(a2,/N_ELEMENTS) 
 
;打印到txt(192*94) 
for i=0,191 do begin 
  for j=0,93 do begin 
 
printf,lun,a2[i,j],format='(d14.7)' 
endfor 
endfor  
close,lun 
free_lun,lun 
 
ENDFOR 
 
 
print,'FINISH!' 
 
end 
 
 
 |   
 
 
 
 |