Project Title: Mapknitter Image Management and Synchronous Editing
Open source Platform Used:Github
Github Organization Page:Publiclab
Repository Contributed to:mapknitter
My PublicLab Profile:https://publiclab.org/profile/divyabaid16
MapKnitter is based around the upload of images, the positioning of those images on a map, and the compositing of those images into map export formats. This project idea focuses on the systems for tracking changes on those images, collecting them into sets, storing image history, and other improvements which we hope will simplify and reconfigure the MapKnitter codebase.
MapKnitter can make maps from any image source, but it particularly lends itself to making maps with balloons and kites. The manual process of making maps with MapKnitter differs greatly from automated aerial imaging systems. In those systems, the imaging is of higher precision and processed with spatial and telemetry data collected along with the imagery, typically at higher altitudes and with consistent image overlap in the flight path sequence.
With MapKnitter the cartographer dynamically places each image and selects which images to include in the mosaic. Although the approaches are similar in that they use some type of additional information (usually pre-existing imagery of a lower resolution) as a reference, and that they are bound to specific cartographic elements such as map scale and map projection.
Community outreach and First Timers only issue
Public lab has always been a welcoming and beginner friendly organizations that especially guides all the newcomers have a smooth process from start till the end of their first contribution. It follows a first-timers friendly template that is easily understandable by anyone new to the community or open-source, that shows all the steps to follow for the first successful Pull Request.
First Timers issue created by me in Mapknitter:
First Timers issue created in Plots2:
I, along with 3 other students conducted a successful outreach event in our University which had more than 250+ participants where I delivered a talk to encourage students into open source, GSoC and to bring more contributors to Public Lab. It was my first talk and I had an amazing experience, I really loved motivating others and answering their question. I have also written a blog on this.
My involvement in the community ( in the form of comments ):https://github.com/search?p=1&q=commenter%3Adivyabaid16+org%3Apubliclab&type=Issues&utf8=%E2%9C%93
Link to contribution graph during GSoC Period : https://github.com/publiclab/mapknitter/graphs/contributors?from=2019-04-09&to=2019-08-24&type=c
Image Ordering in sidebar:
Previously, the images were ordered on the basis of the time of creation. I have added the feature to order the images based on Name, alphabetical order, size of the image and the time of creation of the image.
Multiple Image export:
Images export is a very good function of MapKnitter that helps users get all the images in jpg, zip, and GeoTIFF format. Previously, all the images of the map were exported and then the user would download the entire zip which contains the Knitted images.
Now, with multiple image export, which will be merged soon, the user will be able to select only the images he would like to export and just download them.
I have also written a blog on multiple image feature showing more details associated with it. https://publiclab.org/notes/divyabaid16/07-03-2019/mapknitter-multiple-image-export
PR: 693 (Not merged yet)
Version tracking of images:
History associated with each image is stored in the database. This is helpful to track all the updation made on the image at what time and by whom. Since multiple people can update a single image, this feature is very helpful. I developed this with the help of Paper trails gem in ruby. Also this was a key feature as part of my GSoc project. The first version that is displayed shows that the image is created. It displays the user name and the time of the creation of image in **ago word** form for example (Created by xyz 1 hour ago). And for the rest, it is image modification which is shown as a list of new versions which contains with it the information of the user who modified it and how much time ago it was modified.
I have also written a detailed blog on functioning of image history storage.
Toggle between list view and grid view of images:
This is a UI Improvement in which the images can be viewed as a list as well as a grid depending on the choice of the user. The list view shows all the details associated with the image that includes, name, size, and other functions associated with the image like Pan to the image, delete the image and download the image. The grid view is simple and can be viewed as a photo gallery where only the picture, like thumb nail is shown hiding all other details.
Addition of anonymous Map option:
With the upgrade to Mapknitter3, I found a suitable place and added the option to create a map anonymously. To create a map, a user must login but Mapknitter also provides an option to create map anonymously in which no one has the ownership of the map. Here, I highlighted some drawbacks of making a maps anonymously and encouraged user to create an account or login and then create a map, which definitely opens more features for the images.
Addition of Map and image gallery to the tags page:
Search maps by location:
In the gallery page, I added an option to search the maps by location making searching easier for the users if they want the list of a map that belongs to a particular region. (This is not merged yet).
Designing a Login Modal:
I designed a login modal with bootstrap 4 panel that displays as popup whenever a user clicks on the Login button.
Other small fix:
Small UI Improvements, bug fix and documentation issues solved during the GSoC phase were:
Ability to apply filters to images:
Add filters to images with image sequencer and show the updated image. Also, store the history of all the filters added to the image and display them.
Future scope for new developers:
- View of all images for a given region in maps
- Refresh background images while dragging
- Ability to choose time bounding box (some kind of layer manager may be needed)
- Liz Barry
- Sourav Sahoo
- Gaurav Sachdeva
- Jeffrey Warren
Thank for for always guiding me and helping me in all the possible way. You all helped me to gain a lot of knowledge from Day 1. I am more than grateful to you all for being the best mentors.