Skip to main content

A collection of factory methods to bootstrap orekit python applications.

Project description

Orekit-factory

A collection of utilities to bootstrap an orekit-based python application.

Installation

$ pip install orekit-factory

Usage

The utilities provided by the orekitfactory module can be broken out into the categories below. See the python docs for complete details.

Application initialization

The orekitfactory.init_orekit() method reduces the boilerplate for starting python-based orekit applications. It performs the following steps, then returns a handle to the orekit VM:

  1. Downloads the default orekit data zip to a data directory. Note the option to re-download the file, if it exists, or simply use the cached version.
  2. Setup the data context using that default data zip.

A basic example:

import orekit
import orekitfactory

vm = orekit.initVM()
orekitfactory.init_orekit()

Enumeration utilties

orekitfactory.to_iers_conventions() - Convert a string to the IERSConventions orekit enumeration.

import orekitfactory

iers_conventions = orekitfactory.to_iers_conventions("iers_2010")

Date utilities

Multiple date utilities improve application's abilities to use AbsoluteDate.

orekitfactory.to_absolute_date() - Converts an ISO-8601 string or a datetime instance into an AbsoluteDate instance based on UTC. The data context and time scale can be provided via optional parameters. This method is a no-op if an AbsoluteDate instance is provided.

orekitfactory.DateInterval - This class provides an interval of AbsoluteDate and provides the standard interval operations like duration, comparison, overlap, and intersection.

orekitfactory.DateIntervalList - A list of non-overlapping DateInterval instances. Provides set operations like union, intersection, and subtraction.

orekitfactory.DateIntervalListBuilder - A utility class useful when incrementally building up a DateIntervalList.

import orekitfactory

date1 = orekitfactory.to_absolute_date("2022-08-28T13:15:00Z")
date2 = orekitfactory.to_absolute_date("2022-08-28T13:16:00Z")
date3 = orekitfactory.to_absolute_date("2022-08-28T13:17:00Z")
date4 = orekitfactory.to_absolute_date("2022-08-28T13:18:00Z")

ivl1 = orekitfactory.DateInterval(date1, date3)
ivl2 = orekitfactory.DateInterval(date2, date4)
ivl3 = orekitfactory.DateInterval(date1, date2)

dlist = orekitfactory.DateInteralList(intervals=[ivl1, ivl2, ivl3])

assert 2 == len(dlist)
print(dlist)

dlist2 = orekitfactory.DateIntervalList(interval=DateInterval(date1, date5)).subtract(dlist)

print(dlist2)

Frames and reference ellipsoids

orekitfactory.get_reference_ellipsoid() - A utility function for loading ReferenceEllipsoid instances from summary strings.

orekitfactory.get_frame() - A utility function for loading Frame instances based on shortened summary names, or predefined builtins.

import orekitfactory

itrf = orekitfactory.get_frame("itrf")
wgs84 = orekitfactory.get_reference_ellipsoid("wgs84", frame=itrf)

# an alternate calls
wgs84 = orekitfactory.get_reference_ellipsoid("wgs84", frame="itrf")
wgs84 = orekitfactory.get_reference_ellipsoid("wgs84", frameName="itrf")

Orbit definitions and propagators

orekitfactory.check_tle() - Checks the two lines of a TLE for valid format.

orekitfactory.to_tle() - Constructs an orekit TLE instance using the provided UTC time scale, or loading one from the default data context.

orekitfactory.to_orbit() - Constructs a KeplerianOrbit instance from the provided parameters.

orekitfactory.to_propgator() - Construct a propagator (SGP4 or SDP4 as appropriate for a TLE, or a NumericalPropagator for keplerian orbits) from the provided orbit.

import orekitfactory

assert orekitfactory.check_tle(
    "1 49260U 21088A   22166.94778099  .00000339  00000+0  85254-4 0  9992",
    "2 49260  98.2276 237.1831 0001142  78.2478 281.8849 14.57099002 38060"
)

tle = orekitfactory.to_tle(
    "1 49260U 21088A   22166.94778099  .00000339  00000+0  85254-4 0  9992",
    "2 49260  98.2276 237.1831 0001142  78.2478 281.8849 14.57099002 38060"
)

orbit = orekitfactory.to_orbit(
    a="7080 km",
    e=0.0008685,
    i=85,
    omega=u.Quantity("261.9642 deg"),
    w="257.7333 deg",
    epoch="2022-06-16T17:54:00Z",
    v=1.2,
)

sgp4 = to_propagator(tle)
prop = to_propagator(orbit)

Vectors and Rotations

orekitfactory.to_vector() - Simplifies the creation of Vector3D instances, avoiding the InvalidArgument errors caused by passing int instead of float to the Vector3D constructor.

orekitfactory.to_rotation() - Creates a Rotation using the provided axis defintions.

import orekitfactory

new_x = orekitfactory.to_vector(1, 2, 3).normalize()
new_y = new_x.crossProduct(Vector3D.PLUS_K)

tx = orekitfactory.to_rotation(x=new_x, y=new_y)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orekit-factory-0.2.0.tar.gz (990.9 kB view details)

Uploaded Source

Built Distribution

orekit_factory-0.2.0-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

Details for the file orekit-factory-0.2.0.tar.gz.

File metadata

  • Download URL: orekit-factory-0.2.0.tar.gz
  • Upload date:
  • Size: 990.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for orekit-factory-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e9916b61055954e6d9f66835a4057d5511f6ad5ecd6201dd2872794a4530bae8
MD5 3ad91b648c396d8eac51cdc95f569eb5
BLAKE2b-256 2e5f776228c2e439296db32a3acb605f4f44b897b3ce8c9702d6bb24c93718bb

See more details on using hashes here.

File details

Details for the file orekit_factory-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for orekit_factory-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4c7417ece09d790bb2a4f1adbb749e0ac48338cdfc5bad2448f21211fd8de855
MD5 cfbab490955359d83d2367fa8039c3ee
BLAKE2b-256 3ef28bd6ee08483102827474faceb6c282f0997a0de239d11c556450c12d51ae

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page