Autonomous Cross-Calibration for Imaging Satellites
- C/C++/Fortran toolchain (e.g., gcc https://gcc.gnu.org/)
- Java JDK (https://www.oracle.com/java/technologies/javase-downloads.html)
- CMake (https://cmake.org/)
- OpenCV (https://github.com/opencv/opencv)
- GDAL (https://gdal.org/)
- Eigen (https://eigen.tuxfamily.org/dox/GettingStarted.html)
- To build and set up (using CMake), run build.sh
- To run a minimal simulation, run test.sh
For each satellite at each simulation step:
- Propagate ground truth state
- Predict state estimate
- Generate measurements for GPS and star tracker
- Update state estimate
- If cross-calibration step:
- Compute field-of-view based on ground truth state
- Acquire Landsat image of Earth surface sector
- Trim, project, and distort Landsat image
- Compute SIFT key points from image
- “Transmit” SIFT key points and state estimate moments to other satellites
- Perform SIFT-based update of state estimate using images from other satellites at previous time step
The following third-party tools and data are included in this repository:
- EGM2008 Gravitational Model (https://earth-info.nga.mil/index.php?dir=wgs84&action=wgs84)
- JPL Planetary and Lunar Ephemerides (https://ssd.jpl.nasa.gov/?planet_eph_export)
- NASA World Wind (https://worldwind.arc.nasa.gov/java)
- Source code: https://github.com/nasa/World-Wind-Java
- License: https://worldwind.arc.nasa.gov/LICENSE.html
- NOVAS: Naval Observatory Vector Astronomy Subroutines (https://ui.adsabs.harvard.edu/abs/2012IAUJD...7P..24K/abstract)
- JB2008 Atmospheric Model (http://sol.spacenvironment.net/~JB2008/)
- ODEPACK (https://www.netlib.org/odepack)