本文整理汇总了Python中lsst.sims.photUtils.Bandpass.calcEffWavelen方法的典型用法代码示例。如果您正苦于以下问题:Python Bandpass.calcEffWavelen方法的具体用法?Python Bandpass.calcEffWavelen怎么用?Python Bandpass.calcEffWavelen使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lsst.sims.photUtils.Bandpass
的用法示例。
在下文中一共展示了Bandpass.calcEffWavelen方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: calcEffWavelen
# 需要导入模块: from lsst.sims.photUtils import Bandpass [as 别名]
# 或者: from lsst.sims.photUtils.Bandpass import calcEffWavelen [as 别名]
def calcEffWavelen(hardware, title, throughputDir=None):
photParams = PhotometricParameters()
lsstDefaults = LSSTdefaults()
atmos = {}
stdAtmoFile = os.path.join(os.getenv('SYSENG_THROUGHPUTS_DIR'), 'siteProperties/pachonModtranAtm_12.dat')
atmos['std'] = Bandpass()
atmos['std'].readThroughput(stdAtmoFile)
multiAtmos = False
if throughputDir is None:
throughputDir = os.getenv('THROUGHPUTS_DIR')
if throughputDir is not None:
multiAtmos = True
Xarr = np.arange(1.0, 2.55, 0.1)
for X in Xarr:
atmos['%.1f' %X] = Bandpass()
atmos['%.1f' %X].readThroughput(os.path.join(throughputDir,
'atmos/atmos_%d.dat' %(int(X*10))))
atmoskeys = sorted(atmos.keys())
print title
print ' %s' %(' '.join(atmoskeys))
system = Bandpass()
effsb = {}
for f in ['u', 'g', 'r', 'i', 'z', 'y']:
writestring = '%s ' %f
for k in atmoskeys:
system.wavelen, system.sb = hardware[f].multiplyThroughputs(atmos[k].wavelen, atmos[k].sb)
effphi, effsb[k] = system.calcEffWavelen()
writestring += '%.2f ' %(effsb[k])
print writestring
示例2: __init__
# 需要导入模块: from lsst.sims.photUtils import Bandpass [as 别名]
# 或者: from lsst.sims.photUtils.Bandpass import calcEffWavelen [as 别名]
def __init__(self, mags=False, darkSkyMags=None, fitResults=None):
"""
Read the Solar spectrum into a handy object and compute mags in different filters
mags: If true, only return the LSST filter magnitudes, otherwise return the full spectrum
darkSkyMags = dict of the zenith dark sky values to be assumed. The twilight fits are
done relative to the dark sky level.
fitResults = dict of twilight parameters based on twilightFunc. Keys should be filter names.
"""
if darkSkyMags is None:
darkSkyMags = {'u': 22.8, 'g': 22.3, 'r': 21.2,
'i': 20.3, 'z': 19.3, 'y': 18.0,
'B': 22.35, 'G': 21.71, 'R': 21.3}
self.mags = mags
dataDir = getPackageDir('sims_skybrightness_data')
solarSaved = np.load(os.path.join(dataDir, 'solarSpec/solarSpec.npz'))
self.solarSpec = Sed(wavelen=solarSaved['wave'], flambda=solarSaved['spec'])
solarSaved.close()
canonFilters = {}
fnames = ['blue_canon.csv', 'green_canon.csv', 'red_canon.csv']
# Filter names, from bluest to reddest.
self.filterNames = ['B', 'G', 'R']
for fname, filterName in zip(fnames, self.filterNames):
bpdata = np.genfromtxt(os.path.join(dataDir, 'Canon/', fname), delimiter=', ',
dtype=list(zip(['wave', 'through'], [float]*2)))
bpTemp = Bandpass()
bpTemp.setBandpass(bpdata['wave'], bpdata['through'])
canonFilters[filterName] = bpTemp
# Tack on the LSST filters
throughPath = os.path.join(getPackageDir('throughputs'), 'baseline')
lsstKeys = ['u', 'g', 'r', 'i', 'z', 'y']
for key in lsstKeys:
bp = np.loadtxt(os.path.join(throughPath, 'filter_'+key+'.dat'),
dtype=list(zip(['wave', 'trans'], [float]*2)))
tempB = Bandpass()
tempB.setBandpass(bp['wave'], bp['trans'])
canonFilters[key] = tempB
self.filterNames.append(key)
# MAGIC NUMBERS from fitting the all-sky camera:
# Code to generate values in sims_skybrightness/examples/fitTwiSlopesSimul.py
# Which in turn uses twilight maps from sims_skybrightness/examples/buildTwilMaps.py
# values are of the form:
# 0: ratio of f^z_12 to f_dark^z
# 1: slope of curve wrt sun alt
# 2: airmass term (10^(arg[2]*(X-1)))
# 3: azimuth term.
# 4: zenith dark sky flux (erg/s/cm^2)
# For z and y, just assuming the shape parameter fits are similar to the other bands.
# Looks like the diode is not sensitive enough to detect faint sky.
# Using the Patat et al 2006 I-band values for z and modeified a little for y as a temp fix.
if fitResults is None:
self.fitResults = {'B': [7.56765633e+00, 2.29798055e+01, 2.86879956e-01,
3.01162143e-01, 2.58462036e-04],
'G': [2.38561156e+00, 2.29310648e+01, 2.97733083e-01,
3.16403197e-01, 7.29660095e-04],
'R': [1.75498017e+00, 2.22011802e+01, 2.98619033e-01,
3.28880254e-01, 3.24411056e-04],
'z': [2.29, 24.08, 0.3, 0.3, -666],
'y': [2.0, 24.08, 0.3, 0.3, -666]}
# XXX-completely arbitrary fudge factor to make things brighter in the blue
# Just copy the blue and say it's brighter.
self.fitResults['u'] = [16., 2.29622121e+01, 2.85862729e-01,
2.99902574e-01, 2.32325117e-04]
else:
self.fitResults = fitResults
# Take out any filters that don't have fit results
self.filterNames = [key for key in self.filterNames if key in self.fitResults]
self.effWave = []
self.solarMag = []
for filterName in self.filterNames:
self.effWave.append(canonFilters[filterName].calcEffWavelen()[0])
self.solarMag.append(self.solarSpec.calcMag(canonFilters[filterName]))
ord = np.argsort(self.effWave)
self.filterNames = np.array(self.filterNames)[ord]
self.effWave = np.array(self.effWave)[ord]
self.solarMag = np.array(self.solarMag)[ord]
# update the fit results to be zeropointed properly
for key in self.fitResults:
f0 = 10.**(-0.4*(darkSkyMags[key]-np.log10(3631.)))
self.fitResults[key][-1] = f0
self.solarWave = self.solarSpec.wavelen
self.solarFlux = self.solarSpec.flambda
# This one isn't as bad as the model grids, maybe we could get away with computing the magnitudes
# in the __call__ each time.
#.........这里部分代码省略.........