;------------------------------------------------------- ;Title: acse_readirt.pro ;Purpose: Program to read pair of irt ; ;Input: sarg: date/time string, YYYYMMDDHH ; earg: data/time string, YYYYMMDDHH ;Output: time1: time axis #1, decimal hours ; irt1: IR temperature #1 [C] ; time2: time axis #2, decimal hours ; irt2: IR temperature #2 [C] ; ;Keywords: directory: directory containing the data ; default is current working directory ; irtr1: Ambient temperature reference #1 [C] ; irtr2: Ambient temperature reference #2 [C] ; jtime1: Decimal year day #1 ; jtime2: Decimal year day #2 ;Author: Matthew Shupe ;Date: 7/12/2014 ;------------------------------------------------------- pro acse_readirt,sarg,earg,time1,irt1,time2,irt2,irtr1=irtr1,irtr2=irtr2,directory=directory,jtime1=jtime1,jtime2=jtime2 if keyword_set(directory) then cd,directory,current=orig_dir base_date=julday(1,1,1970,0,0,0) base=jul_to_dt(base_date) !dt_base=base ;---------------------------------- ;Determine a list of files to read ;---------------------------------- sjd=julday(strmid(sarg,4,2),strmid(sarg,6,2),strmid(sarg,0,4)) ejd=julday(strmid(earg,4,2),strmid(earg,6,2),strmid(earg,0,4)) if sjd ne ejd then begin numa=ejd-sjd+1 darg=strarr(numa) for i=0,numa-1 do begin caldat,sjd+i,mo,da,yr if mo lt 10 then mo='0'+strtrim(mo,2) else mo=strtrim(mo,2) if da lt 10 then da='0'+strtrim(da,2) else da=strtrim(da,2) yr=strmid(strtrim(yr,2),2,2) darg[i]=yr+mo+da endfor endif else begin darg=strmid(sarg,2,6) numa=n_elements(darg) endelse sjd=sjd-julday(1,1,2014)+1 ;------------------------ ;Read in the daily files ;------------------------ time1=fltarr(numa*24*4000.)*0-999. irt1=time1 irtr1=time1 jnk=' ' st8=strarr(8) st10=strarr(10) ind=0L for d=0,numa-1 do begin farg=darg[d]+'*KT15-1' file=findfile(farg,count=numf) file=file[sort(long(strmid(file,7,6)))] for f=0,numf-1 do begin print,"Reading ",file[f] openr,lun,/get_lun,file[f] readf,lun,jnk if strmid(jnk,24,1) ne "A" then begin st8=strsplit(jnk,' ',/extract) readf,lun,jnk st10=strsplit(jnk,' ',/extract) time1[ind]=float(st8[3])+float(st8[4])/60.+float(st8[5])/3600.+d*24.0 if st10[2] ne strmid(file[f],4,2) then time1[ind]=time1[ind]+24. irt1[ind]=float(st8[6]) irtr1[ind]=float(st10[8]) ind=ind+1 endif while not eof(lun) do begin readf,lun,jnk st8=strsplit(jnk,' ',/extract) time1[ind]=float(st8[3])+float(st8[4])/60.+float(st8[5])/3600.+d*24.0 irt1[ind]=float(st8[6]) if not eof(lun) then begin readf,lun,jnk st10=strsplit(jnk,' ',/extract) irtr1[ind]=float(st10[8]) endif else irtr1[ind]=-999. ind=ind+1 endwhile free_lun,lun endfor endfor if ind gt 0 then begin time1=time1[0:ind-1] irt1=irt1[0:ind-1] irtr1=irtr1[0:ind-1] ;Trim data to the hour range requested shr=fix(strmid(sarg,8,2)) ehr=fix(strmid(earg,8,2)) wh=where(time1 ge shr and time1 le ehr+24.0*(numa-1),nm) if nm gt 0 then begin time1=time1[wh] irt1=irt1[wh] irtr1=irtr1[wh] endif endif else begin time1=findgen(1440)/1440*24. irt1=time1*0-999. irtr1=time1*0-999. endelse ;------------------------ ;Read in the daily files ;------------------------ time2=fltarr(numa*24*4000.)*0-999. irt2=time2 irtr2=time2 jnk=' ' st8=strarr(8) st10=strarr(10) ind=0L for d=0,numa-1 do begin farg=darg[d]+'*KT15-2' file=findfile(farg,count=numf) file=file[sort(long(strmid(file,7,6)))] for f=0,numf-1 do begin print,"Reading ",file[f] openr,lun,/get_lun,file[f] readf,lun,jnk if strmid(jnk,24,1) ne "A" then begin st8=strsplit(jnk,' ',/extract) readf,lun,jnk st10=strsplit(jnk,' ',/extract) time2[ind]=float(st8[3])+float(st8[4])/60.+float(st8[5])/3600.+d*24.0 if st10[2] ne strmid(file[f],4,2) then time2[ind]=time2[ind]+24. irt2[ind]=float(st8[6]) irtr2[ind]=float(st10[8]) ind=ind+1 endif while not eof(lun) do begin readf,lun,jnk st8=strsplit(jnk,' ',/extract) time2[ind]=float(st8[3])+float(st8[4])/60.+float(st8[5])/3600.+d*24.0 irt2[ind]=float(st8[6]) if not eof(lun) then begin readf,lun,jnk st10=strsplit(jnk,' ',/extract) irtr2[ind]=float(st10[8]) endif else irtr2[ind]=-999. ind=ind+1 endwhile free_lun,lun endfor endfor if ind gt 0 then begin time2=time2[0:ind-1] irt2=irt2[0:ind-1] irtr2=irtr2[0:ind-1] ;Trim data to the hour range requested shr=fix(strmid(sarg,8,2)) ehr=fix(strmid(earg,8,2)) wh=where(time2 ge shr and time2 le ehr+24.0*(numa-1),nm) if nm gt 0 then begin time2=time2[wh] irt2=irt2[wh] irtr2=irtr2[wh] endif endif else begin time2=findgen(1440)/1440*24. irt2=time2*0-999. irtr2=time2*0-999. endelse ;make julian time jtime1=floor(sjd)+time1/24.0 jtime2=floor(sjd)+time2/24.0 if keyword_set(directory) then cd,orig_dir end ;prog