pro mk_ssc_driver, week,year,outdir=outdir,hot=hot,loud=loud,$ triplet=triplet,strt_date=strt_date,end_date=end_date,$ debug=debug,uncert=uncert ;+ ; Name: mk_ssc_driver ; ; Purpose: Create SSCs one day at a time to prevent ;' overload of computer memory. ; ; Input Paramters: ; week, can be a vector ; year, can be a vector ; ; Optional keyword parameter: ; outdir, default='ssc'. ; /loud, lots of printed output. ; /debug, stops along the way for debugging. ; /hot, do only warm CCD images. ; /triplet, make triplet composites. ; /uncert, create uncertainty array. ; strt_date, begin analysis (overrules week,year) ; end_date, end analysis (default=strt_date, i.e., one day only) ; ; History ; 21-Mar-07 LWA Keywords outdir and hot added. ; Set /scatter,/vignette,/uncert flags. ; Made year vector capable. ; ; 26-Mar-07 LWA Goto jumpwk if no sfr's in week. ; 29-Mar-07 LWA Set up for testing 1991 cases. ; 30-Mar-07 LWA Incorporated strt_date and end_date capability. ; 3-Apr-07 LWA Fixed dwk 'if' statement. ; 31-May-07 LWA Eliminated keyword nine1. Added loud, uncert and debug. ; 31-May-08 LWA Now can make hot triplets. ;- start_time = systime(1) if NOT keyword_set(outdir) then outdir='ssc' else outdir=outdir hot=keyword_set(hot) triplet=keyword_set(triplet) loud=keyword_set(loud) debug=keyword_set(debug) uncert=keyword_set(uncert) if keyword_set(strt_date) then begin aa=anytim(strt_date,/ccsds) year=strmid(aa,0,4) week0=anytim2weekid(strt_date) tt=strmid(aa,0,4)+strmid(aa,5,2)+strmid(aa,8,2) if keyword_set(end_date) then begin week1=anytim2weekid(end_date) dwk=week1-week0 if dwk ne 0 then week=indgen(dwk+1)+week0 else week=week0 endif else begin end_date=anytim(strt_date,/ints) end_date.day=end_date.day week=week0 endelse dd0=anytim(strt_date,/ints) dd0=dd0.day dd1=anytim(end_date,/ints) dd1=dd1.day print,dd0,dd1 endif ;YEAR LOOP for yi=0,n_elements(year)-1 do begin yr=strtrim(year(yi),2) ;WEEK LOOP for n=0,n_elements(week)-1 do begin wk=strtrim(week(n),2) if wk lt 10 then wk='0'+wk wkid=yr+'_'+wk fils=file_search('/disk/hl2/pd1/weekdirs/'+wkid+'/sfr*') help,wkid,fils if fils(0) eq '' then goto,jumpwk rd_roadmap,fils,rdm dd=rdm.day dd=dd(sort(dd)) dd=dd(uniq(dd)) help,dd print,dd ;DAY LOOP for i=0,n_elements(dd)-1 do begin jj=where(rdm.day eq dd(i) and rdm.shape_cmd(0) le 512,njj) if njj gt 0 then begin wkr=anytim2weekinfo(rdm(jj(0))) yy=strmid(wkr,2,2) tim=anytim(rdm(jj(0)),/ccsds) mm=strmid(tim,5,2) if NOT keyword_set(strt_date) then begin ddx=strmid(tim,8,2) day=yy+mm+ddx dirr='/disk/hl2/pd1/weekdirs/'+wkr+'/sfr'+day+'*' endif else begin ddx=anytim(tim,/ints) if ddx.day ge dd0 and ddx.day le dd1 then begin dyy=strmid(tim,8,2) day=yy+mm+dyy dirr='/disk/hl2/pd1/weekdirs/'+wkr+'/sfr'+day+'*' endif else begin goto,jumpday endelse endelse help,dirr filz=file_search(dirr) help,filz if filz(0) eq '' then goto,jumpday endif else begin goto,jumpday endelse case 1 of hot : mk_ssc_hot,outdir=outdir,loud=loud,ifiles=filz,$ /scatter,/vignette,uncert=uncert,triplet=triplet,debug=debug else : mk_ssc,outdir=outdir,loud=loud,ifiles=filz,$ /scatter,/vignette,uncert=uncert,triplet=triplet,$ debug=debug endcase jumpday: endfor ;DAY END jumpwk: endfor ;WEEK END endfor ;YEAR END end_time = systime(1) run_time = (end_time-start_time)/60. print, 'MK_SSC_DRIVER took '+strtrim(run_time,2)+' minutes to complete your job.' end