Skip to content

Cartopy: Updating Geographical Plotting Routines GSoC 2019

funnelferry edited this page Aug 25, 2019 · 3 revisions

Name : Anveshan Lal

Organisation : Mission Support System (Python Software Foundation)

Mentors : Joern Ungermann, Jens-Uwe Grooß

Project : Updating Geographical Plotting Routines

Project Code : Pull Request referencing project code

Commit log : All the commits comprising the all the progress of project

A detailed report about my GSoC project regarding migration of basemap dependent code to Cartopy.

Dependencies

Aside from the dependencies required to run MSS:

$ conda install cartopy

I would detail the progress by headlining the project in 3 parts

1. Server Side Migration

This address changes in code in respect to files:

mss/mslib/mswms/mpl_hsec.py

mss/mslib/mswms/mpl_hsec_styles.py

Current State

Server side is complete with all the previous functionality retained

Remaining Progress

None

Unresolved Issues

Map produced is almost aligned with client perfectly but it is not 100 %

Relevant Pull-Requests

https://bitbucket.org/wxmetvis/mss/pull-requests/643

https://bitbucket.org/wxmetvis/mss/pull-requests/651

https://bitbucket.org/wxmetvis/mss/pull-requests/653

https://bitbucket.org/wxmetvis/mss/pull-requests/654

2. Client Side Migration

This address changes in code in respect to files:

mss/mslib/msui/mpl_map.py

mss/mslib/msui/mpl_qtwidget.py

mss/mslib/msui/mpl_pathinteractor.py

mss/mslib/msui/topview.py

Current State

User Interface is perfectly functional and all the functionality is retained including the interaction of waypoints and functions related to it.

Remaining Progress

If the time allowed I would have like to exploit Cartopy's native ability to plot Geodetic Circular Paths, instead of the current manual solution.

Unresolved Issues

None

Relevant Pull Requests

https://bitbucket.org/wxmetvis/mss/pull-requests/656

https://bitbucket.org/wxmetvis/mss/pull-requests/671

3. Added Support for EPSG

mss/mslib/msui/mpl_map.py

mss/mslib/utils.py

Current State

All the epsg's previously present and additional EPSG's added are supported by the program. This includes the epsg which were non-functional from Cartopy's in-house function to plot epsg codes directly and all others Cartopy already supports.

Remaining Progress

There exists a large number of EPSGs (in excess of 4300), I couldn't test all of them but did encountered few which are not yet supported by Cartopy like 2985, 2986, 7415. With more testing there ought to be more which are still not supported by Cartopy but a large number of them are.

Relevant Pull Requests

https://bitbucket.org/wxmetvis/mss/pull-requests/684

https://bitbucket.org/wxmetvis/mss/pull-requests/691

Testing

Since the project in large part required me to maintain previous functionality there was not much scope to create new tests, but I did add two tests; One to test for a new function I added and the other test for EPSGs.

Failed Tests:

Pytest shows 2 tests failed although the failed tests seem to relate to a working and manually tested functionality of adding and removing point on waypoint interactor.

Acknowledgement

I would like to thank Joern Ungermann who mentored me throughout summer and actively helped me better the program and code, and also provided valuable feedback frequently. I would also like to express my gratiude towards MSS community including Reimar Bauer, Jens-Uwe Grooß and Shivashish Padhi who have been very welcoming from the start and helped get started and be familiar with MSS despite my serious lack of programming expertise and made my summer experience really great.