WSF
SOSM_Sensor Class Reference

A class that represents an optical sensor (IR or visible). More...

#include <SOSM_Sensor.hpp>

Inheritance diagram for SOSM_Sensor:
Collaboration diagram for SOSM_Sensor:

Public Member Functions

 SOSM_Sensor (SOSM_Manager *aManagerPtr)
 SOSM_Sensor (const SOSM_Sensor &aSrc)
 ~SOSM_Sensor () override
SOSM_Sensoroperator= (const SOSM_Sensor &)=delete
SOSM_SensorClone () const
bool Initialize () override
void InputComplete () override
bool ProcessInput (UtInput &aInput) override
void ComputeIntegratedAtmosphericData (SOSM_Interaction &aInteraction, float &aBackgroundRadiance_xR, float &aForegroundRadiance_xR, float &aTransmittance_xR)
void ComputeIntegratedTargetData (SOSM_Target *aTargetPtr, SOSM_Interaction &aInteraction, float &aTargetIntensity_xR, float &aProjectedArea)
float ComputeProbabilityOfDetection (float aTargetIrradiance, SOSM_Interaction &aInteraction) const
float ComputeTargetIrradiance (SOSM_Target *aTargetPtr, SOSM_Interaction &aInteraction)
SOSM_AtmosphereGetAtmosphere () const
float GetAverageResponse () const
 Return the average response.
float GetDetectionThresholdAboveHorizon () const
float GetDetectionThresholdBelowHorizon () const
std::vector< float > GetIntegrationFactor () const
 Get the integration factor (delta wavelength * response) used for spectral integration.
float GetNoiseEquivalentIrradiance () const
void GetResponseCurve (std::vector< float > &aWavelength, std::vector< float > &aResponse) const
void GetWavelengthLimits (float &aLowerWavelength, float &aUpperWavelength) const
 Return the wavelength limits (in microns) of the sensor.
SOSM_ManagerGetManager () const
Public Member Functions inherited from SOSM_CoreBase
 SOSM_CoreBase ()
 SOSM_CoreBase (const SOSM_CoreBase &aSrc)
 ~SOSM_CoreBase () override
SOSM_CoreBaseoperator= (const SOSM_CoreBase &)=delete
std::string GetTypeName () const
 Return the user-specified type name of the object.
void SetTypeName (const std::string &aTypeName)
 Set the user-specified type name of the object.
double GetModificationTime () const
 Return when the source file from which the object was recreated was last modified.
void SetModificationTime (double aModificationTime)
 Set the last modification time of the object.
void UpdateModificationTime (double aModificationTime)
std::string GetCachePrefix () const
 Return the name of the cache prefix for this object.
void SetCachePrefix (const std::string &aCachePrefix)
 Set the cache prefix (subdirectory) to be used for creating cache files of this object.
Public Member Functions inherited from SOSM_SpectralObject
 SOSM_SpectralObject ()
 SOSM_SpectralObject (float aOrigin, float aIncrement, int aCount)
virtual ~SOSM_SpectralObject ()
float Origin () const
 Return the origin (wavenumber, cm-1) of the first sample point.
float Increment () const
int Count () const
void DefineSpectralLimits (float aOrigin, float aIncrement, int aCount)
void DefineSpectralLimits (const SOSM_SpectralObject &aSource)
bool Equals (const SOSM_SpectralObject &aRhs) const
 Do this object and another object have the same spectral limits?
Status Union (const SOSM_SpectralObject &aObject)
Status Union (const SOSM_SpectralObject &aObject1, const SOSM_SpectralObject &aObject2)
float LowerWavelength () const
float UpperWavelength () const
void SetWavelengthLimits (float aLowerWavelength, float aUpperWavelength)

Static Public Member Functions

static double ComputeProbabilityOfDetection (double aSignal, double aNoise, double aThreshold)
Static Public Member Functions inherited from SOSM_SpectralObject
static std::string StatusString (Status aStatus)

Additional Inherited Members

Public Types inherited from SOSM_SpectralObject
enum  Status { cOK = 0 , cINCOMPATIBLE_INCREMENTS , cINCOMPATIBLE_ORIGINS }
 Return value from 'UnionOf'. More...
Protected Attributes inherited from SOSM_CoreBase
double mModificationTime
 When the file was last modified.
std::string mTypeName
 The type name of the object.
std::string mCachePrefix

Detailed Description

A class that represents an optical sensor (IR or visible).

Constructor & Destructor Documentation

◆ SOSM_Sensor() [1/2]

SOSM_Sensor::SOSM_Sensor ( SOSM_Manager * aManagerPtr)

◆ SOSM_Sensor() [2/2]

SOSM_Sensor::SOSM_Sensor ( const SOSM_Sensor & aSrc)

◆ ~SOSM_Sensor()

SOSM_Sensor::~SOSM_Sensor ( )
override

Member Function Documentation

◆ Clone()

SOSM_Sensor * SOSM_Sensor::Clone ( ) const

References SOSM_Sensor().

Referenced by SOSM_Manager::AllocateSensor(), and operator=().

◆ ComputeIntegratedAtmosphericData()

void SOSM_Sensor::ComputeIntegratedAtmosphericData ( SOSM_Interaction & aInteraction,
float & aBackgroundRadiance_xR,
float & aForegroundRadiance_xR,
float & aTransmittance_xR )

Compute the integrated atmospheric data for the 'fast' detection model.

This method computes the response-biased transmittance and radiance for the specified interaction.

Parameters
aInteraction[input] The interaction object representing the sensor and target state.
aBackgroundRadiance_xR[output] The integrated background radiance.
aForegroundRadiance_xR[output] The integrated foreground radiance.
aTransmittance_xR[output] The integrated foreground transmittance.

References SOSM_SpectralObject::Count().

Referenced by operator=().

◆ ComputeIntegratedTargetData()

void SOSM_Sensor::ComputeIntegratedTargetData ( SOSM_Target * aTargetPtr,
SOSM_Interaction & aInteraction,
float & aTargetIntensity_xR,
float & aProjectedArea )

Compute the integrated target data for the 'fast' detection model.

Parameters
aTargetPtr[input] The target under consideration.
aInteraction[input] The interaction object representing the sensor and target state.
aTargetIntensity_xR[output] The integrated, response-biased radiant intensity. (W/sr)
aProjectedArea[output] The projected area (cm^2)
Note
The caller must call the targets 'SelectState' function prior to calling this method.

References SOSM_Target::ComputeRadiantIntensity(), and SOSM_SpectralObject::Count().

Referenced by operator=().

◆ ComputeProbabilityOfDetection() [1/2]

double SOSM_Sensor::ComputeProbabilityOfDetection ( double aSignal,
double aNoise,
double aThreshold )
static

Compute the probability of detection.

Parameters
aSignal[input] The effective target irradiance (CEI) (W/cm^2)
aNoise[input] The noise equivalent irradiance (NEI) (W/cm^2)
aThreshold[input] The signal-to-noise ratio required to generate a Pd = 0.5.
Returns
The probability of detection in the range [0, 1]

◆ ComputeProbabilityOfDetection() [2/2]

float SOSM_Sensor::ComputeProbabilityOfDetection ( float aTargetIrradiance,
SOSM_Interaction & aInteraction ) const

Compute the probability of detection for a specified target irradiance.

Parameters
aTargetIrradiance[input] The irradiance on the sensor while looking at the target of interest. (W/cm^2)
aInteraction[input] The interaction object representing the sensor and target state.
Returns
The probability of detection in the range [0..1].

References ComputeProbabilityOfDetection(), SOSM_Interaction::GetAbsoluteTargetElevation(), SOSM_Interaction::GetSensorAltitude(), SOSM_Interaction::GetSensorToTargetAspect(), SOSM_Interaction::mDetectionThreshold, SOSM_Interaction::mInstallationAdjustment, and SOSM_Interaction::mNoiseEquivalentIrradiance.

Referenced by ComputeProbabilityOfDetection(), and operator=().

◆ ComputeTargetIrradiance()

◆ GetAtmosphere()

SOSM_Atmosphere * SOSM_Sensor::GetAtmosphere ( ) const
inline

Return the pointer to the atmosphere object.

Note
This is valid only after Initialize().

◆ GetAverageResponse()

float SOSM_Sensor::GetAverageResponse ( ) const
inline

Return the average response.

◆ GetDetectionThresholdAboveHorizon()

float SOSM_Sensor::GetDetectionThresholdAboveHorizon ( ) const
inline

Return the detection threshold for targets above the horizon.

Returns
The detection threshold as a unitless signal-to-noise ratio.

Referenced by WsfSOSM_Sensor::SOSM_Mode::Initialize().

◆ GetDetectionThresholdBelowHorizon()

float SOSM_Sensor::GetDetectionThresholdBelowHorizon ( ) const
inline

Return the detection threshold for targets below the horizon.

Returns
The detection threshold as a unitless signal-to-noise ratio.

◆ GetIntegrationFactor()

std::vector< float > SOSM_Sensor::GetIntegrationFactor ( ) const
inline

Get the integration factor (delta wavelength * response) used for spectral integration.

◆ GetManager()

SOSM_Manager * SOSM_Sensor::GetManager ( ) const
inline

◆ GetNoiseEquivalentIrradiance()

float SOSM_Sensor::GetNoiseEquivalentIrradiance ( ) const
inline

Return the 'Noise Equivalent Irradiance' (NEI).

Returns
The Noise Equivalent Irradiance (W/m^2).

Referenced by WsfSOSM_Sensor::SOSM_Mode::Initialize().

◆ GetResponseCurve()

void SOSM_Sensor::GetResponseCurve ( std::vector< float > & aWavelength,
std::vector< float > & aResponse ) const

Return the response curve of the sensor.

Parameters
aWavelength[output] The vector of wavelengths (in microns).
aResponse[output] The vector of unitless response [0..1] for each wavelength

◆ GetWavelengthLimits()

void SOSM_Sensor::GetWavelengthLimits ( float & aLowerWavelength,
float & aUpperWavelength ) const
inline

Return the wavelength limits (in microns) of the sensor.

◆ Initialize()

◆ InputComplete()

void SOSM_Sensor::InputComplete ( )
overridevirtual

◆ operator=()

◆ ProcessInput()

bool SOSM_Sensor::ProcessInput ( UtInput & aInput)
overridevirtual

Reimplemented from SOSM_CoreBase.


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved