.. _instrument_class: Instrument ^^^^^^^^^^ The **Instrument** class contains information about the instrument. This includes storing the fields-of-view and spectral point spread functions that define each pixel. Users can choose to use the Instrument class as-is or they can use it as a base class and derive their own instrument class. Either option works and its a matter of personal preference. A typical usage:: class Test_Instrument( Instrument ): def __init__(self): super().__init__( ) aperture_area_cm2 = 25.0 # ---- setup the instantaneous field of views used by the pixels. # ---- define the different fields of view # ---- used by this instrument. Define in instrument control frame coordinates fovidx0 = self.add_field_of_view( FOV_Rectangle(Hrange=(13, math.radians(0.0), math.radians(0.5)), Vrange=(15, math.radians(0.0), math.radians(20.0 / 3600.0)))) fovidx1 = self.add_field_of_view( FOV_Rectangle(Hrange=(13, math.radians(0.2), math.radians(0.5)), Vrange=(15, math.radians(0.2), math.radians(20.0 / 3600.0)))) # ---- setup the spectral point spread functions used by the pixel. # The code will spatially integrate radiance over each field of view wavidx0 = self.add_wavelength_range( Wavelength_GaussianPSF(gaussian=(30, 450.0, 0.3))) # Define the different wavelength regions used by the pixels wavidx1 = self.add_wavelength_range( Wavelength_GaussianPSF(gaussian=(30, 452.0, 0.3))) # The code will spectrally integrate over each wavelength region wavidx2 = self.add_wavelength_range( Wavelength_GaussianPSF(gaussian=(30, 454.0, 0.3))) # ---- define the pixels used in this instrument in terms of the field of view # ---- and the spectral point spread functions fer.add_pixel( SpectralWindow( fovidx0, wavidx0, aperture_area_cm2) ) # define the pixels used in the simulation fer.add_pixel( SpectralWindow( fovidx0, wavidx1, aperture_area_cm2) ) # Each pixel is a combination of a wavelength range and a field of view fer.add_pixel( SpectralWindow( fovidx0, wavidx2, aperture_area_cm2) ) # The front-end radiance will be integrated over the eavelength range and the field of view fer.add_pixel( SpectralWindow( fovidx1, wavidx0, aperture_area_cm2) ) fer.add_pixel( SpectralWindow( fovidx1, wavidx1, aperture_area_cm2) ) fer.add_pixel( SpectralWindow( fovidx1, wavidx2, aperture_area_cm2) ) .. autoclass:: skimpy.Instrument :members: :special-members: __init__ .. _spectral_window_class: SpectralWindow -------------- .. autoclass:: skimpy.SpectralWindow :members: :undoc-members: :special-members: __init__ ... _fov_class: FOV --- Each instrument has an array of list of Field-of-views stored in its self.fov member .. autoclass:: skimpy.FOV :members: :undoc-members: :special-members: __init__ .. _fov_rectangle_class: FOV_Rectangle ------------- .. autoclass:: skimpy.instrument.fov.FOV_Rectangle :members: :undoc-members: :special-members: __init__ .. _wavelength_integrator_class: Wavelength_BandPass ------------------- .. autoclass:: skimpy.Wavelength_BandPass :members: :special-members: __init__ .. _wavelength_gaussianpsf_class: Wavelength_GaussianPSF ---------------------- .. autoclass:: skimpy.instrument.wavelength_bandpass_gaussian.Wavelength_GaussianPSF :members: :undoc-members: :special-members: __init__