Stellarium  0.21.3
Public Types | Public Member Functions
Extinction Class Reference

#include <RefractionExtinction.hpp>

Public Types

enum  UndergroundExtinctionMode { UndergroundExtinctionZero = 0, UndergroundExtinctionMax = 1, UndergroundExtinctionMirror = 2 }
 Define the extinction strategy for rendering underground objects (useful when ground is not rendered) More...
 

Public Member Functions

void forward (const Vec3d &altAzPos, float *mag) const
 Compute extinction effect for given position vector and magnitude. More...
 
void forward (const Vec3f &altAzPos, float *mag) const
 
void backward (const Vec3d &altAzPos, float *mag) const
 Compute inverse extinction effect for given position vector and magnitude. More...
 
void backward (const Vec3f &altAzPos, float *mag) const
 
void setExtinctionCoefficient (float k)
 Set visual extinction coefficient (mag/airmass), influences extinction computation. More...
 
float getExtinctionCoefficient () const
 
void setUndergroundExtinctionMode (UndergroundExtinctionMode mode)
 
UndergroundExtinctionMode getUndergroundExtinctionMode () const
 
float airmass (float cosZ, const bool apparent_z=true) const
 airmass computation for More...
 

Detailed Description

This class performs extinction computations, following literature from atmospheric optics and astronomy. Airmass computations are limited to meaningful altitudes. The solution provided here will [hopefully!] result in a visible "zone of avoidance" near the horizon down to altitude -2, and may show stars in their full brightness below -2 degrees. Typical horizons do not go down below -1, so all natural sites should be covered. Note that forward/backward are no absolute reverse operations! All the computations should be in effect (1) only if atmosphere effects are true (2) only for terrestrial locations, not on Moon/Mars/Saturn etc config.ini:astro/flag_extinction_below_horizon=true|false controls if extinction kills objects below -2 degrees altitude by setting airmass to 42.

Member Enumeration Documentation

◆ UndergroundExtinctionMode

Enumerator
UndergroundExtinctionZero 

Zero extinction: stars visible in full brightness.

UndergroundExtinctionMax 

Maximum extinction: coef 42, i.e practically invisible.

UndergroundExtinctionMirror 

Mirror the extinction for the same altutide above the ground.

Member Function Documentation

◆ airmass()

float Extinction::airmass ( float  cosZ,
const bool  apparent_z = true 
) const
Parameters
cosZ= cosine of zenith angle z (=sin(altitude)!). The default (
apparent_z= true) is computing airmass from observed altitude, following Rozenberg (1966) [X(90)~40]. if (
apparent_z= false), we have geometrical altitude and compute airmass from that, following Young: Air mass and refraction. Applied Optics 33(6), pp.1108-1110, 1994. [X(90)~32]. A problem is that refraction depends on air pressure and temperature, but Young's formula assumes T=15C, p=1013.25mbar. So, it seems better to compute refraction first, and then use the Rozenberg formula here. Rozenberg is infinite at Z=92.17 deg, Young at Z=93.6 deg, so this function RETURNS SUBHORIZONTAL_AIRMASS BELOW -2 DEGREES!

◆ backward()

void Extinction::backward ( const Vec3d altAzPos,
float *  mag 
) const
inline
Parameters
altAzPosis the NORMALIZED (!!) (geometrical) star position vector, and its z component is therefore sin(geometric_altitude). This call must therefore be done after application of Refraction effects if atmospheric effects are on. Note that forward/backward are no absolute reverse operations!

◆ forward()

void Extinction::forward ( const Vec3d altAzPos,
float *  mag 
) const
inline
Parameters
altAzPosis the NORMALIZED (!!) (geometrical) star position vectors, and its z component is therefore sin(geometric_altitude). This call must therefore be done before application of Refraction if atmospheric effects are on. Note that forward/backward are no absolute reverse operations!

◆ setExtinctionCoefficient()

void Extinction::setExtinctionCoefficient ( float  k)
inline
Parameters
k=0.1 for highest mountains, 0.2 for very good lowland locations, 0.35 for typical lowland, 0.5 in humid climates.