[GRASS-PSC] [Motion] Approve Caitlin's student grant final report and issue the second payment

Jeff McKenna jmckenna at gatewaygeomatics.com
Wed Apr 20 05:16:10 PDT 2022


Well said Stefan, great improvements done through these grants!

-jeff



On 2022-04-20 4:31 a.m., Stefan Blumentrath wrote:
> Yes, great work indeed!
> 
> Also kudos to those who initiated the mini-grant concept! It is for sure 
> a very good and very fruitful investment of resources. Speaking for 
> myself, it really motivates to donate to the project when one sees such 
> great outcome as from Linda and Caitlin!
> 
> Cheers
> 
> Stefan
> 
> *From:*grass-psc <grass-psc-bounces at lists.osgeo.org> *On Behalf Of 
> *Veronica Andreo
> *Sent:* tirsdag 19. april 2022 22:07
> *To:* GRASS-PSC <grass-psc at lists.osgeo.org>
> *Subject:* [GRASS-PSC] [Motion] Approve Caitlin's student grant final 
> report and issue the second payment
> 
> 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* <caitlin.haedrich at gmail.com 
> <mailto:caitlin.haedrich at gmail.com>>
> Date: lun., 18 abr. 2022 19:25
> Subject: [GRASS-dev] grass.jupyter Mini Project Final Report
> To: <grass-dev at lists.osgeo.org <mailto:grass-dev at lists.osgeo.org>>, 
> <grass-user at lists.osgeo.org <mailto:grass-user at lists.osgeo.org>>
> 
> 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://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FOSGeo%2Fgrass%2Fissues%2F2302&data=05%7C01%7Cstefan.blumentrath%40nina.no%7C1d6e6450cf894890572208da224a0d9d%7C6cef373021314901831055b3abf02c73%7C0%7C0%7C637859999631379871%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=BOvuume3H23ptQ8orKnhuptwIJMQg%2FqhBNWGYkx5kLo%3D&reserved=0>)
> 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://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmybinder.org%2Fv2%2Fgh%2FOSGeo%2Fgrass%2Fmain%3Furlpath%3Dlab%252Ftree%252Fdoc%252Fnotebooks%252Ftemporal.ipynb&data=05%7C01%7Cstefan.blumentrath%40nina.no%7C1d6e6450cf894890572208da224a0d9d%7C6cef373021314901831055b3abf02c73%7C0%7C0%7C637859999631379871%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=xoIEUwwuiGAAxxm1yLnooXMqImHY%2BgYgyCCFtAA6V5c%3D&reserved=0>
> [2] 
> https://mybinder.org/v2/gh/OSGeo/grass/main?urlpath=lab%2Ftree%2Fdoc%2Fnotebooks%2Fgrass_jupyter.ipynb 
> <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmybinder.org%2Fv2%2Fgh%2FOSGeo%2Fgrass%2Fmain%3Furlpath%3Dlab%252Ftree%252Fdoc%252Fnotebooks%252Fgrass_jupyter.ipynb&data=05%7C01%7Cstefan.blumentrath%40nina.no%7C1d6e6450cf894890572208da224a0d9d%7C6cef373021314901831055b3abf02c73%7C0%7C0%7C637859999631379871%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=2tGXMGTj5lXgLZDdWfdJ7PyBrZm9MbMB49wUFOYjeKs%3D&reserved=0>
> [3] https://grass.osgeo.org/grass81/manuals/libpython/grass.jupyter.html 
> <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgrass.osgeo.org%2Fgrass81%2Fmanuals%2Flibpython%2Fgrass.jupyter.html&data=05%7C01%7Cstefan.blumentrath%40nina.no%7C1d6e6450cf894890572208da224a0d9d%7C6cef373021314901831055b3abf02c73%7C0%7C0%7C637859999631379871%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=q2tfFUqGYSj5Htv2MMsbu%2B2zjEOTFpAGAtIRonLClVA%3D&reserved=0>
> [4] 
> https://trac.osgeo.org/grass/wiki/GSoC/2021/JupyterAndGRASS/MiniGrant2022 <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftrac.osgeo.org%2Fgrass%2Fwiki%2FGSoC%2F2021%2FJupyterAndGRASS%2FMiniGrant2022&data=05%7C01%7Cstefan.blumentrath%40nina.no%7C1d6e6450cf894890572208da224a0d9d%7C6cef373021314901831055b3abf02c73%7C0%7C0%7C637859999631379871%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=KUvSF3OicSOBsbOw4VWnTzEDqlFDExbH5OhndpWE04I%3D&reserved=0>
> [5] https://github.com/OSGeo/grass/projects/7 
> <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FOSGeo%2Fgrass%2Fprojects%2F7&data=05%7C01%7Cstefan.blumentrath%40nina.no%7C1d6e6450cf894890572208da224a0d9d%7C6cef373021314901831055b3abf02c73%7C0%7C0%7C637859999631379871%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=RgwtNmsiBK%2FWDCOyo3BPuQGUeBtOnAKn9jcV5RufVQU%3D&reserved=0>
> 
> _______________________________________________
> grass-dev mailing list
> grass-dev at lists.osgeo.org <mailto:grass-dev at lists.osgeo.org>
> https://lists.osgeo.org/mailman/listinfo/grass-dev 
> <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.osgeo.org%2Fmailman%2Flistinfo%2Fgrass-dev&data=05%7C01%7Cstefan.blumentrath%40nina.no%7C1d6e6450cf894890572208da224a0d9d%7C6cef373021314901831055b3abf02c73%7C0%7C0%7C637859999631379871%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=IOxrtKnf1rxScAA9Wzeim8Scnmrpq4IB865PUBfhhWY%3D&reserved=0>
> 
> 


More information about the grass-psc mailing list