-
Notifications
You must be signed in to change notification settings - Fork 3
Home
To get started with OrbitPy please read the README.MD
file in the main repository. OrbitPy consists of several python modules which in turn utilize python-bounded C++ classes (using pybind11) to achieve most of its functionality. The C++ classes are available within the propcov
library which sits in the ./propcov/
folder. Briefly the relationship diagram is as follows:
------------TBD-----------
Documentation is available in the following places:
-
README.MD
in main repository. See this file for installation instructions. -
README.MD
in the./propcov/
folder. - The sphinx based HTML documentation built from the main repository. This contains the documentation of the python part and user-interface to the OrbitPy package. See the
README.MD
file for instructions. - The Word document documenting the
propcov
C++ Classes (./propcov/docs/propcov-cpp.docx
).
When resolving issues, making revisions or adding new features, make updates in new dedicated branches and not in the Master branch. After completion of the update, create a pull-request to the Master branch. Ensure the items in the below checklist are carried out before creating the pull-request.
Code style
- Do not repeat coding of functions or defining data-structures. Make use of existing utility functions in:
-
orbitpy.util
(python) module -
instrupy.util
(python) module -
gmatutil
C++ classes in the folder./propcov/extern/gmatutil/
-
- Use DOXYGEN style inline-commenting for C++ (
propcov
library), andsphinx
style inline-commenting for python.
Testing
- Add tests which validate revisions. Add both unit-tests and tests at a module level. For the
propcov
C++ library, add GTests in the./propcov/tests/tests-cpp/
folder, and for OrbitPy add tests in the./tests/
folder. - Make and run all the Gtests of the
propcov
library. Ensure they pass. - Run all the python tests of the OrbitPy package. Ensure they pass.
Documentation
- If relevant, update the Word documentation about
propcov
in the folder./propcov/docs/propcov-cpp.docx
. While it may not be possible to compare changes of the Word document in GitHub, see here on how to compare two Word documents. - If relevant, update the
sphinx
based documentation by updating or modification of the rst files. - For branches which introduces a substantial new feature or modification, create a new Wiki page explaining the same (i.e. the deviation from the Master branch).
These are a list of tasks (issues, new features, etc.) which are of focus in the development.
-
Grid
C++ class: Longitude values should be in the range -pi to pi and cannot be in the range 0 to 2pi. Change this behavior. https://github.com/EarthObservationSimulator/orbitpy/issues/1 - Make use of
gmatutil
data-structures instead ofAngle Pair
, etc, and also make use of thegmatutil
functions in theDSPIPCustomSensor
class and its dependencies. - Pointing options, grid points: Change from pre-assumed index referencing to user-supplied Identifier referencing.
- 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. Resolve any associated issues.
- Explore the orbit interpolation functions.
- Make a C++
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 for 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??