astro.instrument package

Submodules

astro.instrument.ChipLayout module

class astro.instrument.ChipLayout.CCD(name=None, naxis=[0, 0], crval=[0, 0], crpix=[0, 0], cd=[0, 0, 0, 0])

Bases: object

Describe the properties of a CCD such as name and geometry, both in the focal plane and projected on the sky.

set_cd()
set_cd_matrix()
set_crpix()
set_crpix_matrix()
set_crval()
set_crval_matrix()
set_naxis()
set_naxis_matrix()
set_pc()
set_pc_matrix()

Construct PC-matrix generically (not only ones and zeroes).

set_properties()
translate_crpix()
translate_naxis()
class astro.instrument.ChipLayout.ChipLayout(instrument_id='', chip_config=0, header=None, chip_list=None, highlight={}, highlight_color='cyan', prescan=True, overscan=True, center=True, pad=0.05, show_detectorblock=False, linewidth=0.5, fontsize=16)

Bases: object

create(show=False, filename='')

Method to create the mosaic (chip layout) of any supported instrument.

This function plots the mosaic of a given instrument as it should appear in a viewer. Typically, the plot should also be valid on the sky (with North up and East to the left), but this depends on the state of the translator for a given instrument. The translator specifies a very specific configuation of the instrument which may not be anything like a given exposure mosaic.

The plot consists of a schematic representation of the science region of each chip in black lines with the reference pixel (1,1) denoted by a black square. The center of the mosaic (e.g., pointing center or optical axis) is denoted by a red `x’ symbol (this actually denotes the origin of the CRPIXn values). Each chip’s name is printed in its center. If the overscan switch was set (default), the chip’s prescan regions are plotted in magenta lines and the chip’s overscan regions are plotted in blue lines.

NOTE: The reference pixel does not necessarily mark the read direction
of a given chip. Look at the astro.main.Chip module for explaination of the orientation with respect to read direction and astro.instrument.HeaderTranslator<instrument_id> for the specific orientations of each chip of your instrument.
TODO: - Possibly add support to ignore all focal-plane geometries
(translations and rotations) and plot chips as they are seen as individual data arrays (i.e., single-extension FITS image in a viewer). This would allow comparison of chips to each other and to itself in a viewer.
  • Also, plot chip layouts of more than one configuration on multi-config instruments to compare how the apparent focal plane changes.
save(filename)

Method to save the plot of the chip layout.

This method simply calls the create() method with PyLab’s interactive mode off and saves the resulting plot.

show()

Method to show the plot of the mosaic (chip layout) of any supported instrument.

This method simply calls the create(show=True) method with PyLab’s interactive mode on.

exception astro.instrument.ChipLayout.ChipLayoutError

Bases: Exception

astro.instrument.ChipLayout.greatest_common_string(strings=[], filtering='all')

Find the greatest common string in strings and retrun a tuple of this string and a copy of the list strings with the greatest common string removed from each element.

astro.instrument.ChipLayout.plot_chip(panel)

Plot an entire chip including prescan/overscan regions

astro.instrument.ChipLayout.plot_region(panel)

Plot a region like a chip or prescan/overscan region

astro.instrument.ConfigUpdater module

Abstract base class for ConfigUpdaters per instrument that update process parameters.

For each instrument a ConfigUpdater class may be defined.

Each updater defines the class variable “config_dict_list”; a list of dictionaries each of which looks for example like this:

{‘class’ : ‘AstrometricParameters’,
‘property’ : ‘sexconf’, ‘filter’ : ‘OCAM_u_g_r_i_SDSS’, ‘chip’ : ‘ESO_CCD_#96’ ‘DETECT_THRESH’ : 6.0}

specifying configuration specific for instrument, chip and filter.

Usage: >>> config_updater = create_config_updater(instrument=’WFI’) >>> config_updater.update(biasframe_obj, chip=’ccd50’)

class astro.instrument.ConfigUpdater.ConfigUpdater

Bases: object

config_dict_list = [{'class': 'DarkCurrent', 'property': 'process_params', 'OVERSCAN_CORRECTION': 6}, {'class': 'GainLinearity', 'property': 'process_params', 'OVERSCAN_CORRECTION': 6}, {'class': 'BiasFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 6}, {'class': 'DomeFlatFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 6}, {'class': 'TwilightFlatFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 6}, {'class': 'ReducedScienceFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 6}]
get_list_of_instrument_specific_parameters(process_target)

Returns a list of all properties that are updated with instrument specific values.

NOTE: if there are parameters with the same name that came from different properties (e.g. process_params.SIGMA_CLIP and sexconf.SIGMA_CLIP (fictional)), they will not be repeated.

get_nested_dict_of_parameters(process_target)

get a nested dict of parameters (dicts) for the process_target

special_keys = ['class', 'property', 'project', 'filter', 'chip']
update(process_target, filter='', chip='', user_config={}, force_singleton=False)

Public method. Updates the given ProcessTarget object with values appropriate for the specified filter and chip. The instrument is implicit because it already caused instantiation of this particular config updater class. force_singleton : if True database is searched for an existing object

with the same attributes
verbose = True
astro.instrument.ConfigUpdater.filter_dicts(config_dicts, key, value, clean=False)

Return the config_dicts that have key=value. If clean is True, also remove all dictionaries that have attribute “key”, but a value different from “value”. That is, other chips, other filters, etc.

astro.instrument.ConfigUpdater.get_best_config_dict_from_list(config_dict_list, classname, propname, filter, chip)

Get the best configuration dictionary from config_dict_list for the given class, the property (e.g. process_params, sexconf, etc.) as well as the filter and chip.

astro.instrument.ConfigUpdaterACAM module

See the ConfigUpdater base class for documentation

class astro.instrument.ConfigUpdaterACAM.ConfigUpdaterACAM

Bases: astro.instrument.ConfigUpdater.ConfigUpdater

config_dict_list = [{'class': 'DarkCurrent', 'property': 'process_params', 'OVERSCAN_CORRECTION': 0}, {'class': 'GainLinearity', 'property': 'process_params', 'OVERSCAN_CORRECTION': 0}, {'class': 'BiasFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 0}, {'class': 'DomeFlatFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 0}, {'class': 'TwilightFlatFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 0}, {'class': 'ReducedScienceFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 0}]

astro.instrument.ConfigUpdaterDECAM module

See the ConfigUpdater base class for documentation

class astro.instrument.ConfigUpdaterDECAM.ConfigUpdaterDECAM

Bases: astro.instrument.ConfigUpdater.ConfigUpdater

config_dict_list = [{'MAX_FLAT_MEAN': 62000, 'class': 'RawTwilightFlatFrame', 'property': 'process_params', 'MIN_FLAT_MEAN': 2500}, {'MAX_FLAT_MEAN': 62000, 'class': 'RawDomeFlatFrame', 'property': 'process_params', 'MIN_FLAT_MEAN': 2500}, {'MAX_BIAS_FLATNESS': 1000.0, 'class': 'RawBiasFrame', 'property': 'process_params', 'MAX_BIAS_STDEV': 1000.0}, {'class': 'DarkCurrent', 'property': 'process_params', 'OVERSCAN_CORRECTION': 11}, {'class': 'GainLinearity', 'property': 'process_params', 'OVERSCAN_CORRECTION': 11}, {'class': 'BiasFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 11}, {'class': 'DomeFlatFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 11}, {'class': 'TwilightFlatFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 11}, {'class': 'ReducedScienceFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 11}, {'MAXIMUM_READNOISE': 10.0, 'class': 'ReadNoise', 'property': 'process_params', 'MAXIMUM_BIAS_DIFFERENCE': 50.0}, {'MAXIMUM_HOTPIXELCOUNT': 150000, 'class': 'HotPixelMap', 'property': 'process_params'}, {'MAXIMUM_COLDPIXELCOUNT': 350000, 'class': 'ColdPixelMap', 'property': 'process_params'}]

astro.instrument.ConfigUpdaterFactory module

A Factory for ConfigUpdaters

exception astro.instrument.ConfigUpdaterFactory.ConfigUpdaterFactoryError(message)

Bases: common.log.Error.Error

astro.instrument.ConfigUpdaterFactory.create_config_updater(instrument_id, verbose=True)

Returns an updater of configuration parameters for an instrument.

astro.instrument.ConfigUpdaterMEGACAM module

See the ConfigUpdater base class for documentation

class astro.instrument.ConfigUpdaterMEGACAM.ConfigUpdaterMEGACAM

Bases: astro.instrument.ConfigUpdater.ConfigUpdater

config_dict_list = [{'class': 'RawTwilightFlatFrame', 'property': 'process_params', 'MIN_FLAT_MEAN': 700}, {'class': 'RawBiasFrame', 'property': 'process_params', 'MAX_BIAS_STDEV': 1000.0}, {'class': 'DarkCurrent', 'property': 'process_params', 'OVERSCAN_CORRECTION': 11}, {'class': 'GainLinearity', 'property': 'process_params', 'OVERSCAN_CORRECTION': 11}, {'class': 'BiasFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 11}, {'class': 'DomeFlatFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 11}, {'class': 'TwilightFlatFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 11}, {'class': 'ReducedScienceFrame', 'property': 'process_params', 'OVERSCAN_CORRECTION': 11}]

astro.instrument.ConfigUpdaterOMEGACAM module

See the ConfigUpdater base class for documentation

class astro.instrument.ConfigUpdaterOMEGACAM.ConfigUpdaterOMEGACAM

Bases: astro.instrument.ConfigUpdater.ConfigUpdater

config_dict_list = [{'MAX_FLAT_MEAN': 62000, 'class': 'RawTwilightFlatFrame', 'property': 'process_params', 'MIN_FLAT_MEAN': 2500}, {'filter': 'OCAM_u_g_r_i_SDSS', 'MAX_FLAT_MEAN': 62000, 'class': 'RawTwilightFlatFrame', 'property': 'process_params', 'MIN_FLAT_MEAN': 1200}, {'MAX_FLAT_MEAN': 62000, 'class': 'RawDomeFlatFrame', 'property': 'process_params', 'MIN_FLAT_MEAN': 2500}, {'filter': 'OCAM_u_SDSS', 'MAX_FLAT_MEAN': 62000, 'class': 'RawDomeFlatFrame', 'MIN_FLUX': 50.0, 'MAX_FLUX': 275.0, 'property': 'process_params', 'MIN_FLAT_MEAN': 2500}, {'filter': 'OCAM_g_SDSS', 'MAX_FLAT_MEAN': 62000, 'class': 'RawDomeFlatFrame', 'MIN_FLUX': 10000.0, 'MAX_FLUX': 17500.0, 'property': 'process_params', 'MIN_FLAT_MEAN': 2500}, {'filter': 'OCAM_r_SDSS', 'MAX_FLAT_MEAN': 62000, 'class': 'RawDomeFlatFrame', 'MIN_FLUX': 40000.0, 'MAX_FLUX': 77000.0, 'property': 'process_params', 'MIN_FLAT_MEAN': 2500}, {'filter': 'OCAM_i_SDSS', 'MAX_FLAT_MEAN': 62000, 'class': 'RawDomeFlatFrame', 'MIN_FLUX': 40000.0, 'MAX_FLUX': 69000.0, 'property': 'process_params', 'MIN_FLAT_MEAN': 2500}, {'filter': 'OCAM_z_SDSS', 'MAX_FLAT_MEAN': 62000, 'class': 'RawDomeFlatFrame', 'MIN_FLUX': 9000.0, 'MAX_FLUX': 18000.0, 'property': 'process_params', 'MIN_FLAT_MEAN': 2500}, {'class': 'ReadNoise', 'property': 'process_params', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'OVERSCAN_CORRECTION': 10}, {'MAXIMUM_READNOISE': 2.2, 'class': 'ReadNoise', 'chip': 'ESO_CCD_#65', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'OVERSCAN_CORRECTION': 10, 'property': 'process_params'}, {'MAXIMUM_READNOISE': 2.2, 'class': 'ReadNoise', 'chip': 'ESO_CCD_#66', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'OVERSCAN_CORRECTION': 10, 'property': 'process_params'}, {'MAXIMUM_READNOISE': 2.4, 'class': 'ReadNoise', 'chip': 'ESO_CCD_#67', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'OVERSCAN_CORRECTION': 10, 'property': 'process_params'}, {'MAXIMUM_READNOISE': 2.4, 'class': 'ReadNoise', 'chip': 'ESO_CCD_#68', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'OVERSCAN_CORRECTION': 10, 'property': 'process_params'}, {'MAXIMUM_READNOISE': 2.2, 'class': 'ReadNoise', 'chip': 'ESO_CCD_#69', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'OVERSCAN_CORRECTION': 10, 'property': 'process_params'}, {'MAXIMUM_READNOISE': 2.3, 'class': 'ReadNoise', 'chip': 'ESO_CCD_#70', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'OVERSCAN_CORRECTION': 10, 'property': 'process_params'}, {'MAXIMUM_READNOISE': 2.2, 'class': 'ReadNoise', 'chip': 'ESO_CCD_#71', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'OVERSCAN_CORRECTION': 10, 'property': 'process_params'}, {'MAXIMUM_READNOISE': 2.2, 'class': 'ReadNoise', 'chip': 'ESO_CCD_#72', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'OVERSCAN_CORRECTION': 10, 'property': 'process_params'}, {'MAXIMUM_READNOISE': 2.2, 'class': 'ReadNoise', 'chip': 'ESO_CCD_#73', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'OVERSCAN_CORRECTION': 10, 'property': 'process_params'}, {'MAXIMUM_READNOISE': 2.2, 'class': 'ReadNoise', 'chip': 'ESO_CCD_#74', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'OVERSCAN_CORRECTION': 10, 'property': 'process_params'}, {'MAXIMUM_READNOISE': 2.3, 'class': 'ReadNoise', 'chip': 'ESO_CCD_#75', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'OVERSCAN_CORRECTION': 10, 'property': 'process_params'}, {'MAXIMUM_READNOISE': 2.2, 'class': 'ReadNoise', 'chip': 'ESO_CCD_#76', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'OVERSCAN_CORRECTION': 10, 'property': 'process_params'}, {'MAXIMUM_READNOISE': 2.2, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#77'}, {'MAXIMUM_READNOISE': 2.2, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#78'}, {'MAXIMUM_READNOISE': 2.3, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#79'}, {'MAXIMUM_READNOISE': 2.2, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#80'}, {'MAXIMUM_READNOISE': 2.3, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#81'}, {'MAXIMUM_READNOISE': 2.3, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#82'}, {'MAXIMUM_READNOISE': 2.4, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#83'}, {'MAXIMUM_READNOISE': 2.3, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#84'}, {'MAXIMUM_READNOISE': 2.3, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#85'}, {'MAXIMUM_READNOISE': 2.2, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#86'}, {'MAXIMUM_READNOISE': 2.3, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#87'}, {'MAXIMUM_READNOISE': 2.3, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#88'}, {'MAXIMUM_READNOISE': 2.4, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#89'}, {'MAXIMUM_READNOISE': 2.5, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#90'}, {'MAXIMUM_READNOISE': 2.5, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#91'}, {'MAXIMUM_READNOISE': 2.4, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#92'}, {'MAXIMUM_READNOISE': 2.3, 'class': 'ReadNoise', 'property': 'process_params', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'chip': 'ESO_CCD_#93'}, {'MAXIMUM_READNOISE': 2.2, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#94'}, {'MAXIMUM_READNOISE': 4.0, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#95'}, {'MAXIMUM_READNOISE': 2.4, 'class': 'ReadNoise', 'MAXIMUM_BIAS_DIFFERENCE': 7.0, 'property': 'process_params', 'OVERSCAN_CORRECTION': 10, 'chip': 'ESO_CCD_#96'}, {'class': 'DarkCurrent', 'property': 'process_params', 'MAXIMUM_DARK_CURRENT': 1.2}, {'MAXIMUM_GAIN': 2.48, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.4, 'property': 'process_params', 'chip': 'ESO_CCD_#65'}, {'MAXIMUM_GAIN': 2.68, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.61, 'property': 'process_params', 'chip': 'ESO_CCD_#66'}, {'MAXIMUM_GAIN': 2.57, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.49, 'property': 'process_params', 'chip': 'ESO_CCD_#67'}, {'MAXIMUM_GAIN': 2.58, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.48, 'property': 'process_params', 'chip': 'ESO_CCD_#68'}, {'MAXIMUM_GAIN': 2.56, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.49, 'property': 'process_params', 'chip': 'ESO_CCD_#69'}, {'MAXIMUM_GAIN': 2.32, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.24, 'property': 'process_params', 'chip': 'ESO_CCD_#70'}, {'MAXIMUM_GAIN': 2.57, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.5, 'property': 'process_params', 'chip': 'ESO_CCD_#71'}, {'MAXIMUM_GAIN': 2.45, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.37, 'property': 'process_params', 'chip': 'ESO_CCD_#72'}, {'MAXIMUM_GAIN': 2.48, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.41, 'property': 'process_params', 'chip': 'ESO_CCD_#73'}, {'MAXIMUM_GAIN': 2.55, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.45, 'property': 'process_params', 'chip': 'ESO_CCD_#74'}, {'MAXIMUM_GAIN': 2.59, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.49, 'property': 'process_params', 'chip': 'ESO_CCD_#75'}, {'MAXIMUM_GAIN': 2.55, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.48, 'property': 'process_params', 'chip': 'ESO_CCD_#76'}, {'MAXIMUM_GAIN': 2.73, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.63, 'property': 'process_params', 'chip': 'ESO_CCD_#77'}, {'MAXIMUM_GAIN': 2.77, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.67, 'property': 'process_params', 'chip': 'ESO_CCD_#78'}, {'MAXIMUM_GAIN': 2.73, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.63, 'property': 'process_params', 'chip': 'ESO_CCD_#79'}, {'MAXIMUM_GAIN': 2.61, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.53, 'property': 'process_params', 'chip': 'ESO_CCD_#80'}, {'MAXIMUM_GAIN': 2.66, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.59, 'property': 'process_params', 'chip': 'ESO_CCD_#81'}, {'MAXIMUM_GAIN': 2.59, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.52, 'property': 'process_params', 'chip': 'ESO_CCD_#82'}, {'MAXIMUM_GAIN': 2.65, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.56, 'property': 'process_params', 'chip': 'ESO_CCD_#83'}, {'MAXIMUM_GAIN': 2.57, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.47, 'property': 'process_params', 'chip': 'ESO_CCD_#84'}, {'MAXIMUM_GAIN': 2.5, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.41, 'property': 'process_params', 'chip': 'ESO_CCD_#85'}, {'MAXIMUM_GAIN': 2.42, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.32, 'property': 'process_params', 'chip': 'ESO_CCD_#86'}, {'MAXIMUM_GAIN': 2.47, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.36, 'property': 'process_params', 'chip': 'ESO_CCD_#87'}, {'MAXIMUM_GAIN': 2.51, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.4, 'property': 'process_params', 'chip': 'ESO_CCD_#88'}, {'MAXIMUM_GAIN': 2.51, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.42, 'property': 'process_params', 'chip': 'ESO_CCD_#89'}, {'MAXIMUM_GAIN': 2.61, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.52, 'property': 'process_params', 'chip': 'ESO_CCD_#90'}, {'MAXIMUM_GAIN': 2.68, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.58, 'property': 'process_params', 'chip': 'ESO_CCD_#91'}, {'MAXIMUM_GAIN': 2.8, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.38, 'property': 'process_params', 'chip': 'ESO_CCD_#92'}, {'MAXIMUM_GAIN': 2.59, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.49, 'property': 'process_params', 'chip': 'ESO_CCD_#93'}, {'MAXIMUM_GAIN': 2.73, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.63, 'property': 'process_params', 'chip': 'ESO_CCD_#94'}, {'MAXIMUM_GAIN': 2.76, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.66, 'property': 'process_params', 'chip': 'ESO_CCD_#95'}, {'MAXIMUM_GAIN': 2.39, 'class': 'GainLinearity', 'MINIMUM_GAIN': 2.32, 'property': 'process_params', 'chip': 'ESO_CCD_#96'}, {'MAXIMUM_HOTPIXELCOUNT': 40, 'class': 'HotPixelMap', 'property': 'process_params'}, {'MAXIMUM_HOTPIXELCOUNT': 180, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#66'}, {'MAXIMUM_HOTPIXELCOUNT': 130, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#68'}, {'MAXIMUM_HOTPIXELCOUNT': 60, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#79'}, {'MAXIMUM_HOTPIXELCOUNT': 80, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#80'}, {'MAXIMUM_HOTPIXELCOUNT': 50, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#81'}, {'MAXIMUM_HOTPIXELCOUNT': 4500, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#82'}, {'MAXIMUM_HOTPIXELCOUNT': 50, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#83'}, {'MAXIMUM_HOTPIXELCOUNT': 900, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#84'}, {'MAXIMUM_HOTPIXELCOUNT': 80, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#89'}, {'MAXIMUM_HOTPIXELCOUNT': 50, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#90'}, {'MAXIMUM_HOTPIXELCOUNT': 50, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#91'}, {'MAXIMUM_HOTPIXELCOUNT': 60, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#92'}, {'MAXIMUM_HOTPIXELCOUNT': 75, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#93'}, {'MAXIMUM_HOTPIXELCOUNT': 100, 'class': 'HotPixelMap', 'property': 'process_params', 'chip': 'ESO_CCD_#95'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 3000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#65'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 4500, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#66'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 3000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#67'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 3200, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#68'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 2000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#69'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 4900, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#70'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 6900, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#71'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 3500, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#72'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 3100, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#73'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 2800, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#74'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 2800, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#75'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 2800, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#76'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 1500, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#77'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 2600, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#78'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 2700, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#79'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 3200, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#80'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 7900, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#81'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 2000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#82'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 9000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#83'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 4800, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#84'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 5000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#85'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 5000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#86'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 7000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#87'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 1500, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#88'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 3000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#89'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 13000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#90'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 5000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#91'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 3000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#92'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 2000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#93'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 7000, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#94'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 4200, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#95'}, {'class': 'ColdPixelMap', 'THRESHOLD_LOW': 0.85, 'MAXIMUM_COLDPIXELCOUNT': 3900, 'THRESHOLD_HIGH': 1.15, 'property': 'process_params', 'chip': 'ESO_CCD_#96'}, {'BACKGROUND_SUBTRACTION_TYPE': 0, 'class': 'RegriddedFrame', 'property': 'process_params'}, {'class': 'RegriddedFrame', 'SUBTRACT_BACK': 'Y', 'property': 'swarpconf', 'BACK_SIZE': 256}, {'BACKGROUND_SUBTRACTION_TYPE': 4, 'class': 'RegriddedFrame', 'project': 'KIDS', 'property': 'process_params'}, {'SUBTRACT_BACK': 'Y', 'class': 'RegriddedFrame', 'project': 'KIDS', 'property': 'swarpconf', 'BACK_SIZE': 256}, {'BACKGROUND_SUBTRACTION_TYPE': 0, 'class': 'RegriddedFrame', 'project': 'OMEGAWHITE', 'property': 'process_params'}, {'SUBTRACT_BACK': 'N', 'class': 'RegriddedFrame', 'project': 'OMEGAWHITE', 'property': 'swarpconf'}]

astro.instrument.ConfigUpdaterVIRCAM module

See the ConfigUpdater base class for documentation

detector saturation(ADU) non-linearity (%) ———— ———————— ————————–

1 33000 2.2 2 32000 3.3 3 33000 3.8 4 32000 3.5 5 24000 2.0 6 36000 3.0 7 35000 2.0 8 33000 3.4 9 35000 3.3

10 35000 4.4 11 37000 4.6 12 34000 2.6 13 33000 10.0 14 35000 2.7 15 34000 1.7 16 34000 3.3

class astro.instrument.ConfigUpdaterVIRCAM.ConfigUpdaterVIRCAM

Bases: astro.instrument.ConfigUpdater.ConfigUpdater

config_dict_list = [{'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 24000, 'property': 'process_params', 'chip': 'ESO-Virgo39'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 33000, 'property': 'process_params', 'chip': 'ESO-Virgo23'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 35000, 'property': 'process_params', 'chip': 'ESO-Virgo43'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 33000, 'property': 'process_params', 'chip': 'ESO-Virgo35'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 32000, 'property': 'process_params', 'chip': 'ESO-Virgo44'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 36000, 'property': 'process_params', 'chip': 'ESO-Virgo36'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 34000, 'property': 'process_params', 'chip': 'ESO-Virgo38'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 34000, 'property': 'process_params', 'chip': 'ESO-Virgo42'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 37000, 'property': 'process_params', 'chip': 'ESO-Virgo33'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 35000, 'property': 'process_params', 'chip': 'ESO-Virgo45'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 34000, 'property': 'process_params', 'chip': 'ESO-Virgo46'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 33000, 'property': 'process_params', 'chip': 'ESO-Virgo25'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 33000, 'property': 'process_params', 'chip': 'ESO-Virgo30'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 35000, 'property': 'process_params', 'chip': 'ESO-Virgo41'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 35000, 'property': 'process_params', 'chip': 'ESO-Virgo47'}, {'THRESHOLD_LOW': 0, 'class': 'SaturatedPixelMap', 'THRESHOLD_HIGH': 32000, 'property': 'process_params', 'chip': 'ESO-Virgo22'}]
astro.instrument.ConfigUpdaterVIRCAM.make_saturation_config(chip_name, threshold_high)

astro.instrument.ConfigUpdaterWFC module

See the ConfigUpdater base class for documentation

class astro.instrument.ConfigUpdaterWFC.ConfigUpdaterWFC

Bases: astro.instrument.ConfigUpdater.ConfigUpdater

config_dict_list = [{'class': 'ReadNoise', 'property': 'process_params', 'MAXIMUM_BIAS_DIFFERENCE': 2.0}, {'MAXIMUM_READNOISE': 7.0, 'class': 'ReadNoise', 'property': 'process_params', 'MAXIMUM_BIAS_DIFFERENCE': 2.0, 'chip': 'A5506-4'}, {'class': 'RawBiasFrame', 'property': 'process_params', 'MAX_BIAS_STDEV': 130, 'chip': 'A5530-3'}]

astro.instrument.ConfigUpdaterWFI module

See the ConfigUpdater base class for documentation

class astro.instrument.ConfigUpdaterWFI.ConfigUpdaterWFI

Bases: astro.instrument.ConfigUpdater.ConfigUpdater

config_dict_list = []

astro.instrument.DetectorBlock module

class astro.instrument.DetectorBlock.DetectorBlock

Bases: object

This abstract base class represents the geometry of a detector block.

chip_corners = {}
chip_orientation = {}
get_chipcorner(chip_name)
get_chipposition(chip_name, x, y)
get_gridposition(chip_name, Xpos, Ypos)
class astro.instrument.DetectorBlock.DetectorBlockDECAM

Bases: astro.instrument.DetectorBlock.DetectorBlock

Based on ChipLayout calculations

class astro.instrument.DetectorBlock.DetectorBlockMDM8K

Bases: astro.instrument.DetectorBlock.DetectorBlock

chip_corners = {'0': (-2030.0, -1991.0), '1': (-2037.0, -942.0), '2': (-2037.0, 110.0), '3': (-2034.0, 1153.0), '4': (2070.0, 1150.0), '5': (2070.0, 99.0), '6': (2066.0, -948.0), '7': (2063.0, -1992.0)}
chip_orientation = {'0': (0.0, 1.0, 1.0, 0.0), '1': (0.0, 1.0, 1.0, 0.0), '2': (0.0, 1.0, 1.0, 0.0), '3': (0.0, 1.0, 1.0, 0.0), '4': (0.0, -1.0, 1.0, 0.0), '5': (0.0, -1.0, 1.0, 0.0), '6': (0.0, -1.0, 1.0, 0.0), '7': (0.0, -1.0, 1.0, 0.0)}
class astro.instrument.DetectorBlock.DetectorBlockMEGACAM

Bases: astro.instrument.DetectorBlock.DetectorBlock

Based on ChipLayout calculations

chip_corners = {'ccd00': (-7577.414053, 9801.815674), 'ccd01': (-5392.982156, 9767.556002), 'ccd02': (-3245.223052, 9753.880183), 'ccd03': (-1110.447583, 9744.731465), 'ccd04': (1023.591048, 9735.781297), 'ccd05': (3150.390752, 9739.736134), 'ccd06': (5294.028314, 9751.147713), 'ccd07': (7451.174334, 9778.941062), 'ccd08': (9630.913067, 9808.217237), 'ccd09': (-7523.390992, 4682.667717), 'ccd10': (-5358.881637, 4673.482787), 'ccd11': (-3222.7694, 4664.020807), 'ccd12': (-1096.362415, 4661.705226), 'ccd13': (1022.471774, 4661.395274), 'ccd14': (3143.455206, 4658.823191), 'ccd15': (5271.734715, 4667.249679), 'ccd16': (7405.7404, 4670.825982), 'ccd17': (9575.438788, 4673.101973), 'ccd18': (-9570.510902, -4635.822988), 'ccd19': (-7410.247898, -4620.813118), 'ccd20': (-5269.602681, -4621.557916), 'ccd21': (-3142.311048, -4615.294057), 'ccd22': (-1024.467455, -4614.89576), 'ccd23': (1102.229068, -4612.66318), 'ccd24': (3221.991773, -4619.135475), 'ccd25': (5362.279605, -4620.723281), 'ccd26': (7521.7429, -4634.550659), 'ccd27': (-9622.505185, -9765.591454), 'ccd28': (-7444.90079, -9722.069592), 'ccd29': (-5288.660746, -9704.205724), 'ccd30': (-3151.141627, -9702.483841), 'ccd31': (-1023.181624, -9696.107176), 'ccd32': (1108.335574, -9701.2289), 'ccd33': (3242.944913, -9704.222451), 'ccd34': (5389.372617, -9718.981184), 'ccd35': (7565.182205, -9759.998546)}
chip_orientation = {'ccd00': (-1.0, 0.0, 0.0, -1.0), 'ccd01': (-1.0, 0.0, 0.0, -1.0), 'ccd02': (-1.0, 0.0, 0.0, -1.0), 'ccd03': (-1.0, 0.0, 0.0, -1.0), 'ccd04': (-1.0, 0.0, 0.0, -1.0), 'ccd05': (-1.0, 0.0, 0.0, -1.0), 'ccd06': (-1.0, 0.0, 0.0, -1.0), 'ccd07': (-1.0, 0.0, 0.0, -1.0), 'ccd08': (-1.0, 0.0, 0.0, -1.0), 'ccd09': (-1.0, 0.0, 0.0, -1.0), 'ccd10': (-1.0, 0.0, 0.0, -1.0), 'ccd11': (-1.0, 0.0, 0.0, -1.0), 'ccd12': (-1.0, 0.0, 0.0, -1.0), 'ccd13': (-1.0, 0.0, 0.0, -1.0), 'ccd14': (-1.0, 0.0, 0.0, -1.0), 'ccd15': (-1.0, 0.0, 0.0, -1.0), 'ccd16': (-1.0, 0.0, 0.0, -1.0), 'ccd17': (-1.0, 0.0, 0.0, -1.0), 'ccd18': (1.0, 0.0, 0.0, 1.0), 'ccd19': (1.0, 0.0, 0.0, 1.0), 'ccd20': (1.0, 0.0, 0.0, 1.0), 'ccd21': (1.0, 0.0, 0.0, 1.0), 'ccd22': (1.0, 0.0, 0.0, 1.0), 'ccd23': (1.0, 0.0, 0.0, 1.0), 'ccd24': (1.0, 0.0, 0.0, 1.0), 'ccd25': (1.0, 0.0, 0.0, 1.0), 'ccd26': (1.0, 0.0, 0.0, 1.0), 'ccd27': (1.0, 0.0, 0.0, 1.0), 'ccd28': (1.0, 0.0, 0.0, 1.0), 'ccd29': (1.0, 0.0, 0.0, 1.0), 'ccd30': (1.0, 0.0, 0.0, 1.0), 'ccd31': (1.0, 0.0, 0.0, 1.0), 'ccd32': (1.0, 0.0, 0.0, 1.0), 'ccd33': (1.0, 0.0, 0.0, 1.0), 'ccd34': (1.0, 0.0, 0.0, 1.0), 'ccd35': (1.0, 0.0, 0.0, 1.0)}
class astro.instrument.DetectorBlock.DetectorBlockOMEGACAM

Bases: astro.instrument.DetectorBlock.DetectorBlock

Based on ChipLayout calculations

chip_corners = {'ESO_CCD_#65': (8541.0, -8604.33), 'ESO_CCD_#66': (6393.0, -8604.33), 'ESO_CCD_#67': (4245.0, -8604.33), 'ESO_CCD_#68': (2097.0, -8604.33), 'ESO_CCD_#69': (-51.0, -8604.33), 'ESO_CCD_#70': (-2199.0, -8604.33), 'ESO_CCD_#71': (-4347.0, -8604.33), 'ESO_CCD_#72': (-6495.0, -8604.33), 'ESO_CCD_#73': (8541.0, -4128.33), 'ESO_CCD_#74': (6393.0, -4128.33), 'ESO_CCD_#75': (4245.0, -4128.33), 'ESO_CCD_#76': (2097.0, -4128.33), 'ESO_CCD_#77': (-51.0, -4128.33), 'ESO_CCD_#78': (-2199.0, -4128.33), 'ESO_CCD_#79': (-4347.0, -4128.33), 'ESO_CCD_#80': (-6495.0, -4128.33), 'ESO_CCD_#81': (8541.0, 30.33), 'ESO_CCD_#82': (6393.0, 30.33), 'ESO_CCD_#83': (4245.0, 30.33), 'ESO_CCD_#84': (2097.0, 30.33), 'ESO_CCD_#85': (-51.0, 30.33), 'ESO_CCD_#86': (-2199.0, 30.33), 'ESO_CCD_#87': (-4347.0, 30.33), 'ESO_CCD_#88': (-6495.0, 30.33), 'ESO_CCD_#89': (8541.0, 4506.33), 'ESO_CCD_#90': (6393.0, 4506.33), 'ESO_CCD_#91': (4245.0, 4506.33), 'ESO_CCD_#92': (2097.0, 4506.33), 'ESO_CCD_#93': (-51.0, 4506.33), 'ESO_CCD_#94': (-2199.0, 4506.33), 'ESO_CCD_#95': (-4347.0, 4506.33), 'ESO_CCD_#96': (-6495.0, 4506.33)}
chip_orientation = {'ESO_CCD_#65': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#66': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#67': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#68': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#69': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#70': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#71': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#72': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#73': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#74': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#75': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#76': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#77': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#78': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#79': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#80': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#81': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#82': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#83': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#84': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#85': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#86': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#87': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#88': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#89': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#90': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#91': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#92': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#93': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#94': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#95': (-1.0, 0.0, 0.0, 1.0), 'ESO_CCD_#96': (-1.0, 0.0, 0.0, 1.0)}
class astro.instrument.DetectorBlock.DetectorBlockSUP

Bases: astro.instrument.DetectorBlock.DetectorBlock

Based on ChipLayout calculations

chip_corners = {'si001s': (995.0, -4076.0), 'si002s': (989.0, 46.0), 'si005s': (-1128.0, -4075.0), 'si006s': (-1069.0, 39.0), 'w4c5': (3187.0, -4068.0), 'w67c1': (-5384.0, 34.0), 'w6c1': (-3255.0, 42.0), 'w7c3': (3117.0, 46.0), 'w93c2': (-5321.0, -4073.0), 'w9c2': (-3193.0, -4076.0)}
chip_orientation = {'si001s': (1.0, 0.0, 0.0, 1.0), 'si002s': (1.0, 0.0, 0.0, 1.0), 'si005s': (1.0, 0.0, 0.0, 1.0), 'si006s': (1.0, 0.0, 0.0, 1.0), 'w4c5': (1.0, 0.0, 0.0, 1.0), 'w67c1': (1.0, 0.0, 0.0, 1.0), 'w6c1': (1.0, 0.0, 0.0, 1.0), 'w7c3': (1.0, 0.0, 0.0, 1.0), 'w93c2': (1.0, 0.0, 0.0, 1.0), 'w9c2': (1.0, 0.0, 0.0, 1.0)}
class astro.instrument.DetectorBlock.DetectorBlockWFC

Bases: astro.instrument.DetectorBlock.DetectorBlock

chip_corners = {'A5382-1-7': (-3029.0, 1778.0), 'A5383-17-7': (3177.58, 1731.94), 'A5506-4': (-3041.61, -332.88), 'A5530-3': (-2996.45, 3880.4)}
chip_orientation = {'A5382-1-7': (0.0, 1.0, -1.0, 0.0), 'A5383-17-7': (-1.0, 0.0, 0.0, -1.0), 'A5506-4': (0.0, 1.0, -1.0, 0.0), 'A5530-3': (0.0, 1.0, -1.0, 0.0)}
class astro.instrument.DetectorBlock.DetectorBlockWFI

Bases: astro.instrument.DetectorBlock.DetectorBlock

chip_corners = {'ccd50': (-4899.72, 163.72), 'ccd51': (-2782.71, 178.44), 'ccd52': (-632.17, 176.09), 'ccd53': (1509.34, 175.11), 'ccd54': (1504.85, -3975.45), 'ccd55': (-634.73, -3982.57), 'ccd56': (-2775.77, -3983.53), 'ccd57': (-4934.08, -3960.17)}
chip_orientation = {'ccd50': (1.0, 0.0, 0.0, 1.0), 'ccd51': (1.0, 0.0, 0.0, 1.0), 'ccd52': (1.0, 0.0, 0.0, 1.0), 'ccd53': (1.0, 0.0, 0.0, 1.0), 'ccd54': (1.0, 0.0, 0.0, 1.0), 'ccd55': (1.0, 0.0, 0.0, 1.0), 'ccd56': (1.0, 0.0, 0.0, 1.0), 'ccd57': (1.0, 0.0, 0.0, 1.0)}
astro.instrument.DetectorBlock.create_detectorblock(instrument_id)

This function produces and returns the proper DetectorBlock based on the instrument identifier it receives from the caller.

astro.instrument.HeaderTranslator module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments.

The HeaderTranslator classes form a Strategy with one sub-class for every instrument. Besides instrument-specific header keywords, information regarding the various chips and filters that come with the instrument is also stored in the various sub-classes. In this way, a HeaderTranslator also serves as a small repository for information about a specific instrument.

The HeaderTranslator does two things: translating keywords from headers into keywords known to Astro-WISE, and returning valid Instrument/ Filter/Chip/Lamp/Astrom/Template/ObservingBlock objects based on the arguments of these header keywords.

The HeaderTranslator distinguishes between ten different types of header keywords, each with its own “translator” method. The abstract base-class of the HeaderTranslator strategy defines the following translator methods:

  1. “translate_instrument_keys” : this method takes care of the
    header keywords that relate to the instrument used. It returns an Instrument object.
  2. “translate_filter_keys” : this method takes care of the
    header keywords that relate to the filter used. It returns a Filter object.
  3. “translate_chip_keys” : this method takes care of the
    header keywords that relate to the chip. It returns a Chip object.
  4. “translate_astrometric_keys” : this method returns an Astrom
    object. To do this, it uses the same header keywords as translator method 3.
  5. “translate_observingblock_keys” : this method takes care of the
    header keywords that relate to the OB. It returns an ObservingBlock object.
  6. “translate_template_keys” : this method takes care of the
    header keywords that relate to the template. It returns a Template object.
  7. “translate_lamp_keys” : this method takes care of the
    header keywords that relate to the domelamp. It returns a Lamp object.
  8. “translate_photometric_keys” : this method translates the header
    keywords that relate to the photometry to Astro-WISE compliant keys.
  9. “translate_date_keys” : this method translates the header
    keywords that relate to dates to Astro-WISE compliant keys.
  1. “translate_misc_keys” : this method translates any header
    keywords not translated by all preceeding methods (a “catch-all” if you will).

The first seven of these methods are concrete, the last three are abstract.

The abstract base-class also defines four sets of ABSTRACT data-containers:

  1. three dictionaries containing the header keywords that refer to the filter, instrument and chip.
  2. three dictionaries and one list containing information about filters and their names.
  3. five dictionaries containing information about chips and their names.
  4. two lists containing extra header keywords for general functionality

The information stored in these data-containers is used by the first four of the “translator” methods as defined in the abstract base-class; the dictionaries with the header keywords are used during the actual translation, the other data-containers are used in constructing the Instrument/Filter/Chip/Lamp/Astrom/ObservingBlock/Template object to be returned. The actual content of the containers for a specific instrument is determined by the separate concrete sub-strategies.

Instances of concrete sub-classes of the HeaderTranslator are used during the construction of BaseFrame objects, where some if not all of the “translator” methods are called.


class astro.instrument.HeaderTranslator.HeaderTranslator(header=None, chip_config=None)

Bases: object

This is the abstract base class for the HeaderTranslator strategy.

astrom_corr = 0
aw_header_keys = ['DATE', 'DATE-OBS', 'EXPTIME', 'AIRMEND', 'AIRMSTRT', 'LST', 'MJD-OBS', 'OBJECT', 'OBSERVER', 'UTC', 'INSTRUME', 'TELESCOP', 'CHIP_ID', 'FILT_ID']
cd_map = {'aChip': [0.0, 0.0, 0.0, 0.0]}
check_extensions(rawfitsdata)

Check that the extensions in the RawFitsData are consistent with the instrument and return the proper list of extensions

check_variations_of_chip_id(chip_id)

For some of the instruments, the same chip can be known under different chip identifiers. This method makes sure that the aliases are converted to the identifier under which the chip is known in the Astro-WISE system. This conversion is done by using the information stored in the chip_var_dict dictionary.

check_variations_of_filter_id(filter_id)

For some of the instruments, the same filter can be known under different filter identifiers. This method makes sure that the aliases are converted to the identifier under which the filter is known in the Astro-WISE system. This conversion is done by using the information stored in the filter_var_dict dictionary.

chip_id_keys = ['CHIP_ID']

rfd_header_keys must contain anything that will be retained during RawFitsData conversion. If any needed key is missing from this list, an error will likely result.

The values in this list will be removed from the extension headers and added to the primary header to avoid duplication.

NOTE: This is only used when an instrument’s data must be converted to
RawFitsData prior to ingestion.
chip_list = []
chip_orientation = {'aChip': 1}
chip_overscan = {'aChip': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'aChip': 15}
chip_size = {'NAXIS1': 0, 'NAXIS2': 0}
chip_var_dict = {'aaChip': 'aChip'}
construct_chip(chip_id)

This method constructs a Chip object from the input chip identifier.

construct_filter(filter_id, *args)

This method constructs a Filter object from the input filter identifier.

construct_instrument()

This method constructs an instrument from the input header.

construct_lamp(name, identifier, position)
construct_observingblock(PI_COI_id, PI_COI_name, dictionary_id, group, id, name, program_id, start)
construct_template(frame, category, dictionary_id, exposures, filter, id, index, name, obs_id, obs_start, sequencer, start, strategy, technique, type, version)
convert_data = 0
convert_dms_to_decimal(dmsstring)

Convert a string in DD:MM:SS.SS format to decimal degrees.

convert_hms_to_decimal(hmsstring)

Convert a string in HH:MM:SS.SS format to decimal degrees.

crpix_map = {'aChip': [0.0, 0.0]}
epoch_id_keys = ['EPOCH']
extract_extension(frame)

Extract an image. Implement for inherited HeaderTranslators.

Mandatory for reduced frame ingestion.

extract_header(frame)

Extract a header. Implement for inherited HeaderTranslators.

Mandatory for reduced frame ingestion.

filter_cwl = {'aFilter': 7840.0}
filter_dict = {'aFilter': 'CousinsI'}
filter_id_keys = ['FILT_ID']
filter_var_dict = {'aaFilter': 'aFilter'}
fringe_list = ['aFilter']
get_astrometricparameters(frame)

Make an AstrometricParameters instance. Implement for inherited HeaderTranslators.

Mandatory for reduced frame ingestion.

get_chip_config_from_files(filenames)

Return the chip configuration for this instrument. This method looks at the headers of the FITS files given in filenames, first for the special keyword identifying the chip_config. If this fails, it will loop through all filenames until it finds the header containing the information from which to construct the chip_config. If neither of these returns a valid chip_config value, 0 is returned (the default value).

filenames: list of filenames refering to single-extension FITS
images that are connected by common DATE-OBS
get_chip_config_from_header(frame)

Return a chip_config from a frame.header instance using the key found in self.chip_config_awkey

get_lamp_ids(frame)

The default behaviour of this method as defined here deals with the general situation in which no lamp is present. This method should be polymorphed for those instruments for which lamp information is available. Note: do not change these default values.

get_list_of_chips()
get_list_of_filters()
get_model()
get_other(frame)

Make instances of auxiliary objects the ingestor doesn’t know about. Implement for inherited HeaderTranslators.

Mandatory for reduced frame ingestion.

get_photometricparameters(frame)

Make an PhotometricParameters instance. Implement for inherited HeaderTranslators.

Mandatory for reduced frame ingestion.

get_weightframe(frame)

Make a WeightFrame instance. Implement for inherited HeaderTranslators.

Mandatory for reduced frame ingestion.

ingest_reduced = 0
instrument_elevation = 0.0
instrument_id_keys = ['INSTRUME']
instrument_latitude = 0.0
instrument_longitude = 0.0
instrument_name = 'Unknown'
instrument_telescope_name = 'Unknown'
instrument_timezone = 0
mask_tbars = 0
number_of_chips = 0
obs_PI_COI_id_id_keys = ['OBS_PIID']
obs_PI_COI_name_id_keys = ['PROPOSER']
obs_date_id_keys = ['OBS_DATE']
obs_dictionary_id_id_keys = ['OBS_DID']
obs_group_id_keys = ['OBS_GRP']
obs_id_id_keys = ['OBS_ID']
obs_name_id_keys = ['OBS_NAME']
obs_program_id_id_keys = ['OBS_PID']
obs_start_id_keys = ['OBS_STRT', 'DATE-OBS']
obs_type_id_keys = ['OBS_TYPE']
retrieve_value_from_header(frame, header_keys)

This method retrieves the value of a specific header item. This header item can be the chip/filter/instrument identifier, but also an astrometric quantity like the epoch. To do this, the method browses the list of known keywords under which this specific header item can be found, and checks these with the actual header.

rfd_header_keys = []

aw_header_keys contains AW-specific header keywords.

NOTE: This is only used when an original instrument’s mosaic is
reconstructed from split images. It is for informational purposes only.
store_and_commit_other(frame)

Store and commit any auxiliary objects the ingestor doesn’t know about. Implement for inherited HeaderTranslators.

Mandatory for reduced frame ingestion.

telescope_mounting = 'equatorial'
tpl_category_id_keys = ['TPL_CATG']
tpl_dictionary_id_id_keys = ['TPL_DID']
tpl_exposures_id_keys = ['TPL_NEXP']
tpl_id_id_keys = ['TPL_ID']
tpl_index_id_keys = ['TPL_INDX']
tpl_name_id_keys = ['TPL_NAME']
tpl_obs_id_id_keys = ['OBS_ID']
tpl_obs_start_id_keys = ['OBS_STRT']
tpl_sequencer_id_keys = ['TPL_SEQ']
tpl_start_id_keys = ['TPL_STRT', 'DATE-OBS']
tpl_strategy_id_keys = ['TPL_STGY']
tpl_technique_id_keys = ['TPL_TECH']
tpl_type_id_keys = ['TPL_TYPE']
tpl_version_id_keys = ['TPL_VERS']
translate_astrometric_keys(frame)

This method constructs an Astrom object for a frame using its chip identifier.

translate_chip_keys(frame)

Create a Chip object for a frame.

translate_date_keys(object)

Translate the header keywords that are relevant for dates.

translate_filter_keys(frame)

Create a Filter object for a frame.

translate_instrument_keys(frame)

Create an Instrument object for a frame.

translate_lamp_keys(frame)

Create a Lamp object for a frame.

translate_misc_keys(object)

Translate any header keywords that are not translated elsewhere.

translate_observingblock_keys(frame)

Create an ObservingBlock object for a frame.

translate_photometric_keys(object)

Translate the header keywords that are relevant for the photometry.

translate_template_keys(frame)

Create a Template object for a frame.

exception astro.instrument.HeaderTranslator.HeaderTranslatorError

Bases: Exception

astro.instrument.HeaderTranslator.retrieve_value_from_file(filename, keywords)

Retrieve a value from a multi-extension FITS header given a list of keywords. Once a keyword matches and existing header card, return a string version of its value. The primary header is checked first. If no match is found, check the first extension. If still no match, return None.

filename: name of FITS file to obtain value from keywords: list of keywords in order of preference

astro.instrument.HeaderTranslatorACAM module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the Auxiliary-port Camera (ACAM) at the Wiliam Herschel Telescope at La Palma.

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorACAM.HeaderTranslatorACAM(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the Auxiliary-port Camera (ACAM) at the Wiliam Herschel Telescope at La Palma.

cd_map = {'AUXCAM': [0.0, 7.055555555555556e-05, 7.027777777777778e-05, 0.0]}
chip_id_keys = ['CHIP_ID', 'CCDNAME']
chip_list = ['AUXCAM']
chip_orientation = {'AUXCAM': 1}
chip_overscan = {'AUXCAM': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'AUXCAM': 15.0}
chip_size = {'NAXIS1': 2148, 'NAXIS2': 2101}
crpix_map = {'AUXCAM': [1098.0, 970.0]}
epoch_id_keys = ['EPOCH', 'EQUINOX']
filter_cwl = {'CLEAR': 0.0, 'SlnI': 7565.0, 'SlnR': 6140.0, 'SlnZ': 8931.0}
filter_dict = {'CLEAR': 'CLEAR', 'SlnI': 'SloanI', 'SlnR': 'SloanR', 'SlnZ': 'SloanZ'}
filter_id_keys = ['FILT_ID', 'ACAMWH1', 'ACAMWH2']
fringe_list = []
instrument_elevation = 2344.0
instrument_latitude = 28.760497
instrument_longitude = -17.881606
instrument_name = 'ACAM'
instrument_telescope_name = 'WHT'
instrument_timezone = 0
number_of_chips = 1
telescope_mounting = 'alt-az'
translate_astrometric_keys(frame)
translate_date_keys(frame)
translate_filter_keys(frame)

Create a Filter object for a frame.

translate_photometric_keys(frame)

astro.instrument.HeaderTranslatorACS module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the ACS imager at the Hubble Space Telescope.

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorACS.HeaderTranslatorACS(chip_config=None, header=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the Advanced Camera for Surveys on the Hubble Space Telescope.

adjust_pixels(frame)
cd_map_dict = {0: {'ACS_WFC_DRZ': [-1.388888888888889e-05, 0.0, 0.0, 1.388888888888889e-05]}, 1: {'ACS_WFC_2': [-1.388888888888889e-05, 0.0, 0.0, 1.388888888888889e-05], 'ACS_WFC_1': [-1.388888888888889e-05, 0.0, 0.0, 1.388888888888889e-05]}}
check_extensions(rawfitsdata)

Check that the extensions in the RawFitsData are consistent with the instrument and return the proper list of extensions

chip_id_keys = ['CHIP_ID', 'CCDCHIP']

rfd_header_keys must contain anything that will be translated during RawFitsData instantiation. If any needed key is missing from this list, an error will likely result.

chip_list_dict = {0: ['ACS_WFC_DRZ'], 1: ['ACS_WFC_1', 'ACS_WFC_2']}
chip_orientation_dict = {0: {'ACS_WFC_DRZ': 1}, 1: {'ACS_WFC_2': 1, 'ACS_WFC_1': 1}}
chip_overscan_dict = {0: {'ACS_WFC_DRZ': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 1: {'ACS_WFC_2': [24, 24, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0], 'ACS_WFC_1': [24, 24, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0]}}
chip_pixelsize_dict = {0: {'ACS_WFC_DRZ': -1}, 1: {'ACS_WFC_2': 15, 'ACS_WFC_1': 15}}
chip_size_dict = {0: {'NAXIS1': 4225, 'NAXIS2': 4300}, 1: {'NAXIS1': 4144, 'NAXIS2': 2068}}
chip_var_dict = {'-999': 'ACS_WFC_DRZ', '1': 'ACS_WFC_1', '2': 'ACS_WFC_2'}
compress(frame)
crpix_map_dict = {0: {'ACS_WFC_DRZ': [2184.0, 2355.0]}, 1: {'ACS_WFC_2': [2144.0, 2298.0], 'ACS_WFC_1': [2144.0, 200.0]}}
extract_extension(frame)

Image extraction method for this instruemnt.

Mandatory for reduced frame ingestion.

extract_header(frame)

Header extraction method for this instruemnt.

Mandatory for reduced frame ingestion.

filter_cwl = {'F435W': 4297.0, 'F475W': 4760.0, 'F502N': 5022.0, 'F550M': 5580.0, 'F555W': 5346.0, 'F606W': 5907.0, 'F625W': 6318.0, 'F658N': 6584.0, 'F660N': 6602.0, 'F775W': 7764.0, 'F814W': 8333.0, 'F850LP': 9445.0, 'F892N': 8917.0, 'FR1016N': 10165.0, 'FR388N': 3880.0, 'FR423N': 4235.0, 'FR459M': 4590.0, 'FR462N': 4620.0, 'FR505N': 5045.0, 'FR551N': 5510.0, 'FR601N': 6010.0, 'FR647M': 6470.0, 'FR656N': 6560.0, 'FR716N': 7160.0, 'FR782N': 7815.0, 'FR853N': 8535.0, 'FR914M': 9140.0, 'FR931N': 9315.0, 'G800L': 3000.0, 'POL0UV': 3000.0, 'POL0V': 3000.0, 'POL120UV': 3000.0, 'POL120V': 3000.0, 'POL60UV': 3000.0, 'POL60V': 3000.0}
filter_dict = {'F435W': 'JohnsonB', 'F475W': 'SloanG', 'F502N': 'OIII', 'F550M': 'NarrowV', 'F555W': 'JohnsonV', 'F606W': 'BroadV', 'F625W': 'SloanR', 'F658N': 'Halpha', 'F660N': 'NII', 'F775W': 'SloanI', 'F814W': 'BroadI', 'F850LP': 'SloanZ', 'F892N': 'Methane', 'FR1016N': 'IRRamp_o', 'FR388N': 'OIIRamp_m', 'FR423N': 'OIIRamp_i', 'FR459M': 'BroadRamp_m', 'FR462N': 'OIIRamp_o', 'FR505N': 'OIIIRamp_m', 'FR551N': 'OIIIRamp_i', 'FR601N': 'OIIIRamp_0', 'FR647M': 'BroadRamp_i', 'FR656N': 'HalphaRamp_m', 'FR716N': 'HalphaRamp_i', 'FR782N': 'HalphaRamp_o', 'FR853N': 'IRRamp_i', 'FR914M': 'BroadRamp_m', 'FR931N': 'IRRamp_o', 'G800L': 'GRISM', 'POL0UV': 'UVPolarizer0deg', 'POL0V': 'VisiblePolarizer0deg', 'POL120UV': 'UVPolarizer120deg', 'POL120V': 'VisiblePolarizer120deg', 'POL60UV': 'UVPolarizer60deg', 'POL60V': 'VisiblePolarizer60deg'}
filter_id_keys = ['FILT_ID', 'FILTER1', 'FILTER2']
fringe_list = ['F814W', 'F775W', 'F850LP', 'F892N', 'FR914M', 'FR782N', 'FR853N', 'FR931N', 'FR1016N']
get_astrometricparameters(frame)

Make an AstrometricParameters instance for this frame.

Mandatory for reduced frame ingestion.

get_photometricparameters(frame)

Make an PhotometricParameters instance for this frame.

Mandatory for reduced frame ingestion.

get_weight_extensions(frame)
get_weightframe(frame)

Main method to get a WeightFrame for this instrument.

Mandatory for reduced frame ingestion.

get_zeropoint(frame)
get_zeropoint_error(frame)
ingest_reduced = 1
instrument_elevation = 600000
instrument_latitude = 0.0
instrument_longitude = 0.0
instrument_name = 'ACS'
instrument_telescope_name = 'HST'
instrument_timezone = 0
number_of_chips_dict = {0: 1, 1: 2}
obs_PI_COI_id_id_keys = ['OBS_PIID']
obs_PI_COI_name_id_keys = ['PROPOSER']
obs_dictionary_id_id_keys = ['OBS_DID']
obs_group_id_keys = ['OBS_GRP']
obs_id_id_keys = ['OBS_ID', 'UTC']
obs_name_id_keys = ['OBS_NAME', 'OBJECT']
obs_program_id_id_keys = ['OBS_PID', 'PROPOSID']
obs_start_id_keys = ['OBS_STRT', 'DATE-OBS']
rfd_header_keys = ['FILETYPE', 'PROPOSID', 'TIME-OBS', 'TARGNAME', 'CTYPE1', 'CTYPE2']
template_type = {'BIAS': 'bias', 'DARK': 'dark', 'PIXEL-TO-PIXEL FLAT': 'dome', 'SCI': 'science'}
tpl_category_id_keys = ['TPL_CATG']
tpl_dictionary_id_id_keys = ['TPL_DID']
tpl_exposures_id_keys = ['TPL_NEXP']
tpl_id_id_keys = ['TPL_ID']
tpl_index_id_keys = ['TPL_INDX']
tpl_name_id_keys = ['TPL_NAME']
tpl_obs_id_id_keys = ['OBS_ID']
tpl_obs_start_id_keys = ['OBS_STRT']
tpl_sequencer_id_keys = ['TPL_SEQ']
tpl_start_id_keys = ['TPL_STRT', 'DATE-OBS']
tpl_strategy_id_keys = ['TPL_STGY']
tpl_technique_id_keys = ['TPL_TECH']
tpl_type_id_keys = ['TPL_TYPE']
tpl_version_id_keys = ['TPL_VERS']
translate_astrometric_keys(frame)

This method sets the canonical coordinates and epoch, and constructs an Astrom object for a frame using header values, falling back to default values if necessary.

translate_date_keys(frame)
translate_instrument_keys(frame)

Create an Instrument object from the header

translate_misc_keys(frame)

Translate any header keywords that are not translated elsewhere.

translate_photometric_keys(frame)
astro.instrument.HeaderTranslatorACS.get_abmag(filter)
astro.instrument.HeaderTranslatorACS.get_stmag(filter)

astro.instrument.HeaderTranslatorANDICAM module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the ANDICAM (A Novel Dual Imaging CAMera) mounted on the former 1.3m 2MASS telescope at Cerro Tololo observatory, Chile. The ANDICAM has two detectors that can operate simultaneously, observing the same pointing in both the optical and near-infrared.

http://www.astro.yale.edu/smarts/ANDICAM/

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorANDICAM.HeaderTranslatorANDICAM(chip_config=None, header=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the ANDICAM mounted on the former 2MASS telescope at Cerro Tololo observatory, Chile. The ANDICAM has two detectors that can operate simultaneously, observing the same pointing in both the optical and near-infrared.

cd_map_dict = {0: {'Fairchild447': [-0.0001025, 0.0, 0.0, 0.0001025]}, 1: {'NICMOS4': [0.0, -7.611111111111112e-05, -7.611111111111112e-05, 0.0]}}
check_extensions(rawfitsdata)

Check that the extensions in the RawFitsData are consistent with the instrument and return the proper list of extensions

chip_id_keys = ['CHIP_ID', 'DETECTOR']

rfd_header_keys must contain anything that will be retained during RawFitsData conversion. If any needed key is missing from this list, an error will likely result.

The values in this list will be removed from the extension headers and added to the primary header to avoid duplication.

NOTE: This is only used when an instrument’s data must be converted to
RawFitsData prior to ingestion.
chip_list_dict = {0: ['Fairchild447'], 1: ['NICMOS4']}
chip_orientation_dict = {0: {'Fairchild447': 3}, 1: {'NICMOS4': 1}}
chip_overscan_dict = {0: {'Fairchild447': [0, 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0]}, 1: {'NICMOS4': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}}
chip_pixelsize_dict = {0: {'Fairchild447': 30}, 1: {'NICMOS4': 36}}
chip_size_dict = {0: {'NAXIS1': 1051, 'NAXIS2': 1028}, 1: {'NAXIS1': 512, 'NAXIS2': 512}}
chip_var_dict = {'Fairchild 447': 'Fairchild447', 'NICMOS 4': 'NICMOS4'}
convert_data = 1
crpix_map_dict = {0: {'Fairchild447': [525, 514]}, 1: {'NICMOS4': [256, 256]}}
filter_cwl = {'ANDICAM_B': 4420.0, 'ANDICAM_H': 16300.0, 'ANDICAM_I': 8290.0, 'ANDICAM_J': 12500.0, 'ANDICAM_K': 21350.0, 'ANDICAM_R': 6575.0, 'ANDICAM_V': 5480.0}
filter_dict = {'ANDICAM_B': 'JohnsonB', 'ANDICAM_H': 'nearIR_H', 'ANDICAM_I': 'CousinsI', 'ANDICAM_J': 'nearIR_J', 'ANDICAM_K': 'nearIR_K', 'ANDICAM_R': 'CousinsR', 'ANDICAM_V': 'JohnsonV'}
filter_id_keys_dict = {0: ['FILT_ID', 'CCDFLTID'], 1: ['FILT_ID', 'IRFLTID']}
filter_var_dict = {'B': 'ANDICAM_B', 'H': 'ANDICAM_H', 'I': 'ANDICAM_I', 'J': 'ANDICAM_J', 'K': 'ANDICAM_K', 'R': 'ANDICAM_R', 'V': 'ANDICAM_V'}
fringe_list = []
instrument_elevation = 2215.0
instrument_latitude = -30.165
instrument_longitude = 70.815
instrument_name = 'ANDICAM'
instrument_telescope_name = 'CTIO_1.3m'
instrument_timezone = 4
number_of_chips = 1
obs_PI_COI_id_id_keys = ['OWNER', 'OBS_PIID']
obs_PI_COI_name_id_keys = ['PROPOSER']
obs_dictionary_id_id_keys = ['OBS_DID']
obs_group_id_keys = ['OBS_GRP']
obs_id_id_keys = ['EXP-ID', 'OBS_ID']
obs_name_id_keys = ['OBJECT', 'OBS_NAME']
obs_program_id_id_keys = ['OBS_PID']
obs_start_id_keys = ['OBS_STRT', 'DATE-OBS']
rfd_header_keys = ['DATE', 'IMAGETYP', 'OBJECT', 'DATE-OBS', 'TIME-OBS', 'EXPTIME', 'OBSERVER', 'OWNER', 'INSTRUME', 'DETECTOR', 'TELESCOP', 'CCDFLTID', 'IRFLTID', 'EQUINOX', 'ST']
template_type = {'BIAS': 'bias', 'DARK': 'dark', 'DOMEFLAT': 'dome', 'OBJECT': 'science', 'SKYFLAT': 'twilight', 'STANDARD_STAR': 'photom'}
tpl_category_id_keys = ['TPL_CATG']
tpl_dictionary_id_id_keys = ['TPL_DID']
tpl_exposures_id_keys = ['TPL_NEXP']
tpl_id_id_keys = ['TPL_ID']
tpl_index_id_keys = ['TPL_INDX']
tpl_name_id_keys = ['TPL_NAME']
tpl_obs_id_id_keys = ['OBS_ID']
tpl_obs_start_id_keys = ['OBS_STRT']
tpl_sequencer_id_keys = ['TPL_SEQ']
tpl_start_id_keys = ['TPL_STRT', 'DATE-OBS']
tpl_strategy_id_keys = ['TPL_STGY']
tpl_technique_id_keys = ['TPL_TECH']
tpl_type_id_keys = ['DATE-TYP', 'TPL_TYPE']
tpl_version_id_keys = ['TPL_VERS']
translate_astrometric_keys(frame)

This method sets the cannonical coordinates and epoch, and constructs an Astrom object for a frame using header values, falling back to default values if necessary.

translate_date_keys(frame)
translate_instrument_keys(frame)

Create an Instrument object from the header

translate_misc_keys(frame)

Translate any header keywords that are not translated elsewhere.

translate_photometric_keys(frame)

astro.instrument.HeaderTranslatorDECAM module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. This is the header translator for DECam@Blanco at CTIO.

class astro.instrument.HeaderTranslatorDECAM.HeaderTranslatorDECAM(chip_config=None, header=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the Dark Energy Camera (DECam). DECam is a high-performance, wide-field CCD imager at the prime focus of the Blanco 4-m telescope at CTIO. DECam imager contains 62 science CCDs with 520 megapixels and images 3 square degrees (2.2 degree wide field) at 0.27 arcsecond/pixel resolution. DECam was built to carry out the Dark Energy Survey (DES) Project by the DES Collaboration.

cd_map_dict = {0: {'DECAM_S23': [0.0, 0.27, -0.27, 0.0], 'DECAM_S16': [0.0, 0.27, -0.27, 0.0], 'DECAM_N31': [0.0, 0.27, -0.27, 0.0], 'DECAM_N07': [0.0, 0.27, -0.27, 0.0], 'DECAM_S21': [0.0, 0.27, -0.27, 0.0], 'DECAM_S12': [0.0, 0.27, -0.27, 0.0], 'DECAM_N05': [0.0, 0.27, -0.27, 0.0], 'DECAM_S07': [0.0, 0.27, -0.27, 0.0], 'DECAM_N14': [0.0, 0.27, -0.27, 0.0], 'DECAM_N12': [0.0, 0.27, -0.27, 0.0], 'DECAM_N22': [0.0, 0.27, -0.27, 0.0], 'DECAM_N19': [0.0, 0.27, -0.27, 0.0], 'DECAM_N26': [0.0, 0.27, -0.27, 0.0], 'DECAM_N13': [0.0, 0.27, -0.27, 0.0], 'DECAM_N10': [0.0, 0.27, -0.27, 0.0], 'DECAM_N17': [0.0, 0.27, -0.27, 0.0], 'DECAM_S05': [0.0, 0.27, -0.27, 0.0], 'DECAM_S13': [0.0, 0.27, -0.27, 0.0], 'DECAM_S22': [0.0, 0.27, -0.27, 0.0], 'DECAM_S02': [0.0, 0.27, -0.27, 0.0], 'DECAM_S29': [0.0, 0.27, -0.27, 0.0], 'DECAM_S20': [0.0, 0.27, -0.27, 0.0], 'DECAM_N04': [0.0, 0.27, -0.27, 0.0], 'DECAM_N20': [0.0, 0.27, -0.27, 0.0], 'DECAM_S18': [0.0, 0.27, -0.27, 0.0], 'DECAM_N27': [0.0, 0.27, -0.27, 0.0], 'DECAM_S25': [0.0, 0.27, -0.27, 0.0], 'DECAM_S31': [0.0, 0.27, -0.27, 0.0], 'DECAM_N08': [0.0, 0.27, -0.27, 0.0], 'DECAM_N16': [0.0, 0.27, -0.27, 0.0], 'DECAM_N06': [0.0, 0.27, -0.27, 0.0], 'DECAM_N15': [0.0, 0.27, -0.27, 0.0], 'DECAM_N30': [0.0, 0.27, -0.27, 0.0], 'DECAM_N24': [0.0, 0.27, -0.27, 0.0], 'DECAM_N09': [0.0, 0.27, -0.27, 0.0], 'DECAM_S28': [0.0, 0.27, -0.27, 0.0], 'DECAM_N25': [0.0, 0.27, -0.27, 0.0], 'DECAM_S19': [0.0, 0.27, -0.27, 0.0], 'DECAM_N18': [0.0, 0.27, -0.27, 0.0], 'DECAM_S04': [0.0, 0.27, -0.27, 0.0], 'DECAM_N28': [0.0, 0.27, -0.27, 0.0], 'DECAM_S24': [0.0, 0.27, -0.27, 0.0], 'DECAM_S08': [0.0, 0.27, -0.27, 0.0], 'DECAM_S11': [0.0, 0.27, -0.27, 0.0], 'DECAM_S17': [0.0, 0.27, -0.27, 0.0], 'DECAM_S14': [0.0, 0.27, -0.27, 0.0], 'DECAM_S27': [0.0, 0.27, -0.27, 0.0], 'DECAM_N03': [0.0, 0.27, -0.27, 0.0], 'DECAM_N21': [0.0, 0.27, -0.27, 0.0], 'DECAM_N29': [0.0, 0.27, -0.27, 0.0], 'DECAM_S15': [0.0, 0.27, -0.27, 0.0], 'DECAM_S30': [0.0, 0.27, -0.27, 0.0], 'DECAM_S26': [0.0, 0.27, -0.27, 0.0], 'DECAM_S03': [0.0, 0.27, -0.27, 0.0], 'DECAM_N23': [0.0, 0.27, -0.27, 0.0], 'DECAM_S06': [0.0, 0.27, -0.27, 0.0], 'DECAM_N02': [0.0, 0.27, -0.27, 0.0], 'DECAM_N01': [0.0, 0.27, -0.27, 0.0], 'DECAM_S10': [0.0, 0.27, -0.27, 0.0], 'DECAM_N11': [0.0, 0.27, -0.27, 0.0], 'DECAM_S01': [0.0, 0.27, -0.27, 0.0], 'DECAM_S09': [0.0, 0.27, -0.27, 0.0]}}
check_extensions(rawfitsdata)

Check that the extensions in the RawFitsData are consistent with the instrument and return the proper list of extensions

chip_config_awkey = 'AWCHPCFG'
chip_config_chip_id = ''
chip_config_default = ('DECam',)
chip_config_dict = {('DECAM',): 0, ('DECam',): 0}
chip_config_keys = ['INSTRUME']
chip_id_keys = ['CHIP_ID', 'DETPOS']
chip_list_dict = {0: ['DECAM_N01', 'DECAM_N02', 'DECAM_N03', 'DECAM_N04', 'DECAM_N05', 'DECAM_N06', 'DECAM_N07', 'DECAM_N08', 'DECAM_N09', 'DECAM_N10', 'DECAM_N11', 'DECAM_N12', 'DECAM_N13', 'DECAM_N14', 'DECAM_N15', 'DECAM_N16', 'DECAM_N17', 'DECAM_N18', 'DECAM_N19', 'DECAM_N20', 'DECAM_N21', 'DECAM_N22', 'DECAM_N23', 'DECAM_N24', 'DECAM_N25', 'DECAM_N26', 'DECAM_N27', 'DECAM_N28', 'DECAM_N29', 'DECAM_N30', 'DECAM_N31', 'DECAM_S01', 'DECAM_S02', 'DECAM_S03', 'DECAM_S04', 'DECAM_S05', 'DECAM_S06', 'DECAM_S07', 'DECAM_S08', 'DECAM_S09', 'DECAM_S10', 'DECAM_S11', 'DECAM_S12', 'DECAM_S13', 'DECAM_S14', 'DECAM_S15', 'DECAM_S16', 'DECAM_S17', 'DECAM_S18', 'DECAM_S19', 'DECAM_S20', 'DECAM_S21', 'DECAM_S22', 'DECAM_S23', 'DECAM_S24', 'DECAM_S25', 'DECAM_S26', 'DECAM_S27', 'DECAM_S28', 'DECAM_S29', 'DECAM_S30', 'DECAM_S31']}
chip_orientation_dict = {0: {'DECAM_S23': 4, 'DECAM_N31': 1, 'DECAM_S29': 4, 'DECAM_S05': 4, 'DECAM_N07': 1, 'DECAM_S21': 4, 'DECAM_S12': 4, 'DECAM_S07': 4, 'DECAM_N14': 1, 'DECAM_N12': 1, 'DECAM_N22': 1, 'DECAM_N19': 1, 'DECAM_S03': 4, 'DECAM_N26': 1, 'DECAM_N13': 1, 'DECAM_S19': 4, 'DECAM_N17': 1, 'DECAM_N29': 1, 'DECAM_S20': 4, 'DECAM_N23': 1, 'DECAM_S22': 4, 'DECAM_S02': 4, 'DECAM_N10': 1, 'DECAM_N04': 1, 'DECAM_N20': 1, 'DECAM_S18': 4, 'DECAM_N27': 1, 'DECAM_S25': 4, 'DECAM_S31': 4, 'DECAM_N02': 1, 'DECAM_N08': 1, 'DECAM_N16': 1, 'DECAM_N06': 1, 'DECAM_N15': 1, 'DECAM_N30': 1, 'DECAM_N24': 1, 'DECAM_N09': 1, 'DECAM_N25': 1, 'DECAM_N18': 1, 'DECAM_S04': 4, 'DECAM_N28': 1, 'DECAM_S24': 4, 'DECAM_S08': 4, 'DECAM_S11': 4, 'DECAM_S17': 4, 'DECAM_S14': 4, 'DECAM_S27': 4, 'DECAM_N03': 1, 'DECAM_N21': 1, 'DECAM_S28': 4, 'DECAM_S15': 4, 'DECAM_S30': 4, 'DECAM_S26': 4, 'DECAM_N05': 1, 'DECAM_S13': 4, 'DECAM_S06': 4, 'DECAM_S16': 4, 'DECAM_N01': 1, 'DECAM_S10': 4, 'DECAM_S09': 4, 'DECAM_S01': 4, 'DECAM_N11': 1}}
chip_overscan_dict = {0: {'DECAM_S23': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S16': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N31': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N07': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S21': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S12': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N05': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S07': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N14': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N12': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N22': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N19': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N26': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N13': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N10': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N17': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S05': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S13': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S22': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S02': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S29': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S20': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N04': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N20': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S18': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N27': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S25': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S31': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N08': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N16': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N06': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N15': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N30': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N24': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N09': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S28': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N25': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S19': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N18': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S04': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N28': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S24': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S08': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S11': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S17': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S14': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S27': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N03': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N21': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N29': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S15': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S30': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S26': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S03': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N23': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S06': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N02': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N01': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S10': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_N11': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S01': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1], 'DECAM_S09': [56, 56, 0, 49, 6, 6, 0, 0, 1, 1, 0, 1]}}
chip_pixelsize_dict = {0: {'DECAM_S23': 15, 'DECAM_N31': 15, 'DECAM_S29': 15, 'DECAM_S05': 15, 'DECAM_N07': 15, 'DECAM_S21': 15, 'DECAM_S12': 15, 'DECAM_S07': 15, 'DECAM_N14': 15, 'DECAM_N12': 15, 'DECAM_N22': 15, 'DECAM_N19': 15, 'DECAM_S03': 15, 'DECAM_N26': 15, 'DECAM_N13': 15, 'DECAM_S19': 15, 'DECAM_N17': 15, 'DECAM_N29': 15, 'DECAM_S20': 15, 'DECAM_N23': 15, 'DECAM_S22': 15, 'DECAM_S02': 15, 'DECAM_N10': 15, 'DECAM_N04': 15, 'DECAM_N20': 15, 'DECAM_S18': 15, 'DECAM_N27': 15, 'DECAM_S25': 15, 'DECAM_S31': 15, 'DECAM_N02': 15, 'DECAM_N08': 15, 'DECAM_N16': 15, 'DECAM_N06': 15, 'DECAM_N15': 15, 'DECAM_N30': 15, 'DECAM_N24': 15, 'DECAM_N09': 15, 'DECAM_N25': 15, 'DECAM_N18': 15, 'DECAM_S04': 15, 'DECAM_N28': 15, 'DECAM_S24': 15, 'DECAM_S08': 15, 'DECAM_S11': 15, 'DECAM_S17': 15, 'DECAM_S14': 15, 'DECAM_S27': 15, 'DECAM_N03': 15, 'DECAM_N21': 15, 'DECAM_S28': 15, 'DECAM_S15': 15, 'DECAM_S30': 15, 'DECAM_S26': 15, 'DECAM_N05': 15, 'DECAM_S13': 15, 'DECAM_S06': 15, 'DECAM_S16': 15, 'DECAM_N01': 15, 'DECAM_S10': 15, 'DECAM_S09': 15, 'DECAM_S01': 15, 'DECAM_N11': 15}}
chip_size_dict = {0: {'NAXIS1': 2160, 'NAXIS2': 4146}}
chip_var_dict = {'CCD01': 'DECAM_S29', 'CCD02': 'DECAM_S30', 'CCD03': 'DECAM_S31', 'CCD04': 'DECAM_S25', 'CCD05': 'DECAM_S26', 'CCD06': 'DECAM_S27', 'CCD07': 'DECAM_S28', 'CCD08': 'DECAM_S20', 'CCD09': 'DECAM_S21', 'CCD1': 'DECAM_S29', 'CCD10': 'DECAM_S22', 'CCD11': 'DECAM_S23', 'CCD12': 'DECAM_S24', 'CCD13': 'DECAM_S14', 'CCD14': 'DECAM_S15', 'CCD15': 'DECAM_S16', 'CCD16': 'DECAM_S17', 'CCD17': 'DECAM_S18', 'CCD18': 'DECAM_S19', 'CCD19': 'DECAM_S08', 'CCD2': 'DECAM_S30', 'CCD20': 'DECAM_S09', 'CCD21': 'DECAM_S10', 'CCD22': 'DECAM_S11', 'CCD23': 'DECAM_S12', 'CCD24': 'DECAM_S13', 'CCD25': 'DECAM_S01', 'CCD26': 'DECAM_S02', 'CCD27': 'DECAM_S03', 'CCD28': 'DECAM_S04', 'CCD29': 'DECAM_S05', 'CCD3': 'DECAM_S31', 'CCD30': 'DECAM_S06', 'CCD31': 'DECAM_S07', 'CCD32': 'DECAM_N01', 'CCD33': 'DECAM_N02', 'CCD34': 'DECAM_N03', 'CCD35': 'DECAM_N04', 'CCD36': 'DECAM_N05', 'CCD37': 'DECAM_N06', 'CCD38': 'DECAM_N07', 'CCD39': 'DECAM_N08', 'CCD4': 'DECAM_S25', 'CCD40': 'DECAM_N09', 'CCD41': 'DECAM_N10', 'CCD42': 'DECAM_N11', 'CCD43': 'DECAM_N12', 'CCD44': 'DECAM_N13', 'CCD45': 'DECAM_N14', 'CCD46': 'DECAM_N15', 'CCD47': 'DECAM_N16', 'CCD48': 'DECAM_N17', 'CCD49': 'DECAM_N18', 'CCD5': 'DECAM_S26', 'CCD50': 'DECAM_N19', 'CCD51': 'DECAM_N20', 'CCD52': 'DECAM_N21', 'CCD53': 'DECAM_N22', 'CCD54': 'DECAM_N23', 'CCD55': 'DECAM_N24', 'CCD56': 'DECAM_N25', 'CCD57': 'DECAM_N26', 'CCD58': 'DECAM_N27', 'CCD59': 'DECAM_N28', 'CCD6': 'DECAM_S27', 'CCD60': 'DECAM_N29', 'CCD61': 'DECAM_N30', 'CCD62': 'DECAM_N31', 'CCD7': 'DECAM_S28', 'CCD8': 'DECAM_S20', 'CCD9': 'DECAM_S21', 'N01': 'DECAM_N01', 'N02': 'DECAM_N02', 'N03': 'DECAM_N03', 'N04': 'DECAM_N04', 'N05': 'DECAM_N05', 'N06': 'DECAM_N06', 'N07': 'DECAM_N07', 'N08': 'DECAM_N08', 'N09': 'DECAM_N09', 'N1': 'DECAM_N01', 'N10': 'DECAM_N10', 'N11': 'DECAM_N11', 'N12': 'DECAM_N12', 'N13': 'DECAM_N13', 'N14': 'DECAM_N14', 'N15': 'DECAM_N15', 'N16': 'DECAM_N16', 'N17': 'DECAM_N17', 'N18': 'DECAM_N18', 'N19': 'DECAM_N19', 'N2': 'DECAM_N02', 'N20': 'DECAM_N20', 'N21': 'DECAM_N21', 'N22': 'DECAM_N22', 'N23': 'DECAM_N23', 'N24': 'DECAM_N24', 'N25': 'DECAM_N25', 'N26': 'DECAM_N26', 'N27': 'DECAM_N27', 'N28': 'DECAM_N28', 'N29': 'DECAM_N29', 'N3': 'DECAM_N03', 'N30': 'DECAM_N30', 'N31': 'DECAM_N31', 'N4': 'DECAM_N04', 'N5': 'DECAM_N05', 'N6': 'DECAM_N06', 'N7': 'DECAM_N07', 'N8': 'DECAM_N08', 'N9': 'DECAM_N09', 'S01': 'DECAM_S01', 'S02': 'DECAM_S02', 'S03': 'DECAM_S03', 'S04': 'DECAM_S04', 'S05': 'DECAM_S05', 'S06': 'DECAM_S06', 'S07': 'DECAM_S07', 'S08': 'DECAM_S08', 'S09': 'DECAM_S09', 'S1': 'DECAM_S01', 'S10': 'DECAM_S10', 'S11': 'DECAM_S11', 'S12': 'DECAM_S12', 'S13': 'DECAM_S13', 'S14': 'DECAM_S14', 'S15': 'DECAM_S15', 'S16': 'DECAM_S16', 'S17': 'DECAM_S17', 'S18': 'DECAM_S18', 'S19': 'DECAM_S19', 'S2': 'DECAM_S02', 'S20': 'DECAM_S20', 'S21': 'DECAM_S21', 'S22': 'DECAM_S22', 'S23': 'DECAM_S23', 'S24': 'DECAM_S24', 'S25': 'DECAM_S25', 'S26': 'DECAM_S26', 'S27': 'DECAM_S27', 'S28': 'DECAM_S28', 'S29': 'DECAM_S29', 'S3': 'DECAM_S03', 'S30': 'DECAM_S30', 'S31': 'DECAM_S31', 'S4': 'DECAM_S04', 'S5': 'DECAM_S05', 'S6': 'DECAM_S06', 'S7': 'DECAM_S07', 'S8': 'DECAM_S08', 'S9': 'DECAM_S09', 'ccd01': 'DECAM_S29', 'ccd02': 'DECAM_S30', 'ccd03': 'DECAM_S31', 'ccd04': 'DECAM_S25', 'ccd05': 'DECAM_S26', 'ccd06': 'DECAM_S27', 'ccd07': 'DECAM_S28', 'ccd08': 'DECAM_S20', 'ccd09': 'DECAM_S21', 'ccd1': 'DECAM_S29', 'ccd10': 'DECAM_S22', 'ccd11': 'DECAM_S23', 'ccd12': 'DECAM_S24', 'ccd13': 'DECAM_S14', 'ccd14': 'DECAM_S15', 'ccd15': 'DECAM_S16', 'ccd16': 'DECAM_S17', 'ccd17': 'DECAM_S18', 'ccd18': 'DECAM_S19', 'ccd19': 'DECAM_S08', 'ccd2': 'DECAM_S30', 'ccd20': 'DECAM_S09', 'ccd21': 'DECAM_S10', 'ccd22': 'DECAM_S11', 'ccd23': 'DECAM_S12', 'ccd24': 'DECAM_S13', 'ccd25': 'DECAM_S01', 'ccd26': 'DECAM_S02', 'ccd27': 'DECAM_S03', 'ccd28': 'DECAM_S04', 'ccd29': 'DECAM_S05', 'ccd3': 'DECAM_S31', 'ccd30': 'DECAM_S06', 'ccd31': 'DECAM_S07', 'ccd32': 'DECAM_N01', 'ccd33': 'DECAM_N02', 'ccd34': 'DECAM_N03', 'ccd35': 'DECAM_N04', 'ccd36': 'DECAM_N05', 'ccd37': 'DECAM_N06', 'ccd38': 'DECAM_N07', 'ccd39': 'DECAM_N08', 'ccd4': 'DECAM_S25', 'ccd40': 'DECAM_N09', 'ccd41': 'DECAM_N10', 'ccd42': 'DECAM_N11', 'ccd43': 'DECAM_N12', 'ccd44': 'DECAM_N13', 'ccd45': 'DECAM_N14', 'ccd46': 'DECAM_N15', 'ccd47': 'DECAM_N16', 'ccd48': 'DECAM_N17', 'ccd49': 'DECAM_N18', 'ccd5': 'DECAM_S26', 'ccd50': 'DECAM_N19', 'ccd51': 'DECAM_N20', 'ccd52': 'DECAM_N21', 'ccd53': 'DECAM_N22', 'ccd54': 'DECAM_N23', 'ccd55': 'DECAM_N24', 'ccd56': 'DECAM_N25', 'ccd57': 'DECAM_N26', 'ccd58': 'DECAM_N27', 'ccd59': 'DECAM_N28', 'ccd6': 'DECAM_S27', 'ccd60': 'DECAM_N29', 'ccd61': 'DECAM_N30', 'ccd62': 'DECAM_N31', 'ccd7': 'DECAM_S28', 'ccd8': 'DECAM_S20', 'ccd9': 'DECAM_S21'}
composite_list = []
crpix_map_dict = {0: {'DECAM_S23': [8914.4, -2211.33], 'DECAM_S16': [6660.0, 4177.67], 'DECAM_N31': [-11375.2, -2211.33], 'DECAM_N07': [-103.2, -10730.0], 'DECAM_S21': [8914.4, 6307.33], 'DECAM_S12': [4405.6, -4341.0], 'DECAM_N05': [-103.2, -2211.33], 'DECAM_S07': [2151.2, -10730.0], 'DECAM_N14': [-4612.0, 12696.33], 'DECAM_N12': [-2357.6, -4341.0], 'DECAM_N22': [-6866.4, 2048.0], 'DECAM_N19': [-4612.0, -8600.33], 'DECAM_N26': [-9120.8, 4177.67], 'DECAM_N13': [-2357.6, -8600.33], 'DECAM_N10': [-2357.6, 4177.67], 'DECAM_N17': [-4612.0, -81.67], 'DECAM_S05': [2151.2, -2211.33], 'DECAM_S13': [4405.6, -8600.33], 'DECAM_S22': [8914.4, 2048.0], 'DECAM_S02': [2151.2, 10566.67], 'DECAM_S29': [13423.2, 6307.33], 'DECAM_S20': [8914.4, 10566.67], 'DECAM_N04': [-103.2, 2048.0], 'DECAM_N20': [-6866.4, 10566.67], 'DECAM_S18': [6660.0, -4341.0], 'DECAM_N27': [-9120.8, -81.67], 'DECAM_S25': [11168.8, 8437.0], 'DECAM_S31': [13423.2, -2211.33], 'DECAM_N08': [-2357.6, 12696.33], 'DECAM_N16': [-4612.0, 4177.67], 'DECAM_N06': [-103.2, -6470.67], 'DECAM_N15': [-4612.0, 8437.0], 'DECAM_N30': [-11375.2, 2048.0], 'DECAM_N24': [-6866.4, -6470.67], 'DECAM_N09': [-2357.6, 8437.0], 'DECAM_S28': [11168.8, -4341.0], 'DECAM_N25': [-9120.8, 8437.0], 'DECAM_S19': [6660.0, -8600.33], 'DECAM_N18': [-4612.0, -4341.0], 'DECAM_S04': [2151.2, 2048.0], 'DECAM_N28': [-9120.8, -4341.0], 'DECAM_S24': [8914.4, -6470.67], 'DECAM_S08': [4405.6, 12696.33], 'DECAM_S11': [4405.6, -81.67], 'DECAM_S17': [6660.0, -81.67], 'DECAM_S14': [6660.0, 12696.33], 'DECAM_S27': [11168.8, -81.67], 'DECAM_N03': [-103.2, 6307.33], 'DECAM_N21': [-6866.4, 6307.33], 'DECAM_N29': [-11375.2, 6307.33], 'DECAM_S15': [6660.0, 8437.0], 'DECAM_S30': [13423.2, 2048.0], 'DECAM_S26': [11168.8, 4177.67], 'DECAM_S03': [2151.2, 6307.33], 'DECAM_N23': [-6866.4, -2211.33], 'DECAM_S06': [2151.2, -6470.67], 'DECAM_N02': [-103.2, 10566.67], 'DECAM_N01': [-103.2, 14826.0], 'DECAM_S10': [4405.6, 4177.67], 'DECAM_N11': [-2357.6, -81.67], 'DECAM_S01': [2151.2, 14826.0], 'DECAM_S09': [4405.6, 8437.0]}}
epoch_id_keys = ['EPOCH', 'EQUINOX']
filter_cwl = {'DECAM_Y': 10095.0, 'DECAM_empty': 3000.0, 'DECAM_g': 4720.0, 'DECAM_i': 7835.0, 'DECAM_plate': 3000.0, 'DECAM_r': 6415.0, 'DECAM_u': 3500.0, 'DECAM_z': 9260.0}
filter_dict = {'DECAM_Y': 'DecamY', 'DECAM_empty': 'Unknown', 'DECAM_g': 'SloanG', 'DECAM_i': 'SloanI', 'DECAM_plate': 'Unknown', 'DECAM_r': 'SloanR', 'DECAM_u': 'SloanU', 'DECAM_z': 'SloanZ'}
filter_id_keys = ['FILT_ID', 'FILTER']
filter_var_dict = {'Empty 0.0 0.0': 'DECAM_empty', 'None': 'DECAM_empty', 'Y DECam c0005 10095.0 1130.0': 'DECAM_Y', 'g DECam SDSS c0001 4720.0 1520.0': 'DECAM_g', 'i DECam SDSS c0003 7835.0 1470.0': 'DECAM_i', 'n.a.': 'DECAM_empty', 'r DECam SDSS c0002 6415.0 1480.0': 'DECAM_r', 'solid plate 0.0 0.0': 'DECAM_plate', 'u DECam c0006 3500.0 1000.0': 'DECAM_u', 'z DECam SDSS c0004 9260.0 1520.0': 'DECAM_z'}
fringe_list = ['DECAM_i', 'DECAM_z', 'DECAM_Y']
get_trim_region(chip_id, amplifier)

Trim region depends on orientation in focal plane (‘N’ or ‘S’) as well as amplifier (‘A’ or ‘B’)

ingest_reduced = 0
instrument_elevation = 2215.0
instrument_latitude = -30.16606
instrument_longitude = 70.81489
instrument_name = 'DECAM'
instrument_telescope_name = 'Blanco'
instrument_timezone = 4
number_of_chips_dict = {0: 62}
obs_PI_COI_id_id_keys = ['OBS_PIID', 'PROPID']
obs_PI_COI_name_id_keys = ['PROPOSER']
obs_dictionary_id_id_keys = ['OBS_DID']
obs_group_id_keys = ['OBS_GRP']
obs_id_id_keys = ['OBS_ID', 'EXPNUM', 'OBSID']
obs_name_id_keys = ['OBS_NAME', 'OBJECT']
obs_program_id_id_keys = ['OBS_PID', 'PROPID']
obs_start_id_keys = ['OBS_STRT', 'DATE-OBS', 'DATE-OBS']
template_type = {'BIAS': 'bias', 'DARK': 'dark', 'DOMEFLAT': 'dome', 'FLAT': 'twilight', 'OBJECT': 'science', 'SKYFLAT': 'twilight', 'STANDARD_STAR': 'photom'}
tpl_category_id_keys = ['TPL_CATG']
tpl_dictionary_id_id_keys = ['TPL_DID']
tpl_exposures_id_keys = ['TPL_NEXP']
tpl_id_id_keys = ['TPL_ID']
tpl_index_id_keys = ['TPL_INDX']
tpl_name_id_keys = ['TPL_NAME', 'OBJECT']
tpl_obs_id_id_keys = ['OBS_ID']
tpl_obs_start_id_keys = ['OBS_STRT']
tpl_sequencer_id_keys = ['TPL_SEQ']
tpl_start_id_keys = ['TPL_STRT', 'DATE-OBS']
tpl_strategy_id_keys = ['TPL_STGY']
tpl_technique_id_keys = ['TPL_TECH']
tpl_type_id_keys = ['TPL_TYPE', 'OBSTYPE']
tpl_version_id_keys = ['TPL_VERS']
translate_astrometric_keys(frame)

This method sets the canonical coordinates and epoch, and constructs an Astrom object for a frame using header values, falling back to default values if necessary.

translate_date_keys(frame)
translate_instrument_keys(frame)

Create an Instrument object from the header

translate_observingblock_keys(frame)

Create an ObservingBlock object for a frame.

translate_photometric_keys(frame)
translate_template_keys(frame)

Create a Template object for a frame.

astro.instrument.HeaderTranslatorESOSCHMIDT module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the Wide-Field Imager at the ESO 2.2m telescope at La Silla.

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorESOSCHMIDT.HeaderTranslatorESOSCHMIDT(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the plate scans of the ESO 1m Schmidt telescope at La Silla (now decommissioned).

astrom_corr = 1
cd_map = {'ESO_Schmidt_Photographic_Plate': [0.00013115366159, 3.9436100158e-06, 4.04475312054e-06, -0.000131287310227]}
chip_id_keys = ['CHIP_ID']
chip_list = ['ESO_Schmidt_Photographic_Plate']
chip_orientation = {'ESO_Schmidt_Photographic_Plate': 1}
chip_overscan = {'ESO_Schmidt_Photographic_Plate': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'ESO_Schmidt_Photographic_Plate': 7}
chip_size = {'NAXIS1': 1280, 'NAXIS2': 1024}
crpix_map = {'ESO_Schmidt_Photographic_Plate': [20000.0, 20000.0]}
epoch_id_keys = ['EPOCH', 'EQUINOX']
filter_cwl = {'IIA-O GG385': 3850}
filter_dict = {'IIA-O GG385': 'B'}
filter_id_keys = ['FILT_ID']
filter_var_dict = {}
fringe_list = []
instrument_elevation = 2335.0
instrument_latitude = -29.2543
instrument_longitude = -70.7346
instrument_name = 'ESOSCHMIDT'
instrument_telescope_name = 'ESO 1m Schmidt Telescope'
instrument_timezone = 4
number_of_chips = 1
translate_astrometric_keys(frame)

astro.instrument.HeaderTranslatorFactory module

A Factory for HeaderTranslators

astro.instrument.HeaderTranslatorFactory.create_translator(instrument_id=None, chip_config=None, header=None)

This function produces and returns the proper HeaderTranslator based on the instrument identifier, header, and chip_config it receives from the caller.

instrument_id: name of instrument from header (usually INSTRUME keyword)
header: a Frame.header instance to retrieve instrument_id from if
necessary
chip_config: an integer (or other object) specifying the configuration
of this instruments CCDs
NOTE: One of instrument_id or header MUST be specified, chip_config is
optional and will be determined automatically (at least attempted) if header is specified.

astro.instrument.HeaderTranslatorGRATAMA module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the 0.4m Gratama telescope at the Blaauw Observatory atop the Bernoulliborg in Groningen, The Netherlands, run by the Kapteyn Institute.

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorGRATAMA.HeaderTranslatorGRATAMA(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the 0.4m Gratama telescope at the Blaauw Observatory atop the Bernoulliborg in Groningen, The Netherlands, run by the Kapteyn Institute.

cd_map = {'SBIG_ST_L': [-0.0001586111111111111, 0.0, 0.0, -0.0001586111111111111]}
check_extensions(rawfitsdata)

Check that the extensions in the RawFitsData are consistent with the instrument and return the proper list of extensions

chip_id_keys = ['CHIP_ID', 'INSTRUME']

rfd_header_keys must contain anything that will be retained during RawFitsData conversion. If any needed key is missing from this list, an error will likely result.

The values in this list will be removed from the extension headers and added to the primary header to avoid duplication.

NOTE: This is only used when an instrument’s data must be converted to
RawFitsData prior to ingestion.
chip_list = ['SBIG_ST_L']
chip_orientation = {'SBIG_ST_L': 1}
chip_overscan = {'SBIG_ST_L': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'SBIG_ST_L': 9}
chip_size = {'NAXIS1': 3072, 'NAXIS2': 2048}
chip_var_dict = {'GRATAMA': 'SBIG_ST_L', 'SBIG ST-L': 'SBIG_ST_L'}
convert_data = 1
crpix_map = {'SBIG_ST_L': [1536.0, 1024.0]}
filter_cwl = {'GRATAMA_B': 4200.0, 'GRATAMA_Clear': 3000.0, 'GRATAMA_H_ALPHA': 3000.0, 'GRATAMA_I': 7900.0, 'GRATAMA_OIII': 3000.0, 'GRATAMA_R': 6400.0, 'GRATAMA_SII': 3000.0, 'GRATAMA_U': 3640.0, 'GRATAMA_V': 5270.0}
filter_dict = {'GRATAMA_B': 'BesselB', 'GRATAMA_Clear': 'Clear', 'GRATAMA_H_ALPHA': 'Halpha', 'GRATAMA_I': 'BesselI', 'GRATAMA_OIII': 'OIII', 'GRATAMA_R': 'BesselR', 'GRATAMA_SII': 'SII', 'GRATAMA_U': 'BesselU', 'GRATAMA_V': 'BesselV'}
filter_id_keys = ['FILT_ID', 'FILTER']
filter_var_dict = {' II': 'GRATAMA_SII', ' III': 'GRATAMA_OIII', 'Bessel B': 'GRATAMA_B', 'Bessel I': 'GRATAMA_I', 'Bessel R': 'GRATAMA_R', 'Bessel U': 'GRATAMA_U', 'Bessel V': 'GRATAMA_V', 'Clear': 'GRATAMA_Clear', 'H-Alpha': 'GRATAMA_H_ALPHA', 'H-alpha': 'GRATAMA_H_ALPHA', '[OIII]': 'GRATAMA_OIII'}
fringe_list = []
instrument_elevation = 0.0
instrument_latitude = 53.240282
instrument_longitude = -6.536329
instrument_name = 'GRATAMA'
instrument_telescope_name = 'RC400ASL'
instrument_timezone = -1
number_of_chips = 1
obs_name_id_keys = ['OBS_NAME', 'OBJECT']
rfd_header_keys = ['IMAGETYP', 'OBJECT', 'DATE-OBS', 'DATE', 'EXPTIME', 'OBSERVER', 'INSTRUME', 'TELESCOP', 'FILTER', 'RA', 'DEC', 'AIRMASS']
translate_astrometric_keys(frame)

This method sets the cannonical coordinates and epoch, and constructs an Astrom object for a frame using header values, falling back to default values if necessary.

translate_date_keys(frame)
translate_instrument_keys(frame)

Create an Instrument object from the header

translate_photometric_keys(frame)

Translate the header keywords that are relevant for the photometry.

astro.instrument.HeaderTranslatorISAAC module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the ISAAC camera on on ESO VLT UT1 on Paranal.

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.

NOTES: Headers contain CDELT, CROTA and PC matrix

Pixelsize: 1.800e-05 [m?] (DET CHIP PXSPACE, units not specified) Pixelscale: 0.148 [‘’/pix?] (INS PIXSCALE, units not specified)

What’s the role of the Objective (OPTIi, S2(SW) or L2(LW)) in the “INS” section.

3 calibration lamps are present (argon, xenon, halogen)

Filter wheels: 4 total: 1,2 are SW (Hawaii CCD),
3,4 are LW (Aladdin CCD) correct?
Filters: SW imaging: SZ, Js, J, H, Ks broad band
SW imaging narrow band: plenty LW ?

Chips used in different readout modes for different background fluxes.


class astro.instrument.HeaderTranslatorISAAC.HeaderTranslatorISAAC(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

astrom_corr = 0
cd_map = {'ESO-Hawaii': [3.57e-05, 2.061e-05, 2.061e-05, -3.57e-05]}
check_extensions(rawfitsdata)

Raw data is not MEF; treat it as MEF with 1 extension

chip_id_keys = ['CHIP_ID', 'HIERARCH ESO DET CHIP ID']
chip_list = ['ESO-Hawaii']
chip_orientation = {'ESO-Hawaii': 2}
chip_overscan = {'ESO-Hawaii': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'ESO-Hawaii': 18.5}
chip_size = {'NAXIS1': 1024, 'NAXIS2': 1024}
chip_var_dict = {'HASCI02 (assembly 9-169R-2 L3W7H2)': 'ESO-Hawaii', 'HASCI03': 'ESO-Hawaii'}
crpix_map = {'ESO-Hawaii': [518, 455]}
epoch_id_keys = ['EPOCH', 'EQUINOX']
extract_extension(frame)
extract_header(frame)
filter_cwl = {'H': 16500.0, 'J': 12500.0, 'Js': 12400.0, 'Ks': 21600.0, 'SZ': 10600.0}
filter_dict = {'H': 'H', 'J': 'J', 'Js': 'Js', 'Ks': 'Ks', 'SZ': 'SZ'}
filter_id_keys = ['FILT_ID', 'HIERARCH ESO INS FILT1 ID', 'HIERARCH ESO INS FILT2 ID']
filter_var_dict = {}
fringe_list = []
ingest_reduced = 1
instrument_elevation = 2681.0
instrument_latitude = -24.6279
instrument_longitude = -70.4048
instrument_name = 'ISAAC'
instrument_telescope_name = 'ESO-VLT-U1'
instrument_timezone = 4
number_of_chips = 1
obs_PI_COI_id_id_keys = ['HIERARCH ESO OBS PI-COI ID', 'OBS_PIID']
obs_PI_COI_name_id_keys = ['HIERARCH ESO OBS PI-COI NAME', 'PROPOSER']
obs_dictionary_id_id_keys = ['HIERARCH ESO OBS DID', 'OBS_DID']
obs_group_id_keys = ['HIERARCH ESO OBS GRP', 'OBS_GRP']
obs_id_id_keys = ['HIERARCH ESO OBS ID', 'OBS_ID']
obs_name_id_keys = ['HIERARCH ESO OBS NAME', 'OBS_NAME']
obs_program_id_id_keys = ['HIERARCH ESO OBS PROG ID', 'OBS_PID']
obs_start_id_keys = ['HIERARCH ESO OBS START', 'OBS_STRT', 'DATE-OBS']
telescope_mounting = 'alt-az'
tpl_category_id_keys = ['HIERARCH ESO DPR CATG', 'TPL_CATG']
tpl_dictionary_id_id_keys = ['HIERARCH ESO TPL DID', 'TPL_DID']
tpl_exposures_id_keys = ['HIERARCH ESO TPL NEXP', 'TPL_NEXP']
tpl_id_id_keys = ['HIERARCH ESO TPL ID', 'TPL_ID']
tpl_index_id_keys = ['HIERARCH ESO OBS TPLNO', 'TPL_INDX']
tpl_name_id_keys = ['HIERARCH ESO TPL NAME', 'TPL_NAME']
tpl_obs_id_id_keys = ['HIERARCH ESO OBS ID', 'OBS_ID']
tpl_obs_start_id_keys = ['HIERARCH ESO OBS START', 'OBS_STRT']
tpl_sequencer_id_keys = ['HIERARCH ESO TPL PRESEQ', 'TPL_SEQ']
tpl_start_id_keys = ['HIERARCH ESO TPL START', 'TPL_STRT', 'DATE-OBS']
tpl_strategy_id_keys = ['HIERARCH ESO OBS STRTG', 'TPL_STGY']
tpl_technique_id_keys = ['HIERARCH ESO DPR TECH', 'TPL_TECH']
tpl_type_id_keys = ['HIERARCH ESO DPR TYPE', 'TPL_TYPE']
tpl_version_id_keys = ['HIERARCH ESO TPL VERSION', 'TPL_VERS']
translate_astrometric_keys(frame)
translate_photometric_keys(frame)
astro.instrument.HeaderTranslatorISAAC.convert_transformation_matrix(PC1_1, PC1_2, PC2_1, PC2_2, CDELT1, CDELT2)

Convert the translation matrix in PC format, plus the coordinate increments (CDELT1, CDELT2) into CD matrix format.

The CD matrix is the result of the matrix multiplication of the scale matrix with the PC matrix.

|CD1_1 CD1_2| |CDELT1 0 | |PC1_1 PC1_2| |CD2_1 CD2_2| = s.PC = |0 CDELT2| . |PC2_1 PC2_2|

astro.instrument.HeaderTranslatorLBCBLUE module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the Large Binocular Camera (LBC) at the Large Binocular Telescope (LBT, two 8.4m mirrors) at Mount Graham, Arizona, USA

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorLBCBLUE.HeaderTranslatorLBCBLUE(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the Large Binocular Camera at the Large Binocular Telescope at Mount Graham

cd_map = {'LBCBCHIP1': [-6.222222222222222e-05, 0.0, 0.0, 6.222222222222222e-05], 'LBCBCHIP2': [-6.222222222222222e-05, 0.0, 0.0, 6.222222222222222e-05], 'LBCBCHIP3': [-6.222222222222222e-05, 0.0, 0.0, 6.222222222222222e-05], 'LBCBCHIP4': [0.0, 6.222222222222222e-05, 6.222222222222222e-05, 0.0]}
chip_id_keys = ['CHIP_ID', '_EXTNAME']
chip_list = ['LBCBCHIP1', 'LBCBCHIP2', 'LBCBCHIP3', 'LBCBCHIP4']
chip_orientation = {'LBCBCHIP1': 1, 'LBCBCHIP2': 1, 'LBCBCHIP3': 1, 'LBCBCHIP4': 1}
chip_overscan = {'LBCBCHIP1': [50, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'LBCBCHIP2': [50, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'LBCBCHIP3': [50, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'LBCBCHIP4': [50, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'LBCBCHIP1': 13.5, 'LBCBCHIP2': 13.5, 'LBCBCHIP3': 13.5, 'LBCBCHIP4': 13.5}
chip_size = {'NAXIS1': 2304, 'NAXIS2': 4608}
chip_var_dict = {'LBCCHIP1': 'LBCBCHIP1', 'LBCCHIP2': 'LBCBCHIP2', 'LBCCHIP3': 'LBCBCHIP3', 'LBCCHIP4': 'LBCBCHIP4'}
crpix_map = {'LBCBCHIP1': [-1079.0, 2950.0], 'LBCBCHIP2': [1043.0, 2950.0], 'LBCBCHIP3': [3165.0, 2950.0], 'LBCBCHIP4': [-1683.0, 2264.0]}
epoch_id_keys = ['EQUINOX']
filter_cwl = {'lbcb-B': 4200.0, 'lbcb-U': 3640.0, 'lbcb-Uspec': 3550.0, 'lbcb-V': 5270.0, 'lbcb-g': 4800.0, 'lbcb-r': 6294.0}
filter_dict = {'lbcb-B': 'BesselB', 'lbcb-U': 'BesselU', 'lbcb-Uspec': 'SDT_Uspec', 'lbcb-V': 'BesselV', 'lbcb-g': 'SloanG', 'lbcb-r': 'SloanR'}
filter_id_keys = ['FILT_ID', 'FILTER']
filter_var_dict = {'B-BESSEL': 'lbcb-B', 'SDT_Uspec': 'lbcb-Uspec', 'U-BESSEL': 'lbcb-U', 'V-BESSEL': 'lbcb-V', 'g-SLOAN': 'lbcb-g', 'r-SLOAN': 'lbcb-r'}
fringe_list = []
instrument_elevation = 3221.0
instrument_latitude = 32.7013
instrument_longitude = -109.889
instrument_name = 'LBCBLUE'
instrument_telescope_name = 'LBT'
instrument_timezone = 7
number_of_chips = 4
obs_id_id_keys = ['LBCOBID', 'OBS_ID']
obs_name_id_keys = ['OBJNAME', 'OBS_NAME']
obs_program_id_id_keys = ['PROPID', 'OBS_PID']
obs_start_id_keys = ['DATE-OBS', 'OBS_STRT', 'DATE-OBS']
telescope_mounting = 'alt-az'
template_type = {'object': 'science', 'zero': 'bias'}
tpl_type_id_keys = ['IMAGETYP', 'TPL_TYPE']
translate_astrometric_keys(frame)

This method sets the cannonical coordinates and epoch, and constructs an Astrom object for a frame using header values, falling back to default values if necessary.

translate_date_keys(frame)

Required to translate the LBC keys ‘LST_OBS’ and ‘UTC_OBS’ to the keys ‘LST’ and ‘UTC’, and to change their format from hh:mm:ss.mm to float. Additionally, DATE_OBS must be transformed to datetime format.

translate_instrument_keys(frame)

Create an Instrument object from the header

translate_observingblock_keys(frame)

This is a copy of the parent class’s method, except for the handling of OBS_ID, where we need to strip off the leading ‘ob’ in case of LBC-BLUE in order to ensure that it can be converted to an integer.

translate_photometric_keys(frame)

The LBC FITS header contains only an AIRMASS keyword

astro.instrument.HeaderTranslatorLBCRED module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the Large Binocular Camera (LBC) at the Large Binocular Telescope (LBT, two 8.4m mirrors) at Mount Graham, Arizona, USA

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorLBCRED.HeaderTranslatorLBCRED(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the Large Binocular Camera at the Large Binocular Telescope at Mount Graham

cd_map = {'LBCRCHIP1': [-6.138888888888889e-05, 0.0, 0.0, 6.138888888888889e-05], 'LBCRCHIP2': [-6.138888888888889e-05, 0.0, 0.0, 6.138888888888889e-05], 'LBCRCHIP3': [-6.138888888888889e-05, 0.0, 0.0, 6.138888888888889e-05], 'LBCRCHIP4': [0.0, 6.138888888888889e-05, 6.138888888888889e-05, 0.0]}
chip_id_keys = ['CHIP_ID', '_EXTNAME']
chip_list = ['LBCRCHIP1', 'LBCRCHIP2', 'LBCRCHIP3', 'LBCRCHIP4']
chip_orientation = {'LBCRCHIP1': 1, 'LBCRCHIP2': 1, 'LBCRCHIP3': 1, 'LBCRCHIP4': 1}
chip_overscan = {'LBCRCHIP1': [50, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'LBCRCHIP2': [50, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'LBCRCHIP3': [50, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'LBCRCHIP4': [50, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'LBCRCHIP1': 13.5, 'LBCRCHIP2': 13.5, 'LBCRCHIP3': 13.5, 'LBCRCHIP4': 13.5}
chip_size = {'NAXIS1': 2304, 'NAXIS2': 4608}
chip_var_dict = {'LBCCHIP1': 'LBCRCHIP1', 'LBCCHIP2': 'LBCRCHIP2', 'LBCCHIP3': 'LBCRCHIP3', 'LBCCHIP4': 'LBCRCHIP4'}
crpix_map = {'LBCRCHIP1': [-1043.0, 2893.0], 'LBCRCHIP2': [1079.0, 2893.0], 'LBCRCHIP3': [3201.0, 2893.0], 'LBCRCHIP4': [-1740.0, 2239.0]}
epoch_id_keys = ['EQUINOX']
filter_cwl = {'lbcr-I': 7900.0, 'lbcr-R': 6400.0, 'lbcr-V': 5270.0, 'lbcr-i': 7705.0, 'lbcr-r': 6294.0, 'lbcr-y': 10446.0, 'lbcr-z': 8700.0}
filter_dict = {'lbcr-I': 'BesselI', 'lbcr-R': 'BesselR', 'lbcr-V': 'BesselV', 'lbcr-i': 'SloanI', 'lbcr-r': 'SloanR', 'lbcr-y': 'FanY', 'lbcr-z': 'SloanZ'}
filter_id_keys = ['FILT_ID', 'FILTER']
filter_var_dict = {'I-BESSEL': 'lbcr-I', 'R-BESSEL': 'lbcr-R', 'V-BESSEL': 'lbcr-V', 'Y-FAN': 'lbcr-y', 'i-SLOAN': 'lbcr-i', 'r-SLOAN': 'lbcr-r', 'z-SLOAN': 'lbcr-z'}
fringe_list = []
instrument_elevation = 3221.0
instrument_latitude = 32.7013
instrument_longitude = -109.889
instrument_name = 'LBCRED'
instrument_telescope_name = 'LBT-DX'
instrument_timezone = 7
number_of_chips = 4
obs_id_id_keys = ['LBCOBID', 'OBS_ID']
obs_name_id_keys = ['OBJNAME', 'OBS_NAME']
obs_program_id_id_keys = ['PROPID', 'OBS_PID']
obs_start_id_keys = ['DATE-OBS', 'OBS_STRT', 'DATE-OBS']
telescope_mounting = 'alt-az'
template_type = {'object': 'science', 'zero': 'bias'}
tpl_type_id_keys = ['IMAGETYP', 'TPL_TYPE']
translate_astrometric_keys(frame)

This method sets the cannonical coordinates and epoch, and constructs an Astrom object for a frame using header values, falling back to default values if necessary.

translate_date_keys(frame)

Required to translate the LBC keys ‘LST_OBS’ and ‘UTC_OBS’ to the keys ‘LST’ and ‘UTC’, and to change their format from hh:mm:ss.mm to float. Additionally, DATE_OBS must be transformed to datetime format.

translate_instrument_keys(frame)

Create an Instrument object from the header

translate_observingblock_keys(frame)

This is a copy of the parent class’s method, except for the handling of OBS_ID, where we need to strip off the leading ‘ob’ in case of LBC-RED in order to ensure that it can be converted to an integer.

translate_photometric_keys(frame)

The LBC FITS header contains only an AIRMASS keyword

astro.instrument.HeaderTranslatorMDM8K module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the MDM8K Mosaic at the MDM 2.4m telescope at Kitt Peak.

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorMDM8K.HeaderTranslatorMDM8K(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the MDM8K Mosaic at the MDM 2.4m telescope at Kitt Peak.

cd_map = {'0': [0.0, -9.61111111111111e-05, 9.61111111111111e-05, 0.0], '1': [0.0, -9.61111111111111e-05, 9.61111111111111e-05, 0.0], '2': [0.0, -9.61111111111111e-05, 9.61111111111111e-05, 0.0], '3': [0.0, -9.61111111111111e-05, 9.61111111111111e-05, 0.0], '4': [0.0, 9.61111111111111e-05, 9.61111111111111e-05, 0.0], '5': [0.0, 9.61111111111111e-05, 9.61111111111111e-05, 0.0], '6': [0.0, 9.61111111111111e-05, 9.61111111111111e-05, 0.0], '7': [0.0, 9.61111111111111e-05, 9.61111111111111e-05, 0.0]}
chip_id_keys = ['CHIP_ID', 'IMAGEID']
chip_list = ['0', '1', '2', '3', '4', '5', '6', '7']
chip_orientation = {'0': 1, '1': 1, '2': 1, '3': 1, '4': 1, '5': 1, '6': 1, '7': 1}
chip_overscan = {'0': [3, 13, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0], '1': [3, 13, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0], '2': [3, 13, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0], '3': [3, 13, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0], '4': [3, 13, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0], '5': [3, 13, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0], '6': [3, 13, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0], '7': [3, 13, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'0': 30, '1': 30, '2': 30, '3': 30, '4': 30, '5': 30, '6': 30, '7': 30}
chip_size = {'NAXIS1': 1040, 'NAXIS2': 2064}
crpix_map = {'0': [1970.0, 1487.0], '1': [918.0, 1524.0], '2': [-124.0, 1525.0], '3': [-1175.0, 1540.0], '4': [-1203.0, 2580.0], '5': [-156.0, 2595.0], '6': [891.0, 2607.0], '7': [1939.0, 2623.0]}
epoch_id_keys = ['EPOCH', 'EQUINOX']
filter_cwl = {'B': 4562.52, 'H-alpha': 3000.0, 'I': 7838.45, 'R': 6520.0, 'Rjt': 6517.25, 'U': 3636.9, 'V': 5395.62, 'Z': 3000.0}
filter_dict = {'B': 'HarrisB', 'H-alpha': 'Halpha1', 'I': 'HarrisI', 'R': 'HarrisR', 'Rjt': 'CousinsR', 'U': 'HarrisU', 'V': 'HarrisV', 'Z': 'GunnZ'}
filter_id_keys = ['FILT_ID', 'FILTER']
filter_var_dict = {'R_jt': 'Rjt'}
fringe_list = ['I', 'Z']
instrument_elevation = 1938.5
instrument_latitude = 31.95
instrument_longitude = -111.6167
instrument_name = 'MDM8K'
instrument_telescope_name = 'MDM 2.4m'
instrument_timezone = 7
number_of_chips = 8
translate_astrometric_keys(frame)
translate_date_keys(frame)
translate_instrument_keys(frame)

Create an Instrument object from the header

translate_photometric_keys(frame)

astro.instrument.HeaderTranslatorMEGACAM module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. This is the headertranslator currently only for “Elixir processed” images from MegaCam@CFHT. Raw image ingestion is possible, but has not been qualified.

class astro.instrument.HeaderTranslatorMEGACAM.HeaderTranslatorMEGACAM(chip_config=None, header=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from “Elixir processed” images from MegaCam@CFHT (3.6m class telescope).

cd_map_dict = {0: {'ccd13': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd09': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd26': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd23': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd30': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd18': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd04': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd34': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd11': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd28': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd01': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd32': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd19': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd07': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd22': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd15': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd06': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd25': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd27': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd00': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd16': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd03': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd08': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd12': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd33': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd29': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd24': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd31': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd05': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd20': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd21': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd35': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05], 'ccd14': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd17': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd02': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05], 'ccd10': [5.1944444444444446e-05, 0.0, 0.0, -5.1944444444444446e-05]}, 1: {'CARS': [-5.1944444444444446e-05, 0.0, 0.0, 5.1944444444444446e-05]}}
check_extensions(rawfitsdata)

Check that the extensions in the RawFitsData are consistent with the instrument and return the proper list of extensions

chip_config_awkey = 'AWCHPCFG'
chip_config_chip_id = ''
chip_config_default = ('MEGACAM', None, None)
chip_config_dict = {('MegaPrime', None, 'SWarp'): 1, ('MegaPrime', 'MegaCam', None): 0, ('MEGACAM', None, 'SWarp'): 1, ('MEGACAM', 'MegaCam', None): 0, ('MEGACAM', None, None): 0}
chip_config_keys = ['INSTRUME', 'DETECTOR', 'SOFTNAME']
chip_id_keys = ['CHIP_ID', 'CCDNAME']
chip_list_dict = {0: ['ccd00', 'ccd01', 'ccd02', 'ccd03', 'ccd04', 'ccd05', 'ccd06', 'ccd07', 'ccd08', 'ccd09', 'ccd10', 'ccd11', 'ccd12', 'ccd13', 'ccd14', 'ccd15', 'ccd16', 'ccd17', 'ccd18', 'ccd19', 'ccd20', 'ccd21', 'ccd22', 'ccd23', 'ccd24', 'ccd25', 'ccd26', 'ccd27', 'ccd28', 'ccd29', 'ccd30', 'ccd31', 'ccd32', 'ccd33', 'ccd34', 'ccd35'], 1: ['CARS']}
chip_orientation_dict = {0: {'ccd13': 1, 'ccd09': 1, 'ccd26': 1, 'ccd23': 1, 'ccd30': 1, 'ccd18': 1, 'ccd04': 1, 'ccd34': 1, 'ccd11': 1, 'ccd28': 1, 'ccd01': 1, 'ccd32': 1, 'ccd19': 1, 'ccd07': 1, 'ccd22': 1, 'ccd15': 1, 'ccd06': 1, 'ccd25': 1, 'ccd27': 1, 'ccd00': 1, 'ccd16': 1, 'ccd03': 1, 'ccd08': 1, 'ccd12': 1, 'ccd33': 1, 'ccd29': 1, 'ccd24': 1, 'ccd31': 1, 'ccd05': 1, 'ccd20': 1, 'ccd21': 1, 'ccd35': 1, 'ccd14': 1, 'ccd17': 1, 'ccd02': 1, 'ccd10': 1}, 1: {'CARS': 1}}
chip_overscan_dict = {0: {'ccd13': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd09': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd26': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd23': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd30': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd18': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd04': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd34': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd11': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd28': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd01': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd32': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd19': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd07': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd22': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd15': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd06': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd25': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd27': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd00': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd16': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd03': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd08': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd12': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd33': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd29': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd24': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd31': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd05': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd20': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd21': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd35': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd14': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd17': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd02': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd10': [32, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0]}, 1: {'CARS': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}}
chip_pixelsize_dict = {0: {'ccd13': 13.5, 'ccd09': 13.5, 'ccd26': 13.5, 'ccd23': 13.5, 'ccd30': 13.5, 'ccd18': 13.5, 'ccd04': 13.5, 'ccd34': 13.5, 'ccd11': 13.5, 'ccd28': 13.5, 'ccd01': 13.5, 'ccd32': 13.5, 'ccd19': 13.5, 'ccd07': 13.5, 'ccd22': 13.5, 'ccd15': 13.5, 'ccd06': 13.5, 'ccd25': 13.5, 'ccd27': 13.5, 'ccd00': 13.5, 'ccd16': 13.5, 'ccd03': 13.5, 'ccd08': 13.5, 'ccd12': 13.5, 'ccd33': 13.5, 'ccd29': 13.5, 'ccd24': 13.5, 'ccd31': 13.5, 'ccd05': 13.5, 'ccd20': 13.5, 'ccd21': 13.5, 'ccd35': 13.5, 'ccd14': 13.5, 'ccd17': 13.5, 'ccd02': 13.5, 'ccd10': 13.5}, 1: {'CARS': -1}}
chip_size_dict = {0: {'NAXIS1': 2112, 'NAXIS2': 4644}, 1: {'NAXIS1': 21000, 'NAXIS2': 21000}}
chip_var_dict = {None: 'CARS', '8352-15-5': 'ccd11', '8261-19-5': 'ccd30', '8341-16-5': 'ccd19', '8351-16-4': 'ccd29', '8352-3-4': 'ccd01', '8261-13-3': 'ccd08', '8352-15-4': 'ccd33', '8341-17-3': 'ccd15', '8341-7-5': 'ccd00', '8352-13-4': 'ccd20', '9172-1-3': 'ccd09', '8352-18-5': 'ccd25', '8351-11-5': 'ccd22', '8351-17-3': 'ccd13', '8261-14-3': 'ccd35', '8351-13-3': 'ccd06', '8434-13-5': 'ccd14', '8261-7-3': 'ccd34', '8261-16-5': 'ccd27', '8351-11-4': 'ccd16', '8351-6-3': 'ccd07', '7432-3-3': 'ccd28', '8351-20-5': 'ccd05', '8341-17-4': 'ccd04', '8351-8-3': 'ccd31', '8351-18-5': 'ccd24', '8351-20-4': 'ccd12', '8351-7-3': 'ccd26', '8261-14-4': 'ccd03', '8374-17-5': 'ccd21', '8352-4-4': 'ccd10', 'cars': 'CARS', '8351-6-4': 'ccd23', '9172-4-3': 'ccd18', '8352-15-3': 'ccd02', '7432-19-3': 'ccd17', '8352-10-4': 'ccd32'}
composite_list = []
crpix_map_dict = {0: {'ccd13': [1055.471774, 4662.395274], 'ccd09': [-7490.390992, 4683.667717], 'ccd26': [-7488.7429, 4635.550659], 'ccd23': [-1069.229068, 4613.66318], 'ccd30': [3184.141627, 9703.483841], 'ccd18': [9603.510902, 4636.822988], 'ccd04': [1056.591048, 9736.781297], 'ccd34': [-5356.372617, 9719.981184], 'ccd11': [-3189.7694, 4665.020807], 'ccd28': [7477.90079, 9723.069592], 'ccd01': [-5359.982156, 9768.556002], 'ccd32': [-1075.335574, 9702.2289], 'ccd19': [7443.247898, 4621.813118], 'ccd07': [7484.174334, 9779.941062], 'ccd22': [1057.467455, 4615.89576], 'ccd15': [5304.734715, 4668.249679], 'ccd06': [5327.028314, 9752.147713], 'ccd25': [-5329.279605, 4621.723281], 'ccd27': [9655.505185, 9766.591454], 'ccd00': [-7544.414053, 9802.815674], 'ccd16': [7438.7404, 4671.825982], 'ccd03': [-1077.447583, 9745.731465], 'ccd08': [9663.913067, 9809.217237], 'ccd12': [-1063.362415, 4662.705226], 'ccd33': [-3209.944913, 9705.222451], 'ccd29': [5321.660746, 9705.205724], 'ccd24': [-3188.991773, 4620.135475], 'ccd31': [1056.181624, 9697.107176], 'ccd05': [3183.390752, 9740.736134], 'ccd20': [5302.602681, 4622.557916], 'ccd21': [3175.311048, 4616.294057], 'ccd35': [-7532.182205, 9760.998546], 'ccd14': [3176.455206, 4659.823191], 'ccd17': [9608.438788, 4674.101973], 'ccd02': [-3212.223052, 9754.880183], 'ccd10': [-5325.881637, 4674.482787]}, 1: {'CARS': [10500, 10500]}}
epoch_id_keys = ['EPOCH', 'EQUINOX']
extract_extension(frame)

Image extraction method for this instruemnt.

Mandatory for reduced frame ingestion.

extract_header(frame)

Header extraction method for this instruemnt.

Mandatory for reduced frame ingestion.

filter_cwl = {'Ha.MP7605': 6584.0, 'HaOFF.MP7604': 6453.0, 'NONE': 3000.0, 'cn.MP7803': 8120.0, 'filter_name': 3000.0, 'g.MP9401': 4870.0, 'i.MP9701': 7700.0, 'i.MP9702': 7700.0, 'r.MP9601': 6250.0, 'tio.MP7701': 7777.0, 'u.MP9301': 3740.0, 'z.MP9801': 8500.0}
filter_dict = {'Ha.MP7605': 'H-alpha', 'HaOFF.MP7604': 'H-alpha offset', 'NONE': 'Unknown', 'cn.MP7803': 'CN', 'filter_name': 'Unknown', 'g.MP9401': 'SloanG', 'i.MP9701': 'SloanI', 'i.MP9702': 'SloanI', 'r.MP9601': 'SloanR', 'tio.MP7701': 'TiO', 'u.MP9301': 'SloanU', 'z.MP9801': 'SloanZ'}
filter_id_keys = ['FILT_ID', 'FILTER']
fringe_list = ['z.MP9801', 'i.MP9701', 'i.MP9702']
get_astrometricparameters(frame)

Make an AstrometricParameters instance for this frame.

Mandatory for reduced frame ingestion.

get_canonical_name_for_forever_weight(frame)

Helper method for get_weightframe.

Optional for reduced frame ingestion.

get_photometricparameters(frame)

Make an PhotometricParameters instance for this frame.

Mandatory for reduced frame ingestion.

get_weightframe(frame)

Main method to get a WeightFrame for this instrument.

Mandatory for reduced frame ingestion.

ingest_reduced = 1
instrument_elevation = 4215.0
instrument_latitude = 19.82667
instrument_longitude = 155.471667
instrument_name = 'MEGACAM'
instrument_telescope_name = 'CFHT 3.6m'
instrument_timezone = 10
number_of_chips_dict = {0: 36, 1: 1}
obs_PI_COI_id_id_keys = ['OBS_PIID']
obs_PI_COI_name_id_keys = ['PI_NAME', 'PROPOSER']
obs_dictionary_id_id_keys = ['OBS_DID']
obs_group_id_keys = ['OBS_GRP']
obs_id_id_keys = ['OBSID', 'EXPNUM', 'OBS_ID']
obs_name_id_keys = ['OBJECT', 'OBS_NAME']
obs_program_id_id_keys = ['RUNID', 'OBS_PID']
obs_start_id_keys = ['OBS_STRT', 'DATE-OBS']
template_type = {'BIAS': 'bias', 'DARK': 'dark', 'DOMEFLAT': 'dome', 'FLAT': 'twilight', 'OBJECT': 'science', 'SKYFLAT': 'twilight', 'STANDARD_STAR': 'photom'}
tpl_category_id_keys = ['TPL_CATG']
tpl_dictionary_id_id_keys = ['TPL_DID']
tpl_exposures_id_keys = ['TPL_NEXP']
tpl_id_id_keys = ['TPL_ID']
tpl_index_id_keys = ['TPL_INDX']
tpl_name_id_keys = ['OBJECT', 'TPL_NAME']
tpl_obs_id_id_keys = ['OBS_ID']
tpl_obs_start_id_keys = ['OBS_STRT']
tpl_sequencer_id_keys = ['TPL_SEQ']
tpl_start_id_keys = ['TPL_STRT', 'DATE-OBS']
tpl_strategy_id_keys = ['TPL_STGY']
tpl_technique_id_keys = ['TPL_TECH']
tpl_type_id_keys = ['OBSTYPE', 'EXPTYPE', 'TPL_TYPE']
tpl_version_id_keys = ['TPL_VERS']
translate_astrometric_keys(frame)

This method sets the canonical coordinates and epoch, and constructs an Astrom object for a frame using header values, falling back to default values if necessary.

translate_date_keys(frame)
translate_instrument_keys(frame)

Create an Instrument object from the header

translate_photometric_keys(frame)
translate_template_keys(frame)

Create a Template object for a frame.

astro.instrument.HeaderTranslatorMICADO module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the MICADO imager at the E-ELT.

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorMICADO.HeaderTranslatorMICADO(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the MICADO imager at the E-ELT.

cd_map = {'MICADO_SIM_CHIP1': [8.333333333333333e-07, 0.0, 0.0, 8.333333333333333e-07]}
chip_id_keys = ['CHIP_ID']
chip_list = ['MICADO_SIM_CHIP1']
chip_orientation = {'MICADO_SIM_CHIP1': 1}
chip_overscan = {'MICADO_SIM_CHIP1': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'MICADO_SIM_CHIP1': 15}
chip_size = {'NAXIS1': 4096, 'NAXIS2': 4096}
chip_var_dict = {'MICADO-CHIP1': 'MICADO_SIM_CHIP1', 'MICADO-SIM-CHIP1': 'MICADO_SIM_CHIP1'}
crpix_map = {'MICADO_SIM_CHIP1': [2048.0, 2048.0]}
epoch_id_keys = ['EPOCH', 'EQUINOX']
filter_cwl = {'MICADO_SIM_Ks': 3000.0}
filter_dict = {'MICADO_SIM_Ks': 'SIMULATED Ks'}
filter_id_keys = ['FILT_ID']
filter_var_dict = {'MICADO-Ks': 'MICADO_SIM_Ks', 'MICADO-SIM-Ks': 'MICADO_SIM_Ks'}
fringe_list = []
instrument_elevation = 2530.0
instrument_latitude = -24.6157
instrument_longitude = -70.3976
instrument_name = 'MICADO'
instrument_telescope_name = 'E-ELT'
instrument_timezone = 4
number_of_chips = 1
obs_PI_COI_id_id_keys = ['OBS_PIID']
obs_PI_COI_name_id_keys = ['PROPOSER']
obs_dictionary_id_id_keys = ['OBS_DID']
obs_group_id_keys = ['OBS_GRP']
obs_id_id_keys = ['OBS_ID']
obs_name_id_keys = ['OBS_NAME']
obs_program_id_id_keys = ['OBS_PID']
obs_start_id_keys = ['OBS_STRT', 'DATE-OBS']
telescope_mounting = 'alt-az'
tpl_category_id_keys = ['TPL_CATG']
tpl_dictionary_id_id_keys = ['TPL_DID']
tpl_exposures_id_keys = ['TPL_NEXP']
tpl_id_id_keys = ['TPL_ID']
tpl_index_id_keys = ['TPL_INDX']
tpl_name_id_keys = ['TPL_NAME']
tpl_obs_id_id_keys = ['OBS_ID']
tpl_obs_start_id_keys = ['OBS_STRT']
tpl_sequencer_id_keys = ['TPL_SEQ']
tpl_start_id_keys = ['TPL_STRT', 'DATE-OBS']
tpl_strategy_id_keys = ['TPL_STGY']
tpl_technique_id_keys = ['TPL_TECH']
tpl_type_id_keys = ['TPL_TYPE']
tpl_version_id_keys = ['TPL_VERS']

astro.instrument.HeaderTranslatorMONICA module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the MONICA CCD camera at the 0.8m telescope at Wendelstein.

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorMONICA.HeaderTranslatorMONICA(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the MONICA CCD camera at the 0.8m telescope at Wendelstein.

astrom_corr = 0
cd_map = {'Tek1024AB': [-0.0001375, 0.0, 0.0, 0.0001375]}
chip_id_keys = ['CHIP_ID', 'DETECTOR']

rfd_header_keys must contain anything that will be retained during RawFitsData conversion. If any needed key is missing from this list, an error will likely result.

The values in this list will be removed from the extension headers and added to the primary header to avoid duplication.

NOTE: This is only used when an instrument’s data must be converted to
RawFitsData prior to ingestion.
chip_list = ['Tek1024AB']
chip_orientation = {'Tek1024AB': 1}
chip_overscan = {'Tek1024AB': [50, 26, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'Tek1024AB': 24}
chip_size = {'NAXIS1': 1100, 'NAXIS2': 1040}
convert_data = 1
crpix_map = {'Tek1024AB': [0.0, 1040.0]}
epoch_id_keys = ['EPOCH', 'EPOCH']
filter_cwl = {'B_old': 4562.52, 'H_alpha': 6517.25, 'I_new': 9000.0, 'R_new': 6800.0, 'U_old': 3636.9, 'V_new': 4900.0, 'V_old': 5395.62, 'free': 3000.0}
filter_dict = {'B_old': 'JohnsonB', 'H_alpha': 'Halpha', 'I_new': 'CousinsI', 'R_new': 'CousinsR', 'U_old': 'JohnsonU', 'V_new': 'RoeserBV', 'V_old': 'JohnsonV', 'free': 'N/A'}
filter_id_keys = ['FILT_ID', 'FILTER']
filter_var_dict = {'B old': 'B_old', 'H_alpha': 'H_alpha', 'I new': 'I_new', 'I new (RG780)': 'I_new', 'R new': 'R_new', 'R new (OG570+Cfx)': 'R_new', 'U old': 'U_old', 'V new': 'V_new', 'V new (BG39)': 'V_new', 'V old': 'V_old', 'free': 'free'}
fringe_list = ['I_new']
instrument_elevation = 1845.0
instrument_latitude = 47.7083
instrument_longitude = 12.0133
instrument_name = 'MONICA'
instrument_telescope_name = 'Wendelstein 0.8m'
instrument_timezone = -1
number_of_chips = 1
obs_dictionary_id_id_keys = ['OBS_DID']
obs_id_id_keys = ['OBS_ID', 'UTC']
obs_name_id_keys = ['OBS_NAME', 'OBSERVER']
obs_program_id_id_keys = ['OBS_PID', 'PROPOSID']
obs_start_id_keys = ['OBS_STRT', 'DATE-OBS', 'DATE-OBS']
rfd_header_keys = ['INSTRUME', 'FILTER', 'DATE-OBS', 'IMAGETYP', 'CRVAL1', 'CRVAL2', 'CTYPE1', 'CTYPE2', 'DETECTOR', 'OBSERVER', 'EPOCH', 'AIRMASS', 'POSTN-RA', 'POSTN-DE']
tpl_category_id_keys = ['TPL_CATG']
tpl_dictionary_id_id_keys = ['TPL_DID']
tpl_exposures_id_keys = ['TPL_NEXP']
tpl_id_id_keys = ['TPL_ID']
tpl_index_id_keys = ['TPL_INDX']
tpl_name_id_keys = ['TPL_NAME']
tpl_obs_id_id_keys = ['OBS_ID']
tpl_obs_start_id_keys = ['OBS_STRT']
tpl_sequencer_id_keys = ['TPL_SEQ']
tpl_start_id_keys = ['TPL_STRT', 'DATE-OBS']
tpl_strategy_id_keys = ['TPL_STGY']
tpl_technique_id_keys = ['TPL_TECH']
tpl_type_id_keys = ['TPL_TYPE', 'IMAGETYP']
tpl_version_id_keys = ['TPL_VERS']
translate_astrometric_keys(frame)
translate_photometric_keys(frame)

astro.instrument.HeaderTranslatorOCAM module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. This is the headertranslator for the OmegaCAM instrument at ESO’s VST.

class astro.instrument.HeaderTranslatorOCAM.HeaderTranslatorOCAM(chip_config=None, header=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from OmegaCAM at the 2.6m VLT Survey Telescope at Paranal.

cd_map_dict = {0: {'ESO_CCD_#70': [5.925078762e-05, -2.41105852e-08, 2.048736665e-08, 5.924730655e-05], 'ESO_CCD_#74': [5.925293164e-05, -8.436892507e-08, 8.692183229e-08, 5.924385641e-05], 'ESO_CCD_#G1': [5.925e-05, 0.0, 0.0, 5.925e-05], 'ESO_CCD_#83': [5.925313583e-05, -5.124708859e-08, 4.727049863e-08, 5.924178883e-05], 'ESO_CCD_#76': [5.925079234e-05, -7.611587245e-08, 7.400445699e-08, 5.924052597e-05], 'ESO_CCD_#90': [5.925330672e-05, -8.949611595e-08, 7.593292749e-08, 5.925453001e-05], 'ESO_CCD_#66': [5.925649652e-05, -3.436245081e-08, 4.815989013e-08, 5.924932844e-05], 'ESO_CCD_#89': [5.926613308e-05, -8.921245468e-08, 6.982272907e-08, 5.925687698e-05], 'ESO_CCD_#80': [5.925644899e-05, -1.982274147e-07, 1.937976519e-07, 5.924006092e-05], 'ESO_CCD_#93': [5.925273692e-05, -1.06177432e-07, 1.02872093e-07, 5.925407659e-05], 'ESO_CCD_#67': [5.925252147e-05, -5.646571224e-08, 6.373069975e-08, 5.924812548e-05], 'ESO_CCD_#81': [5.926485976e-05, -7.580632376e-08, 6.649324511e-08, 5.924618173e-05], 'ESO_CCD_#79': [5.924767459e-05, -1.613010629e-07, 1.58019773e-07, 5.92387067e-05], 'ESO_CCD_#71': [5.925029729e-05, -1.407513217e-07, 1.309294363e-07, 5.924601851e-05], 'ESO_CCD_#68': [5.925027111e-05, -1.051605518e-07, 1.08654258e-07, 5.924898741e-05], 'ESO_CCD_#87': [5.924759052e-05, -1.43502572e-07, 1.443486849e-07, 5.924321985e-05], 'ESO_CCD_#77': [5.924852587e-05, -1.465130355e-07, 1.449479579e-07, 5.923731885e-05], 'ESO_CCD_#91': [5.925705259e-05, -1.326018746e-07, 1.21825831e-07, 5.925495317e-05], 'ESO_CCD_#95': [5.925130776e-05, -1.344577877e-07, 1.426504382e-07, 5.925334909e-05], 'ESO_CCD_#85': [5.925008158e-05, -4.240265393e-08, 4.163131296e-08, 5.924187265e-05], 'ESO_CCD_#92': [5.925388338e-05, -1.245022147e-07, 1.158641503e-07, 5.925141022e-05], 'ESO_CCD_#75': [5.925049683e-05, -1.469152247e-07, 1.48631176e-07, 5.924174934e-05], 'ESO_CCD_#69': [5.925207683e-05, -1.165106757e-07, 1.182745361e-07, 5.924740043e-05], 'ESO_CCD_#65': [5.9267953e-05, -6.997019228e-08, 8.607223829e-08, 5.925154838e-05], 'ESO_CCD_#G2': [5.925e-05, 0.0, 0.0, 5.925e-05], 'ESO_CCD_#86': [5.92480579e-05, -1.482621066e-07, 1.462106739e-07, 5.924213036e-05], 'ESO_CCD_#84': [5.925040175e-05, -7.390484459e-08, 7.173445191e-08, 5.923923495e-05], 'ESO_CCD_#94': [5.925028234e-05, -1.73838172e-07, 1.778112375e-07, 5.925144322e-05], 'ESO_CCD_#72': [5.925989715e-05, -1.665530483e-07, 1.559177704e-07, 5.92488186e-05], 'ESO_CCD_#82': [5.925322323e-05, -1.330430635e-07, 1.252095431e-07, 5.924093852e-05], 'ESO_CCD_#96': [5.925893053e-05, -9.759422418e-08, 1.097598311e-07, 5.925519691e-05], 'ESO_CCD_#73': [5.926309326e-05, -3.216870217e-08, 3.699081215e-08, 5.924626036e-05], 'ESO_CCD_#IF': [5.925e-05, 0.0, 0.0, 5.925e-05], 'ESO_CCD_#EF': [5.925e-05, 0.0, 0.0, 5.925e-05], 'ESO_CCD_#78': [5.924684531e-05, -5.32734424e-08, 5.225324771e-08, 5.92389313e-05], 'ESO_CCD_#88': [5.925474266e-05, 5.752893751e-09, -7.087279922e-09, 5.924450845e-05]}, 1: {'OCAM_THELI': [-5.925e-05, 0.0, 0.0, 5.925e-05]}}
check_extensions(rawfitsdata)

Check that the extensions in the RawFitsData are consistent with the instrument and return the proper list of extensions

chip_config_awkey = 'AWCHPCFG'
chip_config_chip_id = ''
chip_config_default = ('ESO-VLT-U0', None)
chip_config_dict = {('VST', 'SWarp'): 1, ('ESO-VST', None): 0, ('ESO-VLT-U0', None): 0, (None, 'SWarp'): 0, ('VST', None): 0, ('ESO-VLT-U0', 'SWarp'): 1}
chip_config_keys = ['TELESCOP', 'SOFTNAME']
chip_id_keys = ['CHIP_ID', 'HIERARCH ESO DET CHIP ID', 'HIERARCH ESO DET CHIP1 ID', 'HIERARCH ESO DET CHIP2 ID', 'HIERARCH ESO DET CHIP3 ID', 'HIERARCH ESO DET CHIP4 ID', 'HIERARCH ESO DET CHIP5 ID', 'HIERARCH ESO DET CHIP6 ID', 'HIERARCH ESO DET CHIP7 ID', 'HIERARCH ESO DET CHIP8 ID', 'HIERARCH ESO DET CHIP9 ID', 'HIERARCH ESO DET CHIP10 ID', 'HIERARCH ESO DET CHIP11 ID', 'HIERARCH ESO DET CHIP12 ID', 'HIERARCH ESO DET CHIP13 ID', 'HIERARCH ESO DET CHIP14 ID', 'HIERARCH ESO DET CHIP15 ID', 'HIERARCH ESO DET CHIP16 ID']
chip_list_dict = {0: ['ESO_CCD_#65', 'ESO_CCD_#66', 'ESO_CCD_#67', 'ESO_CCD_#68', 'ESO_CCD_#69', 'ESO_CCD_#70', 'ESO_CCD_#71', 'ESO_CCD_#72', 'ESO_CCD_#73', 'ESO_CCD_#74', 'ESO_CCD_#75', 'ESO_CCD_#76', 'ESO_CCD_#77', 'ESO_CCD_#78', 'ESO_CCD_#79', 'ESO_CCD_#80', 'ESO_CCD_#81', 'ESO_CCD_#82', 'ESO_CCD_#83', 'ESO_CCD_#84', 'ESO_CCD_#85', 'ESO_CCD_#86', 'ESO_CCD_#87', 'ESO_CCD_#88', 'ESO_CCD_#89', 'ESO_CCD_#90', 'ESO_CCD_#91', 'ESO_CCD_#92', 'ESO_CCD_#93', 'ESO_CCD_#94', 'ESO_CCD_#95', 'ESO_CCD_#96'], 1: ['OCAM_THELI']}
chip_orientation_dict = {0: {'ESO_CCD_#70': 1, 'ESO_CCD_#74': 1, 'ESO_CCD_#G1': 4, 'ESO_CCD_#83': 4, 'ESO_CCD_#76': 1, 'ESO_CCD_#90': 4, 'ESO_CCD_#66': 1, 'ESO_CCD_#89': 4, 'ESO_CCD_#80': 1, 'ESO_CCD_#93': 4, 'ESO_CCD_#67': 1, 'ESO_CCD_#81': 4, 'ESO_CCD_#79': 1, 'ESO_CCD_#71': 1, 'ESO_CCD_#68': 1, 'ESO_CCD_#87': 4, 'ESO_CCD_#77': 1, 'ESO_CCD_#91': 4, 'ESO_CCD_#95': 4, 'ESO_CCD_#85': 4, 'ESO_CCD_#92': 4, 'ESO_CCD_#75': 1, 'ESO_CCD_#69': 1, 'ESO_CCD_#65': 1, 'ESO_CCD_#G2': 1, 'ESO_CCD_#86': 4, 'ESO_CCD_#84': 4, 'ESO_CCD_#94': 4, 'ESO_CCD_#72': 1, 'ESO_CCD_#82': 4, 'ESO_CCD_#96': 4, 'ESO_CCD_#73': 1, 'ESO_CCD_#IF': 1, 'ESO_CCD_#EF': 4, 'ESO_CCD_#78': 1, 'ESO_CCD_#88': 4}, 1: {'OCAM_THELI': 1}}
chip_overscan_dict = {0: {'ESO_CCD_#70': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#74': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#G1': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#83': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#76': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#90': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#66': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#89': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#80': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#93': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#67': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#81': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#79': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#71': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#68': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#87': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#77': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#91': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#95': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#85': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#92': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#75': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#69': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#65': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#G2': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#86': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#84': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#94': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#72': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#82': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#96': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#73': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#IF': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#EF': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#78': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO_CCD_#88': [48, 48, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0]}, 1: {'OCAM_THELI': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}}
chip_pixelsize_dict = {0: {'ESO_CCD_#70': 15, 'ESO_CCD_#74': 15, 'ESO_CCD_#G1': 15, 'ESO_CCD_#83': 15, 'ESO_CCD_#76': 15, 'ESO_CCD_#90': 15, 'ESO_CCD_#66': 15, 'ESO_CCD_#89': 15, 'ESO_CCD_#80': 15, 'ESO_CCD_#93': 15, 'ESO_CCD_#67': 15, 'ESO_CCD_#81': 15, 'ESO_CCD_#79': 15, 'ESO_CCD_#71': 15, 'ESO_CCD_#68': 15, 'ESO_CCD_#87': 15, 'ESO_CCD_#77': 15, 'ESO_CCD_#91': 15, 'ESO_CCD_#95': 15, 'ESO_CCD_#85': 15, 'ESO_CCD_#92': 15, 'ESO_CCD_#75': 15, 'ESO_CCD_#69': 15, 'ESO_CCD_#65': 15, 'ESO_CCD_#G2': 15, 'ESO_CCD_#86': 15, 'ESO_CCD_#84': 15, 'ESO_CCD_#94': 15, 'ESO_CCD_#72': 15, 'ESO_CCD_#82': 15, 'ESO_CCD_#96': 15, 'ESO_CCD_#73': 15, 'ESO_CCD_#IF': 15, 'ESO_CCD_#EF': 15, 'ESO_CCD_#78': 15, 'ESO_CCD_#88': 15}, 1: {'OCAM_THELI': -1}}
chip_size_dict = {0: {'NAXIS1': 2144, 'NAXIS2': 4200}, 1: {'NAXIS1': 21000, 'NAXIS2': 21000}}
chip_var_dict = {None: 'OCAM_THELI', 'ESO_CCD_#98': 'ESO_CCD_#G1', 'ESO_CCD_#99': 'ESO_CCD_#IF', 'ESO_CCD_#97': 'ESO_CCD_#G2', 'ESO_CCD_#100': 'ESO_CCD_#EF'}
composite_list = ['OCAM_u_g_r_i_SDSS', 'OCAM_NB_852_861_869_878', 'OCAM_NB_454_494_533_575', 'OCAM_NB_617_710_755_817', 'OCAM_B_JOHN', 'OCAM_V_JOHN', 'OCAM_H_ALPHA']
crpix_map_dict = {0: {'ESO_CCD_#70': [-2199.08, 8560.27], 'ESO_CCD_#74': [6373.95, 4099.81], 'ESO_CCD_#G1': [-9754, -35], 'ESO_CCD_#83': [4232.73, -45.82], 'ESO_CCD_#76': [2093.0, 4099.26], 'ESO_CCD_#90': [6373.12, -4510.94], 'ESO_CCD_#66': [6370.22, 8568.88], 'ESO_CCD_#89': [8515.6, -4507.9], 'ESO_CCD_#80': [-6473.37, 4114.61], 'ESO_CCD_#93': [-55.67, -4509.53], 'ESO_CCD_#67': [4230.83, 8564.24], 'ESO_CCD_#81': [8516.01, -45.07], 'ESO_CCD_#79': [-4334.69, 4108.84], 'ESO_CCD_#71': [-4330.77, 8568.35], 'ESO_CCD_#68': [2092.91, 8563.21], 'ESO_CCD_#87': [-4337.51, -41.37], 'ESO_CCD_#77': [-49.65, 4102.52], 'ESO_CCD_#91': [4225.69, -4512.6], 'ESO_CCD_#95': [-4339.41, -4504.58], 'ESO_CCD_#85': [-47.45, -46.49], 'ESO_CCD_#92': [2084.4, -4510.98], 'ESO_CCD_#75': [4233.13, 4098.79], 'ESO_CCD_#69': [-49.58, 8560.57], 'ESO_CCD_#65': [8514.72, 8562.62], 'ESO_CCD_#G2': [11825, 4100], 'ESO_CCD_#86': [-2193.26, -42.05], 'ESO_CCD_#84': [2091.4, -47.57], 'ESO_CCD_#94': [-2203.11, -4501.83], 'ESO_CCD_#72': [-6467.85, 8572.93], 'ESO_CCD_#82': [6374.28, -52.78], 'ESO_CCD_#96': [-6479.43, -4504.85], 'ESO_CCD_#73': [8512.48, 4107.24], 'ESO_CCD_#IF': [-9774, 4120], 'ESO_CCD_#EF': [11805, -35], 'ESO_CCD_#78': [-2193.89, 4099.8], 'ESO_CCD_#88': [-6474.8, -57.54]}, 1: {'OCAM_THELI': [10500, 10500]}}
epoch_id_keys = ['EPOCH', 'EQUINOX']
extract_extension(frame)

Extract the image information from frame.

Mandatory for reduced frame ingestion.

extract_header(frame)

Extract the header information from frame.

Mandatory for reduced frame ingestion.

filter_cwl = {'NO_FILTER': 3000.0, 'OCAM_B_JOHN': 4562.5, 'OCAM_Dummy_1': 3000.0, 'OCAM_Dummy_2': 3000.0, 'OCAM_H_ALPHA': 6590.0, 'OCAM_NB_454_494_533_575': 3000.0, 'OCAM_NB_617_710_755_817': 3000.0, 'OCAM_NB_659': 6590.0, 'OCAM_NB_852_861_869_878': 8520.0, 'OCAM_V_JOHN': 5395.6, 'OCAM_g_SDSS': 4775.0, 'OCAM_i_SDSS': 7630.0, 'OCAM_r_SDSS': 6230.0, 'OCAM_u_SDSS': 3550.0, 'OCAM_u_g_r_i_SDSS': 3000.0, 'OCAM_v_STRM': 3000.0, 'OCAM_z_SDSS': 9100.0, 'P53': 3000.0, 'P54': 3000.0, 'P56': 3000.0, 'calib': 3000.0, 'opaque': 3000.0}
filter_dict = {'NO_FILTER': 'NO_FILTER', 'OCAM_B_JOHN': 'JohnsonB', 'OCAM_Dummy_1': 'Dummy_1', 'OCAM_Dummy_2': 'Dummy_2', 'OCAM_H_ALPHA': 'Halpha', 'OCAM_NB_454_494_533_575': 'something', 'OCAM_NB_617_710_755_817': 'something else', 'OCAM_NB_659': 'UnknownNB659', 'OCAM_NB_852_861_869_878': 'Halpha_z_0.5', 'OCAM_V_JOHN': 'JohnsonV', 'OCAM_g_SDSS': 'SloanG', 'OCAM_i_SDSS': 'SloanI', 'OCAM_r_SDSS': 'SloanR', 'OCAM_u_SDSS': 'SloanU', 'OCAM_u_g_r_i_SDSS': 'SloanUGRI', 'OCAM_v_STRM': 'StromgrenV', 'OCAM_z_SDSS': 'SloanZ', 'P53': 'P53', 'P54': 'P54', 'P56': 'P56', 'calib': 'calib', 'opaque': 'opaque'}
filter_id_keys = ['FILT_ID', 'HIERARCH ESO INS FILT ID', 'HIERARCH ESO INS FILT1 ID', 'FILTER']
filter_var_dict = {'PS1': 'OCAM_z_SDSS', 'PS10': 'OCAM_V_JOHN', 'PS11': 'OCAM_H_ALPHA', 'PS14': 'OCAM_NB_454_494_533_575', 'PS2': 'OCAM_g_SDSS', 'PS22': 'OCAM_NB_617_710_755_817', 'PS3': 'OCAM_i_SDSS', 'PS30': 'OCAM_NB_659', 'PS4': 'OCAM_r_SDSS', 'PS5': 'OCAM_v_STRM', 'PS59': 'OCAM_Dummy_2', 'PS6': 'OCAM_NB_852_861_869_878', 'PS60': 'OCAM_Dummy_1', 'PS7': 'OCAM_u_SDSS', 'PS9': 'OCAM_B_JOHN', 'calib': 'OCAM_u_g_r_i_SDSS', 'g_SDSS': 'OCAM_g_SDSS', 'i_SDSS': 'OCAM_i_SDSS', 'r_SDSS': 'OCAM_r_SDSS', 'u_SDSS': 'OCAM_u_SDSS'}
fringe_list = ['OCAM_i_SDSS', 'OCAM_z_SDSS', 'OCAM_u_g_r_i_SDSS']
get_astrometricparameters(frame)

Make an AstrometricParameters instance using the information in frame.

Mandatory for reduced frame ingestion.

get_other(frame)

Make instances of auxiliary objects the ingestor doesn’t know about using the information in frame.

Mandatory for reduced frame ingestion.

get_photometricparameters(frame)

Make a PhotometricParameters instance using the information in frame.

Mandatory for reduced frame ingestion.

get_weightframe(frame)

Make a WeightFrame instance using the information in frame.

Mandatory for reduced frame ingestion.

ingest_reduced = 1
instrument_elevation = 2648.0
instrument_latitude = -24.6259
instrument_longitude = -70.4032
instrument_name = 'OCAM'
instrument_telescope_name = 'ESO-VLT-U0'
instrument_timezone = 4
ll_quadrant = ['ESO_CCD_#65', 'ESO_CCD_#66', 'ESO_CCD_#67', 'ESO_CCD_#68', 'ESO_CCD_#73', 'ESO_CCD_#74', 'ESO_CCD_#75', 'ESO_CCD_#76']
lr_quadrant = ['ESO_CCD_#69', 'ESO_CCD_#70', 'ESO_CCD_#71', 'ESO_CCD_#72', 'ESO_CCD_#77', 'ESO_CCD_#78', 'ESO_CCD_#79', 'ESO_CCD_#80']
mag_id_map = {'ESO_CCD_#65': ('SloanR', 6230.0), 'ESO_CCD_#66': ('SloanR', 6230.0), 'ESO_CCD_#67': ('SloanR', 6230.0), 'ESO_CCD_#68': ('SloanR', 6230.0), 'ESO_CCD_#69': ('SloanG', 4775.0), 'ESO_CCD_#70': ('SloanG', 4775.0), 'ESO_CCD_#71': ('SloanG', 4775.0), 'ESO_CCD_#72': ('SloanG', 4775.0), 'ESO_CCD_#73': ('SloanR', 6230.0), 'ESO_CCD_#74': ('SloanR', 6230.0), 'ESO_CCD_#75': ('SloanR', 6230.0), 'ESO_CCD_#76': ('SloanR', 6230.0), 'ESO_CCD_#77': ('SloanG', 4775.0), 'ESO_CCD_#78': ('SloanG', 4775.0), 'ESO_CCD_#79': ('SloanG', 4775.0), 'ESO_CCD_#80': ('SloanG', 4775.0), 'ESO_CCD_#81': ('SloanI', 7630.0), 'ESO_CCD_#82': ('SloanI', 7630.0), 'ESO_CCD_#83': ('SloanI', 7630.0), 'ESO_CCD_#84': ('SloanI', 7630.0), 'ESO_CCD_#85': ('SloanU', 3550.0), 'ESO_CCD_#86': ('SloanU', 3550.0), 'ESO_CCD_#87': ('SloanU', 3550.0), 'ESO_CCD_#88': ('SloanU', 3550.0), 'ESO_CCD_#89': ('SloanI', 7630.0), 'ESO_CCD_#90': ('SloanI', 7630.0), 'ESO_CCD_#91': ('SloanI', 7630.0), 'ESO_CCD_#92': ('SloanI', 7630.0), 'ESO_CCD_#93': ('SloanU', 3550.0), 'ESO_CCD_#94': ('SloanU', 3550.0), 'ESO_CCD_#95': ('SloanU', 3550.0), 'ESO_CCD_#96': ('SloanU', 3550.0)}
mask_tbars = 1
montage_layout = ['ESO_CCD_#89', 'ESO_CCD_#90', 'ESO_CCD_#91', 'ESO_CCD_#92', 'ESO_CCD_#93', 'ESO_CCD_#94', 'ESO_CCD_#95', 'ESO_CCD_#96', 'ESO_CCD_#81', 'ESO_CCD_#82', 'ESO_CCD_#83', 'ESO_CCD_#84', 'ESO_CCD_#85', 'ESO_CCD_#86', 'ESO_CCD_#87', 'ESO_CCD_#88', 'ESO_CCD_#73', 'ESO_CCD_#74', 'ESO_CCD_#75', 'ESO_CCD_#76', 'ESO_CCD_#77', 'ESO_CCD_#78', 'ESO_CCD_#79', 'ESO_CCD_#80', 'ESO_CCD_#65', 'ESO_CCD_#66', 'ESO_CCD_#67', 'ESO_CCD_#68', 'ESO_CCD_#69', 'ESO_CCD_#70', 'ESO_CCD_#71', 'ESO_CCD_#72']
number_of_chips_dict = {0: 32, 1: 1}
obs_PI_COI_id_id_keys = ['HIERARCH ESO OBS PI-COI ID', 'OBS_PIID']
obs_PI_COI_name_id_keys = ['HIERARCH ESO OBS PI-COI NAME', 'PROPOSER']
obs_dictionary_id_id_keys = ['HIERARCH ESO OBS DID', 'OBS_DID']
obs_group_id_keys = ['HIERARCH ESO OBS GRP', 'OBS_GRP']
obs_id_id_keys = ['HIERARCH ESO OBS ID', 'OBS_ID']
obs_name_id_keys = ['HIERARCH ESO OBS NAME', 'OBS_NAME']
obs_program_id_id_keys = ['HIERARCH ESO OBS PROG ID', 'OBS_PID']
obs_start_id_keys = ['HIERARCH ESO OBS START', 'OBS_STRT', 'DATE-OBS']
store_and_commit_other(frame)

Store and commit any auxiliary objects the ingestor doesn’t know about using the information in frame.

Mandatory for reduced frame ingestion.

telescope_mounting = 'alt-az'
tpl_category_id_keys = ['HIERARCH ESO DPR CATG', 'TPL_CATG']
tpl_dictionary_id_id_keys = ['HIERARCH ESO TPL DID', 'TPL_DID']
tpl_exposures_id_keys = ['HIERARCH ESO TPL NEXP', 'TPL_NEXP']
tpl_id_id_keys = ['HIERARCH ESO TPL ID', 'TPL_ID']
tpl_index_id_keys = ['HIERARCH ESO OBS TPLNO', 'TPL_INDX']
tpl_name_id_keys = ['HIERARCH ESO TPL NAME', 'TPL_NAME']
tpl_obs_id_id_keys = ['HIERARCH ESO OBS ID', 'OBS_ID']
tpl_obs_start_id_keys = ['HIERARCH ESO OBS START', 'OBS_STRT']
tpl_sequencer_id_keys = ['HIERARCH ESO TPL PRESEQ', 'TPL_SEQ']
tpl_start_id_keys = ['HIERARCH ESO TPL START', 'TPL_STRT', 'DATE-OBS']
tpl_strategy_id_keys = ['HIERARCH ESO OBS STRTG', 'TPL_STGY']
tpl_technique_id_keys = ['HIERARCH ESO DPR TECH', 'TPL_TECH']
tpl_type_id_keys = ['HIERARCH ESO DPR TYPE', 'TPL_TYPE']
tpl_version_id_keys = ['HIERARCH ESO TPL VERSION', 'TPL_VERS']
translate_astrometric_keys(frame)
translate_date_keys(frame)
translate_lamp_keys(frame)
translate_observingblock_keys(frame)

Create an ObservingBlock object for a frame.

translate_photometric_keys(frame)
translate_template_keys(frame)

Create a Template object for a frame.

ul_quadrant = ['ESO_CCD_#81', 'ESO_CCD_#82', 'ESO_CCD_#83', 'ESO_CCD_#84', 'ESO_CCD_#89', 'ESO_CCD_#90', 'ESO_CCD_#91', 'ESO_CCD_#92']
ur_quadrant = ['ESO_CCD_#85', 'ESO_CCD_#86', 'ESO_CCD_#87', 'ESO_CCD_#88', 'ESO_CCD_#93', 'ESO_CCD_#94', 'ESO_CCD_#95', 'ESO_CCD_#96']
class astro.instrument.HeaderTranslatorOCAM.HeaderTranslatorOMEGACAM(chip_config=None, header=None)

Bases: astro.instrument.HeaderTranslatorOCAM.HeaderTranslatorOCAM

This class translates the headers of images from OmegaCAM at the 2.6m VLT Survey Telescope at Paranal.

This subclass of HeaderTranslatorOCAM effects an instrument name change only.

instrument_name = 'OMEGACAM'

astro.instrument.HeaderTranslatorSUP module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the Wide-Field Imager at the Subaru telescope on Mauna Kea.

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorSUP.HeaderTranslatorSUP(chip_config=None, header=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the Suprime-Cam at the Subaru telescope on Mauna Kea.

cd_map_dict = {0: {'w7c3': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w6c1': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w4c5': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si006s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si001s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si002s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w67c1': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w9c2': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w93c2': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si005s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05]}, 1: {'w7c3': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w6c1': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w4c5': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si006s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si001s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si002s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w67c1': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w9c2': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w93c2': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si005s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05]}, 2: {'w7c3': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w6c1': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w4c5': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si006s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si001s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si002s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w67c1': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w9c2': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w93c2': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si005s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05]}, 3: {'w7c3': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w6c1': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w4c5': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si006s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si001s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si002s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w67c1': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w9c2': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w93c2': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si005s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05]}, 4: {'w6c1': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si006s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si001s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si002s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w67c1': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w9c2': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w93c2': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si005s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05]}, 5: {'w6c1': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si006s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si001s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si002s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w67c1': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w9c2': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'w93c2': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05], 'si005s': [-5.6111111111111114e-05, 0.0, 0.0, 5.6111111111111114e-05]}, 6: {'w6c1': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si006s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si001s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si002s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'w9c2': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si005s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05]}, 7: {'w6c1': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si006s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si001s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si002s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'w9c2': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si005s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05]}, 8: {'w6c1': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si006s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si001s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si002s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'w9c2': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si005s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05]}, 9: {'w6c1': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si006s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si001s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si002s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'w9c2': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05], 'si005s': [5.6111111111111114e-05, 0.0, 0.0, -5.6111111111111114e-05]}}
check_extensions(rawfitsdata)

Check that the extensions in the RawFitsData are consistent with the instrument and return the proper list of extensions

chip_id_keys = ['CHIP_ID', 'DETECTOR']

rfd_header_keys must contain anything that will be retained during RawFitsData conversion. If any needed key is missing from this list, an error will likely result.

The values in this list will be removed from the extension headers and added to the primary header to avoid duplication.

NOTE: This is only used when an instrument’s data must be converted to
RawFitsData prior to ingestion.
chip_list_dict = {0: ['w93c2', 'w9c2', 'si005s', 'si001s', 'w4c5', 'w67c1', 'w6c1', 'si006s', 'si002s', 'w7c3'], 1: ['w93c2', 'w9c2', 'si005s', 'si001s', 'w4c5', 'w67c1', 'w6c1', 'si006s', 'si002s', 'w7c3'], 2: ['w93c2', 'w9c2', 'si005s', 'si001s', 'w4c5', 'w67c1', 'w6c1', 'si006s', 'si002s', 'w7c3'], 3: ['w93c2', 'w9c2', 'si005s', 'si001s', 'w4c5', 'w67c1', 'w6c1', 'si006s', 'si002s', 'w7c3'], 4: ['w93c2', 'w9c2', 'si005s', 'si001s', 'w67c1', 'w6c1', 'si006s', 'si002s'], 5: ['w93c2', 'w9c2', 'si005s', 'si001s', 'w67c1', 'w6c1', 'si006s', 'si002s'], 6: ['w9c2', 'si005s', 'si001s', 'w6c1', 'si006s', 'si002s'], 7: ['w9c2', 'si005s', 'si001s', 'w6c1', 'si006s', 'si002s'], 8: ['w9c2', 'si005s', 'si001s', 'w6c1', 'si006s', 'si002s'], 9: ['w9c2', 'si005s', 'si001s', 'w6c1', 'si006s', 'si002s']}
chip_orientation_dict = {0: {'w7c3': 4, 'w6c1': 4, 'w4c5': 1, 'si006s': 2, 'si001s': 3, 'si002s': 4, 'w67c1': 4, 'w9c2': 1, 'w93c2': 1, 'si005s': 3}, 1: {'w7c3': 4, 'w6c1': 4, 'w4c5': 1, 'si006s': 2, 'si001s': 3, 'si002s': 4, 'w67c1': 4, 'w9c2': 1, 'w93c2': 1, 'si005s': 3}, 2: {'w7c3': 4, 'w6c1': 4, 'w4c5': 1, 'si006s': 2, 'si001s': 3, 'si002s': 4, 'w67c1': 4, 'w9c2': 1, 'w93c2': 1, 'si005s': 3}, 3: {'w7c3': 4, 'w6c1': 4, 'w4c5': 1, 'si006s': 2, 'si001s': 3, 'si002s': 4, 'w67c1': 4, 'w9c2': 1, 'w93c2': 1, 'si005s': 3}, 4: {'w6c1': 4, 'si006s': 2, 'si001s': 3, 'si002s': 4, 'w67c1': 4, 'w9c2': 1, 'w93c2': 1, 'si005s': 3}, 5: {'w6c1': 4, 'si006s': 2, 'si001s': 3, 'si002s': 4, 'w67c1': 4, 'w9c2': 1, 'w93c2': 1, 'si005s': 3}, 6: {'w6c1': 2, 'si006s': 4, 'si001s': 1, 'si002s': 2, 'w9c2': 3, 'si005s': 1}, 7: {'w6c1': 2, 'si006s': 4, 'si001s': 1, 'si002s': 2, 'w9c2': 3, 'si005s': 1}, 8: {'w6c1': 2, 'si006s': 4, 'si001s': 1, 'si002s': 2, 'w9c2': 3, 'si005s': 1}, 9: {'w6c1': 4, 'si006s': 2, 'si001s': 3, 'si002s': 4, 'w9c2': 1, 'si005s': 3}}
chip_overscan_dict = {0: {'w7c3': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w6c1': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w4c5': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si006s': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si001s': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si002s': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w67c1': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w9c2': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w93c2': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si005s': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 1: {'w7c3': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w6c1': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w4c5': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si006s': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si001s': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si002s': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w67c1': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w9c2': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w93c2': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si005s': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 2: {'w7c3': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w6c1': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w4c5': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si006s': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si001s': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si002s': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w67c1': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w9c2': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w93c2': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si005s': [0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 3: {'w7c3': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w6c1': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w4c5': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si006s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si001s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si002s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w67c1': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w9c2': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w93c2': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si005s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 4: {'w6c1': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si006s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si001s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si002s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w67c1': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w9c2': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w93c2': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si005s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 5: {'w6c1': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si006s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si001s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si002s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w67c1': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w9c2': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w93c2': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si005s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 6: {'w6c1': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si006s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si001s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si002s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w9c2': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si005s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 7: {'w6c1': [0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si006s': [0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si001s': [0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si002s': [0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w9c2': [0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si005s': [0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 8: {'w6c1': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si006s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si001s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si002s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w9c2': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si005s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 9: {'w6c1': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si006s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si001s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si002s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'w9c2': [0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'si005s': [0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}}
chip_pixelsize = {'si001s': 15, 'si002s': 15, 'si005s': 15, 'si006s': 15, 'w4c5': 15, 'w67c1': 15, 'w6c1': 15, 'w7c3': 15, 'w93c2': 15, 'w9c2': 15}
chip_size_dict = {0: {'NAXIS1': 2080, 'NAXIS2': 4100}, 1: {'NAXIS1': 2080, 'NAXIS2': 4100}, 2: {'NAXIS1': 2046, 'NAXIS2': 4090}, 3: {'NAXIS1': 2046, 'NAXIS2': 4090}, 4: {'NAXIS1': 2046, 'NAXIS2': 4088}, 5: {'NAXIS1': 2046, 'NAXIS2': 4088}, 6: {'NAXIS1': 2046, 'NAXIS2': 4092}, 7: {'NAXIS1': 732, 'NAXIS2': 1364}, 8: {'NAXIS1': 2046, 'NAXIS2': 4092}, 9: {'NAXIS1': 2046, 'NAXIS2': 4092}}
convert_data = 1
crpix_map_dict = {0: {'w7c3': [-3174.0, -45.0], 'w6c1': [3195.0, -45.0], 'w4c5': [-3206.0, 4145.0], 'si006s': [1040.0, -45.0], 'si001s': [-1051.0, 4145.0], 'si002s': [-1051.0, -45.0], 'w67c1': [5318.0, -45.0], 'w9c2': [3163.0, 4145.0], 'w93c2': [5286.0, 4145.0], 'si005s': [1072.0, 4145.0]}, 1: {'w7c3': [-3174.0, -45.0], 'w6c1': [3195.0, -45.0], 'w4c5': [-3207.0, 4144.0], 'si006s': [1039.0, -45.0], 'si001s': [-1051.0, 4144.0], 'si002s': [-1051.0, -45.0], 'w67c1': [5318.0, -45.0], 'w9c2': [3162.0, 4144.0], 'w93c2': [5285.0, 4144.0], 'si005s': [1072.0, 4144.0]}, 2: {'w7c3': [-3191.0, -50.0], 'w6c1': [3178.0, -50.0], 'w4c5': [-3223.0, 4142.0], 'si006s': [1023.0, -50.0], 'si001s': [-1068.0, 4142.0], 'si002s': [-1068.0, -50.0], 'w67c1': [5301.0, -50.0], 'w9c2': [3146.0, 4142.0], 'w93c2': [5269.0, 4142.0], 'si005s': [1055.0, 4142.0]}, 3: {'w7c3': [-3139.0, -50.0], 'w6c1': [3230.0, -50.0], 'w4c5': [-3223.0, 4142.0], 'si006s': [1023.0, -50.0], 'si001s': [-1016.0, 4142.0], 'si002s': [-1016.0, -50.0], 'w67c1': [5353.0, -50.0], 'w9c2': [3146.0, 4142.0], 'w93c2': [5269.0, 4142.0], 'si005s': [1107.0, 4142.0]}, 4: {'w6c1': [3146.0, -50.0], 'si006s': [1023.0, -50.0], 'si001s': [-1100.0, 4142.0], 'si002s': [-1100.0, -50.0], 'w67c1': [5269.0, -50.0], 'w9c2': [3146.0, 4142.0], 'w93c2': [5269.0, 4142.0], 'si005s': [1023.0, 4142.0]}, 5: {'w6c1': [3146.0, -50.0], 'si006s': [1023.0, -50.0], 'si001s': [-1100.0, 4142.0], 'si002s': [-1100.0, -50.0], 'w67c1': [5269.0, -50.0], 'w9c2': [3146.0, 4142.0], 'w93c2': [5269.0, 4142.0], 'si005s': [1023.0, 4142.0]}, 6: {'w6c1': [-1100.0, -50.0], 'si006s': [1023.0, -50.0], 'si001s': [3146.0, 4142.0], 'si002s': [3146.0, -50.0], 'w9c2': [-1100.0, 4142.0], 'si005s': [1023.0, 4142.0]}, 7: {'w6c1': [-1100.0, -50.0], 'si006s': [1023.0, -50.0], 'si001s': [3146.0, 4142.0], 'si002s': [3146.0, -50.0], 'w9c2': [-1100.0, 4142.0], 'si005s': [1023.0, 4142.0]}, 8: {'w6c1': [-1100.0, -50.0], 'si006s': [1023.0, -50.0], 'si001s': [3146.0, 4142.0], 'si002s': [3146.0, -50.0], 'w9c2': [-1100.0, 4142.0], 'si005s': [1023.0, 4142.0]}, 9: {'w6c1': [-1100.0, -50.0], 'si006s': [1023.0, -50.0], 'si001s': [3146.0, 4142.0], 'si002s': [3146.0, -50.0], 'w9c2': [-1100.0, 4142.0], 'si005s': [1023.0, 4142.0]}}
filter_cwl = {'DECODERR': 3000.0, 'I-A-L527': 5270.0, 'I-A-L574': 5740.0, 'I-A-L598': 5980.0, 'I-A-L624': 6240.0, 'I-A-L651': 6510.0, 'I-A-L679': 6790.0, 'I-A-L709': 7090.0, 'I-A-L827': 8270.0, 'N-A-L503': 5030.0, 'N-A-L651': 6510.0, 'N-A-L659': 6590.0, 'N-B-L497': 4970.0, 'N-B-L570': 5700.0, 'N-B-L704': 7040.0, 'N-B-L711': 7110.0, 'N-B-L816': 8160.0, 'N-B-L912': 9120.0, 'N-B-L921': 9210.0, 'N-B-L973': 9730.0, 'None': 3000.0, 'Not init': 3000.0, 'P-A-L550': 5500.0, 'W-C-IC': 7996.0, 'W-C-RC': 6550.0, 'W-J-B': 4478.0, 'W-J-U': 3650.0, 'W-J-V': 5493.0, 'W-J-VR': 6000.0, 'W-S-G+': 4809.0, 'W-S-I+': 7709.0, 'W-S-R+': 6315.0, 'W-S-Z+': 9054.0, 'W-S-ZB': 8800.0, 'W-S-ZR': 9500.0}
filter_dict = {'DECODERR': 'DECODERR', 'I-A-L527': 'intermediateBV', 'I-A-L574': 'intermediateV', 'I-A-L598': 'intermediateVR', 'I-A-L624': 'intermediateR', 'I-A-L651': 'intermediateR', 'I-A-L679': 'intermediateR', 'I-A-L709': 'intermediateRI', 'I-A-L827': 'intermediateI', 'N-A-L503': 'narrowB', 'N-A-L651': 'narrowR', 'N-A-L659': 'narrowR', 'N-B-L497': 'narrowB', 'N-B-L570': 'narrowV', 'N-B-L704': 'narrowR', 'N-B-L711': 'narrowRI', 'N-B-L816': 'narrowI', 'N-B-L912': 'narrowZ', 'N-B-L921': 'narrowZ', 'N-B-L973': 'narrowZ', 'None': 'None', 'Not init': 'Not init', 'P-A-L550': 'unknownV', 'W-C-IC': 'CousinsI', 'W-C-RC': 'CousinsR', 'W-J-B': 'JohnsonB', 'W-J-U': 'JohnsonU', 'W-J-V': 'JohnsonV', 'W-J-VR': 'unknownVR', 'W-S-G+': 'SloanG', 'W-S-I+': 'SloanI', 'W-S-R+': 'SloanR', 'W-S-Z+': 'SloanZ', 'W-S-ZB': 'SloanZB', 'W-S-ZR': 'SloanZR'}
filter_id_keys = ['FILT_ID', 'FILTER01']
fringe_list = ['W-C-IC', 'W-S-I+', 'W-S-Z+', 'W-S-ZB', 'W-S-ZR', 'I-A-L827', 'N-B-L816', 'N-B-L912', 'N-B-L921', 'N-B-L973']
instrument_elevation = 4139.0
instrument_latitude = 19.8286
instrument_longitude = -155.4806
instrument_name = 'SUP'
instrument_telescope_name = 'Subaru'
instrument_timezone = 10
number_of_chips_dict = {0: 10, 1: 10, 2: 10, 3: 10, 4: 8, 5: 8, 6: 6, 7: 6, 8: 6, 9: 6}
obs_PI_COI_id_id_keys = ['OBS_PIID']
obs_PI_COI_name_id_keys = ['PROPOSER']
obs_dictionary_id_id_keys = ['OBS_DID']
obs_group_id_keys = ['OBS_GRP']
obs_id_id_keys = ['OBS_ID', 'EXP-ID']
obs_name_id_keys = ['OBS_NAME', 'OBJECT']
obs_program_id_id_keys = ['OBS_PID', 'PROP-ID']
obs_start_id_keys = ['OBS_STRT', 'DATE-OBS']
rfd_header_keys = ['DATE-OBS', 'TELESCOP', 'INSTRUME', 'OBJECT', 'EXPTIME', 'UT', 'UT-END', 'LST', 'FILTER01', 'DATA-TYP', 'OBSERVER', 'EXP-ID', 'PROP-ID', 'SECZ-STR', 'SECZ-END']
telescope_mounting = 'alt-az'
template_type = {'BIAS': 'bias', 'DARK': 'dark', 'DOMEFLAT': 'dome', 'OBJECT': 'science', 'SKYFLAT': 'twilight', 'STANDARD_STAR': 'photom'}
tpl_category_id_keys = ['TPL_CATG']
tpl_dictionary_id_id_keys = ['TPL_DID']
tpl_exposures_id_keys = ['TPL_NEXP']
tpl_id_id_keys = ['TPL_ID']
tpl_index_id_keys = ['TPL_INDX']
tpl_name_id_keys = ['TPL_NAME']
tpl_obs_id_id_keys = ['OBS_ID']
tpl_obs_start_id_keys = ['OBS_STRT']
tpl_sequencer_id_keys = ['TPL_SEQ']
tpl_start_id_keys = ['TPL_STRT', 'DATE-OBS']
tpl_strategy_id_keys = ['TPL_STGY']
tpl_technique_id_keys = ['TPL_TECH']
tpl_type_id_keys = ['TPL_TYPE']
tpl_version_id_keys = ['TPL_VERS']
translate_astrometric_keys(frame)

This method sets the cannonical coordinates and epoch, and constructs an Astrom object for a frame using header values, falling back to default values if necessary.

translate_date_keys(frame)
translate_instrument_keys(frame)

Create an Instrument object from the header

translate_misc_keys(frame)

Translate any header keywords that are not translated elsewhere.

translate_observingblock_keys(frame)

Create an ObservingBlock object for a frame.

translate_photometric_keys(frame)

astro.instrument.HeaderTranslatorSoftI module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the artificially generated data used in some of the unittests. Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.

class astro.instrument.HeaderTranslatorSoftI.HeaderTranslatorSoftI(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of unittestdata that is computer generated and which does not come from a real instrument mounted on a telescope. Unittestdata should have INSTRUME=’SoftI’ to use this translator.

cd_map = {'EEVCCD4482': [-6.611111111111111e-05, 0.0, 0.0, 6.611111111111111e-05], 'SoftC': [-6.611111111111111e-05, 0.0, 0.0, 6.611111111111111e-05], 'ccd50': [-6.611111111111111e-05, 0.0, 0.0, 6.611111111111111e-05]}
chip_id_keys = ['CHIP_ID', 'HIERARCH ESO DET CHIP ID', 'HIERARCH ESO DET CHIP NAME']
chip_list = ['SoftC', 'ccd50', 'EEVCCD4482']
chip_orientation = {'SoftC': 2, 'ccd50': 2}
chip_overscan = {'EEVCCD4482': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'SoftC': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd50': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
construct_filter(filter_id, *args)

This method constructs a filter from the input filter identifier.

crpix_map = {'EEVCCD4482': [4963.0, -155.0], 'SoftC': [4963.0, -155.0], 'ccd50': [4963.0, -155.0]}
epoch_id_keys = ['EPOCH', 'EQUINOX']
filter_cwl = {'845': 7838.45, 'Unknown': 3000.0}
filter_dict = {'845': 'CousinsI', 'Unknown': 'Unknown'}
filter_id_keys = ['FILT_ID', 'FILTER', 'HIERARCH ESO INS FILT ID']
filter_var_dict = {None: '845'}
fringe_list = ['845']
instrument_elevation = 2335.0
instrument_latitude = -29.2543
instrument_longitude = -70.7346
instrument_name = 'SoftI'
instrument_telescope_name = 'MPI-2.2'
instrument_timezone = 4
number_of_chips = 1

astro.instrument.HeaderTranslatorTEMPLATE module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The keyword values in the RawFitsData will be translated and written into the new raw or reduced Frame object. The example HeaderTranslator in this module deals with the Wide-Field Camera of the Advanced Camera for Surveys aboard the Hubble Space telescope.

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorTEMPLATE.HeaderTranslatorACS(chip_config=None, header=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the Advanced Camera for Surveys on the Hubble Space Telescope.

adjust_pixels(frame)
cd_map_dict = {0: {'ACS_WFC_DRZ': [0.0, 1.388888888888889e-05, 1.388888888888889e-05, 0.0]}, 1: {'ACS_WFC_2': [0.0, 1.388888888888889e-05, 1.388888888888889e-05, 0.0], 'ACS_WFC_1': [0.0, 1.388888888888889e-05, 1.388888888888889e-05, 0.0]}}
check_extensions(rawfitsdata)

Check that the extensions in the RawFitsData are consistent with the instrument and return the proper list of extensions

chip_config_awkey = 'AWCHPCFG'
chip_config_chip_id = ''
chip_config_default = (-999,)
chip_config_dict = {(-999,): 0, (1,): 1, (2,): 1}
chip_config_keys = ['CCDCHIP']
chip_id_keys = ['CHIP_ID', 'CCDCHIP']

rfd_header_keys must contain anything that will be translated during RawFitsData instantiation. If any needed key is missing from this list, an error will likely result.

chip_list_dict = {0: ['ACS_WFC_DRZ'], 1: ['ACS_WFC_1', 'ACS_WFC_2']}
chip_orientation_dict = {0: {'ACS_WFC_DRZ': 1}, 1: {'ACS_WFC_2': 1, 'ACS_WFC_1': 4}}
chip_overscan_dict = {0: {'ACS_WFC_DRZ': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 1: {'ACS_WFC_2': [24, 24, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0], 'ACS_WFC_1': [24, 24, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0]}}
chip_pixelsize_dict = {0: {'ACS_WFC_DRZ': -1}, 1: {'ACS_WFC_2': 15, 'ACS_WFC_1': 15}}
chip_size_dict = {0: {'NAXIS1': -1, 'NAXIS2': -1}, 1: {'NAXIS1': 4144, 'NAXIS2': 2068}}
chip_var_dict = {'-999': 'ACS_WFC_DRZ', '1': 'ACS_WFC_1', '2': 'ACS_WFC_2'}
compress(frame)
crpix_map_dict = {0: {'ACS_WFC_DRZ': [0.0, 0.0]}, 1: {'ACS_WFC_2': [2124.0, 1024.0], 'ACS_WFC_1': [2124.0, 1044.0]}}
extract_extension(frame)
extract_header(frame)
filter_cwl = {'F435W': 4297.0, 'F475W': 4760.0, 'F502N': 5022.0, 'F550M': 5580.0, 'F555W': 5346.0, 'F606W': 5907.0, 'F625W': 6318.0, 'F658N': 6584.0, 'F660N': 6602.0, 'F775W': 7764.0, 'F814W': 8333.0, 'F850LP': 9445.0, 'F892N': 8917.0, 'FR1016N': 10165.0, 'FR388N': 3880.0, 'FR423N': 4235.0, 'FR459M': 4590.0, 'FR462N': 4620.0, 'FR505N': 5045.0, 'FR551N': 5510.0, 'FR601N': 6010.0, 'FR647M': 6470.0, 'FR656N': 6560.0, 'FR716N': 7160.0, 'FR782N': 7815.0, 'FR853N': 8535.0, 'FR914M': 9140.0, 'FR931N': 9315.0, 'G800L': 3000.0, 'POL0UV': 3000.0, 'POL0V': 3000.0, 'POL120UV': 3000.0, 'POL120V': 3000.0, 'POL60UV': 3000.0, 'POL60V': 3000.0}
filter_dict = {'F435W': 'JohnsonB', 'F475W': 'SloanG', 'F502N': 'OIII', 'F550M': 'NarrowV', 'F555W': 'JohnsonV', 'F606W': 'BroadV', 'F625W': 'SloanR', 'F658N': 'Halpha', 'F660N': 'NII', 'F775W': 'SloanI', 'F814W': 'BroadI', 'F850LP': 'SloanZ', 'F892N': 'Methane', 'FR1016N': 'IRRamp_o', 'FR388N': 'OIIRamp_m', 'FR423N': 'OIIRamp_i', 'FR459M': 'BroadRamp_m', 'FR462N': 'OIIRamp_o', 'FR505N': 'OIIIRamp_m', 'FR551N': 'OIIIRamp_i', 'FR601N': 'OIIIRamp_0', 'FR647M': 'BroadRamp_i', 'FR656N': 'HalphaRamp_m', 'FR716N': 'HalphaRamp_i', 'FR782N': 'HalphaRamp_o', 'FR853N': 'IRRamp_i', 'FR914M': 'BroadRamp_m', 'FR931N': 'IRRamp_o', 'G800L': 'GRISM', 'POL0UV': 'UVPolarizer0deg', 'POL0V': 'VisiblePolarizer0deg', 'POL120UV': 'UVPolarizer120deg', 'POL120V': 'VisiblePolarizer120deg', 'POL60UV': 'UVPolarizer60deg', 'POL60V': 'VisiblePolarizer60deg'}
filter_id_keys = ['FILT_ID', 'FILTER1', 'FILTER2']
fringe_list = ['F814W', 'F775W', 'F850LP', 'F892N', 'FR914M', 'FR782N', 'FR853N', 'FR931N', 'FR1016N']
get_weight_extensions(frame)
get_weightframe(frame)
get_zeropoint(frame)
get_zeropoint_error(frame)
ingest_reduced = 1
instrument_elevation = 600000
instrument_latitude = 0.0
instrument_longitude = 0.0
instrument_name = 'ACS'
instrument_telescope_name = 'HST'
instrument_timezone = 0
number_of_chips_dict = {0: 1, 1: 2}
obs_name_id_keys = ['OBS_NAME', 'OBJECT']
purpose = {'BIAS': 'bias', 'DARK': 'dark', 'PIXEL-TO-PIXEL FLAT': 'dome', 'SCI': 'science'}
rfd_header_keys = ['FILETYPE', 'PROPOSID', 'TIME-OBS', 'TARGNAME', 'CTYPE1', 'CTYPE2']
translate_astrometric_keys(frame)

This method sets the canonical coordinates and epoch, and constructs an Astrom object for a frame using header values, falling back to default values if necessary.

translate_date_keys(frame)
translate_instrument_keys(frame)

Create an Instrument object from the header.

translate_misc_keys(frame)

Translate any header keywords that are not translated elsewhere.

translate_photometric_keys(frame)
astro.instrument.HeaderTranslatorTEMPLATE.get_abmag(filter)
astro.instrument.HeaderTranslatorTEMPLATE.get_stmag(filter)

astro.instrument.HeaderTranslatorVIRCAM module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. This is the headertranslator for the VIRCAM instrument at ESO’s VISTA telescope.

NOTE: VISTA uses a different astrometric projection: RA—ZPN, DEC–ZPN rather than the normal TAN system.

PROJP5 = -10000. / Old style WCS MAGZPT = 23.065 / Photometric ZP (mags) for default extinction MAGZRR = 0.052 / Photometric ZP error (mags) EXTINCT = 0.05 / Extinction coefficient (mags) NUMZPT = 228 / Number of standards used NIGHTZPT= 23.071 / Average photometric ZP (mags) for night NIGHTZRR= 0.01 / Photometric ZP sigma for night (mags) NIGHTNUM= 64 / Number of ZP used in band for night

pixelscale: 0.34’‘/pixel

See:

http://casu.ast.cam.ac.uk/surveys-projects/vista/technical/

VISTA GAIN/READ NOISE

Read noise and gain measurements with each detector listed on a separate row and each column representing a different filter. The results are consistent across the board with the possible exception of #16 problems and #13 which is quite non-linear. H and K are not included as the linearity sequences saturated too early to be useful for this recipe. Readout noise results

# NB118 Z Y J 1 22.903 22.782 22.791 27.231 2 22.394 26.694 22.007 26.665 3 20.708 24.783 20.186 25.402 4 21.734 25.758 21.145 27.222 5 21.770 25.989 21.586 28.364 6 21.258 25.579 21.504 26.241 7 24.378 23.737 19.814 24.505 8 21.732 26.474 21.853 27.160 9 19.418 18.838 18.401 19.209

10 24.888 24.740 24.280 25.786 11 24.039 23.504 23.543 25.512 12 25.233 24.403 20.398 25.153 13 26.898 29.973 24.128 25.341 14 19.780 19.652 14.989 20.558 15 17.113 19.643 16.650 17.380 16 23.477 19.398 17.497 22.714

Gain results

# NB118 Z Y J Average 1 3.648 3.628 3.630 3.717 3.66 2 4.280 4.251 4.206 4.247 4.25 3 3.957 3.947 3.858 4.045 3.95 4 4.154 4.102 4.041 4.335 4.16 5 4.160 4.139 4.125 4.517 4.24 6 4.063 4.074 4.110 4.179 4.11 7 3.882 3.780 3.787 3.903 3.84 8 4.153 4.216 4.176 4.326 4.22 9 4.639 4.500 4.396 4.589 4.53

10 3.964 3.940 3.867 4.107 3.97 11 4.594 4.492 4.499 4.876 4.62 12 4.018 3.886 3.898 4.006 3.95 13 5.140 5.728 5.764 6.054 5.67 14 4.725 4.695 4.774 4.911 4.78 15 4.088 3.754 3.977 4.152 3.99 16 5.608 4.634 4.180 5.426 4.96

median gain 4.19 (cf. 4.3 for wfcam)


class astro.instrument.HeaderTranslatorVIRCAM.HeaderTranslatorVIRCAM(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from VIRCAM at the VISTA Telescope at Paranal.

cd_map = {'ESO-Virgo22': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo23': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo25': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo30': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo33': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo35': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo36': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo38': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo39': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo41': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo42': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo43': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo44': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo45': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo46': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0], 'ESO-Virgo47': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0]}
chip_id_keys = ['CHIP_ID', 'HIERARCH ESO DET CHIP ID']
chip_list = ['ESO-Virgo22', 'ESO-Virgo23', 'ESO-Virgo25', 'ESO-Virgo30', 'ESO-Virgo33', 'ESO-Virgo35', 'ESO-Virgo36', 'ESO-Virgo38', 'ESO-Virgo39', 'ESO-Virgo41', 'ESO-Virgo42', 'ESO-Virgo43', 'ESO-Virgo44', 'ESO-Virgo45', 'ESO-Virgo46', 'ESO-Virgo47']
chip_orientation = {'ESO-Virgo22': 1, 'ESO-Virgo23': 1, 'ESO-Virgo25': 1, 'ESO-Virgo30': 1, 'ESO-Virgo33': 1, 'ESO-Virgo35': 1, 'ESO-Virgo36': 1, 'ESO-Virgo38': 1, 'ESO-Virgo39': 1, 'ESO-Virgo41': 1, 'ESO-Virgo42': 1, 'ESO-Virgo43': 1, 'ESO-Virgo44': 1, 'ESO-Virgo45': 1, 'ESO-Virgo46': 1, 'ESO-Virgo47': 1}
chip_overscan = {'ESO-Virgo22': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo23': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo25': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo30': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo33': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo35': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo36': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo38': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo39': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo41': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo42': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo43': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo44': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo45': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo46': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ESO-Virgo47': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'ESO-Virgo22': 20, 'ESO-Virgo23': 20, 'ESO-Virgo25': 20, 'ESO-Virgo30': 20, 'ESO-Virgo33': 20, 'ESO-Virgo35': 20, 'ESO-Virgo36': 20, 'ESO-Virgo38': 20, 'ESO-Virgo39': 20, 'ESO-Virgo41': 20, 'ESO-Virgo42': 20, 'ESO-Virgo43': 20, 'ESO-Virgo44': 20, 'ESO-Virgo45': 20, 'ESO-Virgo46': 20, 'ESO-Virgo47': 20}
chip_size = {'NAXIS1': 2048, 'NAXIS2': 2048}
composite_list = []
crpix_map = {'ESO-Virgo22': [2470.2, 6847.8], 'ESO-Virgo23': [-448.2, 6847.8], 'ESO-Virgo25': [-3366.6, 2956.6], 'ESO-Virgo30': [5388.6, -4825.8], 'ESO-Virgo33': [-448.2, -934.6], 'ESO-Virgo35': [5388.6, 6847.8], 'ESO-Virgo36': [2470.2, 2956.6], 'ESO-Virgo38': [-3366.6, -4825.8], 'ESO-Virgo39': [5388.6, 2956.6], 'ESO-Virgo41': [-448.2, 2956.6], 'ESO-Virgo42': [-448.2, -4825.8], 'ESO-Virgo43': [2470.2, -4825.8], 'ESO-Virgo44': [-3366.6, 6847.8], 'ESO-Virgo45': [5388.6, -934.6], 'ESO-Virgo46': [-3366.6, -934.6], 'ESO-Virgo47': [2470.2, -934.6]}
epoch_id_keys = ['EPOCH', 'EQUINOX']
extract_extension(frame)

Image extraction method for this instrument.

Mandatory for reduced frame ingestion.

extract_header(frame)

Header extraction method for this instrument.

Mandatory for reduced frame ingestion.

filter_cwl = {'ESO-H-0002': 16500.0, 'ESO-J-0002': 12500.0, 'ESO-Ks-0002': 21500.0, 'ESO-Y-0002': 10200.0, 'ESO-Z-0001': 9000.0, 'SUNBLIND': 3000.0}
filter_dict = {'ESO-H-0002': 'H', 'ESO-J-0002': 'J', 'ESO-Ks-0002': 'Ks', 'ESO-Y-0002': 'Y', 'ESO-Z-0001': 'Z', 'SUNBLIND': 'SUNBLIND'}
filter_id_keys = ['FILT_ID', 'HIERARCH ESO INS FILT1 TRAYID']
fringe_list = []
get_astrometricparameters(frame)

Make an AstrometricParameters instance for this frame.

Mandatory for reduced frame ingestion.

get_awe_weightname_from_awe_rawfitsdata(rawfitsdata)

Returns the Astro-WISE filename of the weight belonging to the RawFitsData object that is being ingested.

get_casu_weightname_from_awe_rawfitsdata(rawfitsdata)

Returns the original CASU filename of the weight belonging to the RawFitsData object that is being ingested.

Weights for VIRCAM are found in the following formats:

  1. v20100117_00130_st_conf.fit (stacks)
  2. Ks_conf_jan2010.fit (individual pawprints)

In case 1) the weight is named like the stack, but with the added string “_conf”. In case 2) this weight filename is found in the headers of the single pawprints.

get_casuvers_from_header(header)
get_photometricparameters(frame)

Make an PhotometricParameters instance for this frame.

Mandatory for reduced frame ingestion.

PhotometricParameters can only be made for Stacks and Tiles.

get_weightframe(frame)
get_weightname_from_header(header)

Weightname is for a single extension

ingest_reduced = 1
instrument_elevation = 2530.0
instrument_latitude = -24.6157
instrument_longitude = -70.3976
instrument_name = 'VIRCAM'
instrument_telescope_name = 'ESO-VISTA'
instrument_timezone = 4
number_of_chips = 16
obs_PI_COI_id_id_keys = ['HIERARCH ESO OBS PI-COI ID', 'OBS_PIID']
obs_PI_COI_name_id_keys = ['HIERARCH ESO OBS PI-COI NAME', 'PROPOSER']
obs_dictionary_id_id_keys = ['HIERARCH ESO OBS DID', 'OBS_DID']
obs_group_id_keys = ['HIERARCH ESO OBS GRP', 'OBS_GRP']
obs_id_id_keys = ['HIERARCH ESO OBS ID', 'OBS_ID']
obs_name_id_keys = ['HIERARCH ESO OBS NAME', 'OBS_NAME']
obs_program_id_id_keys = ['HIERARCH ESO OBS PROG ID', 'OBS_PID']
obs_start_id_keys = ['HIERARCH ESO OBS START', 'OBS_STRT', 'DATE-OBS']
telescope_mounting = 'alt-az'
tpl_category_id_keys = ['HIERARCH ESO DPR CATG', 'TPL_CATG']
tpl_dictionary_id_id_keys = ['HIERARCH ESO TPL DID', 'TPL_DID']
tpl_exposures_id_keys = ['HIERARCH ESO TPL NEXP', 'TPL_NEXP']
tpl_id_id_keys = ['HIERARCH ESO TPL ID', 'TPL_ID']
tpl_index_id_keys = ['HIERARCH ESO OBS TPLNO', 'TPL_INDX']
tpl_name_id_keys = ['HIERARCH ESO TPL NAME', 'TPL_NAME']
tpl_obs_id_id_keys = ['HIERARCH ESO OBS ID', 'OBS_ID']
tpl_obs_start_id_keys = ['HIERARCH ESO OBS START', 'OBS_STRT']
tpl_sequencer_id_keys = ['HIERARCH ESO TPL PRESEQ', 'TPL_SEQ']
tpl_start_id_keys = ['HIERARCH ESO TPL START', 'TPL_STRT', 'DATE-OBS']
tpl_strategy_id_keys = ['HIERARCH ESO OBS STRTG', 'TPL_STGY']
tpl_technique_id_keys = ['HIERARCH ESO DPR TECH', 'TPL_TECH']
tpl_type_id_keys = ['HIERARCH ESO DPR TYPE', 'TPL_TYPE']
tpl_version_id_keys = ['HIERARCH ESO TPL VERSION', 'TPL_VERS']
translate_astrometric_keys(frame)
translate_date_keys(frame)
translate_misc_keys(frame)

Translate any header keywords that are not translated elsewhere.

translate_observingblock_keys(frame)

Create an ObservingBlock object for a frame.

translate_photometric_keys(frame)
translate_template_keys(frame)

Create a Template object for a frame.

update_weight_to_individual(frame)

Use the weights provided for VISTA, then update them so they are according to the Astro-WISE standard. 1) Normalize the weight to 1 2) Derive SaturatedPixelMap, SatelliteMap and CosmicMap and assign

the affected pixels weight 0.
class astro.instrument.HeaderTranslatorVIRCAM.HeaderTranslatorVIRCAMTile(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslatorVIRCAM.HeaderTranslatorVIRCAM

This class derives from HeaderTranslatorVIRCAM, and is only used to translate the header for CASU tiles. Single pawprints and stacks are translated using the normal HeaderTranslatorVIRCAM class.

cd_map = {'CASUTILE': [0, 9.444444444444446e-05, -9.444444444444446e-05, 0]}
chip_list = ['CASUTILE']
chip_orientation = {'CASUTILE': 1}
chip_overscan = {'CASUTILE': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'CASUTILE': 20}
chip_size = {'NAXIS1': 12800, 'NAXIS2': 15700}
crpix_map = {'CASUTILE': [6400, 7850]}
number_of_chips = 1
astro.instrument.HeaderTranslatorVIRCAM.create_vircam_translator(header=None, chip_config=None)
astro.instrument.HeaderTranslatorVIRCAM.is_compressed(rawfitsdata)
astro.instrument.HeaderTranslatorVIRCAM.name_insert_suffix(filename, suffix, separator='.')
astro.instrument.HeaderTranslatorVIRCAM.string_insert_after(strng, match, text)

astro.instrument.HeaderTranslatorWFC module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the Wide-Field Camera at the Isaac Newton Telescope at La Palma.

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorWFC.HeaderTranslatorWFC(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the Wide-Field Camera at the Isaac Newton Telescope at La Palma.

cd_map = {'A5382-1-7': [0.0, -9.25e-05, -9.25e-05, 0.0], 'A5383-17-7': [9.25e-05, 0.0, 0.0, -9.25e-05], 'A5506-4': [0.0, -9.25e-05, -9.25e-05, 0.0], 'A5530-3': [0.0, -9.25e-05, -9.25e-05, 0.0]}
chip_id_keys = ['CHIP_ID', 'CCDNAME']
chip_list = ['A5382-1-7', 'A5383-17-7', 'A5506-4', 'A5530-3']
chip_orientation = {'A5382-1-7': 1, 'A5383-17-7': 1, 'A5506-4': 1, 'A5530-3': 1}
chip_overscan = {'A5382-1-7': [53, 53, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0], 'A5383-17-7': [53, 53, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0], 'A5506-4': [53, 53, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0], 'A5530-3': [53, 53, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'A5382-1-7': 13.5, 'A5383-17-7': 13.5, 'A5506-4': 13.5, 'A5530-3': 13.5}
chip_size = {'NAXIS1': 2154, 'NAXIS2': 4200}
correct_for_aperture(crval1, crval2, frame)

This method takes into account the capability of the INT-WFC to center the positional coordinates either on the center of any of the 4 chips or on the rotator center of the instrument.

crpix_map = {'A5382-1-7': [1041.0, 2056.0], 'A5383-17-7': [4200.0, 970.0], 'A5506-4': [-1082.0, 2021.0], 'A5530-3': [3115.0, 2117.0]}
epoch_id_keys = ['EPOCH', 'EQUINOX']
filter_cwl = {'191': 4298.0, '192': 5425.0, '193': 6380.0, '194': 8063.0, '195': 8763.0, '196': 5008.0, '197': 6568.0, '198': 3480.0, '199': 4110.0, '200': 4695.0, '201': 5505.0, '204': 3581.0, '206': 4686.0, '207': 3727.0, '208': 9190.0, '209': 8160.0, '210': 4407.0, '211': 5027.0, '212': 6725.0, '214': 6240.0, '215': 7743.0, '220': 4846.0, '222': 6000.0, '223': 5143.0, '224': 4861.0, '225': 4861.0, '226': 6886.0, '227': 6657.0, '228': 6800.0, '229': 5870.0, '236': 7839.0, '237': 8038.5, '238': 3918.0, '239': 7941.0, '240': 7743.0, '241': 8089.0}
filter_dict = {'191': 'HarrisB', '192': 'HarrisV', '193': 'HarrisR', '194': 'RGO_I', '195': 'RGO_Z', '196': 'OIII', '197': 'Halpha', '198': 'StromgrenU', '199': 'StromgrenV', '200': 'StromgrenB', '201': 'StromgrenY', '204': 'RGO_U', '206': 'HeII', '207': 'OII', '208': 'Halpha_redshift1', '209': 'Halpha_redshift2', '210': 'KittPeakB', '211': 'OIII_redshift', '212': 'SII', '214': 'SloanR', '215': 'SloanI', '220': 'SloanG', '222': 'Clear', '223': 'Wash51', '224': 'StrHbW', '225': 'StrHbN', '226': 'NB_ED338', '227': 'NB_ED337', '228': 'NB_ED336', '229': 'NB_HeI', '236': 'NB_NOVA782HA', '237': 'NB_NOVA804HA', '238': 'NB_NOVA392', '239': 'NB_NOVA7941', '240': 'NB_NOVA7743', '241': 'NB_NOVA8089'}
filter_id_keys = ['FILT_ID', 'WFFID']
fringe_list = ['193', '194', '195', '212', '214', '215', '228']
instrument_elevation = 2348.0
instrument_latitude = 28.762
instrument_longitude = -17.877592
instrument_name = 'WFC'
instrument_telescope_name = 'INT'
instrument_timezone = 0
number_of_chips = 4
translate_astrometric_keys(frame)
translate_date_keys(frame)
translate_photometric_keys(frame)

astro.instrument.HeaderTranslatorWFCAM module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The keyword values in the RawFitsData will be translated and written into the new raw or reduced Frame object. The HeaderTranslator in this module deals with the infrared Wide-Field CAMera mounted on the UKIRT telescope atop Mauna Kea, Hawaii.

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorWFCAM.HeaderTranslatorWFCAM(chip_config=None, header=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the WFCAM instrument on the UKIRT atop Mauna Kea in Hawaii.

cd_map_dict = {0: {'RSC_H2_76': [0.0, 0.00011111111111111112, -0.00011111111111111112, 0.0], 'RSC_H2_41': [0.00011111111111111112, 0.0, 0.0, 0.00011111111111111112], 'RSC_H2_63': [-0.00011111111111111112, 0.0, 0.0, -0.00011111111111111112], 'RSC_H2_60': [0.0, -0.00011111111111111112, 0.00011111111111111112, 0.0]}}
check_extensions(rawfitsdata)

Check that the extensions in the RawFitsData are consistent with the instrument and return the proper list of extensions

chip_config_awkey = 'AWCHPCFG'
chip_config_chip_id = ''
chip_config_default = None
chip_config_dict = {None: 0}
chip_config_keys = []
chip_id_keys = ['CHIP_ID', 'DETECTID']
chip_list_dict = {0: ['RSC_H2_60', 'RSC_H2_63', 'RSC_H2_76', 'RSC_H2_41']}
chip_orientation_dict = {0: {'RSC_H2_76': 1, 'RSC_H2_41': 1, 'RSC_H2_63': 1, 'RSC_H2_60': 1}}
chip_overscan_dict = {0: {'RSC_H2_76': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'RSC_H2_41': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'RSC_H2_63': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'RSC_H2_60': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}}
chip_pixelsize_dict = {0: {'RSC_H2_76': 18, 'RSC_H2_41': 18, 'RSC_H2_63': 18, 'RSC_H2_60': 18}}
chip_size_dict = {0: {'NAXIS1': 2048, 'NAXIS2': 2048}}
chip_var_dict = {'RSC:H2:41': 'RSC_H2_41', 'RSC:H2:60': 'RSC_H2_60', 'RSC:H2:63': 'RSC_H2_63', 'RSC:H2:76': 'RSC_H2_76'}
convert_data = 1
crpix_map_dict = {0: {'RSC_H2_76': [3000.0, -973.0], 'RSC_H2_41': [2994.6, -966.5], 'RSC_H2_63': [3005.7, -969.3], 'RSC_H2_60': [3003.6, -959.2]}}
extract_extension(frame)

Image extraction method for this instruemnt.

Mandatory for reduced frame ingestion.

extract_header(frame)

Header extraction method for this instruemnt.

Mandatory for reduced frame ingestion.

filter_cwl = {'Blank': 3000.0, 'Br_gamma': 21660.0, 'H2_1_0_S1': 21215.0, 'WFCAM_H': 16350.0, 'WFCAM_J': 12500.0, 'WFCAM_K': 22000.0, 'WFCAM_Y': 10200.0, 'WFCAM_Z': 8775.0}
filter_dict = {'Blank': 'Blank', 'Br_gamma': 'UnknownNarrow', 'H2_1_0_S1': 'UnknownNarrow', 'WFCAM_H': 'UnknownH', 'WFCAM_J': 'UnknownJ', 'WFCAM_K': 'UnknownK', 'WFCAM_Y': 'UnknownY', 'WFCAM_Z': 'SloanZ'}
filter_id_keys = ['FILT_ID', 'FILTER']
filter_var_dict = {'Br gamma': 'Br_gamma', 'H': 'WFCAM_H', 'H2 1-0 S1': 'H2_1_0_S1', 'J': 'WFCAM_J', 'K': 'WFCAM_K', 'Y': 'WFCAM_Y', 'Z': 'WFCAM_Z'}
fringe_list = []
get_astrometricparameters(frame)

Make an AstrometricParameters instance for this frame.

Mandatory for reduced frame ingestion.

get_canonical_name_for_forever_weight(frame)

Helper method for get_weightframe.

Optional for reduced frame ingestion.

get_photometricparameters(frame)

Make an PhotometricParameters instance for this frame.

Mandatory for reduced frame ingestion.

get_weightframe(frame)

Main method to get a WeightFrame for this instrument.

Mandatory for reduced frame ingestion.

ingest_reduced = 1
instrument_elevation = 4194
instrument_latitude = 19.8256
instrument_longitude = -155.4732
instrument_name = 'WFCAM'
instrument_telescope_name = 'UKIRT'
instrument_timezone = 10
number_of_chips_dict = {0: 4}
obs_PI_COI_id_id_keys = ['OBS_PIID']
obs_PI_COI_name_id_keys = ['PROPOSER']
obs_dictionary_id_id_keys = ['OBS_DID']
obs_group_id_keys = ['OBS_GRP']
obs_id_id_keys = ['OBS_ID', 'OBSNUM']
obs_name_id_keys = ['OBS_NAME', 'OBJECT']
obs_program_id_id_keys = ['OBS_PID', 'PROJECT']
obs_start_id_keys = ['OBS_STRT', 'DATE-OBS']
template_type = {'BIAS': 'bias', 'DARK': 'dark', 'DOMEFLAT': 'dome', 'OBJECT': 'science', 'SKYFLAT': 'twilight'}
tpl_category_id_keys = ['TPL_CATG']
tpl_dictionary_id_id_keys = ['TPL_DID']
tpl_exposures_id_keys = ['TPL_NEXP', 'NINT']
tpl_id_id_keys = ['TPL_ID']
tpl_index_id_keys = ['TPL_INDX']
tpl_name_id_keys = ['TPL_NAME', 'RECIPE']
tpl_obs_id_id_keys = ['OBS_ID']
tpl_obs_start_id_keys = ['OBS_STRT']
tpl_sequencer_id_keys = ['TPL_SEQ']
tpl_start_id_keys = ['TPL_STRT', 'DATE-OBS']
tpl_strategy_id_keys = ['TPL_STGY']
tpl_technique_id_keys = ['TPL_TECH']
tpl_type_id_keys = ['TPL_TYPE', 'OBSTYPE']
tpl_version_id_keys = ['TPL_VERS']
translate_astrometric_keys(frame)

This method sets the canonical coordinates and epoch, and constructs an Astrom object for a frame using header values, falling back to default values if necessary.

translate_date_keys(frame)
translate_misc_keys(frame)

Translate any header keywords that are not translated elsewhere.

translate_photometric_keys(frame)
translate_template_keys(frame)

Create a Template object for a frame.

astro.instrument.HeaderTranslatorWFI module


The HeaderTranslator family of classes is used to encapsulate the large variation in header keywords that exists for different instruments. The specific HeaderTranslator in this module deals with the Wide-Field Imager at the ESO 2.2m telescope at La Silla.

Detailed documentation about the HeaderTranslator class family can be found in the HeaderTranslator module.


class astro.instrument.HeaderTranslatorWFI.HeaderTranslatorWFI(header=None, chip_config=None)

Bases: astro.instrument.HeaderTranslator.HeaderTranslator

This class translates the headers of images from the Wide-Field Imager at the ESO 2.2m telescope at La Silla.

astrom_corr = 1
cd_map = {'ccd50': [-6.611111111111111e-05, 0.0, 0.0, 6.611111111111111e-05], 'ccd51': [-6.611111111111111e-05, 0.0, 0.0, 6.611111111111111e-05], 'ccd52': [-6.611111111111111e-05, 0.0, 0.0, 6.611111111111111e-05], 'ccd53': [-6.611111111111111e-05, 0.0, 0.0, 6.611111111111111e-05], 'ccd54': [-6.611111111111111e-05, 0.0, 0.0, 6.611111111111111e-05], 'ccd55': [-6.611111111111111e-05, 0.0, 0.0, 6.611111111111111e-05], 'ccd56': [-6.611111111111111e-05, 0.0, 0.0, 6.611111111111111e-05], 'ccd57': [-6.611111111111111e-05, 0.0, 0.0, 6.611111111111111e-05]}
chip_id_keys = ['CHIP_ID', 'HIERARCH ESO DET CHIP ID', 'HIERARCH ESO DET CHIP1 ID', 'HIERARCH ESO DET CHIP2 ID', 'HIERARCH ESO DET CHIP3 ID', 'HIERARCH ESO DET CHIP4 ID', 'HIERARCH ESO DET CHIP5 ID', 'HIERARCH ESO DET CHIP6 ID', 'HIERARCH ESO DET CHIP7 ID', 'HIERARCH ESO DET CHIP8 ID', 'HIERARCH ESO DET CHIP NAME']
chip_list = ['ccd50', 'ccd51', 'ccd52', 'ccd53', 'ccd54', 'ccd55', 'ccd56', 'ccd57']
chip_orientation = {'ccd50': 2, 'ccd51': 2, 'ccd52': 2, 'ccd53': 2, 'ccd54': 1, 'ccd55': 1, 'ccd56': 1, 'ccd57': 1}
chip_overscan = {'ccd50': [48, 48, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd51': [48, 48, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd52': [48, 48, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd53': [48, 48, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd54': [48, 48, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd55': [48, 48, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd56': [48, 48, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0], 'ccd57': [48, 48, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0]}
chip_pixelsize = {'ccd50': 15, 'ccd51': 15, 'ccd52': 15, 'ccd53': 15, 'ccd54': 15, 'ccd55': 15, 'ccd56': 15, 'ccd57': 15}
chip_size = {'NAXIS1': 2142, 'NAXIS2': 4128}
crpix_map = {'ccd50': [4061.0, -223.0], 'ccd51': [1918.0, -222.0], 'ccd52': [-226.0, -223.0], 'ccd53': [-2366.0, -222.0], 'ccd54': [-2364.0, 3904.0], 'ccd55': [-215.0, 3899.0], 'ccd56': [1919.0, 3901.0], 'ccd57': [4061.0, 3898.0]}
epoch_id_keys = ['EPOCH', 'EQUINOX']
filter_cwl = {'#841': 3636.9, '#842': 4562.52, '#843': 5395.62, '#844': 6517.25, '#845': 7838.45, '#846': 9648.19, '#847': 7217.94, '#848': 7532.29, '#849': 7704.64, '#850': 7906.1, '#851': 8158.71, '#852': 8377.65, '#853': 8562.12, '#854': 9147.99, '#856': 6588.27, '#857': 6763.4, '#858': 6655.61, '#859': 5023.93, '#860': 4858.09, '#862': 5188.29, '#864': 6043.01, '#865': 3963.29, '#867': 6462.87, '#869': 6962.88, '#870': 8841.64, '#871': 5164.97, '#872': 4166.51, '#873': 4455.2, '#874': 4614.78, '#875': 5315.04, '#877': 3404.0, '#878': 4511.0, '#879': 8269.0, 'Gieren_501_2_2.7': 5012.0, 'MB#549_16': 5458.0}
filter_dict = {'#841': 'JohnsonU', '#842': 'JohnsonB', '#843': 'JohnsonV', '#844': 'CousinsR', '#845': 'CousinsI', '#846': 'CousinsZ', '#847': '721', '#848': '753', '#849': '770', '#850': '790', '#851': '815', '#852': '837', '#853': '856', '#854': '914', '#856': 'Halpha1', '#857': 'SII', '#858': '665', '#859': 'OIII1', '#870': '884', '#871': '516', '#872': '416', '#877': 'JohnsonU', '#878': 'JohnsonB', '#879': 'CousinsI', 'Gieren_501_2_2.7': 'NB OIII 2.7nm', 'MB#549_16': 'MB 549 16nm', 'Misc#_Black_Paper': 'N/A', 'Misc#_BtLght_WFI': 'N/A', 'Misc#_Pinhole': 'N/A', 'NB#810/6': 'N/A', 'NB#817/7': 'N/A', 'NB#824/7': 'N/A', 'NB#OIII/2': 'N/A', 'U_Capodimonte': 'N/A', 'White': 'N/A'}
filter_id_keys = ['FILT_ID', 'HIERARCH ESO INS FILT ID', 'HIERARCH ESO INS FILT1 ID', 'HIERARCH ESO INS FILT2 ID', 'HIERARCH ESO INS FILT3 ID', 'HIERARCH ESO INS FILT4 ID', 'HIERARCH ESO INS FILT5 ID', 'HIERARCH ESO INS FILT6 ID', 'HIERARCH ESO INS FILT7 ID', 'HIERARCH ESO INS FILT8 ID', 'FILTER']
filter_var_dict = {'841': '#841', '842': '#842', '843': '#843', '844': '#844', '845': '#845', '846': '#846', '847': '#847', '848': '#848', '849': '#849', '850': '#850', '851': '#851', '852': '#852', '853': '#853', '854': '#854', '856': '#856', '857': '#857', '858': '#858', '859': '#859', '860': '#860', '862': '#862', '864': '#864', '865': '#865', '867': '#867', '869': '#869', '870': '#870', '871': '#871', '872': '#872', '873': '#873', '875': '#875', '877': '#877', '878': '#878', '879': '#879', 'BB#B/123_ESO878': '#878', 'BB#B_NEW': '#878', 'BB#I/203_ESO879': '#879', 'BB#I_EIS': '#879', 'BB#U/50_ESO877': '#877', 'Gieren_501_2/2.7': 'Gieren_501_2_2.7', 'MB#549/16': 'MB#549_16', 'U_360/50': '#877'}
fringe_list = ['#845', '#846', '#850', '#851', '#852', '#853', '#854', '#870', '#879', 'White']
instrument_elevation = 2335.0
instrument_latitude = -29.2543
instrument_longitude = -70.7346
instrument_name = 'WFI'
instrument_telescope_name = 'MPI-2.2'
instrument_timezone = 4
number_of_chips = 8
obs_PI_COI_id_id_keys = ['HIERARCH ESO OBS PI-COI ID', 'OBS_PIID']
obs_PI_COI_name_id_keys = ['HIERARCH ESO OBS PI-COI NAME', 'PROPOSER']
obs_dictionary_id_id_keys = ['HIERARCH ESO OBS DID', 'OBS_DID']
obs_group_id_keys = ['HIERARCH ESO OBS GRP', 'OBS_GRP']
obs_id_id_keys = ['HIERARCH ESO OBS ID', 'OBS_ID']
obs_name_id_keys = ['HIERARCH ESO OBS NAME', 'OBS_NAME']
obs_program_id_id_keys = ['HIERARCH ESO OBS PROG ID', 'OBS_PID']
obs_start_id_keys = ['HIERARCH ESO OBS START', 'OBS_STRT', 'DATE-OBS']
tpl_category_id_keys = ['HIERARCH ESO DPR CATG', 'TPL_CATG']
tpl_dictionary_id_id_keys = ['HIERARCH ESO TPL DID', 'TPL_DID']
tpl_exposures_id_keys = ['HIERARCH ESO TPL NEXP', 'TPL_NEXP']
tpl_id_id_keys = ['HIERARCH ESO TPL ID', 'TPL_ID']
tpl_index_id_keys = ['HIERARCH ESO OBS TPLNO', 'TPL_INDX']
tpl_name_id_keys = ['HIERARCH ESO TPL NAME', 'TPL_NAME']
tpl_obs_id_id_keys = ['HIERARCH ESO OBS ID', 'OBS_ID']
tpl_obs_start_id_keys = ['HIERARCH ESO OBS START', 'OBS_STRT']
tpl_sequencer_id_keys = ['HIERARCH ESO TPL PRESEQ', 'TPL_SEQ']
tpl_start_id_keys = ['HIERARCH ESO TPL START', 'TPL_STRT', 'DATE-OBS']
tpl_strategy_id_keys = ['HIERARCH ESO OBS STRTG', 'TPL_STGY']
tpl_technique_id_keys = ['HIERARCH ESO DPR TECH', 'TPL_TECH']
tpl_type_id_keys = ['HIERARCH ESO DPR TYPE', 'TPL_TYPE']
tpl_version_id_keys = ['HIERARCH ESO TPL VERSION', 'TPL_VERS']
translate_astrometric_keys(frame)
translate_filter_keys(frame)

Create a Filter object for a frame.

This method polymorphs the method inherited from HeaderTranslator since in the case of WFI special actions are necessary because of inconsistencies in the use of filter identifying keywords. When when some filters are used, HIERARCH ESO INS FILT1 ID reads “…”.

translate_photometric_keys(frame)

Module contents

Instrument specific modules