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:
- 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.
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9916b61055954e6d9f66835a4057d5511f6ad5ecd6201dd2872794a4530bae8
|
|
| MD5 |
3ad91b648c396d8eac51cdc95f569eb5
|
|
| BLAKE2b-256 |
2e5f776228c2e439296db32a3acb605f4f44b897b3ce8c9702d6bb24c93718bb
|
File details
Details for the file orekit_factory-0.2.0-py3-none-any.whl.
File metadata
- Download URL: orekit_factory-0.2.0-py3-none-any.whl
- Upload date:
- Size: 26.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c7417ece09d790bb2a4f1adbb749e0ac48338cdfc5bad2448f21211fd8de855
|
|
| MD5 |
cfbab490955359d83d2367fa8039c3ee
|
|
| BLAKE2b-256 |
3ef28bd6ee08483102827474faceb6c282f0997a0de239d11c556450c12d51ae
|