The SpectralData Class¶
Spectral data is use to define data with an associated spectrum. Typically objects of this class will be generated by a parent MaterialData class which handles one or more spectral data classes in order to provide both real and imaginary parts of optical parameters.
Full API¶
describes spectrally dependent data
spectral_data implements the abstract base class SpectralData which defines a material parameter which has a spectral dependence (e.g. refractive index, permittivity). Each of the subclasses must implement the evaluate method which returns the material parameter for a given Spectrum object.
Classes¶
- SpectralData
- abstract base class
- Constant: SpectralData
- for values that are independent of the spectrum
- Interpolation: SpectralData
- for tabulated data values
- Model: SpectralData
- abstract base class for values generated from a particular model
- Sellmeier: Model
- implements the Sellmeier model for refractive index
- Sellmeier2: Model
- implements the modified Sellmeier model for refractive index
- Polynomial: Model
- implements a polynomial model for refractive index
- RefractiveIndexInfo: Model
- implements the RefractiveIndexInfo model for refractive index
- Cauchy: Model
- implements the Cauchy model for refractive index
- Gases: Model
- implements the Gas model for refractive index
- Herzberger: Model
- implements the Herzberger model for refractive index
- Retro: Model
- implements the Retro model for refractive index
- Exotic: Model
- implements the Exotic model for refractive index
- Drude: Model
- implements the Drude model for complex permittivity
- DrudeLorentz: Model
- implements the Drude-Lorentz model for complex permittivity
- TaucLorentz: Model
- implements the Tauc-Lorentz model for complex permittivity
Notes¶
for more information on models see https://refractiveindex.info/about
-
class
spectral_data.Cauchy(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ requires wavelength input in micrometers returns real part of refractive index only
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
-
class
spectral_data.Constant(constant, valid_range=(0, inf), spectrum_type='wavelength', unit='m')¶ for spectral data values that are independent of the spectrum
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values -
dict_repr(self)¶ return a dictionary representation of the object
-
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
-
class
spectral_data.Drude(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ requires energy input in eV returns real and imaginary parts of permittivity
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
-
class
spectral_data.DrudeLorentz(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ requires energy input in eV returns real and imaginary parts of permittivity
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
-
class
spectral_data.Exotic(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ requires wavelength input in micrometers returns real part of refractive index only
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
-
class
spectral_data.Extrapolation(spectral_data, extended_spectrum, spline_order=2)¶ for extending spectral data outside of the valid range. Use with caution
Methods
evaluate(self, spectrum)returns the value of the spectral data for the fiven spectrum extrapolate_data(self)makes a spline base on the base data for future lookup get_extrap_spectrum(self, extended_spectrum)takes a Spectrum object with one or two values possibly lying outside the base spectral range. suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_extrap_val(self, extrap_val, base_range)checks if extrap_val lies outside base_range and replaces the relevant value in base_range with extrap_val. -
evaluate(self, spectrum)¶ returns the value of the spectral data for the fiven spectrum
-
extrapolate_data(self)¶ makes a spline base on the base data for future lookup
-
get_extrap_spectrum(self, extended_spectrum)¶ takes a Spectrum object with one or two values possibly lying outside the base spectral range. Raises an error if the values do not lie outside the base spectral range. returns a new length two spectrum that gives the lower and upper bound for an extrapolation
-
validate_extrap_val(self, extrap_val, base_range)¶ checks if extrap_val lies outside base_range and replaces the relevant value in base_range with extrap_val.
-
-
class
spectral_data.Fano(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ this model can be applied to scattering cross sections requires energy input in eV returns real and imaginary parts of scattering cross section
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
input_output(self)¶ defines the required inputs and the output spectrum type
-
-
class
spectral_data.Gases(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ requires wavelength input in micrometers returns real part of refractive index only
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
-
class
spectral_data.Herzberger(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ requires wavelength input in micrometers returns real part of refractive index only
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
-
class
spectral_data.Interpolation(data, spectrum_type='wavelength', unit='m', interp_order=1)¶ for spectral data values that are from tabulated data
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the fiven spectrum interpolate_data(self)interpolates the data for future lookup suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values -
dict_repr(self)¶ return a dictionary representation of the object
-
evaluate(self, spectrum)¶ returns the value of the spectral data for the fiven spectrum
-
interpolate_data(self)¶ interpolates the data for future lookup
-
-
class
spectral_data.Model(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ for spectral data values depending on model parameters
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
dict_repr(self)¶ return a dictionary representation of the object
-
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
input_output(self)¶ defines the required inputs and the output spectrum type
-
preprocess(self, spectrum)¶ check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0
-
-
class
spectral_data.Polynomial(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ requires wavelength input in micrometers returns real part of refractive index only
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
-
class
spectral_data.RefractiveIndexInfo(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ requires wavelength input in micrometers returns real part of refractive index only
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
-
class
spectral_data.Retro(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ requires wavelength input in micrometers returns real part of refractive index only
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
-
class
spectral_data.Sellmeier(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ requires wavelength input in micrometers returns real part of refractive index only
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
-
class
spectral_data.Sellmeier2(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ requires wavelength input in micrometers returns real part of refractive index only
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
-
class
spectral_data.SpectralData(valid_range, spectrum_type='wavelength', unit='nm')¶ Base class for defining a quantity (e.g. refactive index) which is defined over a given spectrum (see class Spectrum).
Methods
evaluate(self, spectrum)returns the value of the spectral data for the given spectrum suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-
suggest_spectrum(self)¶ for plotting the spectral data we take a geometrically spaced set of values
-
-
class
spectral_data.TaucLorentz(model_parameters, valid_range, spectrum_type='wavelength', unit='m')¶ requires energy input in eV returns real and imaginary parts of permittivity
Methods
dict_repr(self)return a dictionary representation of the object evaluate(self, spectrum)returns the value of the spectral data for the given spectrum input_output(self)defines the required inputs and the output spectrum type preprocess(self, spectrum)check range of spectrum, convert to correct sType and unit and return an object with the same tensor order (scalar|vector) with values set to 1.0 suggest_spectrum(self)for plotting the spectral data we take a geometrically spaced set of values validate_spectrum_type -
evaluate(self, spectrum)¶ returns the value of the spectral data for the given spectrum
-