+1 Michael
_____________________________

C. Michael Barton
Associate Director, School of Complex Adaptive Systems 
(https://scas.asu.edu<https://scas.asu.edu/>)
Professor, School of Human Evolution & Social Change (https://shesc.asu.edu)
Director, Center for Social Dynamics & Complexity (https://complexity.asu.edu)
Arizona State University
Tempe, AZ 85287-2701
USA

Executive Director, Open Modeling Foundation 
(https://openmodelingfoundation.github.io<https://openmodelingfoundation.github.io/>)
Director, Network for Computational Modeling in Social & Ecological Sciences 
(https://comses.net)

personal website: http://www.public.asu.edu/~cmbarton


On Apr 19, 2022, at 3:20 PM, Helena Mitasova via grass-psc 
<[email protected]<mailto:[email protected]>> wrote:

+1 Helena
Helena Mitasova
Professor, Department of Marine, Earth and Atmospheric Sciences
Faculty Fellow, Center for Geospatial Analytics
North Carolina State University
Raleigh, NC 27695-8208


On Tue, Apr 19, 2022 at 5:25 PM Vaclav Petras 
<[email protected]<mailto:[email protected]>> wrote:
+1, Vaclav

On Tue, 19 Apr 2022 at 17:17, Veronica Andreo 
<[email protected]<mailto:[email protected]>> wrote:
Dear PSC,

Caitlin has just completed her project for the student grant and submitted the 
final report (I FWD it here in case you missed it).

I hereby propose to approve her final report and issue the second half of the 
payment. Big thanks to Caitlin and her mentors for your work and commitment! 
Thanks as well to those testing and providing feedback along the process! Great 
work Caitlin!! Congratulations!

I start with my +1 !!

Vero

---------- Forwarded message ---------
De: Caitlin Haedrich 
<[email protected]<mailto:[email protected]>>
Date: lun., 18 abr. 2022 19:25
Subject: [GRASS-dev] grass.jupyter Mini Project Final Report
To: <[email protected]<mailto:[email protected]>>, 
<[email protected]<mailto:[email protected]>>


Hi all,

Last week, we wrapped a final push on grass.jupyter and are excited for its 
official release with GRASS 8.2. Here's my final report along with a summary of 
grass.jupyter changes introduced as part of the project. Thank you all for your 
support, feedback and testing over the past few months!

The state of the art BEFORE the start of the Mini Project:
During GSoC 2021, we created “grass.jupyter”, a package that improves the 
integration of GRASS GIS and Jupyter with a set of functions for displaying 
GRASS data in Jupyter Notebooks. In its previous state, “grass.jupyter” allows 
users to create static visuals and simple interactive maps. However, several 
additional features are needed to allow Jupyter users to fully and easily 
access the power GRASS, including space-time dataset visualization and more 
options for interactive mapping.

Project Goals:
In preparation for the stable release of grass.jupyter with GRASS 8.2, this 
project had three main goals: (1) create space time dataset visualizations for 
use in Jupyter Notebooks, (2) improve the integration of GRASS with folium 
(leaflet library for Python) and (3) write a function for displaying vector 
attributes in nicely-formatted tables (using Pandas or Geopandas). Along the 
way, we also wanted to finalize the naming of grass.jupyter classes and create 
documentation (thank you Vaclav Petras).

The state of the art AFTER the Mini Project:
1. New TimeSeriesMap class that creates ipywidget time sliders of space time 
datasets (see attached timeseriesmap.png) and a notebook documenting it's usage 
[1]
2. Improved GRASS-folium integration allowing rasters and vectors to be added 
to existing folium maps (see attached grass-folium.png) and updated notebook 
demonstrating its usage [2]
3. Updated class names:

  *   GrassRenderer -> Map
  *   Grass3dRenderer -> Map3D
  *   InteractiveMap
  *   TimeSeries -> TimeSeriesMap

4. Thanks to Vaclav Petras, we also have a manual page for grass.jupyter [3]
5. I didn't end up working to integrate GRASS and Pandas. It seems that it is 
quite straightforward to display vector attributes in nicely-formatted Pandas 
tables. For example:
>>> import pandas as pd
>>> import sqlite3
>>> sql_path = gs.read_command("db.databases", driver="sqlite").replace('\n', 
>>> '')
>>> con = sqlite3.connect(sql_path)
>>> sql_stat="SELECT * FROM field"
>>> df = pd.read_sql_query(sql_stat, con)
>>> con.close()
>>> df
There are other outputs that would be nice to display in nice Pandas tables, 
like text output from r.univar, r.stats, or t.vect.list. However, this is 
difficult since there is no standard output that is easily parse-able to 
pandas. I think the best way would be to create a standard json or csv output 
for all modules that return text. Then, it would be simple to take any module 
output and convert to a nice-looking Pandas table.

Next Steps:
1. Bug: InteractiveMap does not honor use_region=True for vectors.
2. Bug: InteractiveMap for Jupyter does not handle not existing data properly 
(https://github.com/OSGeo/grass/issues/2302<https://urldefense.com/v3/__https://github.com/OSGeo/grass/issues/2302__;!!IKRxdwAv5BmarQ!O6p_95e3SKYK5mKOIkmws-FQ3JJ3WRTZefvkke9v6p7LEJ21bU3fwxtja0adUtsw5WY$>)
3. InteractiveMap: add legend options for rasters, support simpleCRS for faster 
rendering, ToolTip integration for vector attributes
4. Continue Pandas integration by adding standard json or csv output to modules 
that return text
5. ... And many others! I think there's still lots of ways we can improve and 
expand the integration of GRASS and Jupyter. Ideas welcome.

You can find an archive of all my weekly reports at [4] and follow next steps 
for grass.jupyter on our project page on GitHub [5]. Thank you again to Vaclav 
Petras and Anna Petrasova for their guidance and contributions to 
grass.jupyter. And, another thank you to Vero Andreo, Stefan Blumentrath and 
Markus Neteler for their feedback and testing!

Best,
Caitlin

[1] 
https://mybinder.org/v2/gh/OSGeo/grass/main?urlpath=lab%2Ftree%2Fdoc%2Fnotebooks%2Ftemporal.ipynb<https://urldefense.com/v3/__https://mybinder.org/v2/gh/OSGeo/grass/main?urlpath=lab*2Ftree*2Fdoc*2Fnotebooks*2Ftemporal.ipynb__;JSUlJQ!!IKRxdwAv5BmarQ!O6p_95e3SKYK5mKOIkmws-FQ3JJ3WRTZefvkke9v6p7LEJ21bU3fwxtja0adprRiMPc$>
[2] 
https://mybinder.org/v2/gh/OSGeo/grass/main?urlpath=lab%2Ftree%2Fdoc%2Fnotebooks%2Fgrass_jupyter.ipynb<https://urldefense.com/v3/__https://mybinder.org/v2/gh/OSGeo/grass/main?urlpath=lab*2Ftree*2Fdoc*2Fnotebooks*2Fgrass_jupyter.ipynb__;JSUlJQ!!IKRxdwAv5BmarQ!O6p_95e3SKYK5mKOIkmws-FQ3JJ3WRTZefvkke9v6p7LEJ21bU3fwxtja0adRk6yl2Q$>
[3] 
https://grass.osgeo.org/grass81/manuals/libpython/grass.jupyter.html<https://urldefense.com/v3/__https://grass.osgeo.org/grass81/manuals/libpython/grass.jupyter.html__;!!IKRxdwAv5BmarQ!O6p_95e3SKYK5mKOIkmws-FQ3JJ3WRTZefvkke9v6p7LEJ21bU3fwxtja0adpmpuH4w$>
[4] 
https://trac.osgeo.org/grass/wiki/GSoC/2021/JupyterAndGRASS/MiniGrant2022<https://urldefense.com/v3/__https://trac.osgeo.org/grass/wiki/GSoC/2021/JupyterAndGRASS/MiniGrant2022__;!!IKRxdwAv5BmarQ!O6p_95e3SKYK5mKOIkmws-FQ3JJ3WRTZefvkke9v6p7LEJ21bU3fwxtja0ad6AgVJHI$>
[5] 
https://github.com/OSGeo/grass/projects/7<https://urldefense.com/v3/__https://github.com/OSGeo/grass/projects/7__;!!IKRxdwAv5BmarQ!O6p_95e3SKYK5mKOIkmws-FQ3JJ3WRTZefvkke9v6p7LEJ21bU3fwxtja0ad5RqNnz4$>
_______________________________________________
grass-dev mailing list
[email protected]<mailto:[email protected]>
https://lists.osgeo.org/mailman/listinfo/grass-dev<https://urldefense.com/v3/__https://lists.osgeo.org/mailman/listinfo/grass-dev__;!!IKRxdwAv5BmarQ!O6p_95e3SKYK5mKOIkmws-FQ3JJ3WRTZefvkke9v6p7LEJ21bU3fwxtja0ad4KaWWAc$>
_______________________________________________
grass-psc mailing list
[email protected]<mailto:[email protected]>
https://lists.osgeo.org/mailman/listinfo/grass-psc<https://urldefense.com/v3/__https://lists.osgeo.org/mailman/listinfo/grass-psc__;!!IKRxdwAv5BmarQ!O6p_95e3SKYK5mKOIkmws-FQ3JJ3WRTZefvkke9v6p7LEJ21bU3fwxtja0adSHlKPSg$>
_______________________________________________
grass-psc mailing list
[email protected]<mailto:[email protected]>
https://lists.osgeo.org/mailman/listinfo/grass-psc<https://urldefense.com/v3/__https://lists.osgeo.org/mailman/listinfo/grass-psc__;!!IKRxdwAv5BmarQ!O6p_95e3SKYK5mKOIkmws-FQ3JJ3WRTZefvkke9v6p7LEJ21bU3fwxtja0adSHlKPSg$>
_______________________________________________
grass-psc mailing list
[email protected]<mailto:[email protected]>
https://urldefense.com/v3/__https://lists.osgeo.org/mailman/listinfo/grass-psc__;!!IKRxdwAv5BmarQ!O6p_95e3SKYK5mKOIkmws-FQ3JJ3WRTZefvkke9v6p7LEJ21bU3fwxtja0adSHlKPSg$

_______________________________________________
grass-psc mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/grass-psc

Reply via email to