ComCam¶
- class lsst.ts.observatory.control.maintel.ComCam(domain: Domain | None = None, log: Logger | None = None, intended_usage: int | None = None, tcs_ready_to_take_data: Callable[[], Awaitable] | None = None)¶
Bases:
BaseCameraCommissioning Camera (ComCam).
ComCam encapsulates core functionality from the following CSCs CCCamera, CCHeaderService and CCOODS CSCs.
- Parameters:
- domain
lsst.ts.salobj.Domain Domain for remotes. If
Nonecreate a domain.- tcs_ready_to_take_data: `coroutine`
A coroutine that waits for the telescope control system to be ready to take data.
- domain
Attributes Summary
Camera remote.
List of components names.
List of remotes names.
Define class usages.
Returns valid usages.
Methods Summary
assert_all_enabled([message])Check if all components are in the enabled state.
Assert liveliness of components belonging to the group.
Verify the camera support taking stuttered images.
cancel_not_done(tasks)Cancel all coroutines in
coro_list.check_comp_heartbeat(component)Monitor heartbeats from the specified component and raises and exception if not.
check_component_state(component[, desired_state])Monitor the summary state of a component and raises an exception if it is or goes to a state different than the desired state.
check_kwargs(**kwargs)Utility method to verify that kwargs are in
self.instrument_setup_attributes.close()Return components for which check is enabled.
disable_checks_for_components(components)Disables checks for a list of components.
enable([overrides])Enable all components.
expand_overrides([overrides])Expand an overrides dict with entries for every component.
expose(camera_exposure)Encapsulates the take image command.
Get the list of available filters.
Return available instrument setup.
Get the current filter.
get_heartbeat(component)Get last heartbeat for component.
Get user identity.
List of valid image types accepted by the
take_imgtypemethod.get_required_resources(component, intended_usage)Return the required resources based on the intended usage of the class.
get_simulation_mode([components])Return a list with the simulation mode for components in the group.
get_software_versions([components])Return a list with the software versions for components in the group.
get_state(component[, ignore_timeout])Get summary state for component.
get_work_components([components])Parse input into a list of valid components from the group.
handle_take_images(camera_exposure)Handle take images command.
init_guider(roi_spec)Initialize guiders with the provided region of interest specification.
Get the exposure id from the next endReadout event.
Get the next group ID.
next_heartbeat(component)Get next heartbeat for component.
next_state(component)Get summary state for component.
offline()Put all CSCs in offline.
parse_sensors(sensors)Parse input sensors.
process_as_completed(tasks)Process tasks are they complete.
Reset all checks, enabling check for all components.
set_rem_loglevel(level)Set remotes log level.
set_state(state[, overrides, components])Set summary state for all components.
setup_filter(filter)Setup the filter for the camera.
setup_instrument(**kwargs)Implements abstract method to setup instrument.
standby()Put all CSCs in standby.
take_acq([exptime, n, group_id, test_type, ...])Take acquisition images.
take_bias(nbias[, group_id, test_type, ...])Take a series of bias images.
take_cbp(exptime[, n, group_id, test_type, ...])Take images with the camera shutter pointed at the CBP.
take_cwfs(exptime[, n, group_id, test_type, ...])Take images for curvature wavefront sensing.
take_darks(exptime, ndarks[, group_id, ...])Take a series of dark images.
take_dflat(exptime[, n, group_id, ...])Take a series of dark flat images.
take_engtest(exptime[, n, group_id, ...])Take a series of engineering test images.
take_flats(exptime, nflats[, group_id, ...])Take a series of flat field images.
take_focus(exptime[, n, group_id, ...])Take images for classical focus sequence.
take_imgtype(imgtype, exptime, n[, n_snaps, ...])Take a series of images of the specified image type.
take_indome(exptime[, n, group_id, ...])Take in-dome images.
take_object(exptime[, n, n_snaps, group_id, ...])Take a series of object images.
take_sflat(exptime[, n, group_id, ...])Take sky/twilight-flat images.
take_spot(exptime[, n, group_id, test_type, ...])Take a series of spot test images.
take_stuttered(exptime, n_shift, row_shift)Take stuttered images.
Wait until the camera is ready to take data.
Attributes Documentation
- camera¶
Camera remote.
- components¶
List of components names.
The name of the CSC follow the format used in the class constructor, e.g. CSCName or CSCName:index (for indexed components), e.g. “Hexapod:1” (for Hexapod with index=1) or “ATHexapod”.
- components_attr¶
List of remotes names.
The remotes names are reformatted to fit the requirements for object attributes. It will be the name of the CSC (as in
components) in lowercase, replacing the colon by an underscore, e.g. “Hexapod:1” -> “hexapod_1” or “ATHexapod” -> “athexapod”.
- usages¶
- valid_use_cases¶
Returns valid usages.
- Returns:
- usages: enum
Methods Documentation
- async assert_all_enabled(message: str = '') None¶
Check if all components are in the enabled state.
- Parameters:
- message: `str`
Additional message to append to error.
- async assert_liveliness() None¶
Assert liveliness of components belonging to the group.
The assertion is done by waiting for a new heartbeat from the component. The
checkfeature will apply to the assertion so components marked withcheck=Falsewill be skipped.- Raises:
- AssertionError
If cannot get heartbeat for one or more components.
- assert_support_stuttered() None¶
Verify the camera support taking stuttered images.
- Raises:
- AssertionError
If stuttered image is not supported.
- async static cancel_not_done(tasks: List[Task]) None¶
Cancel all coroutines in
coro_list.Remove futures from input tasks list and cancel them.
- Parameters:
- tasks
list[futures] A list of coroutines to cancel.
- tasks
- async check_comp_heartbeat(component: str) None¶
Monitor heartbeats from the specified component and raises and exception if not.
This method will run forever as long as the component continues to send heartbeats. The intention is that this can run alongside an operation, to make sure the component remains responsive.
- Parameters:
- component
str Name of the component to follow. The name of the CSC follow the format CSCName or CSCName:index (for indexed components), e.g. “Hexapod:1” (for Hexapod with index=1) or “ATHexapod”.
- component
- Raises:
- RuntimeError
If the component does not send heartbeats in
self.fast_timeoutseconds.
- async check_component_state(component: str, desired_state: State = State.ENABLED) None¶
Monitor the summary state of a component and raises an exception if it is or goes to a state different than the desired state.
This method will run forever as long as the summary state remains unchanged. The intention is that this can run alongside an operation that require the component to be in a certain state, when the operation is completed, the task can be canceled.
- Parameters:
- component
str Name of the component to follow. Must be one of: atmcs, atptg, ataos, atpneumatics, athexapod, atdome, atdometrajectory
- desired_state
salobj.State Desired state of the CSC.
- component
- Raises:
- RuntimeError
If state is not
desired_state.- KeyError
If component is not found.
- check_kwargs(**kwargs: int | float | str | None) None¶
Utility method to verify that kwargs are in
self.instrument_setup_attributes.- Parameters:
- **kwargs
Optional keyword,value pair.
- Raises:
- RuntimeError:
If keyword in kwargs is not in
self.instrument_setup_attributes.
- disable_checks_for_components(components: List[str]) None¶
Disables checks for a list of components.
The elements of
componentsthat are not part of the CSC group will be ignored.- Parameters:
- components: `list` of `str`
A list of strings that indentifies the components to disable the check. The names can be eather in attribute format (e.g. “mtmount” or “hexapod_1”) or in salobj remote name format (e.g. “MTMount” or “Hexapod:1”).
- async enable(overrides: Dict[str, str] | None = None) None¶
Enable all components.
This method will enable all group components. Users can provide overrides for the start command (in a dictionary).
- Parameters:
- overrides: `dict`
Dictionary with overrides to apply. If
Noneuse recommended overrides.
- async expand_overrides(overrides: Dict[str, str] | None = None) Dict[str, str]¶
Expand an overrides dict with entries for every component.
Any components that have no specified override are set to “”.
- Parameters:
- overrides
dictorNone A dictionary with (component name, overrides) pair or
None. The component name is as it appears in thecomponents_attrattribute, which is the name of the CSC in lowercase, replacing “:” by “_” for indexed components, e.g. “Hexapod:1” -> “hexapod_1” or “ATHexapod” -> “athexapod”.
- overrides
- Returns:
- complete_overrides
dict Dictionary with overrides for every component in the group. Unspecifies components have override “”.
- complete_overrides
- Raises:
- RuntimeError
If an item in the parameter
overridesdictionary is not a CSC in the group.
- async expose(camera_exposure: CameraExposure) List[int]¶
Encapsulates the take image command.
This basically consists of configuring and sending a takeImages command to the camera and waiting for an endReadout event.
- Parameters:
- camera_exposureCameraExposure
Camera exposure definitions.
- Returns:
See also
take_biasTake series of bias images.
take_darksTake series of darks images.
take_flatsTake series of flats images.
take_objectTake series of object images.
take_engtestTake series of engineering test images.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
- async get_available_instrument_setup() List[str]¶
Return available instrument setup.
See also
setup_instrumentSet up instrument.
- async get_heartbeat(component: str) BaseMsgType¶
Get last heartbeat for component.
- Parameters:
- component
str Name of the component.
- component
- Returns:
- heartbeat
Last component heartbeat.
- classmethod get_image_types() List[str]¶
List of valid image types accepted by the
take_imgtypemethod.
- get_required_resources(component: str, intended_usage: None | int) Any¶
Return the required resources based on the intended usage of the class.
When subclassing, overwrite this method to add the child class use cases.
- Parameters:
- component: `str`
Name of the component, with index as it appears in
components_attrattribute (e.g. test_1 for the Test component with index 1).- intended_usage: `int` or `None`
An integer constructed from the
self.valid_use_cases. Usages can be combined to enable combined operations (see base class documentation). If None, returns appropriate values to load all resources.
- Returns:
- resources: types.SimpleNamespace
A simple namespaces with the following attributes:
- Raises:
- KeyError: If component is not in the list of components.
- async get_simulation_mode(components: List[str] | None = None) Dict[str, BaseMsgType]¶
Return a list with the simulation mode for components in the group.
- async get_software_versions(components: List[str] | None = None) Dict[str, BaseMsgType]¶
Return a list with the software versions for components in the group.
- async get_state(component: str, ignore_timeout: bool = False) State¶
Get summary state for component.
- Parameters:
- component
str Name of the component.
- ignore_timeout
bool If
Truewill return None in case it times out getting the state. Default isFalse, which means raiseTimeoutError.
- component
- Returns:
- state
salobj.StateorNone Current state of component.
- state
- Raises:
asyncio.TimeoutErrorIf can not get state in
self.fast_timeoutseconds.
- get_work_components(components: List[str] | None = None) List[str]¶
Parse input into a list of valid components from the group.
- async handle_take_images(camera_exposure: CameraExposure) List[int]¶
Handle take images command.
- Parameters:
- camera_exposureCameraExposure
Camera exposure definitions.
- Returns:
- exp_idslist of int
List of exposure ids.
- async init_guider(roi_spec: ROISpec) None¶
Initialize guiders with the provided region of interest specification.
- Parameters:
- roi_spec
ROISpec Region of interest specification.
- roi_spec
- async next_exposure_id() int¶
Get the exposure id from the next endReadout event.
Await for the next
camera.evt_endReadoutevent, without flushing, parse theimageNameinto YYYYMMDD and sequence number and construct an integer that represents the exposude id.- Returns:
- int
Exposure id from next endReadout event.
- static next_group_id() str¶
Get the next group ID.
The group ID is the current TAI date and time as a string in ISO format. It has T separating date and time and no time zone suffix. Here is an example: “2020-01-17T22:59:05.721”
- async next_heartbeat(component: str) BaseMsgType¶
Get next heartbeat for component.
- Parameters:
- component
str Name of the component.
- component
- Returns:
- heartbeat
Last component heartbeat.
- async next_state(component: str) State¶
Get summary state for component.
- Parameters:
- component
str Name of the component.
- component
- Returns:
- state
salobj.State Current state of component.
- state
- async process_as_completed(tasks: List[Task]) Any¶
Process tasks are they complete.
If the first task that finishes completes successfully, it will cancel all other tasks in the list, empty the input list and return the value of the task. If the task results in an exception, it will cancel all other tasks, empty the list and raise the exception.
- Parameters:
- tasks
list`[`asyncio.Tasks] List of asyncio tasks to process.
- tasks
- Returns:
- ret_val
object Return value from the first completed task.
- ret_val
- set_rem_loglevel(level: int) None¶
Set remotes log level.
Useful to prevent the internal salobj warnings when read queues are filling up.
- Parameters:
- level
int Log level.
- level
- async set_state(state: State, overrides: Dict[str, str] | None = None, components: List[str] | None = None) None¶
Set summary state for all components.
- Parameters:
- state
salobj.State Desired state.
- overrides
dictor None Settings to apply for each component.
- components
list[`str]` List of components to set state, as they appear in
self.components_attr.
- state
- Raises:
- RuntimeError
If a component in
componentsis not part of the group.If it fails to transition one or more components.
- async setup_instrument(**kwargs: int | float | str) None¶
Implements abstract method to setup instrument.
This method will call
setup_filterto set the camera filter.- Parameters:
- **kwargs
Arbitrary keyword arguments.
See also
setup_filterSetup camera filter.
take_biasTake series of bias.
take_darksTake series of darks.
take_flatsTake series of flat-field images.
take_objectTake series of object observations.
take_engtestTake series of engineering test observations.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
take_spotTake series of spot images.
take_imgtypeTake series of images by image type.
exposeLow level expose method.
- async take_acq(exptime: float = 1.0, n: int = 1, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None, **kwargs: int | float | str) List[int]¶
Take acquisition images.
Acquisition images are generaly used to check the position of the targets in the FoV, the image quality after a focus/cwfs sequence or any other quick verification purposes.
Because they are supposed to be short exposures, this method provide a default value for the exposure time of 1 second, so one can call it with no argument.
- Parameters:
- exptime
float, optional Exposure time for flats.
- n
int, optional Number of frames to take.
- group_id
str, optional Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str, optional Optional string to be added to the keyword testType image header.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str A colon delimited list of sensor names to use for the image.
- note
str Optional observer note to be added to the image header.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- **kwargs
Arbitrary keyword arguments.
- exptime
- Returns:
See also
take_biasTake series of bias images.
take_darksTake series of darks images.
take_flatsTake series of flats images.
take_objectTake series of object images.
take_engtestTake series of engineering test images.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
exposeLow level expose method.
- async take_bias(nbias: int, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None) List[int]¶
Take a series of bias images.
- Parameters:
- nbias
int Number of bias frames to take.
- group_id
str Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str Optional string to be added to the keyword testType image header.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str A colon delimited list of sensor names to use for the image.
- note
str Optional observer note to be added to the image header.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- nbias
- Returns:
See also
take_darksTake series of darks images.
take_flatsTake series of flats images.
take_objectTake series of object images.
take_engtestTake series of engineering test images.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
exposeLow level expose method.
- async take_cbp(exptime: float, n: int = 1, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None, **kwargs: int | float | str) List[int]¶
Take images with the camera shutter pointed at the CBP.
Take a series of in-dome images with the camera shutter open pointed at the Collimated Beam Projector (CBP). The CBP is an important part of the calibration system but is not the flatfield screen, and its images are not grouped with pinhole shots or scattered light tests.
- Parameters:
- exptime
float Exposure time for flats.
- n
int Number of frames to take.
- group_id
str Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str Optional string to be added to the keyword testType image header.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str A colon delimited list of sensor names to use for the image.
- note
str Optional observer note to be added to the image header.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- **kwargs
Arbitrary keyword arguments.
- exptime
- Returns:
See also
take_biasTake series of bias images.
take_darksTake series of darks images.
take_flatsTake series of flats images.
take_objectTake series of object images.
take_engtestTake series of engineering test images.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
exposeLow level expose method.
- async take_cwfs(exptime: float, n: int = 1, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None, **kwargs: int | float | str) List[int]¶
Take images for curvature wavefront sensing.
Curvature wavefront sensing images are usually extremely out of focus images that are processed to determine the wavefront errors of the telescope optics. These results can later be processed thought a sensitivity matrix to yield optical corrections.
- Parameters:
- exptime
float Exposure time for flats.
- n
int Number of frames to take.
- group_id
str Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str Optional string to be added to the keyword testType image header.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str A colon delimited list of sensor names to use for the image.
- note
str Optional observer note to be added to the image header.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- **kwargs
Arbitrary keyword arguments.
- exptime
- Returns:
See also
take_biasTake series of bias images.
take_darksTake series of darks images.
take_flatsTake series of flats images.
take_objectTake series of object images.
take_engtestTake series of engineering test images.
take_focusTake series of focus images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
exposeLow level expose method.
- async take_darks(exptime: float, ndarks: int, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None) List[int]¶
Take a series of dark images.
- Parameters:
- exptime
float Exposure time for darks.
- ndarks
int Number of dark frames to take.
- group_id
str Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str Optional string to be added to the keyword testType image header.
- sensors
str A colon delimited list of sensor names to use for the image.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- note
str Optional observer note to be added to the image header.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- exptime
- Returns:
See also
take_biasTake series of bias images.
take_flatsTake series of flats images.
take_objectTake series of object images.
take_engtestTake series of engineering test images.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
exposeLow level expose method.
- async take_dflat(exptime: float, n: int = 1, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None, **kwargs: int | float | str) List[int]¶
Take a series of dark flat images.
- Parameters:
- exptime
float Exposure time for flats.
- n
int Number of frames to take.
- group_id
str Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str Optional string to be added to the keyword testType image header.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str A colon delimited list of sensor names to use for the image.
- note
str Optional observer note to be added to the image header.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- **kwargs
Arbitrary keyword arguments.
- exptime
- Returns:
See also
take_biasTake series of bias images.
take_darksTake series of darks images.
take_flatsTake series of flats images.
take_objectTake series of object images.
take_engtestTake series of engineering test images.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
exposeLow level expose method.
- async take_engtest(exptime: float, n: int = 1, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None, **kwargs: int | float | str) List[int]¶
Take a series of engineering test images.
- Parameters:
- exptime
float Exposure time for flats.
- n
int Number of frames to take.
- group_id
str Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str Optional string to be added to the keyword testType image header.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str A colon delimited list of sensor names to use for the image.
- note
str Optional observer note to be added to the image header.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- **kwargs
Arbitrary keyword arguments.
- exptime
- Returns:
See also
take_biasTake series of bias images.
take_darksTake series of darks images.
take_flatsTake series of flats images.
take_objectTake series of object images.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
exposeLow level expose method.
- async take_flats(exptime: float, nflats: int, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None, **kwargs: int | float | str) List[int]¶
Take a series of flat field images.
- Parameters:
- exptime
float Exposure time for flats.
- nflats
int Number of flat frames to take.
- group_id
str Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str Optional string to be added to the keyword testType image header.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str A colon delimited list of sensor names to use for the image.
- note
str Optional observer note to be added to the image header.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- **kwargs
Arbitrary keyword arguments.
- exptime
- Returns:
See also
take_biasTake series of bias images.
take_darksTake series of darks images.
take_objectTake series of object images.
take_engtestTake series of engineering test images.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
exposeLow level expose method.
Notes
This is an abstract method. To check additional inputs for instrument setup check
setup_instrument.
- async take_focus(exptime: float, n: int = 1, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None, **kwargs: int | float | str) List[int]¶
Take images for classical focus sequence.
Focus sequence consists of applying an initialy large focus offset, then, continually take data and move focus back in the direction of to the original position, until it has passed it by a similar amount in that direction.
By detecting a bright source in a focus sequence and finding the focus position with smaller full-width-half-maximum, we can estimate the best focus position.
- Parameters:
- exptime
float Exposure time for flats.
- n
int Number of frames to take.
- group_id
str Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str Optional string to be added to the keyword testType image header.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str A colon delimited list of sensor names to use for the image.
- note
str Optional observer note to be added to the image header.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- **kwargs
Arbitrary keyword arguments.
- exptime
- Returns:
See also
take_biasTake series of bias images.
take_darksTake series of darks images.
take_flatsTake series of flats images.
take_objectTake series of object images.
take_engtestTake series of engineering test images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
exposeLow level expose method.
- async take_imgtype(imgtype: str, exptime: float, n: int, n_snaps: int = 1, n_shift: int | None = None, row_shift: int | None = None, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None, **kwargs: int | float | str) List[int]¶
Take a series of images of the specified image type.
- Parameters:
- exptime
float Exposure time for flats.
- n
int Number of frames to take.
- n_snaps
int Number of snaps to take (default=1).
- test_type
str Optional string to be added to the keyword testType image header.
- n_shift
int, optional Number of shift-expose sequences. Only used for stuttered images.
- row_shift
int, optional How many rows to shift at each sequence. Only used for stuttered images.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str, optional A colon delimited list of sensor names to use for the image.
- note
str, optional Optional observer note to be added to the image header.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- **kwargs
Arbitrary keyword arguments.
- exptime
- Returns:
- Raises:
- RuntimeError
If TCS takes took long to report.
See also
take_biasTake series of bias images.
take_darksTake series of darks images.
take_flatsTake series of flats images.
take_objectTake series of object images.
take_engtestTake series of engineering test images.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
setup_instrumentSet up instrument.
exposeLow level expose method.
- async take_indome(exptime: float, n: int = 1, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None, **kwargs: int | float | str) List[int]¶
Take in-dome images.
An in-dome image (pinhole, shutter test, etc.) behaves like a FLAT, but indicates that the image is taken inside the dome with the camera shutter open, and not pointed at the calibration screen or CBP. These images are used for in-dome testing, typically when the telescope is not tracking.
- Parameters:
- exptime
float Exposure time for flats.
- n
int Number of frames to take.
- group_id
str Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str Optional string to be added to the keyword testType image header.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str A colon delimited list of sensor names to use for the image.
- note
str Optional observer note to be added to the image header.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- **kwargs
Arbitrary keyword arguments.
- exptime
- Returns:
See also
take_biasTake series of bias images.
take_darksTake series of darks images.
take_flatsTake series of flats images.
take_objectTake series of object images.
take_engtestTake series of engineering test images.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
exposeLow level expose method.
- async take_object(exptime: float, n: int = 1, n_snaps: int = 1, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None, **kwargs: int | float | str) List[int]¶
Take a series of object images.
Object images are assumed to be looking through an open dome at the sky.
- Parameters:
- exptime
float Exposure time for flats.
- n
int, optional Number of frames to take (default=1).
- n_snaps
int Number of snaps to take (default=1).
- group_id
str, optional Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str, optional Optional string to be added to the keyword testType image header.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str, optional A colon delimited list of sensor names to use for the image.
- note
str, optional Optional observer note to be added to the image header.
- checkpoint
coro, optional A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- **kwargs
Arbitrary keyword arguments.
- exptime
- Returns:
See also
take_biasTake series of bias images.
take_darksTake series of darks images.
take_flatsTake series of flats images.
take_engtestTake series of engineering test images.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
exposeLow level expose method.
Notes
Object images support two nested ways of sequencing images; a regular sequence of independent observations (controlled by the
nparameter) and sequence of snaps (controlled by then_snapsparameter).In fact the
nparameter specify the number of “snaps” andn_snapsspecify how many images per “snap”. Therefore,n=2andn_snaps=2is interpreted as 2 sequences of snaps, each snap with 2 images, accounting for 2x2=4 images total.Snaps provide a special way of data aggregation employed by the data reduction pipeline and should be used only in specific cases. In general snaps are either 1 or 2 images, larger numbers are allowed but discouraged (and will result in a warning message).
- async take_sflat(exptime: float, n: int = 1, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None, **kwargs: int | float | str) List[int]¶
Take sky/twilight-flat images.
- Parameters:
- exptime
float Exposure time for flats.
- n
int Number of frames to take.
- group_id
str Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str Optional string to be added to the keyword testType image header.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str A colon delimited list of sensor names to use for the image.
- note
str Optional observer note to be added to the image header.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- **kwargs
Arbitrary keyword arguments.
- exptime
- Returns:
See also
take_biasTake series of bias images.
take_darksTake series of darks images.
take_flatsTake series of flats images.
take_objectTake series of object images.
take_engtestTake series of engineering test images.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_stutteredTake series of stuttered images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_dflatTake series of dark-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
exposeLow level expose method.
- async take_spot(exptime: float, n: int = 1, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None, **kwargs: int | float | str) List[int]¶
Take a series of spot test images.
- Parameters:
- exptime
float Exposure time for flats.
- n
int Number of frames to take.
- group_id
str Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str Optional string to be added to the keyword testType image header.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str A colon delimited list of sensor names to use for the image.
- note
str A freeform string containing small notes about the image.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- exptime
- async take_stuttered(exptime: float, n_shift: int, row_shift: int, n: int = 1, group_id: str | None = None, test_type: str | None = None, reason: str | None = None, program: str | None = None, sensors: str | None = None, note: str | None = None, checkpoint: Callable[[str], Awaitable] | None = None, **kwargs: int | float | str) List[int]¶
Take stuttered images.
Stuttered image consists of starting an acquisition “manually”, then doing subsequent row-shifts of the image readout for a given number of times. This allows one to take rapid sequence of observations of sources as the detector does not need to readout completely, but the images end up with an odd appearence, as the field offsets at each iteration.
- Parameters:
- exptime
float Exposure time (in seconds).
- n_shift
int Number of shift-expose sequences.
- row_shift
int How many rows to shift at each sequence.
- n
int, optional Number of frames to take.
- group_id
str, optional Optional group id for the data sequence. Will generate a common one for all the data if none is given.
- test_type
str, optional Optional string to be added to the keyword testType image header.
- reason
str, optional Reason for the data being taken. This must be a short tag-like string that can be used to disambiguate a set of observations.
- program
str, optional Name of the program this data belongs to, e.g. WFD, DD, etc.
- sensors
str A colon delimited list of sensor names to use for the image.
- note
str Optional observer note to be added to the image header.
- checkpoint
coro A optional awaitable callback that accepts one string argument that is called before each bias is taken.
- **kwargs
Arbitrary keyword arguments.
- exptime
- Returns:
See also
take_biasTake series of bias images.
take_darksTake series of darks images.
take_flatsTake series of flats images.
take_objectTake series of object images.
take_engtestTake series of engineering test images.
take_focusTake series of focus images.
take_cwfsTake series of curvature wavefront sensing images.
take_acqTake series of acquisition images.
take_indomeTake series of in-dome testing images.
take_cbpTake series of collimated beam projector images.
take_sflatTake series of sky/twilight-flat images.
take_dflatTake series of dark-flat images.
take_imgtypeTake series of images of specified imgage type.
setup_instrumentSet up instrument.
exposeLow level expose method.