def read_filtersonly(shift_perc=None): filterdir = os.getenv("LSST_THROUGHPUTS_DEFAULT") filters = {} for f in filterlist: filters[f] = Bandpass() filters[f].readThroughput(os.path.join(filterdir, "filter_" + f + ".dat")) effwavelenphi, effwavelensb = filters[f].calcEffWavelen() if shift_perc != None: shift = effwavelensb * shift_perc/100.0 print f, shift, " nm = ", shift*10.0, " A" filters[f].wavelen = filters[f].wavelen + shift filters[f].resampleBandpass() return filters
def read_hardware(): # read system (hardware) transmission) filterdir = os.getenv("LSST_THROUGHPUTS_DEFAULT") hardware = ("detector.dat", "m1.dat", "m2.dat", "m3.dat", "lens1.dat", "lens2.dat", "lens3.dat") sys_std = {} # Read in all the standard components for f in filterlist: sys_std[f] = Bandpass() tlist = [] for t in hardware: tlist.append(os.path.join(filterdir, t)) tlist.append(os.path.join(filterdir, "filter_" + f + ".dat")) sys_std[f].readThroughputList(tlist) sys_edge = {} # Read in the standard components, except shift the filter by 1% of the central wavelength near the edge for f in filterlist: sys_edge[f] = Bandpass() tlist = [] for t in hardware: tlist.append(os.path.join(filterdir, t)) sys_edge[f].readThroughputList(tlist) tmpfilter = Bandpass() tmpfilter.readThroughput( os.path.join(filterdir, "filter_" + f + ".dat")) effwavelenphi, effwavelensb = tmpfilter.calcEffWavelen() shift = effwavelensb * 0.01 tmpfilter.wavelen = tmpfilter.wavelen + shift tmpfilter.resampleBandpass() sys_edge[f].wavelen, sys_edge[f].sb = sys_edge[f].multiplyThroughputs( tmpfilter.wavelen, tmpfilter.sb) for f in filterlist: junk, effwavelen = sys_std[f].calcEffWavelen() junk, effwavelen_edge = sys_edge[f].calcEffWavelen() print f, effwavelen, effwavelen_edge, effwavelen / effwavelen_edge return sys_std, sys_edge
def read_filtersonly(shift_perc=None): # read the filter throughput curves only (called from read_hardware as well) # apply a shift of +shift_perc/100 * eff_wavelength to the wavelengths of the filter. filterdir = os.getenv("LSST_THROUGHPUTS_DEFAULT") filters = {} for f in filterlist: filters[f] = Bandpass() filters[f].readThroughput(os.path.join(filterdir, "filter_" + f + ".dat")) effwavelenphi, effwavelensb = filters[f].calcEffWavelen() if shift_perc != None: shift = effwavelensb * shift_perc/100.0 print f, shift filters[f].wavelen = filters[f].wavelen + shift filters[f].resampleBandpass() return filters
def read_filtersonly(shift_perc=None): # read the filter throughput curves only (called from read_hardware as well) # apply a shift of +shift_perc/100 * eff_wavelength to the wavelengths of the filter. filterdir = os.getenv("LSST_THROUGHPUTS_DEFAULT") filters = {} for f in filterlist: filters[f] = Bandpass() filters[f].readThroughput( os.path.join(filterdir, "filter_" + f + ".dat")) effwavelenphi, effwavelensb = filters[f].calcEffWavelen() if shift_perc != None: shift = effwavelensb * shift_perc / 100.0 print f, shift filters[f].wavelen = filters[f].wavelen + shift filters[f].resampleBandpass() return filters
def read_hardware(shift_perc=None): # read system (hardware) transmission, return dictionary of system hardware (keyed to filter) filterdir = os.getenv("LSST_THROUGHPUTS_DEFAULT") hardware = ("detector.dat", "m1.dat", "m2.dat", "m3.dat", "lens1.dat", "lens2.dat", "lens3.dat") # Read in the standard components, but potentially shift the filter by shift_perc percent. filters = read_filtersonly(shift_perc=shift_perc) sys = {} for f in filterlist: sys[f] = Bandpass() # put together the standard component list tlist = [] for t in hardware: tlist.append(os.path.join(filterdir, t)) # read in the standard components, combine into sys sys[f].readThroughputList(tlist) # multiply by the filter throughput for final hardware throughput (no atmosphere) sys[f].wavelen, sys[f].sb = sys[f].multiplyThroughputs(filters[f].wavelen, filters[f].sb) return sys
def read_hardware(shift_perc=None): # read system (hardware) transmission) filterdir = os.getenv("LSST_THROUGHPUTS_DEFAULT") hardware = ("detector.dat", "m1.dat", "m2.dat", "m3.dat", "lens1.dat", "lens2.dat", "lens3.dat") # Read in the standard components, but potentially shift the filter by shift_perc percent. filters = read_filtersonly(shift_perc=shift_perc) sys = {} for f in filterlist: sys[f] = Bandpass() # put together the standard component list tlist = [] for t in hardware: tlist.append(os.path.join(filterdir, t)) # read in the standard components, combine into sys sys[f].readThroughputList(tlist) # multiply by the filter throughput for final hardware throughput (no atmosphere) sys[f].wavelen, sys[f].sb = sys[f].multiplyThroughputs(filters[f].wavelen, filters[f].sb) return sys