Skip to main content

Small and simple package for basic Orbital Mechanics principles. Structured after Cal Poly SLO AERO Orbits I-III

Project description

Orbital Mechanics

Set of Orbital Mechanics functions transcribed from MATLAB or textbooks in Python to support larger Orbital Mechanics projects and classes. Check out the official Pypi upload here!

image source: Wikipedia

Installation

Method 1: Pip

Run the following command in the command line to install the library via pip:

pip install cpslo_orbits

Check to make sure it was installed with the following command:

pip list

Method 2: Local Installation

To install a local copy e.g., for development clone the repository in the directory of your choosing:

git clone https://github.com/gagandeepthapar/OrbitalMechanics.git

and install the required libraries from the requirements.txt file:

pip install -r requirements.txt

and install the library locally:

pip install -e .

Ensure the library is installed by running pip list or by running pytest:

cd tests/
pytest

Pytest should run and indicate the failed/passed tests. Note: some tests may fail as there is ongoing development to create thorough test cases for each method presented in this module.

Structure

The repository is broken up into 4 main packages:

  • orbitalcore (Basic Orbital Mechanics)
  • relativemotion (Rendezvous/Relative Motion Mechanics)
  • perturbations (Perturbational Effects)
  • observations (Observations/Filtering)

This structure closely follows the breakdown of the Orbital Mechanics path at California Polytechnic State University - San Luis Obispo: AERO 351 (Basic Orbital Mechanics), AERO 452 (Rendezvous/Relative Motion, Perturbational Effects), and AERO 557 (Observations/Filtering, Optimal Transfer).

Approach

The approach in building this repository was to avoid using unnecessary classes and containers to minimize the learning curve and to provide the simplest form of usability for students and faculty. That being said, NumPy and MatPlotLib are heavily used throughout the repository to enable the math to be simply executed. Many optimization opportunities were not taken to minimize confusion and enable users to peek into the source code and understand what is happening.

Extending the Package

I hope students will continue to add on to this package and improve usability for the curriculum. My intentions were to provide resources (e.g., pointing to specific textbooks/algorithms) for people to refer back to and ensure the code is very readable.

Extensions/additional functions should always include type-hinting in the arguments and return statement and should include docstrings at the top of each function for context. The function docstring should include the purpose, where the function is adapted from (e.g., "Orbital Mechanics for Engineering Students", Curtis), and the explanations for each input and return argument.

Do as I say and not as I do and use proper git-techniques by creating branches from main to develop features/fixes and pulling into main as opposed to developing everything directly in main.

Organize the package thoughtfully. Only put core methods in orbitalcore, perturbations in perturbations, etc. If a method is sufficiently unique then feel free to create a new module e.g., for optimal orbit transfers.

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

cpslo_orbits-0.1.1.tar.gz (38.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cpslo_orbits-0.1.1-py3-none-any.whl (34.8 kB view details)

Uploaded Python 3

File details

Details for the file cpslo_orbits-0.1.1.tar.gz.

File metadata

  • Download URL: cpslo_orbits-0.1.1.tar.gz
  • Upload date:
  • Size: 38.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.1

File hashes

Hashes for cpslo_orbits-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e089bcfb166efd9841c33b6a015fdb19440e5a69480ccfbb828ea3e7b1bfefd8
MD5 25853d18b742ce1965b345317d8bd9e0
BLAKE2b-256 4cbb5afc4d2169781cc865a987a3377f728e107b70106e182bfc2385d0025bca

See more details on using hashes here.

File details

Details for the file cpslo_orbits-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: cpslo_orbits-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 34.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.1

File hashes

Hashes for cpslo_orbits-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 94f96a9e58e2317aa7f0b1a4200f7df42ddf2e87ee2b397c776ef4c01af769c2
MD5 4fa69a61b29c7720fd5f8b53a9e9a092
BLAKE2b-256 884b376f5c790c8704d7470890c6c8d5328a19b224784cd989bc5051016646af

See more details on using hashes here.

Supported by

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