Adding an interactive diagram to visalize the python-skyfiled codebase #1094
Closed
ivanmilevtues
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hey, all I've always wanted to contribute to open-source projects. I am a visual learner, so I love doing diagrams for myself as in the beggining I find it hard to wrap my head around the main flow and the main "logical" components.
To help people who like visual represnetations I started working on a project to automate this. The tool generates an interactive diagram starting from the highest level of abstraction and allows you to dive deeper into interesting components.
Here is the diagram:
graph LR Data_I_O_Persistence["Data I/O & Persistence"] Time_Ephemeris_Core["Time & Ephemeris Core"] Orbital_Mechanics_Propagation["Orbital Mechanics & Propagation"] Coordinate_Systems_Transformations["Coordinate Systems & Transformations"] Astronomical_Calculations_Almanac["Astronomical Calculations & Almanac"] Core_Utilities_Numerical_Operations["Core Utilities & Numerical Operations"] Public_API_User_Interface["Public API & User Interface"] Public_API_User_Interface -- "initiates data loading" --> Data_I_O_Persistence Data_I_O_Persistence -- "provides loaded astronomical data" --> Public_API_User_Interface Public_API_User_Interface -- "requests time objects" --> Time_Ephemeris_Core Time_Ephemeris_Core -- "provides precise time instances" --> Public_API_User_Interface Public_API_User_Interface -- "requests celestial positions" --> Orbital_Mechanics_Propagation Orbital_Mechanics_Propagation -- "provides calculated position/velocity" --> Public_API_User_Interface Public_API_User_Interface -- "requests coordinate transformations" --> Coordinate_Systems_Transformations Coordinate_Systems_Transformations -- "provides transformed positional data" --> Public_API_User_Interface Public_API_User_Interface -- "requests astronomical events" --> Astronomical_Calculations_Almanac Astronomical_Calculations_Almanac -- "provides event and almanac data" --> Public_API_User_Interface Data_I_O_Persistence -- "Supplies IERS and Delta-T data for time calculations" --> Time_Ephemeris_Core Data_I_O_Persistence -- "Supplies ephemeris and orbital elements for propagation" --> Orbital_Mechanics_Propagation Data_I_O_Persistence -- "Provides star catalogs and other static astronomical data" --> Astronomical_Calculations_Almanac Time_Ephemeris_Core -- "Provides time objects for accurate orbital propagation" --> Orbital_Mechanics_Propagation Time_Ephemeris_Core -- "Supplies time objects and Earth orientation matrices for transformations" --> Coordinate_Systems_Transformations Time_Ephemeris_Core -- "Provides time context for event calculations" --> Astronomical_Calculations_Almanac Orbital_Mechanics_Propagation -- "Outputs raw position and velocity vectors for coordinate conversion" --> Coordinate_Systems_Transformations Coordinate_Systems_Transformations -- "Provides transformed positional data for higher-level event computations" --> Astronomical_Calculations_Almanac Core_Utilities_Numerical_Operations -- "Provides fundamental numerical support, mathematical functions, and unit conversions" --> Data_I_O_Persistence Core_Utilities_Numerical_Operations -- "Provides fundamental numerical support, mathematical functions, and unit conversions" --> Time_Ephemeris_Core Core_Utilities_Numerical_Operations -- "Provides fundamental numerical support, mathematical functions, and unit conversions" --> Orbital_Mechanics_Propagation Core_Utilities_Numerical_Operations -- "Provides fundamental numerical support, mathematical functions, and unit conversions" --> Coordinate_Systems_Transformations Core_Utilities_Numerical_Operations -- "Provides fundamental numerical support, mathematical functions, and unit conversions" --> Astronomical_Calculations_Almanac Core_Utilities_Numerical_Operations -- "Provides fundamental numerical support, mathematical functions, and unit conversions" --> Public_API_User_Interface click Data_I_O_Persistence href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-skyfield/Data_I_O_Persistence.md" "Details" click Time_Ephemeris_Core href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-skyfield/Time_Ephemeris_Core.md" "Details" click Orbital_Mechanics_Propagation href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-skyfield/Orbital_Mechanics_Propagation.md" "Details" click Coordinate_Systems_Transformations href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-skyfield/Coordinate_Systems_Transformations.md" "Details" click Astronomical_Calculations_Almanac href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-skyfield/Astronomical_Calculations_Almanac.md" "Details" click Core_Utilities_Numerical_Operations href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-skyfield/Core_Utilities_Numerical_Operations.md" "Details"The generation tool is based on Static Analysis and LLMs and is fully open-source: https://github.com/CodeBoarding/CodeBoarding
You can see the full diagram with explanations and related source code here: https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-skyfield/on_boarding.md
Any feedback is appreciated! Would love to hear your opinion on diagrams as an exploration tooling and diagram first documentation!
Beta Was this translation helpful? Give feedback.
All reactions