-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DM-47303: Add fgcmcal configurations for LSSTComCam #581
Changes from all commits
b09296c
cb4273c
6fb7af4
eab7774
d283182
fa1b899
4caf87d
fc37c71
c900830
47078d7
d9b1d00
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
import os | ||
|
||
physical_to_band = { | ||
"u_02": "u", | ||
"g_01": "g", | ||
"r_03": "r", | ||
"i_06": "i", | ||
"z_03": "z", | ||
"y_04": "y", | ||
} | ||
|
||
config.requiredBands = [] | ||
config.primaryBands = ["i", "r", "g", "z", "y", "u"] | ||
|
||
config.coarseNside = 64 | ||
|
||
config.minPerBand = 2 | ||
config.connections.ref_cat = "the_monster_20240904" | ||
|
||
configDir = os.path.join(os.path.dirname(__file__)) | ||
config.physicalFilterMap = physical_to_band | ||
obsConfigDir = os.path.join(os.path.dirname(__file__)) | ||
config.fgcmLoadReferenceCatalog.load(os.path.join(obsConfigDir, "filterMap.py")) | ||
config.fgcmLoadReferenceCatalog.applyColorTerms = False | ||
config.fgcmLoadReferenceCatalog.referenceSelector.doSignalToNoise = True | ||
config.fgcmLoadReferenceCatalog.referenceSelector.signalToNoise.fluxField = "monster_SynthLSST_i_flux" | ||
config.fgcmLoadReferenceCatalog.referenceSelector.signalToNoise.errField = "monster_SynthLSST_i_fluxErr" | ||
config.fgcmLoadReferenceCatalog.referenceSelector.signalToNoise.minimum = 50.0 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,179 @@ | ||
import lsst.fgcmcal as fgcmcal | ||
|
||
physical_to_band = { | ||
"u_02": "u", | ||
"g_01": "g", | ||
"r_03": "r", | ||
"i_06": "i", | ||
"z_03": "z", | ||
"y_04": "y", | ||
} | ||
|
||
config.outfileBase = "fgcmLSSTComCam" | ||
config.bands = ["u", "g", "r", "i", "z"] | ||
config.fitBands = ["u", "g", "r", "i", "z"] | ||
config.physicalFilterMap = physical_to_band | ||
config.requiredBands = ["g", "r", "i"] | ||
|
||
config.cycleNumber = 0 | ||
config.maxIterBeforeFinalCycle = 50 | ||
config.minCcdPerExp = 1 | ||
config.utBoundary = 0.0 | ||
config.washMjds = (0.0,) | ||
# For now, define 1 observing epoch that encompasses everything. | ||
config.epochMjds = (0.0, 100000.0) | ||
config.coatingMjds = [] | ||
config.latitude = -30.2333 | ||
config.mirrorArea = 34.524 | ||
config.cameraGain = 1.0 | ||
config.defaultCameraOrientation = 0.0 | ||
config.expGrayPhotometricCutDict = { | ||
"u": -0.10, | ||
"g": -0.05, | ||
"r": -0.05, | ||
"i": -0.05, | ||
"z": -0.05, | ||
"y": -0.05, | ||
} | ||
config.expGrayHighCutDict = { | ||
"u": 0.2, | ||
"g": 0.2, | ||
"r": 0.2, | ||
"i": 0.2, | ||
"z": 0.2, | ||
"y": 0.2, | ||
} | ||
config.expVarGrayPhotometricCutDict = { | ||
"u": 0.15, | ||
"g": 0.05, | ||
"r": 0.05, | ||
"i": 0.05, | ||
"z": 0.05, | ||
"y": 0.05, | ||
} | ||
config.autoPhotometricCutNSig = 3.0 | ||
config.autoHighCutNSig = 3.0 | ||
config.aperCorrFitNBins = 5 | ||
config.aperCorrInputSlopeDict = {"u": 0.0, | ||
"g": 0.0, | ||
"r": 0.0, | ||
"i": 0.0, | ||
"z": 0.0, | ||
"y": 0.0} | ||
|
||
config.sedboundaryterms = fgcmcal.SedboundarytermDict() | ||
config.sedboundaryterms.data["ug"] = fgcmcal.Sedboundaryterm(primary="u", | ||
secondary="g") | ||
config.sedboundaryterms.data["gr"] = fgcmcal.Sedboundaryterm(primary="g", | ||
secondary="r") | ||
config.sedboundaryterms.data["ri"] = fgcmcal.Sedboundaryterm(primary="r", | ||
secondary="i") | ||
config.sedboundaryterms.data["iz"] = fgcmcal.Sedboundaryterm(primary="i", | ||
secondary="z") | ||
config.sedboundaryterms.data["zy"] = fgcmcal.Sedboundaryterm(primary="z", | ||
secondary="y") | ||
|
||
config.sedterms = fgcmcal.SedtermDict() | ||
config.sedterms.data = { | ||
"u": fgcmcal.Sedterm(primaryTerm="ug", secondaryTerm="gr", constant=0.5, | ||
extrapolated=True, primaryBand="u", secondaryBand="g", tertiaryBand="r"), | ||
"g": fgcmcal.Sedterm(primaryTerm="gr", secondaryTerm="ri", constant=1.5), | ||
"r": fgcmcal.Sedterm(primaryTerm="gr", secondaryTerm="ri", constant=0.9), | ||
"i": fgcmcal.Sedterm(primaryTerm="ri", secondaryTerm="iz", constant=1.1), | ||
"z": fgcmcal.Sedterm(primaryTerm="iz", secondaryTerm="ri", constant=1.0, | ||
extrapolated=True, primaryBand="z", secondaryBand="i", tertiaryBand="r") | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are primary and secondary bands the correct way round? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, they are. This is start by using the z band and adjust from there. z is primary to the z. |
||
# The y band is not fully configured. This config can | ||
# be uncommented when we are running with y band. | ||
# "y": fgcmcal.Sedterm(primaryTerm="zy", secondaryTerm="iz", constant=1.0, | ||
# extrapolated=True, primaryBand="y", | ||
# secondaryBand="z", tertiaryBand="i") | ||
} | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should this still be commented out? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can uncomment when it supports y band. I added a comment. |
||
config.starColorCuts = ("g, i, 0.50, 3.5",) | ||
config.refStarColorCuts = ("g, i, 0.5, 3.5",) | ||
# Use a small fraction of reference stars to test self-calibration. | ||
config.refStarMaxFracUse = 0.1 | ||
config.useExposureReferenceOffset = False | ||
config.precomputeSuperStarInitialCycle = False | ||
config.superStarSubCcdDict = { | ||
"u": True, | ||
"g": True, | ||
"r": True, | ||
"i": True, | ||
"z": True, | ||
} | ||
# Allow calibration to work with at least 10 exposures per night. | ||
config.minExpPerNight = 2 | ||
# Allow calibration to work with very few stars per exposure. | ||
config.minStarPerExp = 50 | ||
config.nStarPerRun = 5000 | ||
config.nExpPerRun = 100 | ||
config.colorSplitBands = ["g", "i"] | ||
config.freezeStdAtmosphere = True | ||
# For tests, do low-order per-ccd polynomial. | ||
config.superStarSubCcdChebyshevOrder = 2 | ||
config.ccdGraySubCcdDict = { | ||
"u": False, | ||
"g": True, | ||
"r": True, | ||
"i": True, | ||
"z": True, | ||
"y": True, | ||
} | ||
config.ccdGrayFocalPlaneDict = { | ||
"u": True, | ||
"g": True, | ||
"r": True, | ||
"i": True, | ||
"z": True, | ||
"y": True, | ||
} | ||
config.ccdGrayFocalPlaneFitMinCcd = 3 | ||
config.ccdGrayFocalPlaneChebyshevOrder = 2 | ||
config.modelMagErrors = True | ||
# Do not fit instrumental parameters (mirror decay) per band. | ||
config.instrumentParsPerBand = False | ||
# Set the random seed for repeatability in fits. | ||
config.randomSeed = 12345 | ||
# Do not use star repeatability metrics for selecting exposures. | ||
# (Instead, use exposure repeatability metrics). | ||
config.useRepeatabilityForExpGrayCutsDict = { | ||
"u": False, | ||
"g": False, | ||
"r": False, | ||
"i": False, | ||
"z": False, | ||
"y": False, | ||
} | ||
config.sigFgcmMaxEGrayDict = { | ||
# We let the u-band be a little bit worse than the | ||
# other bands. | ||
"u": 0.15, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is this one supposed to be different to the others? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes! Comment added. |
||
"g": 0.05, | ||
"r": 0.05, | ||
"i": 0.05, | ||
"z": 0.05, | ||
"y": 0.05, | ||
} | ||
config.approxThroughputDict = { | ||
"u": 1.0, | ||
"g": 1.0, | ||
"r": 1.0, | ||
"i": 1.0, | ||
"z": 1.0, | ||
"y": 1.0, | ||
} | ||
|
||
config.deltaAperFitPerCcdNx = 4 | ||
config.deltaAperFitPerCcdNy = 4 | ||
config.doComputeDeltaAperPerVisit = False | ||
config.doComputeDeltaAperMap = True | ||
config.doComputeDeltaAperPerCcd = True | ||
config.deltaAperInnerRadiusArcsec = 2.40 | ||
config.deltaAperOuterRadiusArcsec = 3.40 | ||
|
||
# Fit the g band chromaticity term to get first-order correction | ||
# on the per-detector QE curve in the g band. | ||
config.fitCcdChromaticityDict = {"g": True, | ||
"r": True, | ||
"i": True} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# List of filters to put into the look-up table (LUT) | ||
config.physicalFilters = [ | ||
"u_02", | ||
"g_01", | ||
"r_03", | ||
"i_06", | ||
"z_03", | ||
"y_04", | ||
] | ||
|
||
# FGCM name or filename of precomputed atmospheres | ||
config.atmosphereTableName = "fgcm_atm_lsst2" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
config.connections.cycleNumber = 6 | ||
|
||
physical_to_band = { | ||
"u_02": "u", | ||
"g_01": "g", | ||
"r_03": "r", | ||
"i_06": "i", | ||
"z_03": "z", | ||
"y_04": "y", | ||
} | ||
|
||
config.physicalFilterMap = physical_to_band |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do these need a y?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't support y band yet. All the stuff below is a placeholder.