Wiki
Clone wikimss / KML: Enhance KML Support - GSoC 2020
Student : Aryan Gupta
Organisation : Mission Support System (Python Software Foundation)
Mentors : Jörn Ungermann, Reimar Bauer, Christian Rolf
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.
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.
Updated