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

Tracker rework #18

Merged
merged 26 commits into from
Jan 8, 2024
Merged

Tracker rework #18

merged 26 commits into from
Jan 8, 2024

Conversation

JotaRata
Copy link
Owner

@JotaRata JotaRata commented Jan 8, 2024

This PR contains the following changes:

  • New computing method for Tracking Solutions

This new method makes sure to be more accurate and easier to use by only supplying the starting and ending positions respectively of the tracked stars. The way it computes the solution is by taking a Singular Value Decomposition of the outer product matrix of the start and new positions, this immediatly extract the rotation matrix withou having to use trig functions. The error is now calculated as the reprojection error of the transformed point versus the supposedly new tracked positions as the "ground truth", each value is filtered many times using a sigma clipping criterion. The SimpleTracker class has been renamed to PhotometryTracker and makes use of a novel system to search the stars multiple times and adjust the search radius on each iteration.

  • Custom Matrix classes

Custom matrices allows us to decouple of numpy's special floating point types and use the standard python's float types which are compiled and optimized by mypyc. The supported matrices are 2x2 matrices and 3x3 matrices, each class comes with methods to calculate the transpose, trace, determinant, eigenvalues and support for addition and multipkication with other matrices and Position vectors. Note that multiplying a Position with a Matrix does not require to transpose the vector or augment it since its done automatically.

  • Native SVD helper:

The module svdutils allows to extract the Singular Value Decomposition of any 2x2 matrix, this is good for extracting the rotation matrix of a solution. The idea is to be able to use startrak's custom matrices and vectors to generate code that's easier to read and it's also compatible with mypyc. The module also comes with functions to get the outer product of two Position vector and he covariance matrix.

  • Changes to triangle congruence

Triangle congruence checks now perform less calculations and compares by a fractional threshold, in general it's more optimized and faster.

  • Minor changes to reprs, operators and optimizations

The plan is to refine the tracking solution over many iterations by accumulating the delta positions of each try
@JotaRata JotaRata self-assigned this Jan 8, 2024
@JotaRata JotaRata added the enhancement New feature or request label Jan 8, 2024
@JotaRata JotaRata merged commit d292deb into main Jan 8, 2024
@JotaRata JotaRata deleted the tracker-revamp branch January 8, 2024 22:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant