sora.observer

The Observer Class

class sora.Observer(**kwargs)[source]

Defines the observer object.

name

Name for the Observer. Observer is uniquely defined (name must be different for each observer).

Type:

str

code

The IAU code for SORA to search for its coordinates in MPC database.

Type:

str

site

User provides an EarthLocation object.

Type:

astropy.coordinates.EarthLocation

lon

The Longitude of the site in degrees. Positive to East. Range (0 to 360) or (-180 to +180). User can provide in degrees (float) or hexadecimal (string).

Type:

str, float

lat

The Latitude of the site in degrees. Positive North. Range (+90 to -90). User can provide in degrees (float) or hexadecimal (string).

Type:

str, float

height

The height of the site in meters above see level.

Type:

int, float

ephem

The ephemeris used to locate the observer on space. It can be “horizons” to use horizons or a list of kernels

Type:

str, list

Examples

User can provide one of the following to define an observer:

  • If user will use the MPC name for the site:

>>> Observer(code)
  • If user wants to use a different name from the MPC database:

>>> Observer(name, code)
  • If user wants to use an EarthLocation value:

>>> from astropy.coordinates import EarthLocation
>>> EarthLocation(lon, lat, height)
>>> Observer(name, site)
  • If user wants to give site coordinates directly:

>>> Observer(name, lon, lat, height)
altaz(time, coord)[source]

Calculates the Altitude and Azimuth at a reference time for a coordinate.

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

  • coord (str, astropy.coordinates.SkyCoord) – Coordinate of the target ICRS.

Returns:

  • altitude (float) – Object altitude in degrees.

  • azimuth (float) – Object azimuth in degrees.

get_ksi_eta(time, star)[source]

Calculates relative position to star in the orthographic projection.

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

  • star (str, astropy.coordinates.SkyCoord) – The coordinate of the star in the same reference frame as the ephemeris. It can be a string in the format 'hh mm ss.s +dd mm ss.ss' or an astropy SkyCoord object.

Returns:

ksi, eta – On-sky orthographic projection of the observer 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

get_vector(time, origin='barycenter')[source]

Return the vector Origin -> Observer in the ICRS

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.

  • origin (str) – Origin of vector. It can be ‘barycenter’ or ‘geocenter’.

Returns:

coord – Astropy SkyCoord object with the vector origin -> observer at the given time.

Return type:

astropy.coordinates.SkyCoord

sidereal_time(time, mode='local')[source]

Calculates the Apparent Sidereal Time at a reference time.

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

  • mode (str) – Local or greenwich time. If mode set 'local' calculates the sidereal time for the coordinates of this object. If mode set 'greenwich' calculates the Greenwich Apparent Sidereal Time.

Returns:

An Astropy Longitude object with the Sidereal Time.

Return type:

sidereal_time

to_log(namefile)[source]

Saves the observer log to a file.

Parameters:

namefile (str) – Filename to save the log.

The Spacecraft Class

class sora.Spacecraft(name, spkid, ephem='horizons')[source]

Defines a spacecraft observer object.

name

Name for the Observer. Observer is uniquely defined (name must be different for each observer).

Type:

str

spkid

spkid of the targeting object.

Type:

str, required

ephem

The ephemeris used to locate the observer on space. It can be “horizons” to use horizons or a list of kernels

Type:

str, list

get_vector(time, origin='barycenter')[source]

Return the vector Origin -> Observer in the ICRS

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.

  • origin (str) – Origin of vector. It can be ‘barycenter’ or ‘geocenter’.

Returns:

coord – Astropy SkyCoord object with the vector origin -> observer at the given time.

Return type:

astropy.coordinates.SkyCoord

to_log(namefile)[source]

Saves the spacecraft log to a file.

Parameters:

namefile (str) – Filename to save the log.

Complementary functions

sora.observer.utils.search_code_mpc()[source]

Reads the MPC Observer Database.

Returns:

observatories – A python dictionary with all the sites as Astropy EarthLocation objects.

Return type:

dict