;------------------------------------------------------------------------------------------------- pro read_sw, csite,date1,date2,box, $ sw ; ;------------------------------------------------------------------------------------------------- @common dir='/Users/pkb/data/TPR/' ; ;; DEFINE THE OUTPUT TIME AXIS ; jda1=date2jul(date1) jda2=date2jul(date2) jpt=(jda2-jda1+1l) time=jda1+dindgen(jpt) ; ;; FIRST READ ALL DATA FROM SITE ;; - if file exists, extract correct time axis ;; - if not, fill variable with missing values ; ;; SWR fi=dir+'swnet'+csite+'_dy.cdf' f=file_test(fi) sw=fltarr(jpt)+!values.f_nan ;; swr sw_q=fltarr(jpt)+!values.f_nan ;; swr quality flag if (f) then begin tt0=time_lec(fi) sw0=ncdf_lec(fi,var='SWN_1495') sw_q0=ncdf_lec(fi,var='QSW_5495') tt0=tt0-time(0) ind=where((tt0 ge -1e-5) and (tt0 le jpt-1+1e-5)) if (ind(0) ne -1) then begin sw(tt0(ind))=sw0(ind) sw_q(tt0(ind))=sw_q0(ind) endif endif ind1=where((sw_q ne 1) and (sw_q ne 2)) sw(ind1)=!Values.f_nan ; ;; Replace missing values by "NaN" ; ;tsvars=['at','bf','bp','dyn','emp','evap','heat','iso','sw','swnet','qlat','qsen','sw', $ ; 'swnet','rain','rf','rh','ssd','sss','sst','swnet','tx','ty','wu','wv','ws','lat','lon'] ;depvars=['u','v','d','t','s'] vars=['sw'] nn=n_elements(vars) for n=0,nn-1 do begin var=vars(n) com='ind=where('+var+' ge 1.e20) & if (ind(0) ne -1) then '+var+'(ind)=!values.f_nan' r=execute(com) endfor end nsmooth=nsmooth sw=smooth(sw,nsmooth,/nan) ;------------------------------------------------------------------------------------------------- ;------------------------------------------------------------------------------------------------- function time_lec, fi tt=ncdf_lec(fi,var='time') fid=ncdf_open(fi) & vid=ncdf_varid(fid,'time') ncdf_attget, fid,vid,'units',orig orig=string(orig) yy=long(strmid(orig,11,4)) mm=long(strmid(orig,16,2)) dd=long(strmid(orig,19,2)) tt=julday(mm,dd,yy,12,00)+tt return, tt end ;-------------------------------------------------------------------------------------------------