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