seafloor-geodesy / gnatss

Community Seafloor Global Navigation Satellite Systems - Acoustic (GNSS-A) Transponder Surveying Software
https://gnatss.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
9 stars 13 forks source link

feat(posfilter): Add Kalman Filtering functionality #238

Closed madhavmk closed 3 months ago

madhavmk commented 3 months ago

Overview

Added kalman_filtering operation as proposed by @SquirrelKnight on https://github.com/seafloor-geodesy/gnatss/pull/167. This integration includes re-writing the proposed functionality to a more functional programming with numba to really speed up the performance. A few tweaks has also been made to match the steps of the kalman filtering to the equivalent kfwgpos.F Fortran implementation.

Closes #235

codecov[bot] commented 3 months ago

Codecov Report

Attention: Patch coverage is 21.77419% with 194 lines in your changes are missing coverage. Please review.

:exclamation: No coverage uploaded for pull request base (dev@a8ea7d4). Click here to learn what that means.

Files Patch % Lines
src/gnatss/ops/kalman.py 18.97% 158 Missing :warning:
src/gnatss/ops/posfilter.py 9.67% 28 Missing :warning:
src/gnatss/loaders.py 55.55% 4 Missing :warning:
src/gnatss/main.py 0.00% 2 Missing :warning:
src/gnatss/ops/data.py 0.00% 2 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## dev #238 +/- ## ====================================== Coverage ? 44.04% ====================================== Files ? 18 Lines ? 1294 Branches ? 0 ====================================== Hits ? 570 Misses ? 724 Partials ? 0 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

madhavmk commented 3 months ago

Hello @lsetiawan, I made the changes suggested, and incorporated the diagonal values to retrieve the covarianec values. However the cov_xx, cov_yy, and the cov_zz are not close to the gold standard values in the POS_FREED_TRANS_TWTT files. Could you take a look? (at the Optimized_Kalman.ipynb in particular)