exorad.models.optics.opticalPath module

class InstRadiance(wl_grid, data, time_grid=<Quantity [0.] h>)[source]

Bases: Radiance

Handler for instrument radiance.

Variables:
  • position (str) – Position of the optical element in the optical path. Default is ‘path’.

  • slit (None or bool) – Indicates if a slit is present in the optical path.

class constructor

Parameters:
  • wl_grid (quantity) – wavelength grid. Must have a single axes

  • data (array) – data table. Can have 2 axes

  • time_grid (quantity (optional)) – time grid. Must have a single axes

position = 'path'
slit = None
class OpticalPath(description, wl)[source]

Bases: Logger

Handler for instrument diffuse light.

Parameters:
  • description (dict) – Optic description.

  • wl (array_like) – Wavelength grid as a quantity array.

Variables:
  • optical_element_dict (dict) – Dictionary of OpticalElement instances.

  • radiance_dict (dict) – Dictionary of InstRadiance instances.

  • radiance_table (QTable) – Table of optical elements radiance.

  • transmission_table (QTable) – Table of optical elements transmissions.

  • signal_table (QTable) – Table of optical elements signals.

  • max_signal_per_pixel (QTable) – Table of optical elements max signal per pixel.

  • slit_width (Quantity or None) – Slit width measurement, if a slit is in the optical path. Default is None.

prepend_optical_elements(optical_element_dict)[source]

Updates the class optical_element_dict by putting the input dictionary at the top of the existing one.

chain()[source]

Concatenates the optical elements, producing the radiance_table and radiance_dict.

build_transmission_table()[source]

Produces the transmission table for the optical path.

compute_signal(ch_table, ch_built_instr)[source]

Produces the telescope self-emission signal for the channel and returns the updated channel table.

Examples

>>> telescope = OpticalPath(wl=wl_grid, description=options)
>>> spec = OpticalPath(wl=wl_grid, description=options['channel']['Spec'])
>>> spec.prepend_optical_elements(telescope.optical_element_dict)
>>> spec.build_transmission_table()
>>> spec.chain()

Initialize the OpticalPath instance.

Parameters:
  • description (dict) – Optic description.

  • wl (array_like) – Wavelength grid as a quantity array.

build_transmission_table()[source]

Build the transmission table for the optical path.

Returns:

transmission_table – Table containing the transmission of each optical element and the total transmission.

Return type:

QTable

chain()[source]

Concatenate the optical elements, producing the radiance_table and radiance_dict.

Returns:

radiance_dict – Dictionary of InstRadiance instances for each optical element.

Return type:

OrderedDict

compute_signal(ch_table, ch_built_instr)[source]

Compute the telescope self-emission signal for the channel.

Parameters:
  • ch_table (QTable) – Channel table.

  • ch_built_instr (dict) – Built instrument parameters for the channel.

Returns:

updated_table – Updated channel table with instrument signals.

Return type:

QTable

prepend_optical_elements(optical_element_dict)[source]

Update the optical_element_dict by prepending the input dictionary.

Parameters:

optical_element_dict (dict) – Dictionary of optical elements to prepend.

surface_radiance(wl, T, emissivity)[source]

Calculate the spectral radiance from optics.

The spectral radiance is defined as power per unit surface area, per unit solid angle, and per unit bandwidth.

Parameters:
  • wl (array_like) – Wavelength array with units of length.

  • T (scalar) – Temperature of optical elements in Kelvin.

  • emissivity (array_like) – Emissivity of optical surfaces.

Returns:

radiance – Spectral radiance. It will have the same shape as the input wl.

Return type:

Radiance