Summer of Code 2021 ideas - poliastro/poliastro GitHub Wiki
poliastro: Make czml3 support JupyterLab
Aim: czml3 is a Python library to export CZML, a subset of JSON that Cesium.js uses to visualize orbital information. Apart from the actual CZML export, czml3 also includes a CesiumWidget
that can be used to quickly visualize a CZML document. However, it does not support JupyterLab (https://github.com/poliastro/czml3/issues/61).
A widget prototype exists that uses C137.js, a webpack version of Cesium.js. However, its build process is proprietary.
Skills/Knowledge required:
- JavaScript or TypeScript
- webpack
- Python
Expected results: A Jupyter widget compatible with JupyterLab >= 3 that displays a Cesium globe with some CZML document specified by the user.
Additional functionality might include: customization of terrain providers, customization of point of view, customization of planet.
Potential mentor(s): @astrojuanlu, @jorgepiloto
Related repositories: https://github.com/poliastro/czml3/
poliastro: Generate czml3 code using JSON Schema
Aim: czml3 is a Python library to export CZML, a subset of JSON that Cesium.js uses to visualize orbital information. At the moment, the code for each CZML property is added manually to the library, which is tedious and error prone. A much better method would be to automatically generate the code from the CZML JSON Schema.
A proof of concept was drafted in this issue, but it needs some work.
Skills/Knowledge required:
- Python
Expected results: A script that generates czml3 Python classes from the JSON schema at build time (not at runtime).
Additional functionality might include: validation, MyPy types, convenience functions.
Potential mentor(s): @astrojuanlu, @jorgepiloto
Related repositories: https://github.com/poliastro/czml3/
poliastro: Expand events detection
Aim
When it comes to orbit design and maintenance, event detection plays a big role.
Being able to predict when your satellite will be under eclipse conditions or
visible over the horizon at particular location on Earth are examples of those
events. At the moment, poliastro only supports the LithobrakeEvent
, that is knowing
when a satellite will crash onto its attractor's surface.
Skills/Knowledge required
- Python
Expected results
The goal of this activity is to implement more event detectors under the
poliastro/twobody/events.py
module in order to increase the performance of the
library within this field.
Potential mentor(s) @astrojuanlu, @jorgepiloto
Related repositories https://github.com/poliastro/poliastro
poliastro: Animations
Aim
Although poliastro includes a set of amazing plotting utilities, it lacks from animation ones. Being able to visualize the movement of the different celestial bodies together with desired spacecraft for a particular mission would be an amazing new plotting feature.
Skills/Knowledge required
- Python
- Plotly and matplotlib skills
Expected results
The goal of this activity is to implement some kind of OrbitAnimation
method
or class for animating a particular set of orbits. It must be based on the
plotly
or matplotlib
package, as other plotting tools available in
poliastro.
Potential mentor(s) @astrojuanlu, @jorgepiloto
Related repositories https://github.com/poliastro/poliastro