Skip to content

KML: Enhance KML Support GSoC 2020

withoutwaxaryan edited this page Aug 30, 2020 · 31 revisions

Student : Aryan Gupta

Organisation : Mission Support System (Python Software Foundation)

Mentors : Jörn Ungermann, Reimar Bauer, Christian Rolf

Project link on GSoC Site

Weekly blogs on PSF-GSoC Site

Abstract

Keyhole Markup Language (KML) is an XML notation for expressing geographic annotation and visualization within two-dimensional maps and three-dimensional Earth browsers. The MSS software currently supports in a very crude manner the overlay of KML files on the shown maps to support flight planning.

In this project, I will redesign and implement a better UI to display multiple KML files simultaneously. I will also be focussing on enhancing useful features from KML specification and implementing them in the MSS frontend.

My full proposal can be accessed here.

Documentation

User Documentation is available here.

This documentation will be shifted to mss' rtfd docs when my work is prepared for a stable release with MSS.

A Demonstration Video explaining the features added can be accessed below.

gsoc

Features Added

  • A Minimal UI KML Overlay Interface for smooth access and removal of KML Files
  • Support for Displaying Multiple KML Files on the map simultaneously
  • Realtime Customization Option for LineWidth & Colour of each individual KML File
  • Toggle feature to Display/Hide plot of individual KML Files on the map
  • Merge KML Files Option to combine many KML Files into a single KML File
  • Restore previously opened files with their specific attributes
  • Added Fastkml Support to parse all geometries & specific Styles of KML Specification
  • Added excellent Test Samples & Tests to test out the capabilities of Fastkml implementation
  • Relevant minor fixes to improve UX of KML Overlay Dock Widget.

Relevant Pull Requests (PRs) in Development

All PRs I created have been merged into my GSOC2020-AryanGupta branch.

Here is a list of my PRs with their related topics of development.

Topic Link to Relevant PR
Added Fastkml Support https://bitbucket.org/wxmetvis/mss/pull-requests/829
Bug Fixes in Migration to Fastkml https://bitbucket.org/wxmetvis/mss/pull-requests/835
KML Overlay UI https://bitbucket.org/wxmetvis/mss/pull-requests/836
KML Test Samples & Enhanced Features https://bitbucket.org/wxmetvis/mss/pull-requests/851
Documentation & Tests for KML Overlay https://bitbucket.org/wxmetvis/mss/pull-requests/859
Final Edits & fixes https://bitbucket.org/wxmetvis/mss/pull-requests/863
Fixed pep8 issues https://bitbucket.org/wxmetvis/mss/pull-requests/865
Solving Bandit Issues in Fastkml ** https://github.com/cleder/fastkml/pull/87

** PR opened in Fastkml Library, yet to be merged.

User Relevant Outcomes

Users can :

  • Add & Remove Multiple KML Files with ease
  • Plot Multiple KML Files simultaneously on the map
  • Display/Hide individual KML Files through a checkbox
  • Customize Colour and LineWidth of all KML Files
  • Merge desired KML Files into a single KML File
  • Continue their work from where they left off, with our 'Restore Latest Work' support.

Future Scope of Project

I believe my work covers critical support needed to enhance KML Support in MSS. My mentors are content with the progress I have achieved with KML. As far as MSS is concerned, my implementation satisfies all major criteria that one deals with through KML.

Since KML is a vast field in itself with numerous features, I implemented only the ones which were of use to MSS and the scientific community which uses the software.

If the MSS Developers choose to progress further into KML, here are the following points to focus on :

  • Support for External Map Images : Users can upload their own maps, and plot KML Files on those maps.
  • Creating a Package for Test Samples (using xstatic-py)
  • Implementation of Balloon Styles by making the Map Interface capable of interaction with the mouse.
  • Extension of Map capabilities to allow drawing KML Elements on the map itself

Acknowledgements

I'm thankful to my mentors Jörn, Reimar and Christian who provided immense support and motivation to persevere through all my difficulties. They sympathised with my problems and gave me ideas on how to face the challenges head on. Without their guidance, I would have been lost. I would also like to thank my GSoC mate Tanish who helped me out with my small doubts from time to time :))

I'm also grateful to MSS, PSF & the GSoC Community. This program has made me more confident about my abilities, and has strengthened my belief in the fact that passion, perseverance and patience can help you achieve wonders!

Finally, to the Open Source Community : Thank you for being so welcoming. I started from scratch and three months later, its still hard for me to believe that I developed a feature of a software :)) Thank you for giving me this opportunity, and I'll personally continue forward the Open Source spirit with my future contributions.