GRASS GSoC 2024 Improve user experience in Jupyter Notebooks
GSoC 2024: Improve GRASS user experience in Jupyter Notebook
Student Name | Riya |
Organization | OSGeo - Open Source Geospatial Foundation |
Mentor Name | Anna Petrasova, Corey White |
GitHub Fork | View Repo |
GSoC proposal | View Proposal |
Abstract
The grass.jupyter.InteractiveMap() tool offers basic map visualization features like zooming and layer addition but suffers from suboptimal rendering speed (approximately 7.55 seconds per loop) and cumbersome data integration, particularly with large datasets. Additionally, its reliance on the Pseudo-Mercator projection limits its versatility. This abstract highlights the need for enhancements to improve rendering efficiency, streamline data integration, and broaden projection support for increased usability and functionality.
Goal
Main Goals:
- Enhance InteractiveMap with interactive data retrieval features, enabling users to query attribute values and draw geometries directly on the map.
- Implement support for custom coordinate reference systems (CRS) in InteractiveMap to eliminate the need for layer reprojection and improve visualization speed.
- Optimize rendering processes for SeriesMap and TimeseriesMap by parallelizing map rendering using standard Python libraries like multiprocessing.
Stretch Goals:
- Improve integration between GRASS and Pandas for smoother data handling and analysis.
- Incorporate tile-based rendering to efficiently display extensive datasets without compromising performance.
- Integrate a graphical user interface (GUI) within a Jupyter Notebook for enhanced user experience and ease of interaction with InteractiveMap functionalities.
Timeline
Period | Timeline | Tasks | Status |
---|---|---|---|
Bonding Period |
May 1- May 26 |
|
|
Official Coding Period | |||
Week 1 (May 27 - June 1) | Write initial function for adding button to grass.jupyter.InteractiveMap() | ||
Week 2 (June 2 - June 8) | Add click to see attributes features to the button | ||
Week 3 (June 9 - June 15) | Add button to allow users to create drawings in the displayed InteractiveMap() | ||
Week 4 (June 16 - June 22) | Add tools to the button to create different drawings | ||
Week 5 (June 23 - June 29) | Add functionality to retrieve points from user drawn drawings and add them to the data, if the user wants | ||
Week 6 (June 30 - July 6) | Speeding up the rendering of InteractiveMap() by skipping reprojection | ||
Week 7 (July 7 - July 13) |
|
||
Week 8 (July 14 - July 20) | Adding parallelization to TimeseriesMap and SeriesMap | ||
Week 9 (July 21 - July 27) | Documentation, testing, writing tutorial | ||
Week 10 (July 28 - August 3) | Working on a selected stretch goal | ||
Week 11 (August 4 - August 10) | Working on a selected stretch goal | ||
Week 12 (August 11 - August 17) | Write project summary | ||
Evaluation Period | |||
August 26 - September 2 | Submit code and final evaluation |