LSST Applications g0da5cf3356+25b44625d0,g17e5ecfddb+50a5ac4092,g1c76d35bf8+585f0f68a2,g295839609d+8ef6456700,g2e2c1a68ba+cc1f6f037e,g38293774b4+62d12e78cb,g3b44f30a73+2891c76795,g48ccf36440+885b902d19,g4b2f1765b6+0c565e8f25,g5320a0a9f6+bd4bf1dc76,g56364267ca+403c24672b,g56b687f8c9+585f0f68a2,g5c4744a4d9+78cd207961,g5ffd174ac0+bd4bf1dc76,g6075d09f38+3075de592a,g667d525e37+cacede5508,g6f3e93b5a3+da81c812ee,g71f27ac40c+cacede5508,g7212e027e3+eb621d73aa,g774830318a+18d2b9fa6c,g7985c39107+62d12e78cb,g79ca90bc5c+fa2cc03294,g881bdbfe6c+cacede5508,g91fc1fa0cf+82a115f028,g961520b1fb+2534687f64,g96f01af41f+f2060f23b6,g9ca82378b8+cacede5508,g9d27549199+78cd207961,gb065e2a02a+ad48cbcda4,gb1df4690d6+585f0f68a2,gb35d6563ee+62d12e78cb,gbc3249ced9+bd4bf1dc76,gbec6a3398f+bd4bf1dc76,gd01420fc67+bd4bf1dc76,gd59336e7c4+c7bb92e648,gf46e8334de+81c9a61069,gfed783d017+bd4bf1dc76,v25.0.1.rc3
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
lsst.meas.base.diaCalculationPlugins.LinearFitDiaPsFlux Class Reference
Inheritance diagram for lsst.meas.base.diaCalculationPlugins.LinearFitDiaPsFlux:
lsst.meas.base.diaCalculation.DiaObjectCalculationPlugin lsst.meas.base.catalogCalculation.CatalogCalculationPlugin lsst.meas.base.pluginsBase.BasePlugin

Public Member Functions

def getExecutionOrder (cls)
 
def calculate (self, diaObjects, diaSources, filterDiaSources, filterName, **kwargs)
 

Static Public Attributes

 ConfigClass = LinearFitDiaPsFluxConfig
 
list outputCols = ["PSFluxLinearSlope", "PSFluxLinearIntercept"]
 
string plugType = "multi"
 
bool needsFilter = True
 

Detailed Description

Compute fit a linear model to flux vs time.

Definition at line 782 of file diaCalculationPlugins.py.

Member Function Documentation

◆ calculate()

def lsst.meas.base.diaCalculationPlugins.LinearFitDiaPsFlux.calculate (   self,
  diaObjects,
  diaSources,
  filterDiaSources,
  filterName,
**  kwargs 
)
Compute fit a linear model to flux vs time.

Parameters
----------
diaObject : `dict`
    Summary object to store values in.
diaSources : `pandas.DataFrame`
    DataFrame representing all diaSources associated with this
    diaObject.
filterDiaSources : `pandas.DataFrame`
    DataFrame representing diaSources associated with this
    diaObject that are observed in the band pass ``filterName``.
filterName : `str`
    Simple, string name of the filter for the flux being calculated.
**kwargs
    Any additional keyword arguments that may be passed to the plugin.

Reimplemented from lsst.meas.base.diaCalculation.DiaObjectCalculationPlugin.

Definition at line 798 of file diaCalculationPlugins.py.

803 **kwargs):
804 """Compute fit a linear model to flux vs time.
805
806 Parameters
807 ----------
808 diaObject : `dict`
809 Summary object to store values in.
810 diaSources : `pandas.DataFrame`
811 DataFrame representing all diaSources associated with this
812 diaObject.
813 filterDiaSources : `pandas.DataFrame`
814 DataFrame representing diaSources associated with this
815 diaObject that are observed in the band pass ``filterName``.
816 filterName : `str`
817 Simple, string name of the filter for the flux being calculated.
818 **kwargs
819 Any additional keyword arguments that may be passed to the plugin.
820 """
821
822 mName = "{}PSFluxLinearSlope".format(filterName)
823 if mName not in diaObjects.columns:
824 diaObjects[mName] = np.nan
825 bName = "{}PSFluxLinearIntercept".format(filterName)
826 if bName not in diaObjects.columns:
827 diaObjects[bName] = np.nan
828
829 def _linearFit(df):
830 tmpDf = df[~np.logical_or(
831 np.isnan(df["psFlux"]),
832 np.logical_or(np.isnan(df["psFluxErr"]),
833 np.isnan(df["midPointTai"])))]
834 if len(tmpDf) < 2:
835 return pd.Series({mName: np.nan, bName: np.nan})
836 fluxes = tmpDf["psFlux"].to_numpy()
837 errors = tmpDf["psFluxErr"].to_numpy()
838 times = tmpDf["midPointTai"].to_numpy()
839 A = np.array([times / errors, 1 / errors]).transpose()
840 m, b = lsq_linear(A, fluxes / errors).x
841 return pd.Series({mName: m, bName: b})
842
843 diaObjects.loc[:, [mName, bName]] = filterDiaSources.apply(_linearFit)
844
845

◆ getExecutionOrder()

def lsst.meas.base.diaCalculationPlugins.LinearFitDiaPsFlux.getExecutionOrder (   cls)
Used to set the relative order of plugin execution.

    The values returned by `getExecutionOrder` are compared across all
    plugins, and smaller numbers run first.

    Notes
    -----
    `CatalogCalculationPlugin`\s must run with
    `BasePlugin.DEFAULT_CATALOGCALCULATION` or higher.

    All plugins must implement this method with an appropriate run level

Reimplemented from lsst.meas.base.catalogCalculation.CatalogCalculationPlugin.

Definition at line 795 of file diaCalculationPlugins.py.

795 def getExecutionOrder(cls):
796 return cls.DEFAULT_CATALOGCALCULATION
797

Member Data Documentation

◆ ConfigClass

lsst.meas.base.diaCalculationPlugins.LinearFitDiaPsFlux.ConfigClass = LinearFitDiaPsFluxConfig
static

Definition at line 786 of file diaCalculationPlugins.py.

◆ needsFilter

bool lsst.meas.base.diaCalculationPlugins.LinearFitDiaPsFlux.needsFilter = True
static

Definition at line 792 of file diaCalculationPlugins.py.

◆ outputCols

list lsst.meas.base.diaCalculationPlugins.LinearFitDiaPsFlux.outputCols = ["PSFluxLinearSlope", "PSFluxLinearIntercept"]
static

Definition at line 790 of file diaCalculationPlugins.py.

◆ plugType

string lsst.meas.base.diaCalculationPlugins.LinearFitDiaPsFlux.plugType = "multi"
static

Definition at line 791 of file diaCalculationPlugins.py.


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