Moja global: Interactive Visualisation Tool for GCBM Output

Hi Abhineet,
The visualisation starts to look professional. Well done. I hope to see an animated version at the end of this week.

Thanks Guy!

Week 30

This week, I added a new feature to my tool: A play button. It will allow users to automatically step through the time-series of the dataset. Here’s a little demo:

This feature is still a work-in-progress and I’m working with my mentors to improve it. They’ve provided some great feedback and I’ll try my best to further polish this feature.

1 Like

Week 31

This past week was a flurry of activities. Let me start by describing how I improved the play feature.

You might’ve noticed in the attached image in my last blog that there’s a significant and perceptible delay when transitioning from one raster image to another. I feel happy to share it’s fixed now :tada:

I was about to give up on it, cursing Dash (the front-end framework) but then I read its documentation properly and found out that it comes with something called client-side callbacks. I gave these a try and voilà! Problem solved.

The other thing that I did was, I added continuous integration to my project’s repo. Using GitHub actions, I configured it so that now it automatically runs unit tests and pylint on all the pull requests and pushes that are made on the master branch. This should make it effortless for my mentors to confirm that changes made in a PR do not break existing tests and satisfy coding standards.

In the future, I’ll also add a GitHub action for automatically publishing the Python package on PyPI, i.e., implement continuous deployment.

That’s all from me for now. See ya next week :v:


Week 32

This week, I used Taswira to visualize some real-world data. Thanks to my fellow moja global member Julian Cabezas, I was able to run Taswira on some GCBM output from Chile.

By doing this, I discovered a bug, which I have now posted on the project’s GitHub. I’ll try to resolve it in the coming days:

While testing, I identified some small improvement that I can do that’ll immensely improve the UX of the CLI. I’ll try to make some of these in the following week.

The other major task that I completed is that I dockerized the environment. This means that now development and continuous integration (and continuous deployment in the future) can all use the same environment!


Week 33

This week, I worked with my mentors to find a fix to the bug that I had written about in my previous post. I’ve filed a PR and my mentors will merge it as soon as they get the time to review it:

Apart from that, I tested Taswira on some data that Kaushik (my primary mentor) shared with me. This data was different from the one that I had designed the tool. We wanted to see whether the tool can work with data that isn’t specific to GCBM.

I found out that it’s possible but it requires a lot of modifications in the code. This led me to start thinking about how I can abstract Taswira to become a more general purpose tool for visualizing combined spatial and non-spatial data. I’ll confess that right now I don’t know how I’ll do this but atleast now I know how I’ll keep contributing to this project even after GSoC is over.

Which reminds me that GSoC is almost over :pleading_face:

We had our last video conference yesterday. We discussed how we’ll continue contributing to moja after GSoC and near the end we even took an awesome (virtual) group photo :tada:

I won’t share that photo just yet. I’m saving it for my last post :wink:

See ya soon :v:


Week 34

This week I updated the README and structure of my project’s repository:

I had done all this to upload my project to the Python Package Index. Imagine how awesome it would be to install Taswira using a single line of command:

pip install taswira

Regrettably, this could not happen because of some issues with a dependency called Rasterio. It’s a Python wrapper for the GDAL raster library. The problem is that it doesn’t come with wheels (binary packages used by Python’s package manager) that support the ZSTANDARD compressions algorithm.

This doesn’t mean that I can’t package and upload Taswira to PyPI. No I still can, but in that case the end-user would have to do a lot of hard work to get the tool up and running. This would not make sense, which is why I’ve decided to stick to my conda-based installation for now till Rasterio starts providing better wheels.

Hilariously, all this echoed with a recent xkcd:

See ya next week :joy:


Week 35

For the final leg of this wonderful journey, I took care of the remaining tasks from my project plan.

I created a lot of new issues in the repository for working on in the future. I’ll use them to continue contributing to moja global.

I’ve renamed the repository from GSoC.FLINT.Visualisation_Tool to GCBM.Visualisation_Tool which means that it’s no longer restricted to GSoC. Now anybody can contribute to the project :tada:

Lastly, I finished writing my final report and completed filling my final mentor evaluations.

Winter is Here

It has been raining incessantly for the past couple of days in Raipur, India where I live. As a result, the weather has become much colder. How bizarre? The Summer of Code ended with the end of literal summer :smile:

This has been an incredible three months. I got to work with some fabulous and brilliant people. Here are some of them smiling gleefully in one of our last video calls.

Some members of moja global

That pictures shows that moja global is truly a global organization with people from such diverse backgrounds. In the picture alone, we have people from :belgium: Belgium, :canada: Canada, :india: India and :australia: Australia but that’s not everyone, moja global has members from a lot of other countries!

I find myself incredibly lucky to have found such an awesome organization. In fact, to share an interesting tidbit, moja global is actually the only organization that I had applied to in GSoC. I had no expectation of getting in. I’m immensely grateful to @Guy for helping me and accepting my proposal.

I’m a rather anxious person, so don’t know how would have survived these past three months, that can get incredibly challenging at time, without the help and support of @mfellows and @koukas. Thank you so much!

In the end, I wish all my new friends a safe and joyful time ahead of them.

Take care and I will see you soon :slight_smile: