SOCIS 2017 Pablo Julio Sáez - poliastro/poliastro GitHub Wiki

About me

Name: Pablo Julio Sáez

Age: 23

Github: @pabjusae

Studies: Electronics engineer. Currently studying a Master's Degree in Big Data Analytics at Universidad Politécnica de Valencia.

Proposal

The first part of my proposal consists of an alternative to Binder. The idea is to develop a Docker container that includes a complete poliastro installation, fulfilling its dependencies. So it will be running indistinctly of the operative system and even on the cloud, helping developers to start working with poliastro. I created a container test based on an image published by Jupyter notebook team, which includes the following:

  • Miniconda3-4.2.12
  • Git
  • Plot.ly
  • Poliastro (installed by $ conda install poliastro --channel conda-forge)
  • Jupyter notebook

I uploaded the image to Docker hub so it is public. Two easy ways to test it are:

  • If you use Windows or Mac you can use Kitematic (included when installing DockerToolbox), just download the container, run it and copy the token that appears in the console into the sign in screen, like in the following gif:

  • If you are using Linux, or just want to run it by the command line you can do it by the following code:
    $ docker pull pabjusae/testingjupyternotebook 
    $ docker run -it --rm -p 8888:8888 pabjusae/testingjupyternotebook
    
    # Open web browser
    # Copy your IP given by the previous command, add the port 8888 and you will get access to Jupyter login screen
    # Enter token given before and ... You are ready!
    

As second part of my proposal, I will implement interactive porkchop plots and orbit visualization in 3D by using the plot.ly python library. Here and here are two basic examples that I developed to get familiar with plot.ly and some of his cool features, like animations and 3d interactive plots.

As last part of my proposal I would like to develop an application, either desktop or webapp, to bring the astronomy closer to people without coding knowlodge, by showing explained and interactive examples easy to be modified with custom data. I leave the option about which type of applications fits poliastro needs or objective, because I don't know if the project has the possibility to afford a cloud provider.

In case of creating a webapp it could be used Django or Flask, and could be hosted in AWS or Digital Ocean cloud. Technologies choosen are due to the experience gained during my master's degree.

If on the contrary, a desktop app is more interesting for the project. I have experience developing desktop apps with users interfaces using tkinter, and creating executables by using pyinstaller. This packages allows to create stand-alone executables under Windows, Mac and Linux.

Timeline

I can start first of June and finish anytime in September.

  • Week 1: Get familiar with poliastro code and maths behind orbital mechanics and astrodynamics.
  • Week 2: Develop a Docker container that will be used during all the SOCIS project. Write all documentation needed to start working with it and include some examples running poliastro.
  • Week 3: Learn about plot.ly and all the possibilities it offers.
  • Week 4-5: Develop interactive porkchop plots based on contour plots available on plot.ly.
  • Week 5-6: Develop interactive 3D orbit visualization plots.
  • Week 7: Consider if developing a desktop or webapp. Testing Django and Flask, choosing cloud provider. Testing Tkinter and PyQt.
  • Week 8-9: Creating the choosen application.
  • Week 10: Testing again all the code and application between different OS. I can do it on Windows and Linux.