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

Add Saturn Moons #301

Open
sebagr opened this issue Apr 12, 2023 · 3 comments
Open

Add Saturn Moons #301

sebagr opened this issue Apr 12, 2023 · 3 comments
Labels
enhancement New feature or request

Comments

@sebagr
Copy link

sebagr commented Apr 12, 2023

What would it take to do this? I might be able to try and submit a PR in JS and Python.

@cosinekitty
Copy link
Owner

cosinekitty commented Apr 12, 2023

I think this would be a great addition to Astronomy Engine! I would definitely welcome a PR for this. Which moons would you want to support? Clearly Titan, but how many of the others? My personal inclination would be to include only those moons visible through a ground-based telescope that an amateur would reasonably own.

One unusual thing about contributing to Astronomy Engine: all of the coding takes place in the generate/template subdirectory. Then you execute the run bash script in Linux or Mac, or the run.bat batch file on Windows, to run the template source through the code generator and execute all the unit tests.

The first step in this task would be to obtain reliable test data and put it in a new directory beneath generate. For example, there is already a directory generate/jupiter_moons, which contains a horizons subdirectory that includes Jupiter moon test data generated by JPL Horizons, and a fortran subdirectory with code from the Observatoire de Paris that I based my calculations on.

Then I would pick either TypeScript or Python to start with. If you start with TypeScript, there is a JavaScript test program test.js in which you can write your unit tests to verify calculations against the test data. (I follow the TDD philosophy of writing tests before implementing the code, but all that really matters is that we end up with complete test coverage.)

For consistency, we should follow the pattern of the data type JupiterMoonsInfo and the function name JupiterMoons. Also follow the pattern of embedding documentation in the source code for both. The build process (run or run.bat) automatically extracts the documentation from source and inserts it into the Markdown so people can refer to it right here on the GitHub repo.

Take a look at the contributor documentation to get an idea of what tools you need installed for your development platform.

Usually this is more work than people realize, so I totally get it if it's more than you bargained for. Just let me know what you think, and I'll be happy to help as you go along. It is a cool project to work on, and it is a satisfying way to contribute to the open source community around the world!

@cosinekitty cosinekitty added the enhancement New feature or request label Apr 13, 2023
@sebagr
Copy link
Author

sebagr commented Apr 28, 2023 via email

@cosinekitty
Copy link
Owner

Thanks for responding, and I want to leave this issue open. Eventually I or someone else will circle back and implement this, because it would be nice to support calculation of Saturn's major moons.

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

No branches or pull requests

2 participants