CZML Extractor: An overview

By Eleftheria Chatziargyriou

As the proverb says "all good things must come to an end". Unfortunately, it's time to bid adieu to the summer and have a look on what has been accomplished so far.

The CZML Extractor

This was undoubtedly the main and most time-consuming part of the project. The extractor allows users to easily convert orbital data to CZML. You can find an overview of the extractor's usage in the User Guide or take a look in the more in-depth Jupyter notebook tutorial

The Cesium Application

Since we need more parameters to accurately represent the data, we also need a specific application to parse said parameters. For this reason, I worked on a Cesium application that allows you to easily visualize the data. At this moment, there are two separate applications: one that runs remotely and one you can copy-paste directly into Cesium Sandcastle. I have added the instructions on how to run it in the repo, where you can also find a few examples to get you started.


As I've mentioned in previous posts, the CZML packets were internally represented by nested dictionaries. This complicated the code and made it generally uglier for many reasons (need for a "default" packet, need to specify the path of every parameter that was being added etc...). Fortunately, my mentor Juanlu came up with a great library that made the process exponentially easier and allowed us to get rid of many unecessary parts of the older code. Over time, I added most of the basic Cesium properties that were needed for the extractor (though I hope to eventually go back to it and turn it into a fully fledged library!)

Git log

Those are my PRs which were merged into poliastro's core (excluding the commits made to czml3 or the app)

There is still a pending PR that will add pass tracking (finally). I'm currently trying to test the added functionality to ensure it is as bug-free as possible.

Special thanks

I'd like to thank everyone in the Open Atronomy community. I'd also like to give a special thanks to my mentor, Juanlu, who helped make the whole GSoC experience even greater than I initially expected: he helped me get the proper background, gave helpful feedback and was very supportive and an all-around amazing person!

What's next

I had a wonderful time and I'm certainly planning to go back and polish the project as well as add any extra functionalities. Who knows, maybe there are many more contributions yet to come 😉

If you're interested in this project, or poliastro in general, you can attend the Open Source CubeSat Workshop where we'll be running a workshop. Hope to see you there!