scopesim.optics.surface.SpectralSurface#

class scopesim.optics.surface.SpectralSurface(filename=None, cmds=None, **kwargs)#

Bases: object

Initialised by a file containing one or more of the following columns.

transmission, emissivity, reflection. The column wavelength must be given. Alternatively kwargs for the above mentioned quantities can be passed as arrays. If they are not Quantities, then a unit should also be passed with the <array_name>_unit syntax (i.e. emission_unit or wavelength_unit)

If temperature is not given as a Quantity, it defaults to degrees Celsius.

__init__(filename=None, cmds=None, **kwargs)#

Methods

__init__([filename, cmds])

from_meta(key[, default_unit])

Convert a specific value in the meta dict to a Quantity.

Attributes

area

emission

Look for an emission array in self.meta.

emissivity

mirror_angle

reflection

throughput

transmission

wavelength

property emission#

Look for an emission array in self.meta.

If it doesn’t find this, it defaults to creating a blackbody and multiplies this by the emissivity. Assumption is that self.meta["temperature"] is in deg_C, unless it is a u.Quantity with temperature unit attached. Return units are in PHOTLAM arcsec^-2, even though arcsec^-2 is not given.

from_meta(key, default_unit=None)#

Convert a specific value in the meta dict to a Quantity.

Parameters:
  • key (str) – Which key to pull from self.meta

  • default_unit (str, Unit) – In case self.meta doesn’t contain a unit for the desired key

Returns:

meta_quantity

Return type:

Quantity