scopesim.effects.electronic.exposure.AutoExposure#

class scopesim.effects.electronic.exposure.AutoExposure(**kwargs)#

Bases: Effect

Determine DIT and NDIT automatically from ImagePlane.

DIT is determined such that the maximum value in the incident photon flux (including astronomical source, sky and thermal backgrounds) fills the full well of the detector (!DET.full_well) to a given fraction (!OBS.autoexposure.fill_frac). NDIT is determined such that DIT * NDIT results in the requested exposure time.

The requested exposure time is taken from !OBS.exptime.

The effects sets the parameters !OBS.dit and !OBS.ndit.

Examples

The parameters !OBS.exptime, !DET.full_well and !DET.mindit should be defined as properties in the respective subsections.

name: auto_exposure
description: automatic determination of DIT and NDIT
class: AutoExposure
include: True
kwargs:
    fill_frac: "!OBS.auto_exposure.fill_frac"
__init__(**kwargs)#

The effect is the first detector effect, hence essentially operates on the ImagePlane, mapped to the detector array.

Methods

__init__(**kwargs)

The effect is the first detector effect, hence essentially operates on the ImagePlane, mapped to the detector array.

apply_to(obj, **kwargs)

Apply the effect to the corresponding object.

estimate_dit_ndit(exptime, image_plane_max, ...)

Automatically determine DIT and NDIT from exposure time.

get_from_meta(item)

info()

Print basic information on the effect, notably the description.

report([filename, output, rst_title_chars])

For Effect objects, generates a report based on the data and meta-data.

Attributes

data

display_name

include

meta_string

required_keys

table

z_order

apply_to(obj, **kwargs)#

Apply the effect to the corresponding object.

estimate_dit_ndit(exptime: float, image_plane_max: float, **kwargs) tuple[float, int]#

Automatically determine DIT and NDIT from exposure time.

Parameters:
  • exptime (float) – Exposure time in seconds.

  • image_plane_max (float) – Maximum pixel value from image plane, used to avoid saturation.

Returns:

  • dit (float) – Detector Integration Time.

  • ndit (int) – Number of Integrations.

info() None#

Print basic information on the effect, notably the description.

report(filename=None, output='rst', rst_title_chars='*+', **kwargs)#

For Effect objects, generates a report based on the data and meta-data.

This is to aid in the automation of the documentation process of the instrument packages in the IRDB.

Note

If the Effect can generate a plot, this will be saved to disc

Parameters:
  • filename (str, optional) – Where to save the RST file

  • output (str, optional) – [“rst”, “latex”] Output file format

  • rst_title_chars (2-str, optional) – Two unique characters used to denote rst subsection headings. Options: = - ` : ‘ “ ~ ^ _ * + # < >

  • parameters (Additional)

  • ---------------------

  • **kwargs (Either from the self.meta["report"] dictionary or via)

  • "report_table_include" (False)

  • "report_table_caption"

  • "report_plot_caption"

  • "report_plot_include" (False)

  • "report_plot_file_formats" (["png"]) – Multiple formats can be saved. The last entry is used for the RST.

  • "report_plot_filename" (None) – If None, uses self.meta[“name”] as the filename

  • "file_description" (str) – Taken from the header of a file, if available

  • "class_description" (str) – Taken from the docstring of the subclass

  • "changes_str" (list of str) – Take from the header of a file, if available

Returns:

rst_str – The full reStructureText string

Return type:

str

Notes

The format of the RST output is as follows:

<ClassType>: <effect name>
**************************
File Description: <description for file meta data>
Class Description: <description from class docstring>
Changes: <list of changes from file meta data>

Data
++++
.. figure:: <Figure_name>.png
    If the <Effect> object contains a ``.plot()`` function, add
    plot and write it to disc
Figure caption

Table caption
Table
    If the <Effect> object contains a ``.table()`` function, add
    a pprint version of the table

Meta-data
+++++++++
::
    A code block print out of the ``.meta`` dictionary