Library interface — CALCEPH - Python language 3.4.1 documentation

# Library interface

## A simple example program

The following example program shows the typical usage of the Python interface.

Other examples using the Python interface can be found in the directory examples of the library sources.

    from calcephpy import *
    peph = CalcephBin.open("example1.dat")
    AU = peph.getconstant("AU")
    jd0 = 2451542
    dt = 0.5
    PV = peph.compute_unit(jd0, dt, NaifId.MOON, NaifId.EARTH,
                           Constants.UNIT_KM+Constants.UNIT_SEC+Constants.USE_NAIFID)
    print(PV)
    peph.close()

## Modules

It is designed to work with Python interpreters compliant with the Python 2.6 or later and Python 3.0 or later.

All declarations needed to use CALCEPH Library are collected in the module `calcephpy`. You should import this module:

>     from calcephpy import *

If you receive the following message `ImportError: No module named calcephpy` and if the configuration option enable-python-package-system and enable-python-package-user was not set, the environment variable PYTHONPATH should be set to the right location of the CALCEPH python package ( e.g., PYTHONPATH=/usr/local/lib64/python3.4/site-packages/:$PYTHONPATH ) in your shell initialization file (e.g., ~/.bash_login or ~/.profile), in order that the python interpreter finds the CALCEPH python package.

Relative to C or Fortran interface, the prefixes calceph_, CALCEPH_, NAIFID_ are deleted for the naming convention of the functions, constants and NAIF identification numbers.

## Types

`calcephpy.` `CalcephBin`

This type contains all information to access an ephemeris file.

`calcephpy.` `NaifId`

This type contains the NAIF identification numbers.

`calcephpy.` `Constants`

This type contains all constants defined in the library, except the NAIF identification numbers.

## Constants

The following constants are defined in the class Constants (or calcephpy.Constants).

`VERSION_MAJOR`

This integer constant defines the major revision of this library. It can be used to distinguish different releases of this library.

`VERSION_MINOR`

This integer constant defines the minor revision of this library. It can be used to distinguish different releases of this library.

`VERSION_PATCH`

This integer constant defines the patch level revision of this library. It can be used to distinguish different releases of this library.

`VERSION_STRING`

This string is the version of the library, which can be compared to the result of calceph_getversion to check at run time if the header file and library used match:

Note: Obtaining different strings is not necessarily an error, as in general, a program compiled with some old CALCEPH version can be dynamically linked with a newer CALCEPH library version (if allowed by the operating system).

`ASTEROID`

This integer defines the offset value for the asteroids that must be used as target or center for the computation functions, such as `calcephpy.CalcephBin.compute()`.

The following constants specify in which units are expressed the output of the computation functions, such as `calcephpy.CalcephBin.compute_unit()` :

`UNIT_AU`

This integer defines that the unit of the positions and velocities is expressed in astronomical unit.

`UNIT_KM`

This integer defines that the unit of the positions and velocities is expressed in kilometer.

`UNIT_DAY`

This integer defines that the unit of the velocities or the quantity TT-TDB or TCG-TCB is expressed in day (one day=86400 seconds).

`UNIT_SEC`

This integer defines that the unit of the velocities or the quantity TT-TDB or TCG-TCB is expressed in second.

`UNIT_RAD`

This integer defines that the unit of the angles is expressed in radian.

`OUTPUT_EULERANGLES`

This integer defines that the output array contains the euler angles.

`OUTPUT_NUTATIONANGLES`

This integer defines that the output array contains the nutation angles.

`USE_NAIFID`

This integer defines that the NAIF identification numbers are used as target or center for the computation functions, such as `calcephpy.CalcephBin.compute_unit()`.