Skip to content

Conversation

@Fingel
Copy link
Contributor

@Fingel Fingel commented Oct 30, 2025

Makes passing on elements to SLALIB easier when dealing with high eccentricity targets from JPL horizons. Fixes #1180

Makes passing on elements to SLALIB easier when dealing with high
eccentricity targets from JPL horizons. Fixes #1180
@Fingel Fingel requested a review from jchate6 October 30, 2025 18:10
Copy link
Contributor

@jchate6 jchate6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we might want to approach this another way.
I think the logic is the same, but it might make sense to move it into the model.
I'm picturing moving this to within save() or somewhere in full_clean() like model.clean() so that we perform this on all ingested moving objects.

The problem is that when we try to request an observation for a high eccentricity object we get the wrong pointings if the scheme is incorrect. Doesn't matter where that came from.

@Fingel
Copy link
Contributor Author

Fingel commented Oct 30, 2025

I think we might want to approach this another way. I think the logic is the same, but it might make sense to move it into the model. I'm picturing moving this to within save() or somewhere in full_clean() like model.clean() so that we perform this on all ingested moving objects.

This would remove the user's ability to make that choice, though. Would this not be surprising behavior (target type changes transparently during save() from something other than the parameters it was passed) for people using observatories that, for example, don't rely on SLALIB weirdness? My gut tells me this should remain explicit instead of introducing magic. But maybe it doesn't matter?

@Fingel
Copy link
Contributor Author

Fingel commented Oct 30, 2025

Or maybe this logic really belongs at the LCO/OCS facility level, if what we are really working around is SLALIB? And then we can otherwise leave targets alone.

@jchate6
Copy link
Contributor

jchate6 commented Oct 30, 2025

I think we have updated the OCS to do this a little better, but this is also an orbital scheme, not a classification or anything. @talister Do you think there is a problem enforcing this change universally? At what level would you expect this to happen?

@talister
Copy link
Collaborator

Or maybe this logic really belongs at the LCO/OCS facility level, if what we are really working around is SLALIB? And then we can otherwise leave targets alone.

It's not "working around SLALIB", it's that the maths fundamentally doesn't work in high eccentricity cases and you need to do something different. This is indicated by the scheme which switches (inside SLALIB or whatever else you would use) to a different method of solving Kepler's equation (background on solving this from Bill Gray/find_orb).
Kepler's equation is one of those deceptively simple things but which actually contains a lot of complexity, diverges into chaos (the actual mathematical definition) in certain regimes (high eccentricity) and that excites mathematicians (but see this) and is still being worked on (arXiv paper from 4 months ago)

@jchate6 jchate6 moved this to Needs Review in TOM Toolkit Nov 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Needs Review

Development

Successfully merging this pull request may close these issues.

JPL Horizons Harvester sets incorrect element scheme for high eccentricity objects

4 participants