OrbFit - B612-Asteroid-Institute/orb_it GitHub Wiki

OrbFit is a Fortran-based Orbit Integrator with connections to the Minor Planet Center.

OrbFit is a software system allowing one to compute the orbits of asteroids (soon also comets) starting from the observations, to propagate these orbits, and to compute predictions on the future (and past) position on the celestial sphere. It is a tool to be used to find a well known asteroid, to recover a lost one, to attribute a small group of observations, to identify two orbits with each other, to study the future (and/or past) close approaches to Earth, thus to assess the risk of an impact, and more.

-OrbFit Documentation, What is OrbFit?

OrbFit's (outdated) documentation can be found here, http://adams.dm.unipi.it/~orbmaint/orbfit/OrbFit/doc/help.html

Installation

The current install of OrbFit for Linux can be found here, http://adams.dm.unipi.it/~orbmaint/orbfit/. You will also need a Fortran compiler (e.g. gfortran). Installation instructions are as follows:

  1. Make a directory called orbfit and cd into it,
mkdir orbfit
cd orbfit
  1. Download OrbFit and unpack the download using tar. Example,
wget http://adams.dm.unipi.it/orbfit/OrbFit5.0.7.tar.gz
tar xvzf OrbFit5.0.7.tar.gz
  1. Configure Fortran compiler,
./config -O gfortran
  1. Call make
make
  1. Install a JPL Binaries file into orbfit/lib and rename it jpleph, an example can be found at https://ssd.jpl.nasa.gov/ftp/eph/planets/Linux/de431/
cd lib
wget -O jpleph https://ssd.jpl.nasa.gov/ftp/eph/planets/Linux/de431/lnxm13000p17000.431
  1. Copy AST17.bai_431_fcct and AST17.bep_431_fcct to lib and rename,
cp ~/orbfit/tests/bineph/testout/AST17.bai_431_fcct ~/orbfit/lib/AST17.bai
cp ~/orbfit/tests/bineph/testout/AST17.bep_431_fcct ~/orbfit/lib/AST17.bep

At this point, OrbFit should be installed.

ORBFIT() Backend

OrbFit integrator backend for orb_it testing.

Keyword Arguments

  • orbfit_path : str, optional, Local path to the location of OrbFit install. Defaults to $HOME/orbfit.
  • arc_limit : int, optional, If the number of days in an arc exceed this limit, the first months worth of observations or first 8 observations are used for the initial fit for Orbit Determination. Default is 31 days.

Attributes

  • name : str, Name of the integrator.

ORBFIT()._propagateOrbits()

Propagate orbits to stop time.

Parameters

  • orbits : ~orb_it.raiden.Orbits, Orbits to propagate.
  • stop : ~astropy.time.core.Time, Times to which to propagate each orbit.
  • out_dir : str, optional, Save input and output files to this directory. Will create a sub directory called propagation inside this directory.

Returns

  • dfs : ~pandas.DataFrame, Orbits propagated to t1.

ORBFIT()._generateEphemeris()

Generate ephemerides for each orbit and observer.

Parameters

  • orbits : ~orb_it.raiden.Orbits, Orbits to propagate.
  • observers : dict, A dictionary with observatory codes as keys and observation_times (~astropy.time.core.Time) as values.
  • out_dir : str, optional, Save input and output files to this directory. Will create a sub directory called ephemeris inside this directory.

Returns

  • ephemeris : ~pandas.DataFrame, Ephemerides for each orbit and observer.

ORBFIT()._orbitDetermination()

Determine orbits from a set of observations.

Parameters

  • observations : ~pandas.DataFrame, DataFrame containing the observational data.
  • full_output : bool, optional, If True, return the ephemeris and the process return codes and residuals.
  • out_dir : str, optional, Path to the output directory.

Returns

  • od_orbits : ~pandas.DataFrame, DataFrame containing the orbital data.

Tips and Tricks (for using outside of orb_it)

  • When inputting KEP elements in a .eq1 file, make sure the angular values are in degrees. OrbFit may assume that KEP elements are in degrees and automatically convert to radians.