Home · All Namespaces · All Classes · Functions · Coding Style · Scripting · Plugins · File Structure

RefractionExtinction Class Reference

This class performs refraction and extinction computations, following literature from atmospheric optics and astronomy. More...

#include <RefractionExtinction.hpp>

List of all members.

Public Member Functions

void forward (Vec3d *altAzPos, float *mag, int size)
void backward (Vec3d *altAzPos, float *mag, int size)
void setPressure (float p_mbar)
void setTemperature (float t_C)
void setExtinctionCoefficient (float k)
float airmass (float cosZ, bool apparent_z=true)


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

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::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::setPressure ( float  p_mbar  ) 

Set surface air pressure (mbars), influences refraction computation.

void RefractionExtinction::setTemperature ( float  t_C  ) 

Set surface air temperature (degrees Celsius), influences refraction computation.

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.

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.1108-1110, 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!


Generated on Wed Jun 2 13:11:13 2010 for Stellarium by  doxygen 1.5.5