;+ ; :Description: ; procedure to scan a directory and identify type of comp data files. ; files are associated with either 10747, 10798, 10830, dark or opal ; and file information is written into corresponding files. This routine ; should be run before other data reduction routines. ; ; :Params: ; date_dir day of year to process, in YYYYMMDD format ; ; :Author: Tomczyk ; :Modifier: Sitongia ;- pro file_type, date_dir common comp_paths, bias_dir, flat_dir, mask_dir, inventory_basedir, binary_dir, $ defered_file, hot_file, $ ldm_basedir, usb_basedir, raw_synoptic_basedir, raw_usb_basedir, process_synoptic_basedir, process_usb_basedir, $ archive_dir, movie_dir, fullres_dir, log_dir common comp_constants, nx, ny, $ center1074, center1079, center1083, $ stokes, n_stokes, $ debug, logFileUnit ;; ADDED BY JAMES MICHAELIS ;; ADD COMMON BLOCKS FOR EACH LOGGER common logBlock_artifact, Counter_1, NameRegistry_1, IDRegistry_1, LUN_1 common logBlock_process, Counter_2, NameRegistry_2, IDRegistry_2, LUN_2 common logBlock_activity, Counter_3, NameRegistry_3, IDRegistry_3, LUN_3 common logBlock_observation, Counter_4, NameRegistry_4, IDRegistry_4, LUN_4 common logBlock_entity, Counter_5, NameRegistry_5, IDRegistry_5, LUN_5 common logBlock_dataset, Counter_6, NameRegistry_6, IDRegistry_6, LUN_6 common logBlock_qualityAssertion, Counter_7, NameRegistry_7, IDRegistry_7, LUN_7 common logBlock_qualityEvidence, Counter_8, NameRegistry_8, IDRegistry_8, LUN_8 common logBlock_fitsHeader, Counter_9, LUN_9 ;; END COMPILE_OPT IDL2 ; Configure comp_paths comp_initialize, date_dir printf, logFileUnit, 'file_type' raw_dir = raw_usb_basedir + date_dir process_dir = process_usb_basedir + date_dir file_mkdir, process_dir cd, process_dir regions=[1074.7,1079.8,1083.] openw,1,process_dir+'/1074_files.txt' ;open output files openw,2,process_dir+'/1079_files.txt' openw,3,process_dir+'/1083_files.txt' openw,4,process_dir+'/dark_files.txt' openw,5,process_dir+'/opal_files.txt' openw,6,process_dir+'/cal_files.txt' openw,7,process_dir+'/distort_files.txt' files=file_search(raw_dir+'/*.FTS', count=nfile) ;get filenames in this directory printf, logFileUnit, nfile, ' files' for i=0,nfile-1 do begin printf, logFileUnit, 'Inventory ' + files[i] fits_open,files[i],fcb inventory,fcb,beam,group,wave,pol,type,expose,cover,cal_pol,cal_ret uniq_waves=wave[uniq(wave,sort(wave))] ;find unique wavelengths ; Recent failure modes create files with one wavelength - skip these if n_elements(uniq_waves) eq 1 and cover eq 1 then begin printf, logFileUnit, 'BAD FILE' continue endif uniq_pols=pol[uniq(pol,sort(pol))] ;find unique polarization states avg_wave=mean(wave) diff=abs(avg_wave-regions) mn=min(diff,ireg) if cover eq 1 then begin str_cover=' OPEN ' endif else begin str_cover=' CLOSED' endelse num=fcb.nextend ;number of images in file ndata = 0 ndark = 0 nopal = 0 if (type eq 'DATA') then ndata = num if (type eq 'DARK') then ndark = num if (type eq 'OPAL') then nopal = num ntotal=num ifile=ireg+1 if ndark eq ntotal then ifile=4 ;if all dark images, write to dark_files if nopal eq ntotal then ifile=5 ;if all opal images, write to opal_files if cal_pol eq '1' or cal_ret eq '1' then ifile=6 ; remove directory from file name ff=strmid(files[i],strpos(files[i],'/',/reverse_search)+1) printf, logFileUnit,format='($,a,3x,f7.1,5x,f5.0,1x,"ms",3x,i3," Data",3x,i3," Dark",3x,i3," Opal",a)',$ ff,regions[ireg],expose,ndata,ndark,nopal,str_cover printf, logFileUnit,format='($,20f9.2)',uniq_waves printf, logFileUnit,format='(20(2x,a))',uniq_pols printf,ifile,format='($,a,4x,f5.0,1x,"ms",3x,i3," Data",3x,i3," Dark",3x,i3," Opal",a)',$ ff,expose,ndata,ndark,nopal,str_cover printf,ifile,format='($,20f9.2)',uniq_waves printf,ifile,format='(20(2x,a))',uniq_pols fits_close,fcb endfor for i=1,7 do close,i ; Save inventory files year = strmid(date_dir, 0, 4) inventory_dir = inventory_basedir + year + "/" FILE_MKDIR, inventory_dir file_copy, '1074_files.txt', inventory_dir + date_dir + "_" + '1074_files.txt', /OVERWRITE file_copy, '1079_files.txt', inventory_dir + date_dir + "_" + '1079_files.txt', /OVERWRITE file_copy, '1083_files.txt', inventory_dir + date_dir + "_" + '1083_files.txt', /OVERWRITE file_copy, 'dark_files.txt', inventory_dir + date_dir + "_" + 'dark_files.txt', /OVERWRITE file_copy, 'opal_files.txt', inventory_dir + date_dir + "_" + 'opal_files.txt', /OVERWRITE file_copy, 'cal_files.txt', inventory_dir + date_dir + "_" + 'cal_files.txt', /OVERWRITE file_copy, 'distort_files.txt', inventory_dir + date_dir + "_" + 'distort_files.txt', /OVERWRITE printf, logFileUnit,'done' free_lun, logFileUnit ;; ADDED BY JAMES MICHAELIS ;; ADD LOG STATEMENTS ID_Dataset_1 = log_dataset('Files for 6/29','Files for 6/29','2011-07-15T20:00:00','2011-06-29T21:49:38','CoMP','CoMP Operating Mode','CoMP Platform','CoMP Deployment','CoMP Parameter',[]) ID_Process_1 = log_process('File Type','procedure to scan a directory and identify type of comp data files. files are associated with either 10747, 10798, 10830, dark or opal and file information is written into corresponding files. This routine should be run before other data reduction routines.', $ 'file_type.pro','https://subversion.ucar.edu/HAO/MLSO/CoMP/Pipeline/file_type.pro','3798','Interactive Data Language (IDL)','Steve Tomczyk',[],[],[ID_Dataset_1]) ID_Artifact_1 = log_artifact('1074_files.txt','Manifest for data files at 1074 wavelength','','',[ID_Process_1],'1074_files.txt') ID_Artifact_2 = log_artifact('1079_files.txt','Manifest for data files at 1079 wavelength','','',[ID_Process_1],'1079_files.txt') ID_Artifact_3 = log_artifact('1083_files.txt','Manifest for data files at 1083 wavelength','','',[ID_Process_1],'1083_files.txt') ID_Artifact_4 = log_artifact('dark_files.txt','Manifest for dark files','','',[ID_Process_1],'dark_files.txt') ID_Artifact_5 = log_artifact('opal_files.txt','Manifest for dark files','','',[ID_Process_1],'opal_files.txt') ID_Artifact_6 = log_artifact('cal_files.txt','Manifest for dark files','','',[ID_Process_1],'cal_files.txt') ID_Artifact_7 = log_artifact('distort_files.txt','Manifest for distortion files','','',[ID_Process_1],'distort_files.txt') ID_Activity_1 = log_activity('Write Manifests','procedure to scan a directory and identify type of comp data files. files are associated with either 10747, 10798, 10830, dark or opal and file information is written into corresponding files. This routine should be run before other data reduction routines.',$ [ID_Process_1]); stop_logger ; closes LUNs for each log Save, /ALL, filename='CoMP_commonBlocks.sav' ; save all variables (including common blocks) to file to be opened later. this preserves logging blocks for upcoming IDL scripts ;; END end ; Main for testing file_type, '20110730' end