LSSTCam¶
- class lsst.ts.observatory.control.maintel.LSSTCam(domain: lsst.ts.salobj.domain.Domain | None = None, log: logging.Logger | None = None, intended_usage: int | None = None, tcs_ready_to_take_data: Optional[Callable[[], Awaitable]] = None)¶
Bases:
BaseCamera
LSST Camera (LSSTCam).
LSSTCam encapsulates core functionality from the following CSCs MTCamera, MTHeaderService and MTOODS CSCs.
- Parameters:
- domain
lsst.ts.salobj.Domain
Domain for remotes. If
None
create 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.
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.
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_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_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_object
(exptime[, n, n_snaps, group_id, ...])Take a series of object 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.
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
check
feature will apply to the assertion so components marked withcheck=False
will 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_timeout
seconds.
- 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: Optional[Union[int, float, str]]) 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.
- async enable(overrides: Optional[Dict[str, str]] = 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
None
use recommended overrides.
- async expand_overrides(overrides: Optional[Dict[str, str]] = 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
dict
orNone
A dictionary with (component name, overrides) pair or
None
. The component name is as it appears in thecomponents_attr
attribute, 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
overrides
dictionary 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_bias
Take series of bias images.
take_darks
Take series of darks images.
take_flats
Take series of flats images.
take_object
Take series of object images.
take_engtest
Take series of engineering test images.
take_focus
Take series of focus images.
take_cwfs
Take series of curvature wavefront sensing images.
take_acq
Take series of acquisition images.
take_stuttered
Take series of stuttered images.
take_imgtype
Take series of images of specified imgage type.
setup_instrument
Set up instrument.
- async get_available_instrument_setup() List[str] ¶
Return available instrument setup.
See also
setup_instrument
Set 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.
- get_required_resources(component: str, intended_usage: Union[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_attr
attribute (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: Optional[List[str]] = None) Dict[str, BaseMsgType] ¶
Return a list with the simulation mode for components in the group.
- async get_software_versions(components: Optional[List[str]] = 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
True
will return None in case it times out getting the state. Default isFalse
, which means raiseTimeoutError
.
- component
- Returns:
- state
salobj.State
orNone
Current state of component.
- state
- Raises:
asyncio.TimeoutError
If can not get state in
self.fast_timeout
seconds.
- get_work_components(components: Optional[List[str]] = 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_endReadout
event, without flushing, parse theimageName
into 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: Optional[Dict[str, str]] = None, components: Optional[List[str]] = None) None ¶
Set summary state for all components.
- Parameters:
- state
salobj.State
Desired state.
- overrides
dict
or 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
components
is not part of the group.If it fails to transition one or more components.
- async setup_filter(filter: Optional[str]) Union[None, BaseMsgType] ¶
Setup the filter for the camera.
- async setup_instrument(**kwargs: Union[int, float, str]) None ¶
Implements abstract method to setup instrument.
This method will call
setup_filter
to set the camera filter.- Parameters:
- **kwargs
Arbitrary keyword arguments.
See also
setup_filter
Setup camera filter.
take_bias
Take series of bias.
take_darks
Take series of darks.
take_flats
Take series of flat-field images.
take_object
Take series of object observations.
take_engtest
Take series of engineering test observations.
take_spot
Take series of spot images.
take_imgtype
Take series of images by image type.
expose
Low level expose method.
- async take_acq(exptime: float = 1.0, n: int = 1, group_id: Optional[str] = None, test_type: Optional[str] = None, reason: Optional[str] = None, program: Optional[str] = None, sensors: Optional[str] = None, note: Optional[str] = None, checkpoint: Optional[Callable[[str], Awaitable]] = None, **kwargs: Union[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_bias
Take series of bias images.
take_darks
Take series of darks images.
take_flats
Take series of flats images.
take_object
Take series of object images.
take_engtest
Take series of engineering test images.
take_focus
Take series of focus images.
take_cwfs
Take series of curvature wavefront sensing images.
take_stuttered
Take series of stuttered images.
take_imgtype
Take series of images of specified imgage type.
setup_instrument
Set up instrument.
expose
Low level expose method.
- async take_bias(nbias: int, group_id: Optional[str] = None, test_type: Optional[str] = None, reason: Optional[str] = None, program: Optional[str] = None, sensors: Optional[str] = None, note: Optional[str] = None, checkpoint: Optional[Callable[[str], Awaitable]] = 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_darks
Take series of darks images.
take_flats
Take series of flats images.
take_object
Take series of object images.
take_engtest
Take series of engineering test images.
take_focus
Take series of focus images.
take_cwfs
Take series of curvature wavefront sensing images.
take_acq
Take series of acquisition images.
take_stuttered
Take series of stuttered images.
take_imgtype
Take series of images of specified imgage type.
setup_instrument
Set up instrument.
expose
Low level expose method.
- async take_cwfs(exptime: float, n: int = 1, group_id: Optional[str] = None, test_type: Optional[str] = None, reason: Optional[str] = None, program: Optional[str] = None, sensors: Optional[str] = None, note: Optional[str] = None, checkpoint: Optional[Callable[[str], Awaitable]] = None, **kwargs: Union[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_bias
Take series of bias images.
take_darks
Take series of darks images.
take_flats
Take series of flats images.
take_object
Take series of object images.
take_engtest
Take series of engineering test images.
take_focus
Take series of focus images.
take_acq
Take series of acquisition images.
take_stuttered
Take series of stuttered images.
take_imgtype
Take series of images of specified imgage type.
setup_instrument
Set up instrument.
expose
Low level expose method.
- async take_darks(exptime: float, ndarks: int, group_id: Optional[str] = None, test_type: Optional[str] = None, reason: Optional[str] = None, program: Optional[str] = None, sensors: Optional[str] = None, note: Optional[str] = None, checkpoint: Optional[Callable[[str], Awaitable]] = 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_bias
Take series of bias images.
take_flats
Take series of flats images.
take_object
Take series of object images.
take_engtest
Take series of engineering test images.
take_focus
Take series of focus images.
take_cwfs
Take series of curvature wavefront sensing images.
take_acq
Take series of acquisition images.
take_stuttered
Take series of stuttered images.
take_imgtype
Take series of images of specified imgage type.
setup_instrument
Set up instrument.
expose
Low level expose method.
- async take_engtest(exptime: float, n: int = 1, group_id: Optional[str] = None, test_type: Optional[str] = None, reason: Optional[str] = None, program: Optional[str] = None, sensors: Optional[str] = None, note: Optional[str] = None, checkpoint: Optional[Callable[[str], Awaitable]] = None, **kwargs: Union[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_bias
Take series of bias images.
take_darks
Take series of darks images.
take_flats
Take series of flats images.
take_object
Take series of object images.
take_focus
Take series of focus images.
take_cwfs
Take series of curvature wavefront sensing images.
take_acq
Take series of acquisition images.
take_stuttered
Take series of stuttered images.
take_imgtype
Take series of images of specified imgage type.
setup_instrument
Set up instrument.
expose
Low level expose method.
- async take_flats(exptime: float, nflats: int, group_id: Optional[str] = None, test_type: Optional[str] = None, reason: Optional[str] = None, program: Optional[str] = None, sensors: Optional[str] = None, note: Optional[str] = None, checkpoint: Optional[Callable[[str], Awaitable]] = None, **kwargs: Union[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_bias
Take series of bias images.
take_darks
Take series of darks images.
take_object
Take series of object images.
take_engtest
Take series of engineering test images.
take_focus
Take series of focus images.
take_cwfs
Take series of curvature wavefront sensing images.
take_acq
Take series of acquisition images.
take_stuttered
Take series of stuttered images.
take_imgtype
Take series of images of specified imgage type.
setup_instrument
Set up instrument.
expose
Low 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: Optional[str] = None, test_type: Optional[str] = None, reason: Optional[str] = None, program: Optional[str] = None, sensors: Optional[str] = None, note: Optional[str] = None, checkpoint: Optional[Callable[[str], Awaitable]] = None, **kwargs: Union[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_bias
Take series of bias images.
take_darks
Take series of darks images.
take_flats
Take series of flats images.
take_object
Take series of object images.
take_engtest
Take series of engineering test images.
take_cwfs
Take series of curvature wavefront sensing images.
take_acq
Take series of acquisition images.
take_stuttered
Take series of stuttered images.
take_imgtype
Take series of images of specified imgage type.
setup_instrument
Set up instrument.
expose
Low level expose method.
- async take_imgtype(imgtype: str, exptime: float, n: int, n_snaps: int = 1, n_shift: Optional[int] = None, row_shift: Optional[int] = None, group_id: Optional[str] = None, test_type: Optional[str] = None, reason: Optional[str] = None, program: Optional[str] = None, sensors: Optional[str] = None, note: Optional[str] = None, checkpoint: Optional[Callable[[str], Awaitable]] = None, **kwargs: Union[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_bias
Take series of bias images.
take_darks
Take series of darks images.
take_flats
Take series of flats images.
take_object
Take series of object images.
take_engtest
Take series of engineering test images.
take_focus
Take series of focus images.
take_cwfs
Take series of curvature wavefront sensing images.
take_acq
Take series of acquisition images.
take_stuttered
Take series of stuttered images.
setup_instrument
Set up instrument.
expose
Low level expose method.
- async take_object(exptime: float, n: int = 1, n_snaps: int = 1, group_id: Optional[str] = None, test_type: Optional[str] = None, reason: Optional[str] = None, program: Optional[str] = None, sensors: Optional[str] = None, note: Optional[str] = None, checkpoint: Optional[Callable[[str], Awaitable]] = None, **kwargs: Union[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_bias
Take series of bias images.
take_darks
Take series of darks images.
take_flats
Take series of flats images.
take_engtest
Take series of engineering test images.
take_focus
Take series of focus images.
take_cwfs
Take series of curvature wavefront sensing images.
take_acq
Take series of acquisition images.
take_stuttered
Take series of stuttered images.
take_imgtype
Take series of images of specified imgage type.
setup_instrument
Set up instrument.
expose
Low level expose method.
Notes
Object images support two nested ways of sequencing images; a regular sequence of independent observations (controlled by the
n
parameter) and sequence of snaps (controlled by then_snaps
parameter).In fact the
n
parameter specify the number of “snaps” andn_snaps
specify how many images per “snap”. Therefore,n=2
andn_snaps=2
is 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_spot(exptime: float, n: int = 1, group_id: Optional[str] = None, test_type: Optional[str] = None, reason: Optional[str] = None, program: Optional[str] = None, sensors: Optional[str] = None, note: Optional[str] = None, checkpoint: Optional[Callable[[str], Awaitable]] = None, **kwargs: Union[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: Optional[str] = None, test_type: Optional[str] = None, reason: Optional[str] = None, program: Optional[str] = None, sensors: Optional[str] = None, note: Optional[str] = None, checkpoint: Optional[Callable[[str], Awaitable]] = None, **kwargs: Union[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_bias
Take series of bias images.
take_darks
Take series of darks images.
take_flats
Take series of flats images.
take_object
Take series of object images.
take_engtest
Take series of engineering test images.
take_focus
Take series of focus images.
take_cwfs
Take series of curvature wavefront sensing images.
take_acq
Take series of acquisition images.
take_imgtype
Take series of images of specified imgage type.
setup_instrument
Set up instrument.
expose
Low level expose method.