8000 Release v1.4.0 · Smithsonian/SuperNOVAS · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

v1.4.0

Latest
Compare
Choose a tag to compare
@attipaci attipaci released this 01 Jun 21:38
· 10 commits to main since this release
3c6f3df

Feature release, with critical bug fixes.

Fixed

  • #188: Critical bug in novas_make_transform() since inception in v1.1. Compound transforms were calculated using matrix products in the wrong commutation order (successive transforms were multiplied from the right instead of from the left). Very embarrasing indeed, and somehow it went unnoticed with the testing suite also (even more embarrassing...).

  • #183: IERS Earth orientation corrections set via cel_pole() were not taken into account for true obliquity and the equation of equinoxes in e_tilt(). This was a bug since v1.0. The bug only affected the old (pre IAU 2006) ways of incorporating polar offsets into TOD coordinates, at the sub-arcsec level. Note, than even with the old method, it is now preferrable to apply such offsets with wobble() for the PEF / TIRS to ITRS (and reverse) conversions instead.

  • #184: The frame based approach introduced in v1.1 has ommitted applying polar wobble corrections for transforming between the TIRS) / PEF and ITRS, and vice versa. This resulted in an error at the sub-arcsec level for celestial to ITRS / horizontal (or reverse) calculations, when IERS Earth orientation parameters were explicitly set.

  • #187: The NOVAS C 3.1 implementation of cel2ter() / ter2cel() was such that if both xp and yp parameters were zero, then no wobble correction was applied, not even for the TIO location (s') when converting between CIRS and ITRS. The error from this omission is very small, at just a few μas (micro-acrseconds) within a couple of centuries of J2000.

  • #190: Reverse wobble() (ITRS to TIRS/PEF) had wrong 2nd order corrections, resulting in negligible errors below 0.1 μas (micro-arcseconds) typically.

  • #193: C++ namespace conflict in novas_frame declaration. Fixed by declaring and using named structure types instead of the conflicting typedef aliases.

Added

  • #172: Added novas_time_gst() and novas_time_lst() convenience functions to calculate the Greenwich (apparent) Sidereal Time (GST / GaST) and Local (apparent) Sidereal Time (LST / LaST) for a given astrometric time (and observer location) more easily.

  • #173: Added our own implementation of the wavelength-dependent IAU refraction model as novas_wave_refraction(), which is based on the SOFA iauRefco() function. The wavelength for which the refraction is calculated can be set by novas_refract_wavelength(). By default 550 nm (0.55 μm) is assumed.

  • #176: novas_make_planet_orbit() to generate Keplerian orbital elements for the major planets (sans Earth), and the Earth-Moon Barycenter (EMB), based on Standish & Williams 1992. In most cases such orbitals can provide arcmin-level precisions, especially for current dates.

  • #176:novas_make_moon_orbit() to generate geocentric Keplerian orbital elements for the Moon using the Chapront et al. 2002 model.

  • #176: novas_approx_heliocentric() and novas_approx_sky_pos() to calculate approximate heliocentric ICRS and observable apparent positions, respectively, for the major planets (including Earth), and Moon and the Earth-Moon Barycenter, using the orbital models mentioned above.

  • #176: novas_moon_phase() and novas_next_moon_phase() to calculate the Moon's apparent phase or the date/time when it reaches a specific phase, respectively, using the Keplerian orbitals for the E-M Barycenter by Standish & Williams 1992, and the geocentric orbitals of the Moon by Chapront et al. 2002.

  • #176: novas_orbital_native_posvel() to calculate orbital positions in the native system, in which the orbital is defined (e.g. ecliptic coordinates for planetary orbits).

  • #177: Added novas_day_of_week() and novas_day_of_year() functions to convert JD dates to a 1-based day of week index, or to a day of the year in the calendar of choice.

  • #185: Added NOVAS_TIRS and NOVAS_ITRS to enum novas_reference_systems. All frame-based functions now support these. Legacy place() and its variants support TIRS but not ITRS (because of the lack of information available to the legacy calls), while Keplerian orbitals may not be be defined in either TIRS or ITRS since these Earth co-rotating systems are not inertial systems.

  • #186: Added NOVAS_RADIO_REFRACTION and NOVAS_WAVE_REFRACTION to enum novas_refraction_model, for referencing the Berman & Rockwell 1976 radio-wave model, or the IAU / SOFA wavelength-dependent model, respectively.

  • #191: Added tt2tdb_hp() (high-precision) and tt2tdb_fp() (flexible-precision) functions for calculating the TDB-TT time difference (in seconds), with up to 0.1 μs accuracy based on Fairhead & Bretagnon 1990.

  • #194: Added documentation under resources/ for a side-by-side example comparison with astropy.

Changed

  • #173: Added parameter range checking to refract() function and novas_radio_refraction() model. If called with weather parameters or an elevation angle outside of reasonable values, NaN will be returned and errno will be set to EINVAL.

  • #181: Changed nutation_angles() to apply P03 model rescaling to IAU2000 nutation angles to provide 'IAU2006' values (see Capitaine et al. 2005). The same rescaling has been adopted by SOFA also.

  • #186: Tweaked error handling in atmospheric refraction functions (in refract.c).

  • NOVAS_RMASS_INIT (in novas.h) and LG (in timescale.c) values updated with DE440 data (Park et al. 2021).

  • Moved some functions around between source files.

Deprecated

  • Deprecated cel_pole() function and EPS_COR / PSI_COR global variables, which provided support for the old (now disfavored) way of incorporating Earth orientation parameters as corrections into the true equator and equinox of date. The preferred way to incorpotate Earth orientation corrections is to use dx,dy offsets relative to the IAU2006 precession-nutation model only when transforming between the Terrestrial Intermediate Reference System (TIRS) or Pseudo Earth-Fixed (PEF) system and the International Terrestrial Reference System (ITRS), and vice versa.
0