![]() |
SuperNOVAS C++ API v1.6
High-precision C/C++ astrometry library
|
Accounting for atmopheric refraction for observers on or above Earth's surface. More...
Classes | |
| class | supernovas::Horizontal |
| Horizontal (azimuth, elevation = Az/El) sky coordinates at a geodetic observing location, such as an observatory site, an aircraft, or a balloon. More... | |
| class | supernovas::Weather |
| Weather data, mainly for atmopsheric refraction correction for Earth-based (geodetic) observers. More... | |
Macros | |
| #define | NOVAS_DEFAULT_WAVELENGTH 0.55 |
| [μm] Default wavelength, for wavelength-dependent refraction models. | |
Typedefs | |
| typedef double(* | RefractionModel) (double jd_tt, const on_surface *loc, enum novas_refraction_type type, double el) |
| A function that returns a refraction correction for a given date/time of observation at the given site on earth, and for a given astrometric source elevation. | |
Functions | |
| double | novas_optical_refraction (double jd_tt, const on_surface *loc, enum novas_refraction_type type, double el) |
| Returns an optical refraction correction using the weather parameters defined for the observer location. | |
| double | novas_radio_refraction (double jd_tt, const on_surface *loc, enum novas_refraction_type type, double el) |
| Atmospheric refraction model for radio wavelengths (Berman & Rockwell 1976). | |
| int | novas_refract_wavelength (double microns) |
| Sets the observing wavelength for which refraction is to be calculated when using a wavelength-depenendent model, such as novas_wave_refraction(). | |
| double | novas_standard_refraction (double jd_tt, const on_surface *loc, enum novas_refraction_type type, double el) |
| Returns an optical refraction correction for a standard atmosphere. | |
| double | novas_wave_refraction (double jd_tt, const on_surface *loc, enum novas_refraction_type type, double el) |
| The wavelength-dependent IAU atmospheric refraction model, based on the SOFA iauRefco() function, in compliance to the 'SOFA Software License' terms of the original source. | |
| Horizontal | supernovas::Horizontal::to_refracted (RefractionModel ref, const Weather &weather=Weather::standard(), const Time &time=Time::undefined()) |
| Applies atmospheric refraction correction for these coordinates, returning the result. | |
| Horizontal | supernovas::Horizontal::to_unrefracted (RefractionModel ref, const Weather &weather=Weather::standard(), const Time &time=Time::undefined()) |
| Undoes atmospheric refraction correction for these coordinates, returning the result. | |
Accounting for atmopheric refraction for observers on or above Earth's surface.
SuperNOVAS provides various atmopsheric refraction models. Some use the specified weather parameters, while others use a standard weather for the observer location. Some models are wavelength dependent, so user's can (should) specify a observing wavelength when using them.
| #define NOVAS_DEFAULT_WAVELENGTH 0.55 |
[μm] Default wavelength, for wavelength-dependent refraction models.
It is set to the median wavelength of visible light.
| typedef double(* RefractionModel) (double jd_tt, const on_surface *loc, enum novas_refraction_type type, double el) |
A function that returns a refraction correction for a given date/time of observation at the given site on earth, and for a given astrometric source elevation.
| jd_tt | [day] Terrestrial Time (TT) based Julian data of observation |
| loc | Pointer to structure defining the observer's location on earth, and local weather |
| type | Whether the input elevation is observed or astrometric: NOVAS_REFRACT_OBSERVED (-1) or NOVAS_REFRACT_ASTROMETRIC (0). |
| el | [deg] Astrometric (unrefracted) source elevation |
| double novas_optical_refraction | ( | double | jd_tt, |
| const on_surface * | loc, | ||
| enum novas_refraction_type | type, | ||
| double | el ) |
Returns an optical refraction correction using the weather parameters defined for the observer location.
As such, make sure that temperature and pressure are defined, e.g. set after calling e.g. make_gps_site(), make_itrf_site(), make_xyz_site(), or similar call that initializes the observing site.
| jd_tt | [day] Terrestrial Time (TT) based Julian data of observation (unused in this implementation of RefractionModel) |
| loc | Pointer to structure defining the observer's location on earth, and local weather values (temperature and pressure are used by this call). |
| type | Whether the input elevation is observed or astrometric: NOVAS_REFRACT_OBSERVED (-1) or NOVAS_REFRACT_ASTROMETRIC (0). |
| el | [deg] Astrometric (unrefracted) source elevation |
References NOVAS_WEATHER_AT_LOCATION.
| double novas_radio_refraction | ( | double | jd_tt, |
| const on_surface * | loc, | ||
| enum novas_refraction_type | type, | ||
| double | el ) |
Atmospheric refraction model for radio wavelengths (Berman & Rockwell 1976).
It uses the weather parameters defined for the location, including humidity. As such, make sure the weather data is fully defined, and that the humidity was explicitly set after calling e.g. make_gps_site(), make_itrf_site(), make_xyz_site(), or similar call that initializes the observing site.
Adapted from FORTAN code provided by Berman & Rockwell 1976.
REFERENCES:
| jd_tt | [day] Terrestrial Time (TT) based Julian data of observation (unused in this implementation of RefractionModel) |
| loc | Pointer to structure defining the observer's location on earth, and local weather. Make sure all weather values, including humidity (added in v1.1), are fully populated. |
| type | Whether the input elevation is observed or astrometric: NOVAS_REFRACT_OBSERVED (-1) or NOVAS_REFRACT_ASTROMETRIC (0). |
| el | [deg] source elevation angle of the specified type. |
References novas_on_surface::humidity, novas_inv_refract(), novas_radio_refraction(), NOVAS_REFRACT_ASTROMETRIC, NOVAS_REFRACT_OBSERVED, novas_on_surface::pressure, and novas_on_surface::temperature.
Referenced by novas_radio_refraction(), refract(), and refract_astro().
| int novas_refract_wavelength | ( | double | microns | ) |
Sets the observing wavelength for which refraction is to be calculated when using a wavelength-depenendent model, such as novas_wave_refraction().
| microns | [μm] Observed wavelength to assume in refraction calculations |
| double novas_standard_refraction | ( | double | jd_tt, |
| const on_surface * | loc, | ||
| enum novas_refraction_type | type, | ||
| double | el ) |
Returns an optical refraction correction for a standard atmosphere.
| jd_tt | [day] Terrestrial Time (TT) based Julian data of observation (unused in this implementation of RefractionModel) |
| loc | Pointer to structure defining the observer's location on earth, and local weather |
| type | Whether the input elevation is observed or astrometric: NOVAS_REFRACT_OBSERVED (-1) or NOVAS_REFRACT_ASTROMETRIC (0). |
| el | [deg] Source elevation angle of the specified type. |
References NOVAS_STANDARD_ATMOSPHERE.
| double novas_wave_refraction | ( | double | jd_tt, |
| const on_surface * | loc, | ||
| enum novas_refraction_type | type, | ||
| double | el ) |
The wavelength-dependent IAU atmospheric refraction model, based on the SOFA iauRefco() function, in compliance to the 'SOFA Software License' terms of the original source.
Our implementation is not provided nor it is endorsed by SOFA. The original function has been modified slightly, such as:
The refraction is calculated for the observing wavelenth previously set via novas_refract_wavelength(), or for visible light at 550 nm by default.
The function uses the weather parameters defined for the location, including humidity. As such, make sure the weather data is fully defined, and that the humidity was explicitly set after calling e.g. make_gps_site(), make_itrf_site(), make_xyz_site(), or similar call that initializes the observing site.
According to the documentation of SOFA's iauRefco() function, the model has the following accuracy for elevation angles between 15 and 75 degrees, under a range of typical surface conditions:
| worst | RMS | |
|---|---|---|
| optical/IR | 62 mas | 8 mas |
| radio | 319 mas | 49 mas |
NOTES:
REFERENCES:
| jd_tt | [day] Terrestrial Time (TT) based Julian data of observation (unused in this implementation of RefractionModel) |
| loc | Pointer to structure defining the observer's location on earth, and local weather. Make sure all weather values, including humidity (added in v1.1), are fully populated. |
| type | Whether the input elevation is observed or astrometric: NOVAS_REFRACT_OBSERVED (-1) or NOVAS_REFRACT_ASTROMETRIC (0). |
| el | [deg] observed source elevation of the specified type. |
References novas_on_surface::humidity, novas_inv_refract(), NOVAS_REFRACT_ASTROMETRIC, NOVAS_REFRACT_OBSERVED, novas_wave_refraction(), novas_on_surface::pressure, and novas_on_surface::temperature.
Referenced by novas_wave_refraction(), and refract().
| Horizontal supernovas::Horizontal::to_refracted | ( | RefractionModel | ref, |
| const Weather & | weather = Weather::standard(), | ||
| const Time & | time = Time::undefined() ) |
Applies atmospheric refraction correction for these coordinates, returning the result.
| ref | refraction model to use, or NULL to skip refraction correction |
| weather | (optional) local weather parameters to use for the refraction correction. (default: standard atmopshere). |
| Time of observation and astronomical timescales | (optional) Time of observation, for time-dependent refraction models. |
References supernovas::Unit::deg, elevation(), supernovas::Validating::is_valid(), supernovas::Time::jd(), supernovas::Spherical::latitude(), supernovas::Spherical::longitude(), and NOVAS_REFRACT_ASTROMETRIC.
| Horizontal supernovas::Horizontal::to_unrefracted | ( | RefractionModel | ref, |
| const Weather & | weather = Weather::standard(), | ||
| const Time & | time = Time::undefined() ) |
Undoes atmospheric refraction correction for these coordinates, returning the result.
| ref | refraction model to use, or NULL to skip refraction correction |
| weather | (optional) local weather parameters to use for the refraction correction. (default: standard atmopshere). |
| Time of observation and astronomical timescales | (optional) Time of observation, for time-dependent refraction models. |
References supernovas::Unit::deg, elevation(), supernovas::Validating::is_valid(), supernovas::Time::jd(), supernovas::Spherical::latitude(), supernovas::Spherical::longitude(), and NOVAS_REFRACT_OBSERVED.