Docs updated

This commit is contained in:
Lukas Klass 2020-05-26 22:10:21 +02:00
parent 988cfcc0e5
commit 628f69845a
5 changed files with 617 additions and 1 deletions

View File

@ -39,10 +39,12 @@ templates_path = ['_templates']
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []
exclude_patterns = ['configuration/target.rst', 'configuration/common.rst', 'configuration/optical_components.rst',
'configuration/sensor.rst']
# -- Options for HTML output -------------------------------------------------
html_show_sourcelink = False
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.

View File

@ -0,0 +1,183 @@
The tag ``common`` groups common configuration parameters and is therefore mandatory.
wl_min
------
The minimal wavelength to consider in the computations.
.. code-block:: xml
<wl_min val="3" val_unit="um"/>
Attributes:
* | **val:** str
| The value of the minimal wavelength.
* | **val_unit:** str, *optional* = "m"
| The unit of the minimal wavelength. This has to be one of [``m``, ``cm``, ``mm``, ``um``, ``nm``, ``pm``]. The default is ``m``.
wl_max
------
The maximal wavelength to consider in the computations.
.. code-block:: xml
<wl_max val="5" val_unit="um"/>
Attributes:
* | **val:** str
| The value of the maximal wavelength.
* | **val_unit:** str, *optional* = "m"
| The unit of the maximal wavelength. This has to be one of [``m``, ``cm``, ``mm``, ``um``, ``nm``, ``pm``]. The default is ``m``.
.. _wl_delta:
wl_delta
--------
*optional* -- The wavelength grid size to be used for the computations.
.. code-block:: xml
<wl_delta val="5" val_unit="um"/>
Attributes:
* | **val:** str
| The value of the wavelength grid size.
* | **val_unit:** str, *optional* = "m"
| The unit of the wavelength grid size. This has to be one of [``m``, ``cm``, ``mm``, ``um``, ``nm``, ``pm``]. The default is ``m``.
.. _res:
res
---
*optional* -- The spectral resolution to be used for the computations.
.. code-block:: xml
<res val="1000" val_unit=""/>
Attributes:
* | **val:** str
| The value of the spectral resolution.
* | **val_unit:** str, *optional* = ""
| The unit of the spectral resolution. This has to be emtpy (dimensionless). The default is ``dimensionless``.
.. note::
Either :ref:`wl_delta` or :ref:`res` must be given in the configuration.
d_aperture
----------
The diameter of the telescope aperture.
.. code-block:: xml
<d_aperture val="2.3" val_unit="m"/>
Attributes:
* | **val:** str
| The value of the telescope aperture diameter.
* | **val_unit:** str, *optional* = "m"
| The unit of the telescope aperture diameter. This has to be one of [``m``, ``cm``, ``mm``, ``um``, ``nm``, ``pm``]. The default is ``m``.
.. _psf:
psf
---
*optional* -- The PSF used for the computations. This can be either read from a Zemax file or approximated by a (obstructed) airy disk.
.. code-block:: xml
<psf val="Airy" osf="10" osf_unit=""/>
.. code-block:: xml
<psf val="data/psf.txt" osf="10" osf_unit=""/>
Attributes:
* | **val:** str = "Airy"
| The PSF to be used for the computations. This can be either the path to a Zemax file or the keyword *Airy* to for an airy disk as PSF.
* | **osf:** str = "10"
| The oversampling factor to be used to calculate the contained energy and the PSF with jitter.
* | **osf_unit:** str, *optional* = ""
| The unit of the oversampling factor. This has to be emtpy (dimensionless). The default is ``dimensionless``.
.. _jitter_sigma:
jitter_sigma
------------
*optional* -- The pointing jitter sigma.
.. code-block:: xml
<jitter_sigma val="2" val_unit="arcsec"/>
Attributes:
* | **val:** str
| The value of the pointing jitter sigma.
* | **val_unit:** str, *optional* = "arcsec"
| The unit of the pointing jitter sigma. This has to be one of [``arcsec``, ``arcmin``, ``degree``, ``radians``]. The default is ``arcsec``.
output
------
*optional* -- Output settings for the results of the computation.
.. code-block:: xml
<output path="output" format="fits"/>
Attributes:
* | **path:** str = "."
| The path to the output directory.
* | **format:** str = "CSV"
| The format to be used for outputting the signal and noise contributions. This has to be one of [``FITS``, ``CSV``].
.. _exposure_time:
exposure_time
-------------
*optional* -- The exposure time(s) for the computations.
.. code-block:: xml
<exposure_time val="0.1" val_unit="s"/>
.. code-block:: xml
<exposure_time val="0.1, 0.2, 0.3" val_unit="s"/>
.. code-block:: xml
<exposure_time val="data/exposure_time.csv"/>
Attributes:
* | **val:** str
| The exposure time(s) to be used for the computations. This can be either a single value, a comma separated list of values or the path to a CSV-file containing a single column of exposure time values. For details on the required file structure see also :ref:`reading_csv`.
* | **val_unit:** str, *optional* = "s"
| The unit of the exposure time. This has to be one of [``ns``, ``us``, ``ms``, ``s``, ``min``, ``h``]. If the path to a file is provided, this parameter must be omitted. The default is ``s``.
.. _snr:
snr
---
*optional* -- The signal to noise ration (SNR) for the computations.
.. code-block:: xml
<snr val="10" val_unit=""/>
.. code-block:: xml
<snr val="10, 20, 30" val_unit=""/>
.. code-block:: xml
<snr val="data/snr.csv"/>
Attributes:
* | **val:** str
| The SNR(s) to be used for the computations. This can be either a single value, a comma separated list of values or the path to a CSV-file containing a single column of SNR values. For details on the required file structure see also :ref:`reading_csv`.
* | **val_unit:** str, *optional* = ""
| The unit of the exposure time. This has to be emtpy (dimensionless). If the path to a file is provided, this parameter must be omitted. The default is ``dimensionless``.
.. note::
The two parameters :ref:`exposure_time` and :ref:`snr` control the desired output of the computations.
If only the exposure time is given, the corresponding signal to noise ration will be calculated and vice versa.
If both the exposure time and the SNR is given as well as a black body target, the sensitivity will be calculated as limiting apparent magnitude.

View File

@ -0,0 +1,158 @@
Each optical component consists of the basic tag ``<optical_component>`` and the attribute ``type`` and possible other
component-specific attributes.
.. code-block:: xml
<optical_component type="Mirror"/>
Attributes:
* | **type:** str
| The type of the optical component. This can be one of the following types.
Atmosphere
----------
This component models the behaviour of an atmosphere which has a spectral transmittance and a spectral emission.
.. code-block:: xml
<optical_component type="Atmosphere" transmittance="PathToTransmittanceFile" emission="PathToEmissionFile"/>
Attributes:
* | **transmittance:** str
| The path to the file containing the spectral transmittance coefficients. For details on the required file structure see also :ref:`reading_csv`.
* | **emission:** str, *optional*
| The path to the file containing the spectral radiance of the emission. For details on the required file structure see also :ref:`reading_csv`.
StrayLight
----------
This component allows to model generic noise sources like stray light or zodiacal light from a file containing the spectral radiance of the emission.
.. code-block:: xml
<optical_component type="StrayLight" emission="PathToEmissionFile"/>
Attributes:
* | **emission:** str, *optional*
| The path to the file containing the spectral radiance of the emission. For details on the required file structure see also :ref:`reading_csv`.
Mirror
------
Model a mirror including the mirror's thermal emission as well as possible obstruction of the mirror and the thermal emission of the obstructing component.
.. code-block:: xml
<optical_component type="Mirror" reflectance="PathToReflectance" emissivity="PathToEmissivity" temp="70" temp_unit="K" obstruction="0.2" obstructor_temp="70" obstructor_temp_unit="K" obstructor_emissivity="0.9"/>
Attributes:
* | **reflectance:** str
| The path to the file containing the spectral reflectance coefficients. For details on the required file structure see also :ref:`reading_csv`.
* | **emissivity:** str, *optional*
| The path to the file containing the spectral emissivity coefficients. For details on the required file structure see also :ref:`reading_csv`.
* | **temp:** str, *optional*
| The temperature of the mirror for the thermal emission.
* | **temp_unit:** str, *optional*
| The unit of the mirror's temperature. This has to be one of [``K``, ``Celsius``]. The default is ``K``.
* | **obstruction:** str, *optional*
| The obstruction factor of the mirror as ratio of the areas A\ :sub:`obstructor` / A\ :sub:`mirror`.
* | **obstructor_temp:** str, *optional*
| The temperature of the obstructing component for the thermal emission.
* | **obstructor_temp_unit:** str, *optional*
| The unit of the obstructing component's temperature. This has to be one of [``K``, ``Celsius``]. The default is ``K``.
* | **obstructor_emissivity:** str, *optional*
| The emissivity of the obstructing component for the thermal emission. Valid ranges are 0.0 - 1.0. The default is 1.0.
Lens
----
Model a lens including the lens' thermal emission as well as possible obstruction of the lens and the thermal emission of the obstructing component.
.. code-block:: xml
<optical_component type="Lens" transmittance="PathToTransmittance" emissivity="PathToEmissivity" temp="70" temp_unit="K" obstruction="0.2" obstructor_temp="70" obstructor_temp_unit="K" obstructor_emissivity="0.9"/>
Attributes:
* | **transmittance:** str
| The path to the file containing the spectral transmittance coefficients. For details on the required file structure see also :ref:`reading_csv`.
* | **emissivity:** str, *optional*
| The path to the file containing the spectral emissivity coefficients. For details on the required file structure see also :ref:`reading_csv`.
* | **temp:** str, *optional*
| The temperature of the lens for the thermal emission.
* | **temp_unit:** str, *optional*
| The unit of the lens' temperature. This has to be one of [``K``, ``Celsius``]. The default is ``K``.
* | **obstruction:** str, *optional*
| The obstruction factor of the lens as ratio of the areas A\ :sub:`obstructor` / A\ :sub:`lens`.
* | **obstructor_temp:** str, *optional*
| The temperature of the obstructing component for the thermal emission.
* | **obstructor_temp_unit:** str, *optional*
| The unit of the obstructing component's temperature. This has to be one of [``K``, ``Celsius``]. The default is ``K``.
* | **obstructor_emissivity:** str, *optional*
| The emissivity of the obstructing component for the thermal emission. Valid ranges are 0.0 - 1.0. The default is 1.0.
BeamSplitter
------------
Model a beam splitter including the beam splitter's thermal emission as well as possible obstruction of the beam splitter and the thermal emission of the obstructing component.
.. code-block:: xml
<optical_component type="BeamSplitter" transmittance="PathToTransmittance" emissivity="PathToEmissivity" temp="70" temp_unit="K" obstruction="0.2" obstructor_temp="70" obstructor_temp_unit="K" obstructor_emissivity="0.9"/>
Attributes:
* | **transmittance:** str
| The path to the file containing the spectral transmittance coefficients. For details on the required file structure see also :ref:`reading_csv`.
* | **emissivity:** str, *optional*
| The path to the file containing the spectral emissivity coefficients. For details on the required file structure see also :ref:`reading_csv`.
* | **temp:** str, *optional*
| The temperature of the beam splitter for the thermal emission.
* | **temp_unit:** str, *optional*
| The unit of the beam splitter's temperature. This has to be one of [``K``, ``Celsius``]. The default is ``K``.
* | **obstruction:** str, *optional*
| The obstruction factor of the beam splitter as ratio of the areas A\ :sub:`obstructor` / A\ :sub:`beam splitter`.
* | **obstructor_temp:** str, *optional*
| The temperature of the obstructing component for the thermal emission.
* | **obstructor_temp_unit:** str, *optional*
| The unit of the obstructing component's temperature. This has to be one of [``K``, ``Celsius``]. The default is ``K``.
* | **obstructor_emissivity:** str, *optional*
| The emissivity of the obstructing component for the thermal emission. Valid ranges are 0.0 - 1.0. The default is 1.0.
Filter
------
Model a beam splitter including the beam splitter's thermal emission as well as possible obstruction of the beam splitter and the thermal emission of the obstructing component.
.. code-block:: xml
<optical_component type="Filter" transmittance="PathToTransmittance" emissivity="PathToEmissivity" temp="70" temp_unit="K" obstruction="0.2" obstructor_temp="70" obstructor_temp_unit="K" obstructor_emissivity="0.9"/>
.. code-block:: xml
<optical_component type="Filter" band="M" emissivity="PathToEmissivity" temp="70" temp_unit="K" obstruction="0.2" obstructor_temp="70" obstructor_temp_unit="K" obstructor_emissivity="0.9"/>
.. code-block:: xml
<optical_component type="Filter" start="400" start_unit="nm" end="480" end_unit="nm" emissivity="PathToEmissivity" temp="70" temp_unit="K" obstruction="0.2" obstructor_temp="70" obstructor_temp_unit="K" obstructor_emissivity="0.9"/>
Attributes:
* | **transmittance:** str
| The path to the file containing the spectral transmittance coefficients. For details on the required file structure see also :ref:`reading_csv`.
* | **band:** str
| The spectral Band of the filter. This has to be one of [``U``, ``B``, ``V``, ``R``, ``I``, ``J``, ``H``, ``K``, ``L``, ``M``, ``N``]
* | **start:** str
| The start wavelength of the pass band of the filter.
* | **start_unit:** str
| The unit of the start wavelength. This has to be one of [``m``, ``cm``, ``mm``, ``um``, ``nm``, ``pm``]. The default is ``m``.
* | **end:** str
| The end wavelength of the pass band of the filter.
* | **end_unit:** str
| The unit of the end wavelength. This has to be one of [``m``, ``cm``, ``mm``, ``um``, ``nm``, ``pm``]. The default is ``m``.
* | **emissivity:** str, *optional*
| The path to the file containing the spectral emissivity coefficients. For details on the required file structure see also :ref:`reading_csv`.
* | **temp:** str
| The temperature of the beam splitter for the thermal emission.
* | **temp_unit:** str, *optional*
| The unit of the beam splitter's temperature. This has to be one of [``K``, ``Celsius``]. The default is ``K``.
* | **obstruction:** str, *optional*
| The obstruction factor of the beam splitter as ratio of the areas A\ :sub:`obstructor` / A\ :sub:`filter`.
* | **obstructor_temp:** str, *optional*
| The temperature of the obstructing component for the thermal emission.
* | **obstructor_temp_unit:** str, *optional*
| The unit of the obstructing component's temperature. This has to be one of [``K``, ``Celsius``]. The default is ``K``.
* | **obstructor_emissivity:** str, *optional*
| The emissivity of the obstructing component for the thermal emission. Valid ranges are 0.0 - 1.0. The default is 1.0.

View File

@ -0,0 +1,224 @@
Currently, ESBO-ETC only supports detectors of the type :ref:`imager`.
.. code-block:: xml
<sensor type="">
Attributes:
* | **type:** str
| The type of the detector. Has to be one of [``Imager``].
.. _imager:
Imager
------
The Imager sensor type allows to model a generic imaging sensor which uses a pixel based array to create only spatially resolved images. The imager-component contains several parameters which are explained in the following.
.. code-block:: xml
:linenos:
<sensor type="Imager">
<f_number val="13" val_unit=""/>
<pixel_geometry val="1024, 1024" val_unit="pix"/>
<center_offset val="0.0, 0.0" val_unit="pix"/>
<pixel>
<quantum_efficiency val="data/ccd/QE.txt"/>
<pixel_size val="6.5" val_unit="um"/>
<dark_current val="0.6" val_unit="electron / (pix * s)"/>
<sigma_read_out val="1.4" val_unit="electron(1/2) / pix"/>
<well_capacity val="30000" val_unit="electron"/>
</pixel>
<photometric_aperture/>
<shape val="circle"/>
<contained_energy val="80"/>
<contained_pixels val="100" val_unit="pix"/>
</photometric_aperture>
</sensor>
f_number
^^^^^^^^
The working focal number of the instrument.
.. code-block:: xml
<f_number val="13" val_unit=""/>
Attributes:
* | **val:** str
| The value of the working focal number of the instrument.
* | **val_unit:** str, *optional* = ""
| The unit of the working focal number of the instrument. This has to be emtpy (dimensionless).
.. _pixel_geometry:
pixel_geometry
^^^^^^^^^^^^^^
The geometry of the sensor's pixel array.
.. code-block:: xml
<pixel_geometry val="1024, 1024" val_unit="pix"/>
Attributes:
* | **val:** str
| The geometry of the sensor's pixel array as a comma separated list of the number of pixels per dimension (X, Y).
* | **val_unit:** str, *optional* = "pix"
| The unit of the geometry of the sensor's pixel array. This has to be ``pix``.
.. _center_offset:
center_offset
^^^^^^^^^^^^^
The PSF's center offset from the arithmetical center of the detector array which is defined as half of the number of pixels per dimension as defined in :ref:`pixel_geometry`
.. code-block:: xml
<center_offset val="0.0, 0.0" val_unit="pix"/>
Attributes:
* | **val:** str
| PSF's center offset as a comma separated list of the offset in pixels per dimension (X, Y).
* | **val_unit:** str, *optional* = "pix"
| The unit of the PSF's center offset. This has to be ``pix``.
pixel
^^^^^
The pixel-container contains parameters which apply to all pixels of the sensor array.
.. code-block:: xml
:linenos:
<pixel>
<quantum_efficiency val="data/ccd/QE.txt"/>
<pixel_size val="6.5" val_unit="um"/>
<dark_current val="0.6" val_unit="electron / (pix * s)"/>
<sigma_read_out val="1.4" val_unit="electron(1/2) / pix"/>
<well_capacity val="30000" val_unit="electron"/>
</pixel>
quantum_efficiency
""""""""""""""""""
The quantum efficiency of a detector pixel.
.. code-block:: xml
<quantum_efficiency val="data/ccd/QE.txt"/>
Attributes:
* | **val:** str
| The path to the file containing the quantum efficiency values. For details on the required file structure see also :ref:`reading_csv`.
pixel_size
""""""""""
The spatial size of each detector pixel. Each pixel is assumed to be of quadratic.
.. code-block:: xml
<pixel_size val="6.5" val_unit="um"/>
Attributes:
* | **val:** str
| The value of the edge length of a detector pixel.
* | **val_unit:** str, *optional* = "m"
| The unit of the edge length of a detector pixel. This has to be one of [``m``, ``cm``, ``mm``, ``um``, ``nm``, ``pm``]. The default is ``m``.
dark_current
""""""""""""
The dark current of a detector pixel.
.. code-block:: xml
<dark_current val="0.6" val_unit="electron / (pix * s)"/>
Attributes:
* | **val:** str
| The value of the dark current of a detector pixel.
* | **val_unit:** str, *optional* = "electron / (pix * s)"
| The unit of the dark current of a detector pixel. This has to be ``electron / (pix * s)``.
sigma_read_out
""""""""""""""
The read out noise of a detector pixel.
.. code-block:: xml
<sigma_read_out val="1.4" val_unit="electron(1/2) / pix"/>
Attributes:
* | **val:** str
| The value of the read out noise of a detector pixel.
* | **val_unit:** str, *optional* = "electron(1/2) / pix"
| The unit of the read out noise of a detector pixel. This has to be ``electron(1/2) / pix``.
well_capacity
"""""""""""""
The well capacity of a detector pixel.
.. code-block:: xml
<well_capacity val="30000" val_unit="electron"/>
Attributes:
* | **val:** str
| The value of the well capacity of a detector pixel.
* | **val_unit:** str, *optional* = "electron"
| The unit of the well capacity of a detector pixel. This has to be ``electron``.
photometric_aperture
^^^^^^^^^^^^^^^^^^^^
*optional*
The photometric_aperture-container contains parameters for the photometric aperture of the observation. This container is only required, if the :ref:`target` has the shape ``point``.
.. code-block:: xml
:linenos:
<photometric_aperture/>
<shape val="circle"/>
<contained_energy val="80"/>
<contained_pixels val="100" val_unit="pix"/>
</photometric_aperture>
shape
"""""
The shape of the photometric aperture which will be placed around the center of the PSF which is defined by :ref:`center_offset`. After the radius of the photometric aperture was calculated using a disk for the given :ref:`contained_energy`, this radius will be used as radius or edge length of the photometric aperture shape.
.. code-block:: xml
<shape val="circle"/>
Attributes:
* | **val:** str
| The shape of the photometric aperture. This has to be one of [``circle``, ``square``].
.. _contained_energy:
contained_energy
""""""""""""""""
*optional*
The energy to be contained within the photometric aperture. This value will used for the computation of the radius of the photometric aperture.
.. code-block:: xml
<contained_energy val="80"/>
Attributes:
* | **val:** str
| The energy to be contained within the photometric aperture. This can be either the percentage of contained energy or one of [``Peak``, ``FWHM``, ``Min``].
contained_pixels
""""""""""""""""
*optional*
The number of pixels to be contained within the photometric aperture. If this parameter is given, the :ref:`contained_energy` parameter will be ignored. The square root of this value will be used as the radius of the photometric aperture.
.. code-block:: xml
<contained_pixels val="100" val_unit="pix"/>
Attributes:
* | **val:** str
| The number of pixels to be contained within the photometric aperture.
* | **val_unit:** str, *optional* = "pix"
| The unit of the number of pixels to be contained within the photometric aperture. This has to be ``pix``.

View File

@ -0,0 +1,49 @@
Currently ESBO-ETC supports the following two different types of targets. A configuration can contain only one target
which has to be contained in the container ``<astroscene>``. Each target consists of the basic tag
``<target>`` and possible other target-type specific attributes.
.. code-block:: xml
<target type="BlackBodyTarget" size="point"/>
Attributes:
* | **type:** str
| The type of the target. Currently, only :ref:`blackbodytarget` and :ref:`filetarget` are supported.
* | **size:** str
| The size of the target which can be either ``point`` or ``extended``. In case of a point-source, a PSF will be used to determine the irradiance of each pixel. In case of a extended source, a uniform PSF is assumed, ignoring the parameters :ref:`psf`, :ref:`jitter_sigma`, and some instrument specific parameters.
.. _blackbodytarget:
BlackBodyTarget
---------------
Model a target as a black body of a given temperature and apparent magnitude.
.. code-block:: xml
<target type="BlackBodyTarget" temp="5778" temp_unit="K" mag="10" mag_unit="mag" band="B" size="point"/>
Attributes:
* | **temp:** str
| The temperature of the black body.
* | **temp_unit:** str, *optional* = "K"
| The unit of the black body's temperature. This has to be one of [``K``, ``Celsius``]. The default is ``K``.
* | **mag:** str
| The apparent magnitude of the black body in magnitudes.
* | **mag_unit:** str, *optional* = "mag"
| The unit of the black body's magnitude. This has to be ``mag``. The default is ``mag``.
* | **band:** str
| The band used for fitting the black body's flux density to Vega's flux density. This has to be one of [``U``, ``B``, ``V``, ``R``, ``I``, ``J``, ``H``, ``K``, ``L``, ``M``, ``N``].
.. _filetarget:
FileTarget
----------
Create a target from a file containing the spectral flux densities of the target.
.. code-block:: xml
<target type="FileTarget" val="PathToFile" size="point"/>
Attributes:
* | **val:** str
| The path to the file containing the spectral flux densities. For details on the required file structure see also :ref:`reading_csv`.