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

Minor Planet Center interface examples #28

Merged
merged 11 commits into from Nov 7, 2023

Conversation

tristandijkstra
Copy link
Contributor

@tristandijkstra tristandijkstra commented Sep 6, 2023

This pull request adds two examples related to the data.batchMPC() interface:

  1. Basic usage example showcasing most features
  2. Estimation example

Some todos remain:

  • Add links to API and other examples
  • Final run and readthrough of examples

@tristandijkstra
Copy link
Contributor Author

These are done for now, later I will add a comparison to JPL Horizons data for ex1 and a third example featuring satellite observations and multiple targets instead of just one in a separate pull request. I'd like to use JPL horizons for ex3 as well.

Here's a highlight from the new features:
image

@tristandijkstra tristandijkstra marked this pull request as ready for review September 16, 2023 17:25
@DominicDirkx
Copy link
Member

DominicDirkx commented Sep 26, 2023

Hi Tristan,

Thanks for adding these example applications! They're going to be very useful for understanding how to use the MPC interface. Below a few comments/thoughts after playing with the examples a little:

  1. Looking at the plots from the retrieving_mpc_observation_data.* files, the data points for Ceres look much more 'scattered' than those for Eros. We discussed the use of different test cases, and whether Ceres is a good test case, and also looking at this, I would like to move to different ones. The scatter of the Ceres data (?) seems to make it a less representative one.
  2. In addition to the cool plot above, could you also add a plot with right ascension as function of time, and declination as function of time? The plots you have now required interpretation of the colors to put it properly in context, which is appealing, but more difficult to interpret (for me anyway :)
  3. As you noted, a comparison of the MPC data points with Horizons orbits would be very cool! Also to get a good idea for how much scatter there is in the data (assuming the Horizons data to be a 'ground truth')
  4. Using 'Earth' as ephemeris origin of the space telescopes is more representative

For the estimation example:

  1. Change the use of Ceres as test case to a different target (Eros?). The large spread in the previous example, and the large dispersal in the estimation residuals, don't make this a very good test case, I think.
  2. When changing the number of iterations, the plotting does not work anymore (as the plotting assumes 4 iterations, and 4 plots)
  3. Why is the propagation being done backwards in time? In principle, this is fine, but if there is no reason for this, it may be confusing
  4. Make sure to have sufficient buffer between initial/final observation time, and initial/final propagation time. Not having this buffer can lead to issues with interpolation at the boundaries. Have the propagation start/end a ~month before/after the end of observation initial/final time, and there should be no issue (4*time step + light time should be sufficient, but some margin to allow users to mess with some settings is good to have)
  5. Hardcode the main settings of your example at the top, and reuse these throughout the simulation. In this case, the following are important data points: (target body name/ID; start time; end time). In particular, at the moment changing to a different target requires changing the code in multiple places.
  6. Add a note in the code that not adding the initial state perturbation should not have a strong influence on the final results. But, to make the example sufficiently representative (for cases where we do not have a good initial fit), we add it anyway.
  7. It's not clear where/how the space telescope data is filtered out in this example. This seems to be done through the default input included_satellites to the to_tudat function. But, I think it would be good to list this input explicitly
  8. As post-processing plots, could you also add:
  • The correlation matrix
  • The final residuals as a 'full-size' plot, with the residuals colored per observatory (or at least, for the ones that contribute the most data; the other ones can be grouped under 'other'; having 5-10 observatories + 'other' may be a good balance)
  • Histograms of residuals per observatory (in the same categories as the previous one)

@tristandijkstra
Copy link
Contributor Author

tristandijkstra commented Oct 18, 2023

Hi Dominic, thanks for taking a look. I'll update this response as I go along the feedback:

For example retrieving_mpc_observation_data:

  1. I have selected 329 Svea and 238 Hypatia, which show similarly low dispersion in the observations as 433 Eros.
  2. This has been added in Minor Planet Center interface for retrieving observations tudatpy#110 and is presented in the example.
  3. This will be implemented in a future PR.
  4. Done.

Above changes have already been pushed

For the estimation example:

  1. Using Eros instead
  2. Fixed.
  3. Fixed.
  4. Added a buffer of one month
  5. Added, the user can now for example change the target with one variable. The issue I had before is that the spice kernel has a weird way of naming the asteroids (Eros is "Eros" but Psyche is "2000016" etc. see here). This is now done with the SDBD query which can output the ID used by the codes_300ast_20100725.bsp kernel. Some explanation on this is added in the example.
  6. Done
  7. This has been added in Minor Planet Center interface for retrieving observations tudatpy#110 and is now also discussed in the example.
  8. All Done
  • Reminder to myself to update the .py files after everything is done.
  • Reread both examples
  • Write new Issue to list future features

@tristandijkstra
Copy link
Contributor Author

Hi Dominic,

All requested changes have been added, see the list above for an explanation. I create a quickfix PR that mainly adds a small option that was not merged with tudat-team/tudatpy#110.

@DominicDirkx DominicDirkx merged commit b193774 into tudat-team:master Nov 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants