SuperNOVAS v1.2
The NOVAS C library, made better
Loading...
Searching...
No Matches
solsys-calceph.c File Reference

Functions

int novas_calceph_use_ids (enum novas_id_type idtype)
 
int novas_use_calceph (t_calcephbin *eph)
 
int novas_use_calceph_planets (t_calcephbin *eph)
 

Detailed Description

Author
A. Kovacs
Since
1.2

SuperNOVAS Solar-system ephemeris lookup implementation via the CALCEPH C library.

This is an optional component of SuperNOVAS, which interfaces to the CALCEPH C library. As such, you may need the CALCEPH runtime libraries in an accessible location (such as in /usr/lib) to use, and you will need development files (C headers and unversioned libraries) to build. Thus, this module is compiled only if CALCEPH_SUPPORT is set to 1 prior to the build.

REFERENCES:

  1. CALCEPH is at https://calceph.imcce.fr/docs/4.0.0/html/c/
  2. CALCEPH source code is at https://gitlab.obspm.fr/imcce_calceph/calceph
See also
solarsystem.h
solsys-cspice.c

Function Documentation

◆ novas_calceph_use_ids()

int novas_calceph_use_ids ( enum novas_id_type  idtype)

Sets the type of Solar-system body IDs to use as object.number with NOVAS_EPHEM_OBJECT types. CALCEPH supports the use of both NAIF and its own numbering system to identify Solar-system bodies. So, this function gives you the choice on which numbering system you want to use in object data structures. The choice does not affect major planets (which always use the NOVAS numbering scheme), or catalog objects.

Parameters
idtypeNOVAS_ID_NAIF to use NAIF IDs (default) or else NOVAS_ID_CALCEPH to use the CALCEPH body numbering convention for object.
Returns
0 if successful or else -1 (errno set to EINVAL) if the input value is invalid.
See also
object
NOVAS_EPHEM_OBJECT

References NOVAS_ID_CALCEPH, and NOVAS_ID_NAIF.

◆ novas_use_calceph()

int novas_use_calceph ( t_calcephbin *  eph)

Sets a ephemeris provider for Solar-system objects using the CALCEPH C library and the specified set of ephemeris files. If the supplied ephemeris files contain data for major planets also, they can be used by planet_calceph() / planet_calceph_hp() also, unless a separate CALCEPH ephemeris data is set via novas_use_calceph_planets().

The call also make CALCEPH the default ephemeris provider for all types of Solar-system objects. If you want to use another provider for major planets, you need to call set_planet_provider() / set_planet_provider_hp() afterwards to specify a different provider for major planets (and Sun, Moon, SSB...).

Parameters
ephPointer to the CALCEPH ephemeris data that have been opened.
Returns
0 if successful, or else -1 (errno will indicate the type of error).
See also
novas_calceph_use_ids()
novas_use_calceph_planets()
set_ephem_provider()
Author
Attila Kovacs
Since
1.2

References novas_use_calceph_planets(), and set_ephem_provider().

◆ novas_use_calceph_planets()

int novas_use_calceph_planets ( t_calcephbin *  eph)

Sets the CALCEPH C library and the specified ephemeris data as the ephemeris provider for the major planets (and Sun, Moon, SSB...).

Parameters
ephPointer to the CALCEPH ephemeris data for the major planets (including Sun, Moon, SSB...) that have been opened.
Returns
0 if successful, or else -1 (errno will indicate the type of error).
See also
novas_use_calceph()
set_planet_provider()
set_planet_provider_hp()
Author
Attila Kovacs
Since
1.2

References set_planet_provider(), and set_planet_provider_hp().