This class performs refraction and extinction computations, following literature from atmospheric optics and astronomy.
More...
#include <RefractionExtinction.hpp>
List of all members.
Detailed Description
This class performs refraction and extinction computations, following literature from atmospheric optics and astronomy.
Airmass computations are limited to meaningful altitudes, and refraction solutions can only be aproximate, given the turbulent, unpredictable real atmosphere. The solution provided here will [hopefully!] result in a visible "zone of avoidance" near the horizon down to altitude 2, and will show stars in their full brightness at their geometrical positions below 2 degrees. Of course, plotting stars below the horizon could be coupled to setting of horizon foreground, it's another usability issue. Typical horizons do not go down below 1, so 2 should leave a fair amount of room. 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 celestial objects, never for landscape coordinates (3) only for terrestrial locations, not on Moon/Mars/Saturn etc
Member Function Documentation
float RefractionExtinction::airmass 
( 
float 
cosZ, 


bool 
apparent_z = true  

) 
  
airmass computation for
 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.11081110, 1994. [X(90)~32]. A problem ist 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 has NO EFFECT BELOW 2 DEGREES! 
void RefractionExtinction::backward 
( 
Vec3d * 
altAzPos, 


float * 
mag, 


int 
size  

) 
  
Compute refraction and extinction effects for arrays of size.
 Parameters:

 size  position vectors and magnitudes. 
 altAzPos  are the normalized (apparent) star position vectors, and their z components sin(apparent_altitude). Note that forward/backward are no absolute reverse operations! 
void RefractionExtinction::forward 
( 
Vec3d * 
altAzPos, 


float * 
mag, 


int 
size  

) 
  
Compute refraction and extinction effects for arrays of size.
 Parameters:

 size  position vectors and magnitudes. 
 altAzPos  are the normalized (true) star position vectors, and their z components sin(true_altitude). Note that forward/backward are no absolute reverse operations! 
void RefractionExtinction::setExtinctionCoefficient 
( 
float 
k 
) 

Set visual extinction coefficient (mag/airmass), influences extinction computation.
 Parameters:

 k=  0.1 for highest mountains, 0.2 for very good lowland locations, 0.35 for typical lowland, 0.5 in humid climates. 