MakeComCamCalibrations¶
- class lsst.ts.externalscripts.maintel.MakeComCamCalibrations(index=1)¶
Bases:
BaseMakeCalibrations
Class for taking images, constructing, verifying, and certifying combined calibrations with LSSTComCam.
This class takes bias, darks, and flat exposures with LSSTComCam, constructs a combined calibration for each image type by calling the appropiate pipetask via OCPS, and then verifies and certifies each combined calibration. It also optionally produces defects and Photon Transfer Curves. “
Attributes Summary
Get the checkpoints at which to pause and stop.
Array with detector IDs
Get the group ID (a
str
), or "" if not set.OODS imageInOODS event.
String with instrument name for pipeline task
Number of detectors
Access the Remote OCPS Groups in the constructor.
String with instrument name for pipeline yaml file
Get the current state.
Get the name of the current
state
.state.Methods Summary
amain
(**kwargs)Run the script from the command line.
analyze_report_check_verify_stats
(im_type, ...)Report the results from
check_verification_stats
arun
([checkpoint])assert_state
(action, states)Assert that the current state is in
states
and the script is not exiting.Helper function to print verification results.
call_pipetask
(image_type)Call pipetasks via the OCPS.
certify_calib
(image_type, job_id_calib)Certify the calibration.
check_verification_stats
(image_type, ...[, ...])Check verification statistics.
checkpoint
([name])Await this at any "nice" point your script can be paused or stopped.
cleanup
()Perform final cleanup, if any.
close
([exception, cancel_start])Shut down, clean up resources and set done_task done.
Shut down pending tasks.
configure
(config)Configure the script.
Count number of tests that failed cp_verify.
do_configure
(data)Configure the currently loaded script.
do_resume
(data)Resume the currently paused script.
do_run
(data)Run the script and quit.
do_setAuthList
(data)Update the authorization list.
do_setCheckpoints
(data)Set or clear the checkpoints at which to pause and stop.
do_setGroupId
(data)Set or clear the group_id attribute.
do_setLogLevel
(data)Set logging level.
do_stop
(data)Stop the script.
get_detectors_string
(detector_array)Get a detector string from a detector array.
get_exposure_id
(obsid)Parse obsid into an exposure id.
Get instrument configuration
Get necessary information to run the bias generation pipetask.
Get necessary information to run the dark generation pipetask.
Get necessary information to run the defects generation pipetask.
Get necessary information to run the flat generation pipetask.
Get necessary information to run the ptc generation pipetask.
Get necessary information to run the bias verification pipetask
Get necessary information to run the dark verification pipetask
Get necessary information to run the flat verification pipetask.
Return a jsonschema to validate configuration, as a
dict
.image_in_oods_callback
(data)Callback function to check images are in oods
make_from_cmd_line
(**kwargs)Make a script from command-line arguments.
Return the group ID supplemented with a new subgroup.
Output the logLevel event.
report_gains_from_flat_pairs
(job_id_calib)Print gains estimated form flat pairs.
run
()set_exp_times_per_im_type
(image_type)Define exp_times and n_images according to image type.
set_metadata
(metadata)Set estimated duration of the script.
set_state
([state, reason, keep_old_reason, ...])Set the script state.
start
()Finish construction.
Additional work after
start
before fully started.take_image_type
(image_type, exp_times)Take exposures and build exposure set.
take_images
(image_type)Take images with instrument.
verify_calib
(image_type, job_id_calib)Verify the calibration.
Attributes Documentation
- camera¶
- checkpoints¶
Get the checkpoints at which to pause and stop.
Returns
self.evt_checkpoints.data
which has these fields:pause
: checkpoints at which to pause, a regular expressionstop
: checkpoints at which to stop, a regular expression
- detectors¶
Array with detector IDs
- domain¶
- image_in_oods¶
OODS imageInOODS event.
- instrument_name¶
String with instrument name for pipeline task
- n_detectors¶
Number of detectors
- ocps¶
- ocps_group¶
Access the Remote OCPS Groups in the constructor.
The OCPS index will be 2 for LSSTComCam: OCPS:2.
- pipeline_instrument¶
String with instrument name for pipeline yaml file
- state¶
Get the current state.
Returns
self.evt_state.data
, which has these fields:
Methods Documentation
- async classmethod amain(**kwargs: Any) None ¶
Run the script from the command line.
- Parameters:
- kwargs
Keyword arguments for the script constructor. Must not include
index
. Ignored (other than testing forindex
) if the command specifies--schema
.
- Raises:
- RuntimeError
If
kwargs
includesindex
.
Notes
The final return code will be:
0 if final state is
lsst.ts.idl.enums.Script.ScriptState.DONE
orlsst.ts.idl.enums.Script.ScriptState.STOPPED
.1 if final state is anything else, or if script.done_task is an exception (which would be raised by the script’s cleanup code).
Issues a RuntimeWarning if script.done_task is an exception and the final script state is anything other than Failed. This should never happen.
- async analyze_report_check_verify_stats(im_type, report_check_verify_stats, job_id_verify, job_id_calib)¶
Report the results from
check_verification_stats
- Parameters:
- im_type
str
Image or calibration type.
- report_check_verify_stats
dict
Dictionary returned by
check_verification_stats
.- job_id_verify
str
Job ID returned by OCPS during previous calibration verification pipetask call.
- job_id_calib
str
Job ID returned by OCPS during previous calibration generation pipetask call. If “generate_calibrations” is False, this variable is “None”.
- im_type
Notes
Suported calibrations: see
self.pipetask_parameters_verification
.
- async arun(checkpoint=False)¶
- assert_state(action: str, states: Sequence[ScriptState]) None ¶
Assert that the current state is in
states
and the script is not exiting.
- async build_verification_report_summary(report_check_verify_stats)¶
Helper function to print verification results.
- Parameters:
- report_check_verify_stats
dict
Dictionary with verification results:
- certify_calib
bool
Booolean indicating if the calibration should be certified or not.
- num_stat_errors
dict`[`str
][str
] orNone
Dictionary with the total number of tests failed per exposure and per cp_verify test type. If there are not any tests that failed,
None
will be returned.- failure_thresholds
dict`[`str
][int
] orNone
Dictionary reporting the different thresholds used to decide whether a calibration should be certified or not (see
Notes
below). If there are not any tests that failed,None
will be returned.- verify_stats
dict
Statistics from cp_verify.
- report_check_verify_stats
- Returns:
- final_report_string
str
String with full report.
- final_report_string
- async call_pipetask(image_type)¶
Call pipetasks via the OCPS.
- Parameters:
- image_type
str
Image or calibration type.
- image_type
- Returns:
- response
dict
Dictionary with the final OCPS status.
- response
Notes
Suported calibrations: see
self.pipetask_parameters
- async certify_calib(image_type, job_id_calib)¶
Certify the calibration.
- Parameters:
- Raises:
- RuntimeErrorError in running the butler certification command.
Notes
The calibration will certified for use with a timespan that indicates its validity range.
Suported calibrations: see
self.supported_calibrations_certification
.
- async check_verification_stats(image_type, job_id_verify, job_id_calib=None)¶
Check verification statistics.
- Parameters:
- Returns:
- report_check_verify_stats
dict
Dictionary with results:
- certify_calib
bool
Booolean indicating if the calibration should be certified or not.
- num_stat_errors
dict`[`str
][str
] orNone
Dictionary with the total number of tests failed per exposure and per cp_verify test type. If there are not any tests that failed,
None
will be returned.- failure_thresholds
dict`[`str
][int
] orNone
Dictionary reporting the different thresholds used to decide whether a calibration should be certified or not (see
Notes
below). If there are not any tests that failed,None
will be returned.- verify_stats
dict
Statistics from cp_verify.
- report_check_verify_stats
Notes
When
generate_calibrations=False
, verification will be performed using the combined calibrations inself.config.input_collections_verify_bias
,self.config.input_collections_verify_dark
, and/orself.config.input_collections_verify_bias
, and this script won’t have generated any combined calibrations from the images taken. Therefore,job_id_calib
can beNone
.Suported calibrations: see
self.pipetask_parameters_verification
.
- async checkpoint(name: str = '') None ¶
Await this at any “nice” point your script can be paused or stopped.
- Parameters:
- name
str
, optional Name of checkpoint; “” if it has no name.
- name
- Raises:
- async cleanup() None ¶
Perform final cleanup, if any.
This method is called as the script state is exiting, unless the script had not yet started to run, or the script process is aborted by SIGTERM or SIGKILL.
- async close(exception: Exception | None = None, cancel_start: bool = True) None ¶
Shut down, clean up resources and set done_task done.
May be called multiple times. The first call closes the Controller; subsequent calls wait until the Controller is closed.
Subclasses should override
close_tasks
instead ofclose
, unless you have a good reason to do otherwise.- Parameters:
- exception
Exception
, optional The exception that caused stopping, if any, in which case the
self.done_task
exception is set to this value. SpecifyNone
for a normal exit, in which case theself.done_task
result is set toNone
.- cancel_start
bool
, optional Cancel the start task? Leave this true unless calling this from the start task.
- exception
Notes
Removes the SAL log handler, calls
close_tasks
to stop all background tasks, pauses briefly to allow final SAL messages to be sent, then closes the dds domain.
- async close_tasks() None ¶
Shut down pending tasks. Called by
close
.Perform all cleanup other than disabling logging to SAL and closing the dds domain.
- async configure(config)¶
Configure the script.
- Parameters:
- config: `types.SimpleNamespace`
Configuration data. See
get_schema
for information about data structure.
- async count_failed_verification_tests(verify_stats, max_number_failures_per_detector_per_test)¶
Count number of tests that failed cp_verify.
- Parameters:
- Returns:
- certify_calib
bool
Boolean assessing whether the calibration should be certified.
- total_counter_failed_tests
dict`[`str
][str
] orNone
. Dictionary with the total number of tests failed per exposure and per cp_verify test type. If there are not any tests that failed,
None
will be returned.- thresholds
dict`[`str
][int
] orNone
Dictionary reporting the different thresholds used to decide whether a calibration should be certified or not (see
Notes
below). If there are not any tests that failed,None
will be returned.
- certify_calib
Notes
For at least one type of test, if the majority of tests fail in the majority of detectors and the majority of exposures, then don’t certify the calibration.
Suported calibrations: see
self.pipetask_parameters_verification
.
- async do_configure(data: BaseMsgType) None ¶
Configure the currently loaded script.
- Parameters:
- data
cmd_configure.DataType
Configuration.
- data
- Raises:
- base.ExpectedError
If
self.state.state
is notlsst.ts.idl.enums.Script.ScriptState.UNCONFIGURED
.
Notes
This method does the following:
Parse the
config
field as yaml-encodeddict
and validate it (including setting default values).Call
configure
.Set the pause and stop checkpoints.
Set the log level if
data.logLevel != 0
.Call
set_metadata
.Output the metadata event.
Change the script state to
lsst.ts.idl.enums.Script.ScriptState.CONFIGURED
.
- async do_resume(data: BaseMsgType) None ¶
Resume the currently paused script.
- Parameters:
- data
cmd_resume.DataType
Ignored.
- data
- Raises:
- base.ExpectedError
If
self.state.state
is notlsst.ts.idl.enums.Script.ScriptState.PAUSED
.
- async do_run(data: BaseMsgType) None ¶
Run the script and quit.
The script must have been configured and the group ID set.
- Parameters:
- data
cmd_run.DataType
Ignored.
- data
- Raises:
- base.ExpectedError
If
self.state.state
is notlsst.ts.idl.enums.Script.ScriptState.CONFIGURED
. Ifself.group_id
is blank.
- async do_setAuthList(data: BaseMsgType) None ¶
Update the authorization list.
- Parameters:
- data
cmd_setAuthList.DataType
Authorization lists.
- data
Notes
Add items if the data string starts with “+”, ignoring duplicates (both with respect to the existing items and within the data string). Remove items if the data string starts with “-”, ignoring missing items (items specified for removal that do not exist). Ignore whitespace after each comma and after the +/- prefix.
- async do_setCheckpoints(data: BaseMsgType) None ¶
Set or clear the checkpoints at which to pause and stop.
This command is deprecated. Please set the checkpoints using the
configure
command.- Parameters:
- data
cmd_setCheckpoints.DataType
Names of checkpoints for pausing and stopping, each a single regular expression; “” for no checkpoints, “.*” for all.
- data
- Raises:
- base.ExpectedError
If
self.state.state
is not one of:lsst.ts.idl.enums.Script.ScriptState.UNCONFIGURED
lsst.ts.idl.enums.Script.ScriptState.CONFIGURED
lsst.ts.idl.enums.Script.ScriptState.RUNNING
lsst.ts.idl.enums.Script.ScriptState.PAUSED
- async do_setGroupId(data: BaseMsgType) None ¶
Set or clear the group_id attribute.
The script must be in the Configured state. This command may be called multiple times. It is typically called when the script reaches the top position on the script queue.
- Parameters:
- data
cmd_setGroupId.DataType
Group ID, or “” to clear the group ID.
- data
- Raises:
- base.ExpectedError
If
state.state
is notlsst.ts.idl.enums.Script.ScriptState.CONFIGURED
.
- async do_setLogLevel(data: BaseMsgType) None ¶
Set logging level.
- Parameters:
- data
cmd_setLogLevel.DataType
Logging level.
- data
- async do_stop(data: BaseMsgType) None ¶
Stop the script.
- Parameters:
- data
cmd_stop.DataType
Ignored.
- data
Notes
This is a no-op if the script is already exiting. This does not wait for _exit to run.
- get_detectors_string(detector_array)¶
Get a detector string from a detector array. Convert a detector array of the form [0, 1, 2, …] into a string of the form “(0, 1, 2, …)” to be used by pipetasks.
- static get_exposure_id(obsid)¶
Parse obsid into an exposure id. Convert string in the format ??_?_YYYYMMDD_012345 into an integer like YYYYMMDD12345.
- Parameters:
- obsid
str
Observation id in the format ??_?_YYYYMMDD_012345, e.g., AT_O_20220406_000007.
- obsid
- Returns:
- int
Exposure id in the format YYYYMMDD12345, e.g., 2022040600007.
- get_instrument_configuration()¶
Get instrument configuration
- Returns:
- instrument_configuration:
dict
Dictionary with instrument configuration.
- instrument_configuration:
- get_pipetask_parameters_bias()¶
Get necessary information to run the bias generation pipetask.
- get_pipetask_parameters_dark()¶
Get necessary information to run the dark generation pipetask.
- get_pipetask_parameters_defects()¶
Get necessary information to run the defects generation pipetask.
- get_pipetask_parameters_flat()¶
Get necessary information to run the flat generation pipetask.
- get_pipetask_parameters_ptc()¶
Get necessary information to run the ptc generation pipetask.
- get_pipetask_parameters_verification_bias(job_id_calib)¶
Get necessary information to run the bias verification pipetask
- Parameters:
- Returns:
- get_pipetask_parameters_verification_dark(job_id_calib)¶
Get necessary information to run the dark verification pipetask
- Parameters:
- Returns:
- get_pipetask_parameters_verification_flat(job_id_calib)¶
Get necessary information to run the flat verification pipetask.
- Parameters:
- Returns:
- classmethod get_schema()¶
Return a jsonschema to validate configuration, as a
dict
.Please provide default values for all fields for which defaults make sense. This makes the script easier to use.
If your script has no configuration then return
None
, in which case theconfig
field of theconfigure
command must be an empty string.
- async image_in_oods_callback(data)¶
Callback function to check images are in oods
- Parameters:
- data
evt_imageInOODS.DataType
OODS, imageInOODS event sample.
- data
- classmethod make_from_cmd_line(**kwargs: Any) lsst.ts.salobj.base_script.BaseScript | None ¶
Make a script from command-line arguments.
Return None if
--schema
specified.- Parameters:
- kwargs
Keyword arguments for the script constructor. Must not include
index
.
- Raises:
- RuntimeError
If
kwargs
includesindex
.
- next_supplemented_group_id() str ¶
Return the group ID supplemented with a new subgroup.
The returned string has this format: f”{self.group_id}#{subgroup_id}”, where
subgroup_id
is an integer that starts at 1 and is incremented for every call to this method.- Raises:
- RuntimeError
If there is no group ID.
- async report_gains_from_flat_pairs(job_id_calib)¶
Print gains estimated form flat pairs.
- Parameters:
- jod_id_calib
str
Job ID returned by the OCPS after running the “GAIN” or “PTC” pipetasks
- jod_id_calib
Notes
The “PTC” and “GAIN” tasks are defined by the “cp_pipe” pipelines “cpPtc.yaml” and “cpPtc.yaml#genGainsFromFlatPairs”, respectively.
- async run()¶
- async set_exp_times_per_im_type(image_type)¶
Define exp_times and n_images according to image type.
- Parameters:
- image_type
str
Image type. One of [“BIAS”, “DARK”, “FLAT”].
- image_type
- set_metadata(metadata)¶
Set estimated duration of the script.
- async set_state(state: lsst.ts.xml.enums.Script.ScriptState | int | None = None, reason: str | None = None, keep_old_reason: bool = False, force_output: bool = False) None ¶
Set the script state.
- Parameters:
- state
ScriptState
orint
, optional New state, or None if no change
- reason
str
, optional Reason for state change.
None
for no new reason.- keep_old_reason
bool
If true, keep old reason; append the
reason
argument after “;” if it is is a non-empty string. If false replace withreason
, or “” ifreason
isNone
.- force_output
bool
, optional If true the output even if not changed.
- state
Notes
The lastCheckpoint field is set from self.last_checkpoint, and the numCheckpoints field is set from self.num_checkpoints.
- async start_phase2() None ¶
Additional work after
start
before fully started.Used by BaseCsc to transition to handle the initial state.
- async take_image_type(image_type, exp_times)¶
Take exposures and build exposure set.
- async take_images(image_type)¶
Take images with instrument.
- async verify_calib(image_type, job_id_calib)¶
Verify the calibration.
- Parameters:
Notes
The verification step runs tests in
cp_verify
that check the metrics in DMTN-101.Suported calibrations: see
self.pipetask_parameters_verification
.