funnelferry's Blog

Final Blog - A Journey full of learnings

funnelferry
Published: 08/26/2019

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 298529867415. 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.

View Blog Post

Week 10: Cartopy's EPSG

funnelferry
Published: 08/19/2019

What did you do this week?

This week I started adding support to plot the projections from EPSG code natively using Cartopy's own feature `epsg([epsg code])` from its CRS class.  Apart from that I also successfully corrected the feature to disable or enable gridlines for map which was broken while migrating the UI side code to Cartopy.

What is up next? 

This, EPSG support, still needs a lot more refinement and the way UI handles it is still needs a little improvement so I will work on that in the coming week just before the final evaluation week.

Did you faced any blockers?

Yes, I did faced a couple of blockers specially with enable/disable of gridlines but eventually looking up the documentation it got solved in not much time.

View Blog Post

Week 9: Perfecting the UI

funnelferry
Published: 08/15/2019

What did you do this week?

 

During this week I revaluated my work and also worked on perfecting various parts of migrated (to cartopy) interface of MSS addressing various important functionalities. Mainly worked on making the coastlines - enable/disable feature to work perfectly, Apart from that rewrote the code to accomodate the plotting of gridlines for stereographic projections.

 

What is coming up next?

After this I will work a little more on UI, still some things yet to work correctly, like enable/disable of gridlines.

 

Did you faced any blockers?

No I did not faced any blockers here.

View Blog Post

Week 8: Appearances and WMS server

funnelferry
Published: 07/22/2019

What did you do this week?

As planned, since the basic working of topview with all the code migrated to cartopy was fine. But now I needed to address all the bugs and make sure the working of each functionality and if any bug then bring it to working state. So building up on that my mentor identified few errors, one of which was the absolutely rubbish image being projected when using through WMS server. I was a little lost and experimented with wrong stuff and diverted a little more of my time than needed; basically I thought the issue is definitely being traced back from wms_control.py but infact it was merely the absence of keyword `extent` from function `imshow`. Other than that I also worked on the appearance feature to change color of water bodies which previously didn't worked unless you restart mss.

What is coming up next?

I think the current plan is to remove any source of crash in program through the interface and then proceed to rewrite tests which were basemap specific. Yes I did 

Did you get stuck anywhere?

Apart from tracing back the issue to imshow function, No I did not get stuck anywhere.

View Blog Post

Week 7: Waypoints and their Interaction

funnelferry
Published: 07/19/2019

What did I do this week?

I restored most of previous functionality I stripped off for simpler progress. Further major time was spent on getting the working of waypoints correct. After changing most of plotting routines into cartopy, the waypoints were working with all their functions but thy lost functionality and couldn't adapt to change in projection. So I also worked on solving that and did solved it at the end.

What is up next?

Currenty, testing for bugs and making sure the correct functionality of all the option controls like:

    1. WMS
    2. KML
    3. Satellite

Apart from that options to manually enable/disable the features and changing the color is also to be done.

Did you get stuck anywhere?

Yes, I think solving the waypoints issue maybe took a bit more time than needed but I think it was necessary for a confidence boost to me about my abilities to debug and trace the most delicate issues and solve them on my own. 

View Blog Post
DJDT

Versions

Time

Settings from gsoc.settings

Headers

Request

SQL queries from 1 connection

Static files (2312 found, 3 used)

Templates (28 rendered)

Cache calls from 1 backend

Signals

Log messages