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. |
| 17 | This project had three main objectives: |
| 18 | |
| 19 | 1. creating new initiation functions for the launch of GRASS GIS in Jupyter Notebooks (`init()`) |
| 20 | |
| 21 | 2. creating functions for more intuitive map display (`GrassRenderer()`) |
| 22 | |
| 23 | 3. introducing an interactive map display function (`InteractiveMap()`) |
| 24 | |
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:**\\ |
| 437 | Check back later... |
| 438 | |
| 439 | **The state of integration AFTER GSoC:**\\ |
| 440 | Check back later... |
| 441 | |
| 442 | **Conclusion:**\\ |
| 443 | Check 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 | |
| 457 | Pull 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 | |
| 472 | OSGeo Wiki Page:\\ |
| 473 | https://trac.osgeo.org/grass/wiki/GSoC/2021/JupyterAndGRASS |
| 474 | |
| 475 | OSGeo-GRASS !github project page:\\ |
| 476 | https://github.com/OSGeo/grass/projects/7 |
| 477 | |
| 478 | Github Fork and `grass.jupyter` directory:\\ |
| 479 | https://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 | |