Changes between Version 18 and Version 19 of GSoC/2021/JupyterAndGRASS


Ignore:
Timestamp:
Aug 20, 2021, 1:49:19 PM (3 years ago)
Author:
chaedri
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GSoC/2021/JupyterAndGRASS

    v18 v19  
    11
    2 = GSoC 2021 Improved Integration of GRASS GIS and Jupyter Notebooks=
     2= GSoC 2021: Improved Integration of GRASS GIS and Jupyter Notebooks=
    33
    44|| Title: || '''Improved Integration of GRASS GIS and Jupyter Notebooks'' ||
     
    66|| Organization: || [http://www.osgeo.org OSGeo - Open Source Geospatial Foundation] ||
    77|| Mentor Name: || Vaclav Petras, Helena Mitasova, Stephan Blumentrath ||
    8 || !GitHub Repository: || [https://github.com/chaedri/grass/  View Repo]  ||
     8|| !GitHub Fork: || [https://github.com/chaedri/grass/tree/master/python/grass/jupyter  View Repo]  ||
    99|| GSoC proposal: || [https://docs.google.com/document/d/1ZT0cZobd87YCb3Ogis7RzWPj02XZkCpAHbC3VBGh7gc/edit?usp=sharing View Proposal]   ||
    1010
     11[https://mybinder.org/v2/gh/OSGeo/grass/5e2fd30?urlpath=lab%2Ftree%2Fdoc%2Fnotebooks%2Fjupyter_integration.ipynb Try grass.jupyter in Binder here]
     12
    1113== Abstract ==
    12 The current integration of GRASS GIS and Jupyter Notebooks requires a cumbersome environment variable setup after launching GRASS from within the notebook. It also only allows for simple, non-interactive map displays. My project will address both these issues and improve the GRASS-Jupyter integration with a new package called grass.jupyter.
     14The previous integration of GRASS GIS and Jupyter Notebooks required a cumbersome environment variable setup after launching GRASS from within the notebook. It also only allowed for simple, non-interactive map displays. The `grass.jupyter` subpackage for addresses both these issues by introducing a new startup function, `init()`, and two display classes, `GrassRenderer` and `InteractiveMap`. `GrassRenderer` renders GRASS displays as PNG images. `InteractiveMap` displays rasters and vectors in [https://python-visualization.github.io/folium/index.html folium], a leaflet library for Python.
    1315
    1416== Goal ==
    15 My goal is to design a Python/PyGRASS library which will have 3 main components for improving the GRASS-Jupyter integration:
    16 (1) creating new initiation functions for the launch of GRASS GIS in Jupyter Notebooks,
    17 (2) creating functions for more intuitive map display and,
    18 (3) introducing an interactive map display function.
     17This project had three main objectives:
     18
     191. creating new initiation functions for the launch of GRASS GIS in Jupyter Notebooks (`init()`)
     20
     212. creating functions for more intuitive map display (`GrassRenderer()`)
     22
     233. introducing an interactive map display function (`InteractiveMap()`)
     24
    1925
    2026== Timeline ==
     
    195201}}}
    196202{{{#!td
     203Ok \\
     204Ok \\
     205Ok
    197206}}}
    198207
     
    214223No, I'm not currently blocked on anything.
    215224
    216 == Evaluation Status ==
    217 
    218 
    219 
    220225
    221226== Weekly reports ==
     
    422427Feedback, comments, questions and ideas welcome - especially for Future Work!
    423428
    424 
    425 == Future Work ==
    426 
    427 
    428 
    429 
    430 
    431 
     429== Final Report ==
     430**Title:** Improved Integration of Grass GIS and Jupyter Notebooks\\
     431**Community:** GRASS GIS - OSGeo
     432
     433**Abstract:**\\
     434 Check back later...
     435
     436**The state of integration BEFORE the start of GSoC:**\\
     437Check back later...
     438
     439**The state of integration AFTER GSoC:**\\
     440Check back later...
     441
     442**Conclusion:**\\
     443Check back later...
     444
     445**Future Work:**\\
     446* Height and width defaults in `GrassRenderer` should be derived from computational region
     447* Add folium Tooltip method to `InteractiveMap`, allowing users to access vector attribute data by clicking on feature
     448* Add simpleCRS option to `add_raster` method in `InteractiveMap`
     449* Add option to display rasters as vectors (pixels -> polygon) in `InteractiveMap`
     450* Clip vectors to computational region in `InteractiveMap` (currently the whole vector dataset is displayed)
     451* Add more interactive functions: timeline slider for temporal datasets, etc.
     452* `InteractiveMap` doesn't allow users to fully access folium. In the future, a new interface that allows users direct access to folium should be added. For example, it could look like: `gj.Raster("elevation").add_to(folium_map)`)
     453
     454
     455**Permanent Links:**\\
     456
     457Pull requests related to `grass.jupyter`:\\
     458|| '''Title''' || '''Pull Request'''||
     459|| Added Binder setup files || https://github.com/OSGeo/grass/pull/1603 ||
     460|| Binder Button || https://github.com/OSGeo/grass/pull/1628 ||
     461|| Session Initiation functions for Jupyter Notebooks || https://github.com/OSGeo/grass/pull/1629 ||
     462|| Added additional GRASS info to example_notebook || https://github.com/OSGeo/grass/pull/1686 ||
     463|| Jupyter: Non-interactive display || https://github.com/OSGeo/grass/pull/1668 ||
     464|| Interactive vector maps for Jupyter Notebooks || https://github.com/OSGeo/grass/pull/1710 ||
     465|| __getattr__ shortcut for calling GRASS display modules || https://github.com/OSGeo/grass/pull/1723 ||
     466|| Add temporary files for Non-Interactive Display || https://github.com/OSGeo/grass/pull/1727 ||
     467|| Raster Support for Interactive Jupyter maps with folium || https://github.com/OSGeo/grass/pull/1769 ||
     468|| Test Module for Non-interactive display in Jupyter Notebooks || https://github.com/OSGeo/grass/pull/1739 ||
     469... two more PRs coming!
     470
     471
     472OSGeo Wiki Page:\\
     473https://trac.osgeo.org/grass/wiki/GSoC/2021/JupyterAndGRASS
     474
     475OSGeo-GRASS !github project page:\\
     476https://github.com/OSGeo/grass/projects/7
     477
     478Github Fork and `grass.jupyter` directory:\\
     479https://github.com/chaedri/grass/tree/master/python/grass/jupyter
     480
     481**Binder Examples:** \\
     482[https://mybinder.org/v2/gh/OSGeo/grass/5e2fd30?urlpath=lab%2Ftree%2Fdoc%2Fnotebooks%2Fjupyter_integration.ipynb grass.jupyter tutorial]
     483[more links coming...]
     484
     485
     486