This package contain set of modules to compute mission-data of satellites. It can be used to perform the following calculations:
- Generation of satellite orbits from constellation specifications.
- Computation of propagated satellite state (position and velocity) data.
- Generation of grid-of-points at a (user-defined or auto) angular resolution over region of interest.
- Grid Coverage: Computation of satellite access intervals over given set of grid points (grid-coverage) for the length of the mission. i. Consideration of sensor pointing directions. ii. Consideration of sensor field-of-view (FOV) and field-of-regard (FOR).
- Pointing-options Coverage: Computation of coverage in which set of pointing-options of the instrument are specified and accessed ground-locations are calculated.
- Pointing-options with Grid Coverage.
- Computation of inter-satellite communication (line-of-sight) time intervals.
- Computation of ground-station contact time intervals.
- Computation of satellite eclipse time-intervals.
- Sensor pixel-array projection.
The orbitpy
package is built on top of the propcov
package available in the propcov
folder. Please refer to the README.MD file within the propcov
folder for description of the respective package.
Requires: Unix-like operating system, python 3.8
, pip
, gcc
- Make sure the
instrupy
package (dependency) has been installed. - Run
make
from the main git directory. - Run
make runtest
. This runs all the tests and can be used to verify the package.
Find the documentation in: /docs/_build/html/index.html#
Note that this installation also automatically installs the package propcov
which consists of python wrapper and C++ source code which provide the functionality for orbit propagation, coverage calculations and sensor pixel-array projection.
In order to uninstall run make bare
in the terminal.
Ask make runtest
to also run the C++ tests (google tests) of the propcov
library.
NOTE
The make runtest
does not run the tests of the propcov
library. Please see the README.MD
in the propcov
folder on how to run it's tests.
If using a Windows system, one may consider setting up a virtual-machine with Ubuntu (or similar) OS. VMware Workstation player is available free for non-commercial, personal or home use. VMWare tools may need to be installed separately after the player installation.
https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html
Ubuntu virtual machine images for VMWare and VirtualBox are available here: https://www.osboxes.org/ubuntu/
The present version of OrbitPy has been tested on Ubuntu 18.04.3.
├───docs (sphinx documentation)
├───orbitpy (folder with the source files)
├───propcov (propcov package)
├───TBD (To be determined, temporary folder with old files)
└───tests (folder with test scripts)
├───test_coveragecalculator (tests of the coveragecalculator module)
├───test_data (reference test checkpoint data)
├───util (util folder with supporting scripts for tests)
└───validation (validation tests)
├───GMAT (GMAT reference data)
└───STK (STK reference data)
├───test_coveragecalculator_GridCoverage_with_STK
└───test_propagation_with_STK
Copyright 2021 Bay Area Environmental Research Institute
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
This work has been funded by grants from the National Aeronautics and Space Administration (NASA) Earth Science Technology Office (ESTO) through the Advanced Information Systems Technology (AIST) Program.
OrbitPy uses:
- GMAT2020a
gmatutil
source (https://sourceforge.net/p/gmat/git/ci/GMAT-R2020a/tree/src/gmatutil/) - Pybind11 (https://pybind11.readthedocs.io/en/stable/basics.html)
- JSON for Modern C++ (https://github.com/nlohmann/json)
- GoogleTest (https://github.com/google/googletest)
Please contact Vinay (vinay.ravindra@nasa.gov)
- Incorporate artificial image synthesis involving the propcov classes
DiscretizedSensor
,Projector
and the orbitpySensorPixelProjection
module. Add python-tests. - Search for ‘Vinay’ and ‘TODO’ over all the files
- Explore the orbit interpolation functions.
- Make a SystemTestDriver
- Add unconventional sensor FOV geometry shapes GTests for
GMATCustomSensor
andDSPIPCustomSensor
class. - Rename
TATCException
toPropcovCppException
- Add GTests for
Spacecraft
,CoverageChecker
,NadirPointingAttitude
and other classes. (There are in total 26 propcov-cpp active classes, of which currently there are GTests ofr 15 of these classes. Some tests in thetests/tests-cpp/old
folder can be rewritten into the GTest format.) - Consider avoiding virtual functions since it has runtime costs associated with it??
Errors in the propcov-cpp classes are sometime not visible (i.e. not displayed) when the propcov package is installed. The package installation can happen, but import will not work. In such cases run make
from propcov-cpp -> tests, and debug any errors.