All Projects → open-space-collective → open-space-toolkit-astrodynamics

open-space-collective / open-space-toolkit-astrodynamics

Licence: Apache-2.0 license
Flight profile, orbit, attitude, access.

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
python
139335 projects - #7 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to open-space-toolkit-astrodynamics

Orekit
OREKIT is a free low level space dynamics library written in Java. Please visit our Gitlab instance for issues and contributions: https://gitlab.orekit.org
Stars: ✭ 110 (+587.5%)
Mutual labels:  space, astrodynamics, attitude
Spiceypy
SpiceyPy: a Pythonic Wrapper for the SPICE Toolkit.
Stars: ✭ 218 (+1262.5%)
Mutual labels:  toolkit, space
CodeDroneDIY
The most simple, but working, quadricopter flight controller from scratch, using Arduino Uno/Nano.
Stars: ✭ 68 (+325%)
Mutual labels:  flight, attitude
smd
Space Mission Design - A SPICE-enhanced continuous thrust interplanetary mission propagator and vizualizer
Stars: ✭ 22 (+37.5%)
Mutual labels:  orbit, astrodynamics
SimpleKeplerOrbits
Unity3d static 2-body orbits simulation
Stars: ✭ 76 (+375%)
Mutual labels:  space, orbit
keeptrack.space
🌎📡 TypeScript Astrodynamics Software for Non-Engineers. 3D Visualization of satellite data and the sensors that track them.
Stars: ✭ 61 (+281.25%)
Mutual labels:  space, orbit
WorkingGroup
Issues tracker for ideas, ongoing work, looking for mentors, mentors available. Join here!
Stars: ✭ 37 (+131.25%)
Mutual labels:  space
lunar-theme
🌓 A minimal dark and light theme for Visual Studio Code. Handpicked colours, easy on the eyes, and perfect for coding in the day/night.
Stars: ✭ 24 (+50%)
Mutual labels:  space
Astro.IQ
Machine Learning + Spacecraft Trajectory Optimisation
Stars: ✭ 20 (+25%)
Mutual labels:  astrodynamics
docs-product
OutSystems 11 product documentation
Stars: ✭ 32 (+100%)
Mutual labels:  engineering
KalmanFlow
A simple Kalman Filter built in TensorFlow
Stars: ✭ 22 (+37.5%)
Mutual labels:  engineering
conventions
∞ Priceloop Engineering Conventions for Scala, Python, Git Workflow etc
Stars: ✭ 100 (+525%)
Mutual labels:  engineering
Space-Frontier
A reimagining of the game of my childhood - Stellar Frontier
Stars: ✭ 18 (+12.5%)
Mutual labels:  space
SGP.NET
C# SGP4 Satellite Prediction Library. Load satellites from TLEs, convert between coordinate systems and reference frames, observe satellites from ground stations, and more.
Stars: ✭ 15 (-6.25%)
Mutual labels:  orbit
planetkit
Colorful blobs that might one day resemble planets
Stars: ✭ 72 (+350%)
Mutual labels:  toolkit
MolecularGraph.jl
Graph-based molecule modeling toolkit for cheminformatics
Stars: ✭ 144 (+800%)
Mutual labels:  toolkit
meshgen-comparison
🕸️ A comparison of mesh generators.
Stars: ✭ 25 (+56.25%)
Mutual labels:  engineering
paradox
Tools for event sourcing applications
Stars: ✭ 30 (+87.5%)
Mutual labels:  toolkit
x509sak
X.509 Swiss Army Knife is a toolkit atop OpenSSL to ease generation of CAs and aid white-hat pentesting
Stars: ✭ 23 (+43.75%)
Mutual labels:  toolkit
E4GL30S1NT
E4GL30S1NT - Simple Information Gathering Tool
Stars: ✭ 139 (+768.75%)
Mutual labels:  toolkit

Open Space Toolkit ▸ Astrodynamics

Build Status Code Coverage Documentation GitHub version PyPI version License

Orbit, attitude, access.

Getting Started

Want to get started? This is the simplest and quickest way:

Binder

Nothing to download or install! This will automatically start a JupyterLab environment in your browser with Open Space Toolkit libraries and example notebooks ready to use.

Alternatives

Docker Images

Docker must be installed on your system.

iPython

The following command will start an iPython shell within a container where the OSTk components are already installed:

docker run -it openspacecollective/open-space-toolkit-astrodynamics-python

Once the shell is up and running, playing with it is easy:

from ostk.physics import Environment
from ostk.physics.time import Instant
from ostk.astrodynamics.trajectory import Orbit
from ostk.astrodynamics.trajectory.orbit.models import SGP4
from ostk.astrodynamics.trajectory.orbit.models.sgp4 import TLE

tle = TLE(
    '1 25544U 98067A   18231.17878740  .00000187  00000-0  10196-4 0  9994',
    '2 25544  51.6447  64.7824 0005971  73.1467  36.4366 15.53848234128316'
) # Construct Two-Line Element set

earth = Environment.default().access_celestial_object_with_name('Earth') # Access Earth model

orbit = Orbit(SGP4(tle), earth) # Construct orbit using SGP4 model

orbit.get_state_at(Instant.now()) # Compute and display current satellite state (position, velocity)

By default, OSTk fetches the ephemeris from JPL, Earth Orientation Parameters (EOP) and leap second count from IERS.

As a result, when running OSTk for the first time, it may take a minute to fetch all the necessary data.

Tip: Use tab for auto-completion!

JupyterLab

The following command will start a JupyterLab server within a container where the OSTk components are already installed:

docker run --publish=8888:8888 openspacecollective/open-space-toolkit-astrodynamics-jupyter

Once the container is running, access http://localhost:8888/lab and create a Python 3 Notebook.

Installation

C++

The binary packages are hosted using GitHub Releases:

  • Runtime libraries: open-space-toolkit-astrodynamics-X.Y.Z-1.x86_64-runtime
  • C++ headers: open-space-toolkit-astrodynamics-X.Y.Z-1.x86_64-devel
  • Python bindings: open-space-toolkit-astrodynamics-X.Y.Z-1.x86_64-python

Debian / Ubuntu

After downloading the relevant .deb binary packages, install:

apt install open-space-toolkit-astrodynamics-*.deb

Fedora / CentOS

After downloading the relevant .rpm binary packages, install:

dnf install open-space-toolkit-astrodynamics-*.rpm

Python

Install from PyPI:

pip install open-space-toolkit-astrodynamics

Documentation

Documentation is available here:

Structure

The library exhibits the following detailed and descriptive structure:

├── Trajectory
│   ├── State
│   ├── Orbit
│   │   ├── Models
│   │   │   ├── Kepler
│   │   │   │   └── Classical Orbital Elements (COE)
│   │   │   ├── SGP4
│   │   │   │   └── Two-Line Element set (TLE)
│   │   │   └── Tabulated (input csv)
│   │   └── Pass
│   └── Models
│       ├── Static
│       └── Tabulated
├── Flight
│   └── Profile
│       └── State
├── Access
        └── Generator

Tutorials

Tutorials are available here:

Setup

Development Environment

Using Docker for development is recommended, to simplify the installation of the necessary build tools and dependencies. Instructions on how to install Docker are available here.

To start the development environment:

make start-development

This will:

  1. Build the openspacecollective/open-space-toolkit-astrodynamics-development Docker image.
  2. Create a development environment container with local source files and helper scripts mounted.
  3. Start a bash shell from the ./build working directory.

If installing Docker is not an option, you can manually install the development tools (GCC, CMake) and all required dependencies, by following a procedure similar to the one described in the Development Dockerfile.

Build

From the ./build directory:

cmake ..
make

Tip: helpers/build.sh simplifies building from within the development environment.

Test

To start a container to build and run the tests:

make test

Or to run them manually:

./bin/open-space-toolkit-astrodynamics.test

Tip: helpers/test.sh simplifies running tests from within the development environment.

Dependencies

Name Version License Link
Pybind11 2.6.1 BSD-3-Clause github.com/pybind/pybind11
Eigen 3.3.7 MPL2 eigen.tuxfamily.org
SGP4 master Apache License 2.0 github.com/dnwrnr/sgp4
NLopt master LGPL github.com/stevengj/nlopt
Core master Apache License 2.0 github.com/open-space-collective/open-space-toolkit-core
I/O master Apache License 2.0 github.com/open-space-collective/open-space-toolkit-io
Mathematics master Apache License 2.0 github.com/open-space-collective/open-space-toolkit-mathematics
Physics master Apache License 2.0 github.com/open-space-collective/open-space-toolkit-physics

Contribution

Contributions are more than welcome!

Please read our contributing guide to learn about our development process, how to propose fixes and improvements, and how to build and test the code.

Special Thanks

To be completed...

License

Apache License 2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].