1.3.64
 
Loading...
Searching...
No Matches
helios::PragueSkyModelInterface Class Reference

Wrapper class providing Helios-friendly interface to Prague Sky Model. More...

#include <PragueSkyModelInterface.h>

Public Member Functions

 PragueSkyModelInterface ()
 Constructor - creates uninitialized interface.
 
 ~PragueSkyModelInterface ()
 Destructor - cleans up Prague model instance.
 
void initialize (const std::string &dataset_path)
 Initialize the Prague Sky Model with dataset file.
 
bool isInitialized () const
 Check if model has been initialized.
 
float getSkyRadiance (const vec3 &view_direction, const vec3 &sun_direction, float wavelength_nm, float visibility_km, float albedo=-1.0f) const
 Get sky radiance at a single wavelength and direction.
 
float computeIntegratedSkyRadiance (const vec3 &view_direction, const vec3 &sun_direction, float visibility_km, const std::vector< vec2 > &camera_response, float albedo=-1.0f) const
 Compute sky radiance integrated over camera spectral response.
 
void getAvailableRanges (float &min_wavelength_nm, float &max_wavelength_nm, float &min_visibility_km, float &max_visibility_km, float &min_elevation_deg, float &max_elevation_deg) const
 Get available data ranges from loaded dataset.
 

Static Public Member Functions

static float turbidityToVisibility (float turbidity)
 Convert Helios turbidity (AOD) to Prague visibility (km)
 

Detailed Description

Wrapper class providing Helios-friendly interface to Prague Sky Model.

This class:

  • Manages Prague model instance lifecycle
  • Loads reduced dataset on initialization
  • Handles coordinate system conversions (Helios ↔ Prague)
  • Converts turbidity (AOD) to visibility (km)
  • Integrates sky radiance over camera spectral response
  • Converts Prague exceptions to helios_runtime_error

Definition at line 46 of file PragueSkyModelInterface.h.

Constructor & Destructor Documentation

◆ PragueSkyModelInterface()

PragueSkyModelInterface::PragueSkyModelInterface ( )

Constructor - creates uninitialized interface.

Definition at line 28 of file PragueSkyModelInterface.cpp.

◆ ~PragueSkyModelInterface()

PragueSkyModelInterface::~PragueSkyModelInterface ( )

Destructor - cleans up Prague model instance.

Definition at line 32 of file PragueSkyModelInterface.cpp.

Member Function Documentation

◆ computeIntegratedSkyRadiance()

float PragueSkyModelInterface::computeIntegratedSkyRadiance ( const vec3 view_direction,
const vec3 sun_direction,
float  visibility_km,
const std::vector< vec2 > &  camera_response,
float  albedo = -1.0f 
) const

Compute sky radiance integrated over camera spectral response.

Integrates: ∫ L(λ) × R(λ) dλ / ∫ R(λ) dλ where L(λ) is sky radiance and R(λ) is camera spectral response.

Parameters
[in]view_directionViewing direction (normalized vector)
[in]sun_directionSun direction (normalized vector)
[in]visibility_kmAtmospheric visibility in kilometers
[in]camera_responseCamera spectral response [(lambda_nm, response), ...] Must be sorted by wavelength. Response values are unitless (0-1).
[in]albedoGround albedo [0-1] (optional, uses dataset default if <0)
Returns
Integrated sky radiance in W/m²/sr
Note
Uses trapezoidal integration with automatic wavelength sampling

Definition at line 156 of file PragueSkyModelInterface.cpp.

◆ getAvailableRanges()

void PragueSkyModelInterface::getAvailableRanges ( float &  min_wavelength_nm,
float &  max_wavelength_nm,
float &  min_visibility_km,
float &  max_visibility_km,
float &  min_elevation_deg,
float &  max_elevation_deg 
) const

Get available data ranges from loaded dataset.

Parameters
[out]min_wavelength_nmMinimum wavelength (nm)
[out]max_wavelength_nmMaximum wavelength (nm)
[out]min_visibility_kmMinimum visibility (km)
[out]max_visibility_kmMaximum visibility (km)
[out]min_elevation_degMinimum solar elevation (degrees)
[out]max_elevation_degMaximum solar elevation (degrees)
Note
Throws helios_runtime_error if model not initialized

Definition at line 227 of file PragueSkyModelInterface.cpp.

◆ getSkyRadiance()

float PragueSkyModelInterface::getSkyRadiance ( const vec3 view_direction,
const vec3 sun_direction,
float  wavelength_nm,
float  visibility_km,
float  albedo = -1.0f 
) const

Get sky radiance at a single wavelength and direction.

Parameters
[in]view_directionViewing direction (normalized vector)
[in]sun_directionSun direction (normalized vector from origin to sun)
[in]wavelength_nmWavelength in nanometers [360-1480 nm]
[in]visibility_kmAtmospheric visibility in kilometers [20-131.8 km]
[in]albedoGround albedo [0-1] (optional, uses dataset default if <0)
Returns
Sky radiance in W/m²/sr/nm
Note
Throws helios_runtime_error if:
  • Model not initialized
  • Wavelength outside dataset range
  • Visibility outside dataset range

Definition at line 105 of file PragueSkyModelInterface.cpp.

◆ initialize()

void PragueSkyModelInterface::initialize ( const std::string &  dataset_path)

Initialize the Prague Sky Model with dataset file.

Parameters
[in]dataset_pathAbsolute path to Prague dataset (.dat file)
Note
Fails with helios_runtime_error if:
  • Dataset file not found
  • Dataset read error
  • Already initialized

Definition at line 37 of file PragueSkyModelInterface.cpp.

◆ isInitialized()

bool PragueSkyModelInterface::isInitialized ( ) const

Check if model has been initialized.

Returns
true if initialize() was called successfully

Definition at line 70 of file PragueSkyModelInterface.cpp.

◆ turbidityToVisibility()

float PragueSkyModelInterface::turbidityToVisibility ( float  turbidity)
static

Convert Helios turbidity (AOD) to Prague visibility (km)

Uses Koschmieder formula: V ≈ 3.9 / turbidity Clamps result to Prague dataset range [20, 131.8 km]

Parameters
[in]turbidityÅngström aerosol optical depth at 500 nm
Returns
Visibility in kilometers

Definition at line 208 of file PragueSkyModelInterface.cpp.


The documentation for this class was generated from the following files: