MegaPrimeTranslator#

class astro_metadata_translator.MegaPrimeTranslator(header, filename=None)#

Bases: FitsTranslator

Metadata translator for CFHT MegaPrime standard headers.

Parameters:

Attributes Summary

all_properties

All the valid properties for this translator including extensions.

default_resource_root

Default resource path root to use to locate header correction files.

name

Name of this translation class

supported_instrument

Supports the MegaPrime instrument.

Methods Summary

determine_translatable_headers(filename[, ...])

Given a file return all the headers usable for metadata translation.

observing_date_to_offset(observing_date)

Return the offset to use when calculating the observing day.

to_altaz_begin()

Return value of altaz_begin from headers.

to_boresight_airmass()

Airmass of the boresight of the telescope.

to_boresight_rotation_angle()

Angle of the instrument in boresight_rotation_coord frame.

to_boresight_rotation_coord()

Coordinate frame of the instrument rotation angle (options: sky, unknown).

to_dark_time()

Duration of the exposure with shutter closed (seconds).

to_datetime_begin()

Calculate start time of observation.

to_datetime_end()

Calculate end time of observation.

to_detector_exposure_id()

Return value of detector_exposure_id from headers.

to_detector_group()

Collection name of which this detector is a part.

to_detector_name()

Return value of detector_name from headers.

to_detector_num()

Return value of detector_num from headers.

to_detector_serial()

Serial number/string associated with this detector.

to_exposure_id()

Unique (with instrument) integer identifier for this observation.

to_exposure_time()

Actual duration of the exposure (seconds).

to_exposure_time_requested()

Requested duration of the exposure (seconds).

to_location()

Calculate the observatory location.

to_object()

Object of interest or field name.

to_observation_counter()

Return the lifetime exposure number.

to_observation_id()

Label uniquely identifying this observation (can be related to 'exposure_id').

to_observation_type()

Calculate the observation type.

to_physical_filter()

The bandpass filter used for this observation.

to_pressure()

Return value of pressure from headers.

to_relative_humidity()

Relative humidity outside the dome.

to_science_program()

Observing program (survey or proposal) identifier.

to_temperature()

Temperature outside the dome.

to_tracking_radec()

Calculate the tracking RA/Dec for this observation.

to_visit_id()

ID of the Visit this Exposure is associated with.

Attributes Documentation

all_properties: dict[str, PropertyDefinition] = {'altaz_begin': <astro_metadata_translator.properties.PropertyDefinition object>, 'altaz_end': <astro_metadata_translator.properties.PropertyDefinition object>, 'boresight_airmass': <astro_metadata_translator.properties.PropertyDefinition object>, 'boresight_rotation_angle': <astro_metadata_translator.properties.PropertyDefinition object>, 'boresight_rotation_coord': <astro_metadata_translator.properties.PropertyDefinition object>, 'can_see_sky': <astro_metadata_translator.properties.PropertyDefinition object>, 'dark_time': <astro_metadata_translator.properties.PropertyDefinition object>, 'datetime_begin': <astro_metadata_translator.properties.PropertyDefinition object>, 'datetime_end': <astro_metadata_translator.properties.PropertyDefinition object>, 'detector_exposure_id': <astro_metadata_translator.properties.PropertyDefinition object>, 'detector_group': <astro_metadata_translator.properties.PropertyDefinition object>, 'detector_name': <astro_metadata_translator.properties.PropertyDefinition object>, 'detector_num': <astro_metadata_translator.properties.PropertyDefinition object>, 'detector_serial': <astro_metadata_translator.properties.PropertyDefinition object>, 'detector_unique_name': <astro_metadata_translator.properties.PropertyDefinition object>, 'exposure_group': <astro_metadata_translator.properties.PropertyDefinition object>, 'exposure_id': <astro_metadata_translator.properties.PropertyDefinition object>, 'exposure_time': <astro_metadata_translator.properties.PropertyDefinition object>, 'exposure_time_requested': <astro_metadata_translator.properties.PropertyDefinition object>, 'focus_z': <astro_metadata_translator.properties.PropertyDefinition object>, 'group_counter_end': <astro_metadata_translator.properties.PropertyDefinition object>, 'group_counter_start': <astro_metadata_translator.properties.PropertyDefinition object>, 'has_simulated_content': <astro_metadata_translator.properties.PropertyDefinition object>, 'instrument': <astro_metadata_translator.properties.PropertyDefinition object>, 'location': <astro_metadata_translator.properties.PropertyDefinition object>, 'object': <astro_metadata_translator.properties.PropertyDefinition object>, 'observation_counter': <astro_metadata_translator.properties.PropertyDefinition object>, 'observation_id': <astro_metadata_translator.properties.PropertyDefinition object>, 'observation_reason': <astro_metadata_translator.properties.PropertyDefinition object>, 'observation_type': <astro_metadata_translator.properties.PropertyDefinition object>, 'observing_day': <astro_metadata_translator.properties.PropertyDefinition object>, 'observing_day_offset': <astro_metadata_translator.properties.PropertyDefinition object>, 'physical_filter': <astro_metadata_translator.properties.PropertyDefinition object>, 'pressure': <astro_metadata_translator.properties.PropertyDefinition object>, 'relative_humidity': <astro_metadata_translator.properties.PropertyDefinition object>, 'science_program': <astro_metadata_translator.properties.PropertyDefinition object>, 'telescope': <astro_metadata_translator.properties.PropertyDefinition object>, 'temperature': <astro_metadata_translator.properties.PropertyDefinition object>, 'tracking_radec': <astro_metadata_translator.properties.PropertyDefinition object>, 'visit_id': <astro_metadata_translator.properties.PropertyDefinition object>}#

All the valid properties for this translator including extensions.

default_resource_root: str | None = 'corrections/CFHT'#

Default resource path root to use to locate header correction files.

name: str | None = 'MegaPrime'#

Name of this translation class

supported_instrument: str | None = 'MegaPrime'#

Supports the MegaPrime instrument.

Methods Documentation

classmethod determine_translatable_headers(filename, primary=None)#

Given a file return all the headers usable for metadata translation.

MegaPrime files are multi-extension FITS with a primary header and each detector stored in a subsequent extension. MegaPrime uses INHERIT=F therefore the primary header will always be ignored if given.

Parameters:
  • filename (str or lsst.resources.ResourcePathExpression) – Path to a file in a format understood by this translator.

  • primary (dict-like, optional) – The primary header obtained by the caller. This is sometimes already known, for example if a system is trying to bootstrap without already knowing what data is in the file. Will be ignored.

Yields:

headers (iterator of dict-like) – Each detector header in turn. The supplied header will never be included.

Return type:

Iterator[MutableMapping[str, Any]]

Notes

This translator class is specifically tailored to raw MegaPrime data and is not designed to work with general FITS files. The normal paradigm is for the caller to have read the first header and then called determine_translator on the result to work out which translator class to then call to obtain the real headers to be used for translation.

classmethod observing_date_to_offset(observing_date)#

Return the offset to use when calculating the observing day.

Parameters:

observing_date (astropy.time.Time) – The date of the observation. Unused.

Returns:

offset – The offset to apply. The offset is always 0 seconds. In Hawaii UTC rollover is at 2pm local time.

Return type:

astropy.time.TimeDelta

to_altaz_begin()#

Return value of altaz_begin from headers.

Telescope boresight azimuth and elevation at start of observation.

Returns:

The translated property.

Return type:

astropy.coordinates.builtin_frames.altaz.AltAz

to_boresight_airmass()#

Airmass of the boresight of the telescope.

Returns:

Translated value derived directly from a single header.

Return type:

float

Parameters:

self (MetadataTranslator)

to_boresight_rotation_angle()#

Angle of the instrument in boresight_rotation_coord frame.

Returns:

Translated property that is fixed to a single value by the translator.

Return type:

astropy.coordinates.angles.core.Angle

Parameters:

self (MetadataTranslator)

to_boresight_rotation_coord()#

Coordinate frame of the instrument rotation angle (options: sky, unknown).

Returns:

Translated property that is fixed to a single value by the translator.

Return type:

str

Parameters:

self (MetadataTranslator)

to_dark_time()#

Duration of the exposure with shutter closed (seconds).

Returns:

Translated value derived directly from a single header.

Return type:

astropy.units.quantity.Quantity

Parameters:

self (MetadataTranslator)

to_datetime_begin()#

Calculate start time of observation.

Uses FITS standard MJD-BEG or DATE-BEG, in conjunction with the TIMESYS header. Will fallback to using MJD-OBS or DATE-OBS if the -BEG variants are not found.

Returns:

start_time – Time corresponding to the start of the observation. Returns None if no date can be found.

Return type:

astropy.time.Time or None

to_datetime_end()#

Calculate end time of observation.

Uses FITS standard MJD-END or DATE-END, in conjunction with the TIMESYS header.

Returns:

start_time – Time corresponding to the end of the observation.

Return type:

astropy.time.Time

to_detector_exposure_id()#

Return value of detector_exposure_id from headers.

Unique integer identifier for this detector in this exposure.

Returns:

The translated property.

Return type:

int

to_detector_group()#

Collection name of which this detector is a part. Can be None if there are no detector groupings.

Returns:

Translated property that is fixed to a single value by the translator.

Return type:

str

Parameters:

self (MetadataTranslator)

to_detector_name()#

Return value of detector_name from headers.

Name of the detector within the instrument (might not be unique if there are detector groups).

Returns:

The translated property.

Return type:

str

to_detector_num()#

Return value of detector_num from headers.

Unique (for instrument) integer identifier for the sensor.

Returns:

The translated property.

Return type:

int

to_detector_serial()#

Serial number/string associated with this detector.

Returns:

Translated value derived directly from a single header.

Return type:

str

Parameters:

self (MetadataTranslator)

to_exposure_id()#

Unique (with instrument) integer identifier for this observation.

Returns:

Translated value derived directly from a single header.

Return type:

int

Parameters:

self (MetadataTranslator)

to_exposure_time()#

Actual duration of the exposure (seconds).

Returns:

Translated value derived directly from a single header.

Return type:

astropy.units.quantity.Quantity

Parameters:

self (MetadataTranslator)

to_exposure_time_requested()#

Requested duration of the exposure (seconds).

Returns:

Translated value derived directly from a single header.

Return type:

astropy.units.quantity.Quantity

Parameters:

self (MetadataTranslator)

to_location()#

Calculate the observatory location.

Returns:

location – An object representing the location of the telescope.

Return type:

astropy.coordinates.EarthLocation

to_object()#

Object of interest or field name.

Returns:

Translated value derived directly from a single header.

Return type:

str

Parameters:

self (MetadataTranslator)

to_observation_counter()#

Return the lifetime exposure number.

Returns:

sequence – The observation counter.

Return type:

int

to_observation_id()#

Label uniquely identifying this observation (can be related to ‘exposure_id’).

Returns:

Translated value derived directly from a single header.

Return type:

str

Parameters:

self (MetadataTranslator)

to_observation_type()#

Calculate the observation type.

Returns:

typ – Observation type. Normalized to standard set.

Return type:

str

to_physical_filter()#

The bandpass filter used for this observation.

Returns:

Translated value derived directly from a single header.

Return type:

str

Parameters:

self (MetadataTranslator)

to_pressure()#

Return value of pressure from headers.

Atmospheric pressure outside the dome.

Returns:

The translated property.

Return type:

astropy.units.quantity.Quantity

to_relative_humidity()#

Relative humidity outside the dome.

Returns:

Translated value derived directly from a single header.

Return type:

float

Parameters:

self (MetadataTranslator)

to_science_program()#

Observing program (survey or proposal) identifier.

Returns:

Translated value derived directly from a single header.

Return type:

str

Parameters:

self (MetadataTranslator)

to_temperature()#

Temperature outside the dome.

Returns:

Translated value derived directly from a single header.

Return type:

astropy.units.quantity.Quantity

Parameters:

self (MetadataTranslator)

to_tracking_radec()#

Calculate the tracking RA/Dec for this observation.

Currently will be None for geocentric apparent coordinates. Additionally, can be None for non-science observations.

The method supports multiple versions of header defining tracking coordinates.

Returns:

coords – The tracking coordinates.

Return type:

astropy.coordinates.SkyCoord or None

to_visit_id()#

ID of the Visit this Exposure is associated with.

Science observations should essentially always be associated with a visit, but calibration observations may not be.

Returns:

Translated value derived directly from a single header.

Return type:

int

Parameters:

self (MetadataTranslator)