Library interface — CALCEPH - Octave/Matlab language 3.4.1 documentation

# Library interface

## A simple example program

The following example program shows the typical usage of the Octave/Matlab interface.

Other examples using the Octave/Matlab interface can be found in the directory examples of the library sources.

    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);
    disp(PV)
    peph.close();

## Package

It is designed to work with Matlab or Octave software.

With Octave, you should load this package :

    pkg load calcephoct

If you want Octave to automatically load this package, simply add to the file octaverc the command pkg load calcephoct .

With Matlab, you should add the path to the Matlab files of the dynamic library CALCEPH :

    addpath('<prefix>/libexec/calceph/mex/')

By default, this prefix is /usr/local, so you have to enter before using calceph library.

    addpath('/usr/local/libexec/calceph/mex/')

If you want Matlab to automatically add this path at startup, simply add to this path to the environment variable MATLABPATH.

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

class `CalcephBin`

This type contains all information to access an ephemeris file.

class `NaifId`

This type contains the NAIF identification numbers.

class `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.

`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 `CalcephBin.compute()`.

The following constants specify in which units are expressed the output of the computation functions, such as `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 `CalcephBin.compute_unit()`.