LSST Applications  21.0.0-147-g0e635eb1+1acddb5be5,22.0.0+052faf71bd,22.0.0+1ea9a8b2b2,22.0.0+6312710a6c,22.0.0+729191ecac,22.0.0+7589c3a021,22.0.0+9f079a9461,22.0.1-1-g7d6de66+b8044ec9de,22.0.1-1-g87000a6+536b1ee016,22.0.1-1-g8e32f31+6312710a6c,22.0.1-10-gd060f87+016f7cdc03,22.0.1-12-g9c3108e+df145f6f68,22.0.1-16-g314fa6d+c825727ab8,22.0.1-19-g93a5c75+d23f2fb6d8,22.0.1-19-gb93eaa13+aab3ef7709,22.0.1-2-g8ef0a89+b8044ec9de,22.0.1-2-g92698f7+9f079a9461,22.0.1-2-ga9b0f51+052faf71bd,22.0.1-2-gac51dbf+052faf71bd,22.0.1-2-gb66926d+6312710a6c,22.0.1-2-gcb770ba+09e3807989,22.0.1-20-g32debb5+b8044ec9de,22.0.1-23-gc2439a9a+fb0756638e,22.0.1-3-g496fd5d+09117f784f,22.0.1-3-g59f966b+1e6ba2c031,22.0.1-3-g849a1b8+f8b568069f,22.0.1-3-gaaec9c0+c5c846a8b1,22.0.1-32-g5ddfab5d3+60ce4897b0,22.0.1-4-g037fbe1+64e601228d,22.0.1-4-g8623105+b8044ec9de,22.0.1-5-g096abc9+d18c45d440,22.0.1-5-g15c806e+57f5c03693,22.0.1-7-gba73697+57f5c03693,master-g6e05de7fdc+c1283a92b8,master-g72cdda8301+729191ecac,w.2021.39
LSST Data Management Base Package
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
lsst.fgcmcal.fgcmMakeLut.FgcmMakeLutTask Class Reference
Inheritance diagram for lsst.fgcmcal.fgcmMakeLut.FgcmMakeLutTask:

Public Member Functions

def __init__ (self, butler=None, initInputs=None, **kwargs)
 
def runDataRef (self, butler)
 
def runQuantum (self, butlerQC, inputRefs, outputRefs)
 

Public Attributes

 fgcmLutMaker
 

Static Public Attributes

 ConfigClass = FgcmMakeLutConfig
 
 RunnerClass = FgcmMakeLutRunner
 

Detailed Description

Make Look-Up Table for FGCM.

This task computes a look-up-table for the range in expected atmosphere
variation and variation in instrumental throughput (as tracked by the
transmission_filter products).  By pre-computing linearized integrals,
the FGCM fit is orders of magnitude faster for stars with a broad range
of colors and observing bands, yielding precision at the 1-2 mmag level.

Computing a LUT requires running MODTRAN or with a pre-generated
atmosphere table packaged with fgcm.

Definition at line 342 of file fgcmMakeLut.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.fgcmcal.fgcmMakeLut.FgcmMakeLutTask.__init__ (   self,
  butler = None,
  initInputs = None,
**  kwargs 
)

Definition at line 360 of file fgcmMakeLut.py.

360  def __init__(self, butler=None, initInputs=None, **kwargs):
361  super().__init__(**kwargs)
362 

Member Function Documentation

◆ runDataRef()

def lsst.fgcmcal.fgcmMakeLut.FgcmMakeLutTask.runDataRef (   self,
  butler 
)
Make a Look-Up Table for FGCM

Parameters
----------
butler:  `lsst.daf.persistence.Butler`

Raises
------
ValueError : Raised if configured filter name does not match any of the
    available filter transmission curves.

Definition at line 368 of file fgcmMakeLut.py.

368  def runDataRef(self, butler):
369  """
370  Make a Look-Up Table for FGCM
371 
372  Parameters
373  ----------
374  butler: `lsst.daf.persistence.Butler`
375 
376  Raises
377  ------
378  ValueError : Raised if configured filter name does not match any of the
379  available filter transmission curves.
380  """
381  camera = butler.get('camera')
382  opticsDataRef = butler.dataRef('transmission_optics')
383 
384  sensorDataRefDict = {}
385  for detector in camera:
386  sensorDataRefDict[detector.getId()] = butler.dataRef('transmission_sensor',
387  dataId={'ccd': detector.getId()})
388 
389  filterDataRefDict = {}
390  for physicalFilter in self.config.physicalFilters:
391  # The physical filters map directly to dataId filter names
392  # for gen2 HSC. This is the only camera that will be supported
393  # by Gen2 fgcmcal, so we do not need to worry about other cases.
394  dataRef = butler.dataRef('transmission_filter', filter=physicalFilter)
395  if not dataRef.datasetExists():
396  raise ValueError(f"Could not find transmission for filter {physicalFilter}.")
397  filterDataRefDict[physicalFilter] = dataRef
398 
399  lutCat = self._fgcmMakeLut(camera,
400  opticsDataRef,
401  sensorDataRefDict,
402  filterDataRefDict)
403  butler.put(lutCat, 'fgcmLookUpTable')
404 

◆ runQuantum()

def lsst.fgcmcal.fgcmMakeLut.FgcmMakeLutTask.runQuantum (   self,
  butlerQC,
  inputRefs,
  outputRefs 
)

Definition at line 405 of file fgcmMakeLut.py.

405  def runQuantum(self, butlerQC, inputRefs, outputRefs):
406  camera = butlerQC.get(inputRefs.camera)
407 
408  opticsDataRef = butlerQC.get(inputRefs.transmission_optics)
409 
410  sensorRefs = butlerQC.get(inputRefs.transmission_sensor)
411  sensorDataRefDict = {sensorRef.dataId.byName()['detector']: sensorRef for
412  sensorRef in sensorRefs}
413 
414  filterRefs = butlerQC.get(inputRefs.transmission_filter)
415  filterDataRefDict = {filterRef.dataId['physical_filter']: filterRef for
416  filterRef in filterRefs}
417 
418  lutCat = self._fgcmMakeLut(camera,
419  opticsDataRef,
420  sensorDataRefDict,
421  filterDataRefDict)
422  butlerQC.put(lutCat, outputRefs.fgcmLookUpTable)
423 

Member Data Documentation

◆ ConfigClass

lsst.fgcmcal.fgcmMakeLut.FgcmMakeLutTask.ConfigClass = FgcmMakeLutConfig
static

Definition at line 356 of file fgcmMakeLut.py.

◆ fgcmLutMaker

lsst.fgcmcal.fgcmMakeLut.FgcmMakeLutTask.fgcmLutMaker

Definition at line 464 of file fgcmMakeLut.py.

◆ RunnerClass

lsst.fgcmcal.fgcmMakeLut.FgcmMakeLutTask.RunnerClass = FgcmMakeLutRunner
static

Definition at line 357 of file fgcmMakeLut.py.


The documentation for this class was generated from the following file: