From 42c4862679df7b96d82676237598a86ad4e454de Mon Sep 17 00:00:00 2001 From: Christopher Rabotin Date: Fri, 2 Dec 2022 16:43:28 -0700 Subject: [PATCH] Rename analysis script and add analysis for Hermite test Signed-off-by: Christopher Rabotin --- .github/workflows/tests.yml | 10 +++--- analysis/spk_type13_val_err.py | 36 +++++++++++++++++++ ..._val_err.py => spk_type2_jplde_val_err.py} | 0 3 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 analysis/spk_type13_val_err.py rename analysis/{de_val_err.py => spk_type2_jplde_val_err.py} (100%) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5bba69cc..bfce8eec 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -64,7 +64,6 @@ jobs: - name: Test (no default features and release) run: cargo test --no-default-features --release - lints: name: Lints runs-on: ubuntu-latest @@ -122,17 +121,18 @@ jobs: - name: Rust-SPICE hermite validation run: RUST_BACKTRACE=full RUST_LOG=debug cargo test validate_hermite_translation --features validation --release -- --nocapture - + # Now analyze the results and create pretty plots - uses: actions/setup-python@v4 with: - python-version: '3.10' - + python-version: "3.10" + - name: Validation analysis run: | cd analysis pip install -r requirements.txt - python de_val_err.py + python spk_type2_jplde_val_err.py + python spk_type13_val_err.py - name: Save validation artifacts uses: actions/upload-artifact@v3 diff --git a/analysis/spk_type13_val_err.py b/analysis/spk_type13_val_err.py new file mode 100644 index 00000000..7df8f6ad --- /dev/null +++ b/analysis/spk_type13_val_err.py @@ -0,0 +1,36 @@ +import pandas as pd +import plotly.express as px +from os.path import abspath, join, dirname + +if __name__ == '__main__': + + target_folder = join(abspath(dirname(__file__)), '..', 'target') + + for name, filename in [("validation", "type13-validation-test-results"), + ("outliers", "type13-validation-outliers")]: + + # Load the parquet file + df = pd.read_parquet(f"{target_folder}/{filename}.parquet") + + if name == 'validation': + y = 'relative error' + else: + y = 'absolute error' + + for kind, columns in [("Position", ["X", "Y", "Z"]), + ("Velocity", ["VX", "VY", "VZ"])]: + + print(f"== {kind} {name} ==") + + subset = df.loc[df.component.isin(columns)] + + print(subset.describe()) + + plt = px.scatter(subset, + x='File delta T (s)', + y=y, + color='source frame') + + plt.write_html( + f"{target_folder}/{name}-{kind}-validation.html") + plt.show() diff --git a/analysis/de_val_err.py b/analysis/spk_type2_jplde_val_err.py similarity index 100% rename from analysis/de_val_err.py rename to analysis/spk_type2_jplde_val_err.py