;------------------------------------------------------------------------------- ; extract_hydra_dd.pro reads a list of times, determines what Hydra ddeis ; file to read, and then saves selected data for each time range. ;------------------------------------------------------------------------------- close,all=1 lname = ' ' iname = ' ' mn_day = [0,31,28,31,30,31,30,31,31,30,31,30,31] ; read,'list filename => ',lname lname = 'hydra.dates' read,'_dd_ (1) or _ddcal_ (2) file? => ',ftype if(ftype eq 1) then fnm = '_hyd_dd_*cdf' else fnm = '_hyd_ddcal_*cdf' openr,1,lname mn1 = 0 dd1 = 0 yr1 = 0 hh1 = 0 mm1 = 0 ss1 = 0 mn2 = 0 dd2 = 0 yr2 = 0 hh2 = 0 mm2 = 0 ss2 = 0 ; read each time interval while(not EOF(1)) do begin print,' ' readf,1,mn1,dd1,yr1,hh1,mm1,ss1,mn2,dd2,yr2,hh2,mm2,ss2, format= $ "(i2,1x,i2,1x,i2,1x,i2,1x,i2,1x,i2,1x,i2,1x,i2,1x,i2,1x,i2,1x,i2,1x,i2)" dlab1 = string(format="(i2.2,'/',i2.2,'/',i2.2)",mn1,dd1,yr1) dlab2 = string(format="(i2.2,'/',i2.2,'/',i2.2)",mn2,dd2,yr2) onm = string(format="('hyd_',i2.2,i2.2,i2.2,'_',i2.2,i2.2,'_',i2.2,i2.2)", $ yr1,mn1,dd1,hh1,mm1,hh2,mm2) if(ftype eq 1) then oname = onm + '_hrkp_dd.txt' else $ oname = onm + '_hrkp_ddcal.txt' print,'creating ',oname if(yr1 lt 50) then yr1 = yr1 + 2000 else yr1 = yr1 + 1900 if(yr2 lt 50) then yr2 = yr2 + 2000 else yr2 = yr2 + 1900 ifile = 1 ; find Hydra survey cdf file for single day ; griffin.nsstc.nasa.gov papco installation ; filename = '/export/data1/papco/data/hydra/' + $ ; goewin.gsfc.nasa.gov papco installation filename = '/export/home/zheng/polar/hydra/data/' + $ string(format="(i4.4,i2.2,i2.2)",yr1,mn1,dd1) + fnm fln = findfile(filename,count=fcnt) if(fcnt gt 0) then begin ifile = 1 file1 = fln(fcnt-1) endif else begin print,'cdf for ' + filename + ' not found.' print,"Press 'q' to quit, any other key to continue" case get_kbrd (1) of 'q' : goto,EOJ else: endcase endelse ; find second file if time crosses a day if(dd1 ne dd2) then begin ; griffin.nsstc.nasa.gov papco installation ; filename = '/export/data1/papco/data/hydra/' + $ ; goewin.gsfc.nasa.gov papco installation filename = '/export/home/zheng/polar/hydra/data/' + $ string(format="(i4.4,i2.2,i2.2)",yr2,mn2,dd2) + fnm fln = findfile(filename,count=fcnt) if(fcnt gt 0) then begin ifile = ifile + 1 file2 = fln(fcnt-1) nch = rstrpos(file2,'.') file2 = strmid(file2,0,nch) endif else begin print,'cdf for ' + filename + ' not found.' print,"Press 'q' to quit, any other key to continue" case get_kbrd (1) of 'q' : goto,EOJ else: endcase endelse endif ; open read cdf files for ifn = 1,ifile do begin if(ifn eq 1) then begin cdfid = cdf_open(file1) print,'reading ',file1 endif else begin cdfid = cdf_open(file2) print,'reading ',file2 endelse ; read Hydra spectrogram data for the entire day if(ifile eq 1) then begin cdf_control, cdfid, variable='HRKP_TIME',Get_Var_Info=c_info mxrec = long(c_info.maxrec) + 1 if(mxrec gt 0) then begin rstrt = long(0) cdf_varget,cdfid,'HRKP_TIME',time,rec_start=rstrt,rec_count=mxrec cdf_varget,cdfid,'HRKP_MEAN_ENERGY',e_kt,rec_start=rstrt, $ rec_count=mxrec cdf_varget,cdfid,'HRKP_DENSITY',e_n,rec_start=rstrt,rec_count=mxrec cdf_varget,cdfid,'HRKP_DENS_GT300',e_n_gt300,rec_start=rstrt, $ rec_count=mxrec cdf_varget,cdfid,'HRKP_DENS_GT1K',e_n_gt1k,rec_start=rstrt, $ rec_count=mxrec endif sza = size(time) endif else begin if(ifn eq 1) then begin cdf_control, cdfid, variable='HRKP_TIME',Get_Var_Info=c_info mxrec = long(c_info.maxrec) + 1 if(mxrec gt 0) then begin rstrt = long(0) cdf_varget,cdfid,'HRKP_TIME',time1,rec_start=rstrt,rec_count=mxrec cdf_varget,cdfid,'HRKP_MEAN_ENERGY',e_kt1,rec_start=rstrt, $ rec_count=mxrec cdf_varget,cdfid,'HRKP_DENSITY',e_n1,rec_start=rstrt,rec_count=mxrec cdf_varget,cdfid,'HRKP_DENS_GT300',e_gt3001,rec_start=rstrt, $ rec_count=mxrec cdf_varget,cdfid,'HRKP_DENS_GT1K',e_gt1k1,rec_start=rstrt, $ rec_count=mxrec endif sz1 = size(time1) endif else begin cdf_control, cdfid, variable='HRKP_TIME',Get_Var_Info=c_info mxrec = long(c_info.maxrec) + 1 if(mxrec gt 0) then begin rstrt = long(0) cdf_varget,cdfid,'HRKP_TIME',time2,rec_start=rstrt,rec_count=mxrec cdf_varget,cdfid,'HRKP_MEAN_ENERGY',e_kt2,rec_start=rstrt, $ rec_count=mxrec cdf_varget,cdfid,'HRKP_DENSITY',e_n2,rec_start=rstrt,rec_count=mxrec cdf_varget,cdfid,'HRKP_DENS_GT300',e_gt3002,rec_start=rstrt, $ rec_count=mxrec cdf_varget,cdfid,'HRKP_DENS_GT1K',e_gt1k2,rec_start=rstrt, $ rec_count=mxrec endif sz2 = size(time2) endelse endelse cdf_close,cdfid endfor print,"Press 'q' to quit, any other key to continue" case get_kbrd (1) of 'q' : goto,EOJ else: endcase ; set up arrays for day crossing if(ifile eq 2) then begin sz = sz1(2) + sz2(2) time = fltarr(1,sz) e_kt = fltarr(1,sz) e_n = fltarr(1,sz) e_n_gt300 = fltarr(1,sz) e_n_gt1k = fltarr(1,sz) time(0,0:sz1(2)-1l) = time1(0,0:sz1(2)-1l) time(0,sz1(2):sz-1l) = time2(0,0:sz2(2)-1l) + 86400.0 ; day crossing e_kt(0,0:sz1(2)-1l) = e_kt1(0,0:sz1(2)-1l) e_kt(0,sz1(2):sz-1l) = e_kt2(0,0:sz2(2)-1l) e_n(0,0:sz1(2)-1l) = e_n1(0,0:sz1(2)-1l) e_n(0,sz1(2):sz-1l) = e_n2(0,0:sz2(2)-1l) e_n_gt300(0,0:sz1(2)-1l) = e_gt3001(0,0:sz1(2)-1l) e_n_gt300(0,sz1(2):sz-1l) = e_gt3002(0,0:sz2(2)-1l) e_n_gt1k(0,0:sz1(2)-1l) = e_gt1k1(0,0:sz1(2)-1l) e_n_gt1k(0,sz1(2):sz-1l) = e_gt1k2(0,0:sz2(2)-1l) endif else begin sz = sza(2) endelse tim_strt = float(hh1 * 3600l + mm1 * 60l + ss1) tim_stop = float(hh2 * 3600l + mm2 * 60l + ss2) tadd = 0.0 if(tim_stop lt tim_strt) then begin tim_stop = tim_stop + 86400.0 endif ; save selected data in text files openw,13,oname if(ftype eq 1) then begin printf,13, $ 'Polar Hydra high resolution key parameter data from the DDEIS Level 1 file.' endif else begin printf,13, $ 'Polar Hydra high resolution key parameter data from the DDEIS Level 1 calibration file.' endelse line1 = 'mm/dd/yy seconds e- temp e- density' line2 = ' e- den>300eV e- den>1keV' printf,13,line1,line2,format="(a49,a30)" line1 = '-------- --------- ------------- -------------' line2 = ' ------------- -------------' printf,13,line1,line2,format="(a49,a30)" dlab = dlab1 for ii = 0l,sz-1l do begin t1 = time(ii) if(t1 ge tim_strt and t1 le tim_stop) then begin ; check for day crossing if(t1 gt 86399.9) then begin dlab = dlab2 tadd = 86400.0 endif t1 = t1 - tadd printf,13,dlab,t1,e_kt(0,ii),e_n(0,ii),e_n_gt300(0,ii), $ e_n_gt1k(0,ii),format="(a8,f11.3,4e15.6)" endif if(time(ii) gt tim_stop) then goto, endloop endfor endloop: close,13 endwhile ; end list of times EOJ: end