;pro mvn_lpw_cal_read_spec_data,type,subcycle,hfgain,calib_file_spec,filename,background,f_low,f_high,amp_resp ; ;This script outputs waves frequency bin centers and edges ;amplitude response and backgrounds (active or passive) ; ;;INPUTS: ; ; type: 'LF', 'MF' or 'HF' frequency range ; subcycle: 'PAS' or 'ACT' ; hfgain: 0 for no gain, 1 for high gain ; calib_file_spec (array passed from instrument constants that contains a list of text cal files) ; ; ;;;OUTPUTS: ; filename: name of the text calibration file used ; f_low: array of low frequency bin edges ; f_high: array of high frequency bin edges ; background background depending on what subcyle and type was input ; amp_resp amplitude response ; ;EXAMPLE: ;; ;CREATED BY: Tess McEnulty December 2014 ;FILE: mvn_lpw_cal_read_spec_data.pro ;VERSION: 1.0 ;LAST MODIFICATION: ; 2014-12-12 L. Andersson - modified to input the type, subcycle, and array of calibration files ; 2014-12-17 T. McEnulty - modified to check of on lpw_proc and if so, use specific path to master folder for cal file ; 2015-02-10 CF: removed hard coding to find file; environment variable 'mvn_lpw_software' is now used. pro mvn_lpw_cal_read_spec_data,type,subcycle,hfgain,calib_file_spec,filename,background,f_low,f_high,amp_resp name = 'mvn_lpw_cal_read_spec_data' folder = 'mvn_lpw_cal_files' ;name of the sub folder containing text files sl = path_sep() ;'/' or '\' depending on linux or windows ;Check that we have an environment variable telling IDL where to get the files, and if it is on the lpw_proc computer: if getenv('mvn_lpw_software') eq '' then begin print, name, ": #### WARNING ####: environment variable 'mvn_lpw_software' not set. File not found." print, "Use: setenv,'mvn_lpw_software=/path/to/software/on/your/machine/' to set this variable and locate requested files." if getenv('mvn_lpw_software') eq '/Users/lpwproc/maven_idl/scr_lpw/' then $ fbase = '/Users/lpwproc/maven_idl/MVN_SVN/LDS_MAVEN_LPW/master/' endif else fbase = getenv('mvn_lpw_software') print, 'using the cal field saved in '+fbase ;----------------------- ;here get the right calibration file, for now only one file exists filename=calib_file_spec[0] ;-------------------------- ;dir0name = fbase+folder+sl+filename ;;txt file has to be in the master folder dir0name = fbase+'mvn_lpw_cal_files'+sl+filename ;hard coded to work on production computer OPENR, Unit, dir0name, /GET_LUN aa=' d' READF, unit, aa READF, unit, aa data=dblarr(184,6) tmp=dblarr(6) for i=0,184-1 do begin READF, unit, tmp data[i,*]=tmp endfor free_lun,unit ;need 6 more act_background=transpose(data(0:127,0)) * 8.1380211e-05 ;;includes correction for constant pas_background=transpose(data(0:127,1)) * 8.1380211e-05 ;need 4 total amp_resp=transpose(data(0:127,2)) f_low_hf=transpose(data(0:127,3)) f_high_hf=transpose(data(0:127,4)) center_freq_hf=transpose(data(0:127,5)) f_low_lf=transpose(data(128:183,0)) f_high_lf=transpose(data(128:183,1)) center_freq_lf=transpose(data(128:183,2)) f_low_mf=transpose(data(128:183,3)) f_high_mf=transpose(data(128:183,4)) center_freq_mf=transpose(data(128:183,5)) ;------------- Use type,subcycle,hfgain ----------- amp_resp= amp_resp zzero=fltarr(n_elements(amp_resp)) If type EQ 'lf' then begin f_low= f_low_lf f_high= f_high_lf IF subcycle EQ 'PAS' then background=zzero ELSE background=zzero endif If type EQ 'mf' then begin f_low= f_low_mf f_high= f_high_mf IF subcycle EQ 'PAS' then background=zzero ELSE background=zzero endif If type EQ 'hf' then begin f_low= f_low_hf f_high= f_high_hf IF hfgain EQ 0 then $ IF subcycle EQ 'PAS' then background=pas_background ELSE $ background=act_background IF hfgain EQ 1 then $ IF subcycle EQ 'PAS' then background=zzero ELSE background=zzero endif end ;of routine