Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Online measurement rejection #127

Closed
2 of 3 tasks
ChristopherRabotin opened this issue Mar 22, 2023 · 1 comment · Fixed by #145
Closed
2 of 3 tasks

Online measurement rejection #127

ChristopherRabotin opened this issue Mar 22, 2023 · 1 comment · Fixed by #145
Labels
Kind: New feature This is a proposed new feature Priority: high Status: Final review Issue at Review phase of the quality assurance process Topic: Orbit Determination

Comments

@ChristopherRabotin
Copy link
Member

ChristopherRabotin commented Mar 22, 2023

High level description

This feature provides users with the ability to automatically reject orbit determination measurements (range and Doppler measurements) from being processed into the orbit determination Kalman filter based on prefit or postfit residuals that meet certain user-specified criteria. Specifically, users can set criteria based on either a maximum value for one component of the residual vector, or a multiplier of the Z score of each component of the prior residuals. By rejecting measurements that meet these criteria, users can improve the accuracy and reliability of their orbit determination results.

Original issue: https://gitlab.com/nyx-space/nyx/-/issues/167

Requirements

  • The system shall allow users to set a maximum value for one component of the residual vector, and reject any measurements that have a prefit or postfit residual greater than this value.
  • The system shall allow users to set a multiplier of the Z score of each component of the prior residuals, and reject any measurements that have a prefit or postfit residual greater than this multiplier times the Z score.
  • The system shall reject measurements on a per-measurement basis, so that only individual measurements that meet the specified criteria are rejected, rather than rejecting an entire batch of measurements.
  • The system shall log which measurements have been rejected due to the specified criteria, and provide this information to the user for review and analysis.
  • The system shall provide a mechanism for users to easily toggle the rejection criteria on or off, and to adjust the criteria values as needed.

Test plans

Input validation testing

  • Done ?

Purpose: To ensure that the system correctly validates user inputs for the rejection criteria, and produces meaningful error messages when inputs are invalid or out of range.
Steps:
1. Attempt to set a maximum residual value that is negative or zero, and ensure that the system produces an error message indicating that the value is invalid.
2. Attempt to set a Z score multiplier that is negative or zero, and ensure that the system produces an error message indicating that the value is invalid.
3. Attempt to set a Z score multiplier that is greater than some reasonable maximum (e.g., 10), and ensure that the system produces an error message indicating that the value is out of range.

Rejection criteria testing

  • Done ?

Purpose: To ensure that the system correctly rejects measurements that meet the specified rejection criteria, and does not reject measurements that do not meet the criteria.
Steps:
1. Generate a set of simulated measurements with known residuals, some of which exceed the rejection criteria and some of which do not.
2. Configure the rejection criteria to match the known residuals.
3. Pass the simulated measurements through the system and ensure that the system correctly rejects measurements that meet the criteria and does not reject measurements that do not meet the criteria.

Logging and reporting testing

  • Done ?

Purpose: To ensure that the system correctly logs rejected measurements and provides meaningful reporting to the user.
Steps:
1. Generate a set of simulated measurements with known residuals, some of which exceed the rejection criteria and some of which do not.
2. Configure the rejection criteria to match the known residuals.
3. Pass the simulated measurements through the system and ensure that the system logs which measurements were rejected due to the criteria.
4. Provide the logged information to the user in a clear and understandable format, such as a table or plot, and ensure that it is easy to interpret and analyze.

Design

Succinctly explain the idea behind the design.

Algorithm demonstration

N/A

Online measurement techniques are common throughout literature and in various programs.

API definition

Although restrictive, the simplest is likely to specify an enum with the different measurement rejection methods. We also likely want to be able to specify that a certain number of measurements must be processed before we start rejecting other ones.

graph TD

A[User configures rejection criteria] --> B{Is there a criteria}
B -- No rejection criteria --> O[Ingest measurement]
B -- Yes, criteria is defined --> C{Does criteria require a minimum number of estimates}
C -- No --> D{Apply rejection criteria}
C -- Yes --> E{Enough measurements?}
D -- Not rejected --> O
D -- Rejected --> F[Log measurement being rejected]
E -- No --> O
E -- Yes --> D
Loading
@ChristopherRabotin ChristopherRabotin added Status: Design Issue at Design phase of the quality assurance process Kind: New feature This is a proposed new feature Topic: Orbit Determination Priority: high labels Mar 22, 2023
@ChristopherRabotin ChristopherRabotin added Status: Final review Issue at Review phase of the quality assurance process and removed Status: Design Issue at Design phase of the quality assurance process labels May 12, 2023
@ChristopherRabotin
Copy link
Member Author

After quite some testing, I think that the z-score option is not useful. Even with a completely different orbit and a CKF, the ZScore filter just didn't remove much of interest. I'm sticking with what the literature recommends.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Kind: New feature This is a proposed new feature Priority: high Status: Final review Issue at Review phase of the quality assurance process Topic: Orbit Determination
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant