sora.ephem

The EphemPlanete Class

class sora.EphemPlanete(ephem, name=None, spkid=None, **kwargs)[source]

Class used to simulate former Fortran programs ephem_planete and fit_d2_ksi_eta.

ephem

Input file with JD (UTC), geocentric RA (deg), DEC (deg), and distance (AU).

Type

file, required

name

Name of the object to search in the JPL database.

Type

str, optional, default=None

radius

Object radius, in km.

Type

int, float, optional, default: online database

error_ra

Ephemeris RA*cosDEC error, in arcsec.

Type

int, float, optional, default: online database

error_dec

Ephemeris DEC error, in arcsec.

Type

int, float, optional, default: online database

mass

Object mass, in kg.

Type

int, float, optional. default=0

H

Object absolute magnitude.

Type

int, float, optional, default=NaN

G

Object phase slope.

Type

int, float, optional, default=NaN

fit_d2_ksi_eta(star, verbose=True)[source]

Fits the projected position (orthographic projection) of the object in the tangent sky plane relative to a star.

Parameters
  • star (str, astropy.coordinates.SkyCoord) – The coordinate of the star in the same reference frame as the ephemeris.

  • verbose (bool, optional, default=True) – Enable log printing.

get_ksi_eta(time, star=None)[source]

Returns the projected position (orthographic projection) of the object in the tangent sky plane relative to a star.

Parameters
  • time (str, astropy.time.Time, required) – Reference time to calculate the position. It can be a string in the ISO format (yyyy-mm-dd hh:mm:ss.s) or an astropy Time object.

  • star (str, astropy.coordinates.SkyCoord, optional, default=None) – The coordinate of the star in the same reference frame as the ephemeris.

Returns

ksi, eta – Projected position (orthographic projection) of the object in the tangent sky plane relative to a star. ksi is in the North-South direction (North positive). eta is in the East-West direction (East positive).

Return type

float array

get_position(time, observer='geocenter')[source]

Returns the object’s geocentric position.

Parameters
  • time (str, astropy.time.Time) – Reference time to calculate the object position. It can be a string in the ISO format (yyyy-mm-dd hh:mm:ss.s) or an astropy Time object.

  • observer (any) – This parameter is present in EphemPlanete for compatibility with the remaining ephem classes. The returned positions are based on the given ephemeris despite the observer.

Returns

coord – Astropy SkyCoord object with the object coordinates at the given time.

Return type

astropy.coordinates.SkyCoord

The EphemHorizons Class

class sora.EphemHorizons(name, id_type='smallbody', spkid=None, **kwargs)[source]

Obtains the ephemeris from Horizons/JPL service.

name

Name of the object to search in the JPL database.

Type

str, required

id_type

Type of object options: smallbody, majorbody (planets but also anything that is not a small body), designation, name, asteroid_name, comet_name, id (Horizons id number), or smallbody (find the closest match under any id_type).

Type

str, default=’smallbody’

radius

Object radius, in km.

Type

int, float, default: online database

error_ra

Ephemeris RA*cosDEC error, in arcsec.

Type

int, float, default: online database

error_dec

Ephemeris DEC error, in arcsec.

Type

int, float, default: online database

mass

Object mass, in kg.

Type

int, float, default=0

H

Object absolute magnitude.

Type

int, float, default=NaN

G

Object phase slope.

Type

int, float, default=NaN

get_position(time, observer='geocenter')[source]

Returns the ICRS position of the object for observer.

Parameters
  • time (str, astropy.time.Time) – Reference time to calculate the object position. It can be a string in the ISO format (yyyy-mm-dd hh:mm:ss.s) or an astropy Time object.

  • observer (str, sora.Observer, sora.Spacecraft) – IAU code of the observer (must be present in given list of kernels), a SORA observer object or a string: [‘geocenter’, ‘barycenter’]

Returns

coord – Astropy SkyCoord object with the object coordinates at the given time.

Return type

astropy.coordinates.SkyCoord

The EphemKernel Class

class sora.EphemKernel(kernels, spkid, name=None, **kwargs)[source]

Gets the ephemeris from BSP kernels.

Parameters
  • name (str, optional, default=None) – Name of the object to search in the JPL database.

  • spkid (str, required) – spkid of the targeting object. Former ‘code’ (v0.1).

  • kernels (list, required) – List of paths for kernels files.

  • radius (int, float, optional, default: online database) – Object radius, in km.

  • error_ra (int, float, optional, default: online database) – Ephemeris RA*cosDEC error, in arcsec .

  • error_dec (int, float, optional, default: online database) – Ephemeris DEC error, in arcsec.

  • mass (int, float, optional, default=0) – Object Mass, in kg.

  • H (int, float, optional, default=NaN) – Object Absolute Magnitude.

  • G (int, float, optional, default=NaN) – Object Phase slope.

get_position(time, observer='geocenter')[source]

Returns the object geocentric position.

Parameters
  • time (str, astropy.time.Time) – Reference time to calculate the object position. It can be a string in the ISO format (yyyy-mm-dd hh:mm:ss.s) or an astropy Time object.

  • observer (str, sora.Observer, sora.Spacecraft) – IAU code of the observer (must be present in given list of kernels), a SORA observer object or a string: [‘geocenter’, ‘barycenter’]

Returns

coord – Astropy SkyCoord object with the object coordinates at the given time.

Return type

astropy.coordinates.SkyCoord

Complementary functions

sora.ephem.utils.ephem_horizons(time, target, observer, id_type='smallbody', output='ephemeris')[source]

Calculates the ephemeris from Horizons.

Parameters
  • time (str, astropy.time.Time) – Reference instant to calculate ephemeris. It can be a string in the ISO format (yyyy-mm-dd hh:mm:ss.s) or an astropy Time object.

  • target (str) – IAU (kernel) code of the target.

  • observer (str) – IAU (kernel) code of the observer.

  • id_type (str) – Type of target object options: smallbody, majorbody (planets but also anything that is not a small body), designation, name, asteroid_name, comet_name, id (Horizons id number), or smallbody (find the closest match under any id_type).

  • output (str) – The output of data. ephemeris will output the observed position, while vector will output the Cartesian state vector, without light time correction.

Returns

coord – ICRS coordinate of the target.

Return type

astropy.coordinates.SkyCoord

Notes

If the interval of time is larger than 30 days or so, a timeout error may be raised. The maximum interval will depend on the user connection.

sora.ephem.utils.ephem_kernel(time, target, observer, kernels, output='ephemeris')[source]

Calculates the ephemeris from kernel files.

Parameters
  • time (str, astropy.time.Time) – Reference instant to calculate ephemeris. It can be a string in the ISO format (yyyy-mm-dd hh:mm:ss.s) or an astropy Time object.

  • target (str) – IAU (kernel) code of the target.

  • observer (str) – IAU (kernel) code of the observer.

  • kernels (list, str) – List of paths for all the kernels.

  • output (str) – The output of data. ephemeris will output the observed position, while vector will output the Cartesian state vector, without light time correction.

Returns

coord – ICRS coordinate of the target.

Return type

astropy.coordinates.SkyCoord

sora.ephem.utils.getBSPfromJPL(identifier, initial_date, final_date, email, directory='./')[source]

Downloads BSP files from JPL database.

BSP files, which have information to generate the ephemeris of the objects, will be downloaded and named as (without spaces): ‘[identifier].bsp’.

Important

It is not possible to download BSP files for Planets or Satellites.

Parameters
  • identifier (str, list) –

    Identifier of the object(s). It can be the name, number or SPK ID. It can also be a list of objects.

    Examples: '2137295', '1999 RB216', '137295', ['2137295', '136199', '1999 RC216', 'Chariklo'].

  • initial_date (str) –

    Date the bsp file is to begin, within span 1900-2100.

    Examples: '2003-02-01', '2003-3-5'.

  • final_date (str) –

    Date the bsp file is to end, within span [1900-2100]. Must be more than 32 days later than initial_date.

    Examples: '2006-01-12', '2006-1-12'.

  • email (str) –

    User’s e-mail contact address. Required by JPL web service.

    Example: username@user.domain.name.

  • directory (str) – Directory path to save the bsp files.