<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://grasswiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gregorywpower</id>
	<title>GRASS-Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://grasswiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gregorywpower"/>
	<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/wiki/Special:Contributions/Gregorywpower"/>
	<updated>2026-05-21T01:16:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Talk:GRASS_Developer_Summit_Raleigh_2025&amp;diff=28421</id>
		<title>Talk:GRASS Developer Summit Raleigh 2025</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Talk:GRASS_Developer_Summit_Raleigh_2025&amp;diff=28421"/>
		<updated>2025-05-25T05:57:42Z</updated>

		<summary type="html">&lt;p&gt;Gregorywpower: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{toc|right}}&lt;br /&gt;
&lt;br /&gt;
Quick links: [[GRASS Developer Summit Raleigh 2025|Meeting page]] | [[#Participant_reports|Reports]]  |  [[GRASS_Developer_Summit_Raleigh_2025#Sponsors|Sponsors]]&lt;br /&gt;
&lt;br /&gt;
== Organizing Team ==&lt;br /&gt;
&lt;br /&gt;
* Initial planning: Vaclav Petras, Anna Petrasova, Veronica Andreo, Corey White, Lois Utt, Sarah White, Doug Newcomb, Huidae Cho, Veronica Andreo ([[GRASS_Developer_Summit_Raleigh_2025#Organizing_Committee|Organizing Committee]])&lt;br /&gt;
* Budget: Vaclav Petras, Lois Utt, Anna Petrasova&lt;br /&gt;
* Raising support: Helena Mitasova, Vaclav Petras, Anna Petrasova, Michael Barton, Giuseppe Amatulli ([[NSF POSE Project 2023-2025 Timeline|NSF POSE project]] proposal authors)&lt;br /&gt;
* Travel: Lois Utt&lt;br /&gt;
* Venue: Vaclav Petras, Lois Utt&lt;br /&gt;
* Meals: Lois Utt, Sarah White, Vaclav Petras, Corey White, Anna Petrasova&lt;br /&gt;
* Agenda: Vaclav Petras, Huidae Cho, Anna Petrasova&lt;br /&gt;
* Wiki page: Vaclav Petras, Anna Petrasova&lt;br /&gt;
* Swag: Sarah White, Vaclav Petras, Anna Petrasova, Corey White&lt;br /&gt;
* Promotion, invitations, and social media: Vaclav Petras, Sarah White, Corey White, John Vogler&lt;br /&gt;
* Lightning talks organization: Vaclav Petras, Zachary Arcaro, John Vogler&lt;br /&gt;
* Lightning talk speakers: Vaclav Petras (welcome), Markus Metz and Markus Neteler (talk presented by Vaclav Petras), Anna Petrasova, Veronica Andreo, Robert Dzur, Nick Brady, Huidae Cho, Gregory Power, Doug Newcomb, Caitlin Haedrich&lt;br /&gt;
* Photography: Caitlin Haedrich, Māris Nartišs, Pratikshya Regmi&lt;br /&gt;
* Portrait photography: Riya, Caitlin Haedrich, Natalie Trso&lt;br /&gt;
&lt;br /&gt;
== Detailed Schedule ==&lt;br /&gt;
&lt;br /&gt;
=== Day 1, Monday, May 19 ===&lt;br /&gt;
&lt;br /&gt;
Location: Talley Student Union, 2610 Cates Ave ([https://www.google.com/maps/place/Talley+Student+Union/data=!4m2!3m1!1s0x0:0x38989377c96adef0?sa=X&amp;amp;ved=1t:2428&amp;amp;ictx=111 map])&lt;br /&gt;
&lt;br /&gt;
Room: 5101-Executive Board Room&lt;br /&gt;
&lt;br /&gt;
Highlighted topic: ''Contributing to GRASS. Getting started. Is it easy to contribute?''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Time !! Slot !! &lt;br /&gt;
|-&lt;br /&gt;
| 8:30-9:00 || Breakfast || Catered breakfast on site. Meet people, and plan your personal agenda for the day.&lt;br /&gt;
|-&lt;br /&gt;
| 9:00-10:00 || Morning opening sessions || What to expect from the event, contributing to GRASS using Git and GitHub, making your first contribution.&lt;br /&gt;
|-&lt;br /&gt;
| 10:00-11:00 || Focus time || Time to work on your laptop, whiteboard solutions with a group, or anything in between.&lt;br /&gt;
|-&lt;br /&gt;
| 11:00-11:20 || Self-organized feedback session || i.hyper: Integrating Hyperspectral Imagery Processing into GRASS - Alen Mangafić&lt;br /&gt;
|-&lt;br /&gt;
| 11:20-11:40 || Self-organized feedback sessions || &lt;br /&gt;
|-&lt;br /&gt;
| 11:40-12:00 || Self-organized feedback sessions || Project Image - Vaclav Petras&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || Catered food on site.&lt;br /&gt;
|-&lt;br /&gt;
| 13:00-17:00 || Focus time || Time to work on your laptop, whiteboard solutions with a group, or anything in between.&lt;br /&gt;
|-&lt;br /&gt;
| 18:00 || Dinner || We will walk to [https://www.trophybrewing.com/brewing-pizza Trophy Brewing &amp;amp; Pizza] ([https://maps.app.goo.gl/ggnZ7EvXbWqDUmvP9 directions], 30 min walk from Talley)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Day 2, Tuesday, May 20 ===&lt;br /&gt;
&lt;br /&gt;
Location: Talley Student Union, 2610 Cates Ave ([https://www.google.com/maps/place/Talley+Student+Union/data=!4m2!3m1!1s0x0:0x38989377c96adef0?sa=X&amp;amp;ved=1t:2428&amp;amp;ictx=111 map])&lt;br /&gt;
&lt;br /&gt;
Room: 5101-Executive Board Room&lt;br /&gt;
&lt;br /&gt;
Highlighted topics: ''Hydrology and Interfacing with R and QGIS (gathering user feedback, testing, discussing with developers, developing action items)''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Time !! Slot !! &lt;br /&gt;
|-&lt;br /&gt;
| 8:30-9:00 || Breakfast || Breakfast on site. Start the day, meet people, and plan your personal agenda for the day.&lt;br /&gt;
|-&lt;br /&gt;
| 9:00-10:00 || Morning opening sessions || Introduction to writing GRASS tools, program for the day.&lt;br /&gt;
|-&lt;br /&gt;
| 10:00-11:00 || Focus time || Time to work on your laptop, whiteboard solutions with a group, or anything in between.&lt;br /&gt;
|-&lt;br /&gt;
| 11:00-11:20 || Self-organized feedback session || fasterRaster R package - Adam Smith&lt;br /&gt;
|-&lt;br /&gt;
| 11:20-11:40 || Self-organized feedback sessions || Hydography90m + Geocomputation Courses - Giuseppe&lt;br /&gt;
|-&lt;br /&gt;
| 11:40-12:00 || Self-organized feedback sessions || Flood modelling with grass and itzi ([https://itzi.org]) - Laurent Courty&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || [https://maps.app.goo.gl/womSkce9DrE8CTnR8 Case dining hall]&lt;br /&gt;
|-&lt;br /&gt;
| 13:00-17:00 || Focus time || Time to work on your laptop, whiteboard solutions with a group, or anything in between.&lt;br /&gt;
|-&lt;br /&gt;
| 18:00 || Dinner || [https://maps.app.goo.gl/CQiWoCAQNt1ymZkb7 Served in Jordan Hall at the Center for Geospatial Analytics], evaluate the day's accomplishments, plan and prioritize for the next few days.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Day 3, Wednesday, May 21 ===&lt;br /&gt;
&lt;br /&gt;
Location: Talley Student Union, 2610 Cates Ave ([https://www.google.com/maps/place/Talley+Student+Union/data=!4m2!3m1!1s0x0:0x38989377c96adef0?sa=X&amp;amp;ved=1t:2428&amp;amp;ictx=111 map])&lt;br /&gt;
&lt;br /&gt;
Room: 5101-Executive Board Room&lt;br /&gt;
&lt;br /&gt;
Highlighted topic: ''Non-coding contributions, natural language translation, and internationalization.''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Time !! Slot !! &lt;br /&gt;
|-&lt;br /&gt;
| 7:00-9:00 || Breakfast || [https://maps.app.goo.gl/eZ8VK8Mx6TjMt9NP8 Case dining hall]&lt;br /&gt;
|-&lt;br /&gt;
| 9:00-10:00 || Morning opening sessions || Introduction to non-coding contributions, tutorials, contributing examples, natural language translation and internationalization (procedures, glossaries, code customization, translation).&lt;br /&gt;
|-&lt;br /&gt;
| 10:00-11:00 || Focus time || Time to work on your laptop, whiteboard solutions with a group, or anything in between.&lt;br /&gt;
|-&lt;br /&gt;
| 11:00-11:20 || Self-organized feedback session || Easier access to GRASS tools - Vaclav Petras&lt;br /&gt;
|-&lt;br /&gt;
| 11:20-11:40 || Self-organized feedback sessions || &lt;br /&gt;
|-&lt;br /&gt;
| 11:40-12:00 || Self-organized feedback sessions || GRASS backend for xarray and temporal framework global variables ([https://github.com/OSGeo/grass/issues/629]) - Laurent Courty&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || Served on site. Eat, drink, and continue the discussion from the feedback sessions.&lt;br /&gt;
|-&lt;br /&gt;
| 13:00-17:00 || Focus time || Time to work on your laptop, whiteboard solutions with a group, or anything in between.&lt;br /&gt;
|-&lt;br /&gt;
| 18:00 || Dinner || [https://maps.app.goo.gl/1E39eySMVaxYJUUS8 Picnic at Pullen Park, shelter #3. In case of bad weather, dinner at the Center for Geospatial Analytics.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Day 4, Thursday, May 22 ===&lt;br /&gt;
&lt;br /&gt;
Location: Center for Geospatial Analytics, Jordan Hall, 2800 Faucette Drive ([https://www.google.com/maps/search/Jordan+Hall/@35.7816832,-78.6772765,18z/data=!3m1!4b1?entry=ttu&amp;amp;g_ep=EgoyMDI1MDQyMC4wIKXMDSoJLDEwMjExNDUzSAFQAw%3D%3D map])&lt;br /&gt;
&lt;br /&gt;
Room: 5103 (straight from the two elevators, at the end of the hallway)&lt;br /&gt;
&lt;br /&gt;
Highlighted topic: ''Project vision and computational engine use case.''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Time !! Slot !! &lt;br /&gt;
|-&lt;br /&gt;
| 8:00-9:00 || Breakfast || On site. Start the day, meet people, and plan your personal agenda for the day.&lt;br /&gt;
|-&lt;br /&gt;
| 9:00-10:00 || Morning opening sessions || Project vision and the computational engine use case (missing features, documentation, user groups).&lt;br /&gt;
|-&lt;br /&gt;
| 10:00-11:00 || Focus time || Time to work on your laptop, whiteboard solutions with a group, or anything in between.&lt;br /&gt;
|-&lt;br /&gt;
| 11:00-11:20 || Self-organized feedback session || NSF POSE I-Corps Interviews - Corey White&lt;br /&gt;
|-&lt;br /&gt;
| 11:20-11:40 || Self-organized feedback session || YAIT - Yet Another Interface to Tools - Vaclav Petras &lt;br /&gt;
|-&lt;br /&gt;
| 11:40-12:00 || Self-organized feedback session || Modernizing Color Tables (Brendan)&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || On site. Eat, drink, and continue the discussion from the feedback sessions.&lt;br /&gt;
|-&lt;br /&gt;
| 13:00-16:00 || Focus time || Time to work on your laptop, whiteboard solutions with a group, or anything in between.&lt;br /&gt;
|-&lt;br /&gt;
| 16:00-17:00 || Lightning talks || Fast-paced talks, showcasing applications of GRASS, room 5111.&lt;br /&gt;
|-&lt;br /&gt;
| 18:00 || Reception || Connect with researchers, government professionals, and industry collaborators, rooms 5111 and 5119.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Day 5, Friday, May 23 ===&lt;br /&gt;
&lt;br /&gt;
Location: James B. Hunt Jr. Library, 1070 Partners Way - Centennial Campus ([https://www.google.com/maps/place/James+B.+Hunt+Jr.+Library/@35.7693736,-78.679167,17z/data=!3m1!5s0x89acf5759f5a31df:0xc547454a0151c440!4m10!1m2!2m1!1shunt+library!3m6!1s0x89acf5759f591f41:0xbe0266269ce37f59!8m2!3d35.7693215!4d-78.6764409!15sCgxodW50IGxpYnJhcnlaDiIMaHVudCBsaWJyYXJ5kgESdW5pdmVyc2l0eV9saWJyYXJ54AEA!16s%2Fm%2F0r4wjf_?entry=ttu&amp;amp;g_ep=EgoyMDI1MDQyMC4wIKXMDSoJLDEwMjExNDUzSAFQAw%3D%3D map])&lt;br /&gt;
&lt;br /&gt;
Room: Faculty Research Commons - 5100 ([https://www.lib.ncsu.edu/hunt/map floor plan])&lt;br /&gt;
&lt;br /&gt;
Highlighted topic: ''GRASS project's future course.''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Time !! Slot !! &lt;br /&gt;
|-&lt;br /&gt;
| 7:45-8:15 || Breakfast || '''Hotel Aloft (2nd floor).''' Search for Lois!&lt;br /&gt;
|-&lt;br /&gt;
| 9:00-10:00 || Morning opening sessions || GRASS project's future course.&lt;br /&gt;
|-&lt;br /&gt;
| 10:00-11:00 || Focus time || Time to work on your laptop, whiteboard solutions with a group, or anything in between.&lt;br /&gt;
|-&lt;br /&gt;
| 11:00-12:00 || PSC meeting || Project Steering Committee meets (public).&lt;br /&gt;
|-&lt;br /&gt;
| 11:00-11:20 || Self-organized feedback session || Your topic here&lt;br /&gt;
|-&lt;br /&gt;
| 11:20-11:40 || Self-organized feedback sessions || Your topic here&lt;br /&gt;
|-&lt;br /&gt;
| 11:40-12:00 || Self-organized feedback sessions || Rescheduled for Saturday&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || Walk to [https://maps.app.goo.gl/kHVHY62QxTd6wHKd9 On the Oval Culinary Creations]. Eat, drink, and continue the discussion from the feedback sessions.&lt;br /&gt;
|-&lt;br /&gt;
| 13:00-17:00 || Focus time || Time to work on your laptop, whiteboard solutions with a group, or anything in between.&lt;br /&gt;
|-&lt;br /&gt;
| 18:00 || Dinner || Dinner on your own. Corey White will organize trip to downtown. Bus 41 from Hunt library to hotel and then walk.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Day 6, Saturday, May 24 ===&lt;br /&gt;
&lt;br /&gt;
Location: James B. Hunt Jr. Library, 1070 Partners Way - Centennial Campus ([https://www.google.com/maps/place/James+B.+Hunt+Jr.+Library/@35.7693736,-78.679167,17z/data=!3m1!5s0x89acf5759f5a31df:0xc547454a0151c440!4m10!1m2!2m1!1shunt+library!3m6!1s0x89acf5759f591f41:0xbe0266269ce37f59!8m2!3d35.7693215!4d-78.6764409!15sCgxodW50IGxpYnJhcnlaDiIMaHVudCBsaWJyYXJ5kgESdW5pdmVyc2l0eV9saWJyYXJ54AEA!16s%2Fm%2F0r4wjf_?entry=ttu&amp;amp;g_ep=EgoyMDI1MDQyMC4wIKXMDSoJLDEwMjExNDUzSAFQAw%3D%3D map])&lt;br /&gt;
&lt;br /&gt;
'''Take bus 41 at 8.30 from Aloft.'''&lt;br /&gt;
&lt;br /&gt;
Room: Faculty Research Commons - 5100 ([https://www.lib.ncsu.edu/hunt/map floor plan])&lt;br /&gt;
&lt;br /&gt;
Highlighted topics: ''NSF POSE project evaluation.''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Time !! Slot !! &lt;br /&gt;
|-&lt;br /&gt;
| 8:30-10:00 || Breakfast || We will have breakfast (yogurt, granola, pastries) at [https://maps.app.goo.gl/EwzNxeovv4rTivjK9 Lake Raleigh]. Feel free to bring your own coffee.&lt;br /&gt;
|-&lt;br /&gt;
| 10:00-11:00 || Focus time || Time to work on your laptop, whiteboard solutions with a group, or anything in between.&lt;br /&gt;
|-&lt;br /&gt;
| 11:00-11:20 || Self-organized feedback session || Your topic here (10-minute presentation and 10-minute discussion)&lt;br /&gt;
|-&lt;br /&gt;
| 11:20-11:40 || Self-organized feedback sessions || Your topic here&lt;br /&gt;
|-&lt;br /&gt;
| 11:40-12:00 || Self-organized feedback sessions || GRASS tools: core and additional functionality (MartinL)&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || Pizza. Eat, drink, and continue the discussion from the feedback sessions.&lt;br /&gt;
|-&lt;br /&gt;
| 13:00-17:00 || Focus time || Time to work on your laptop, whiteboard solutions with a group, or anything in between.&lt;br /&gt;
|-&lt;br /&gt;
| 18:00 || Dinner || Player's Retreat. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Daily tasks for participants ==&lt;br /&gt;
&lt;br /&gt;
* List all the things you are working on in the Participant reports section below. Update the list each day. Include things you work on with other people.&lt;br /&gt;
* If you want to discuss something with the whole group, add yourself to a Self-organized feedback sessions slot in the schedule above or tell Vaclav (Vashek) Petras.&lt;br /&gt;
* For people with triage access and above: If you are or will be working on an issue or on a PR which is not originally submitted by you, assign yourself to the issue or PR. (You can unassign yourself later if you change your mind.)&lt;br /&gt;
&lt;br /&gt;
== Participant reports ==&lt;br /&gt;
&lt;br /&gt;
Per-person reports from the meeting.&lt;br /&gt;
&lt;br /&gt;
=== Giuseppe Amatulli | Yale University ===&lt;br /&gt;
&lt;br /&gt;
* Testing r.watershed and r.stream.* for handling large datasets&lt;br /&gt;
* Running r.flowaccumulation at global level using water direction from hydrography90m &lt;br /&gt;
* Preparing the grass tutorial material for the https://www.geomorphometry2025.org/ conference&lt;br /&gt;
&lt;br /&gt;
=== Veronica Andreo | CONICET - Instituto Gulich ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/veroandreo?tab=overview&amp;amp;from=2025-05-12&amp;amp;to=2025-05-24 GitHub contributions]&lt;br /&gt;
* Enhanced the website footer.&lt;br /&gt;
* Sync icons on the Tutorials website footer to those on the main website.&lt;br /&gt;
* Fix descriptions and their display on the tutorials website.&lt;br /&gt;
* Fix GRASS page on OSGeo website [https://www.osgeo.org/projects/grass-gis/] &lt;br /&gt;
** Changed logo, removed GIS from the name, fixed old links.&lt;br /&gt;
* Social media posts.&lt;br /&gt;
* Discussion about hyperspectral with Alen and Anna.&lt;br /&gt;
* Expand the GRASS acronym on the home page.&lt;br /&gt;
* Remove GIS from GRASS name on the website.&lt;br /&gt;
* Review tutorials by Huidae and Adam Smith.&lt;br /&gt;
* Add external tutorials by Huidae and the one from FOSS4G 2024.&lt;br /&gt;
* Started adding the time series tutorials.&lt;br /&gt;
* Add lightbox class in get-started tutorials so images can be clicked on.&lt;br /&gt;
* GRASS PSC admin stuff.&lt;br /&gt;
* Participated of the PSC meeting.&lt;br /&gt;
* Talk to Tonis Kardi from FOSS4G EU LOC to have a &amp;quot;State of GRASS&amp;quot; talk in the program. Alen will be presenting.&lt;br /&gt;
* Gave a lightning talk: GRASS-fed species distribution models.&lt;br /&gt;
* Discussed with Brendan, Corey and Mimi about tutorials.&lt;br /&gt;
&lt;br /&gt;
=== Abdullah Azzam | New Mexico State University ===&lt;br /&gt;
&lt;br /&gt;
* Created first PR; fixed broken links on the website [https://github.com/OSGeo/grass-website/pull/538 #538]&lt;br /&gt;
* Pushed a new GRASS Addon ''r.curvenumber'' [https://github.com/OSGeo/grass-addons/pull/1403 #1403]&lt;br /&gt;
&lt;br /&gt;
=== Michael Barton | Arizona State University ===&lt;br /&gt;
&lt;br /&gt;
* POSE related activities&lt;br /&gt;
&lt;br /&gt;
=== Laura Belica | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* have been working on developing a workflow-tool tutorial template that facilitates GRASS learners who tend to 'jump in' or have a 'choose your own adventure' approach to learning GRASS (i.e., want to use their data for their study area for their objective from the start).  The structure of the tutorial template is a concise, basic, general description/instructions of the workflow with optional links to pertinent explanatory/deeper dive content  (e.g.,  plain language explainers of the tool, options, defaults, etc.) in a variety of formats (e.g., captioned images, short tool demo videos (30 sec to 2 min)) in addition to the more comprehensive resources available (e.g. documentation, examples, tutorials).  The main motivation for this approach is to help new and occasional GRASS users avoid some of the common pitfalls and to learn how to find workarounds for some of the unanticipated challenges they may encounter with their specific datasets or use cases so that they can learn as they go.  Another motivation for this approach is to facilitate the translation, extension, and updating of workflow tutorials by the community over time (e.g., providing audio and closed captioning for one of the tool-demo videos in another language, replacing an outdated GUI demo with one for the current release, or incorporating a new add-on as an option in the workflow).&lt;br /&gt;
&lt;br /&gt;
* my focus this week is on developing a draft/test tutorial (in Quarto) for a standard hydrological modelling workflow that begins with the crucial pre-work of how to figure out the appropriate project/location, etc. as well as considerations of some of the downstream impacts of resolution, extent, region etc. It may not be ready for sharing by the end of the week, but suggestions and advice are welcomed in advance.&lt;br /&gt;
&lt;br /&gt;
19 May&lt;br /&gt;
* discussed a novice user issue with 'moving' vector data from one location to another with Vero and learned a neat GUI option &lt;br /&gt;
* revised and added workflow tutorial text&lt;br /&gt;
&lt;br /&gt;
=== Shonil Sateesh Bhide | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* CI optimization&lt;br /&gt;
&lt;br /&gt;
=== Huidae Cho | New Mexico State University ===&lt;br /&gt;
&lt;br /&gt;
* CMake, conda, CI, Mentoring&lt;br /&gt;
&lt;br /&gt;
Monday 5/19&lt;br /&gt;
* [https://github.com/OSGeo/grass/pull/5680 CMake: Recognize conda installation path at runtime]: Replaced by [https://github.com/HuidaeCho/grass-conda/blob/master/recipe/post-link.sh conda post-link.sh]&lt;br /&gt;
* CMake and Conda Testing on Linux&lt;br /&gt;
* CMake Testing on Windows&lt;br /&gt;
* Mentoring: Chung-Yuan, Abdullah&lt;br /&gt;
&lt;br /&gt;
Tuesday 5/20&lt;br /&gt;
* [https://github.com/OSGeo/grass/pull/5712 CMake: Define custom complex types for MSVC LAPACKE]&lt;br /&gt;
* [https://github.com/OSGeo/grass/pull/5713 CMake: Fix build output directories for MSVC]&lt;br /&gt;
* CMake and Conda Testing on Linux&lt;br /&gt;
* CMake Testing on Windows&lt;br /&gt;
&lt;br /&gt;
Wednesday 5/21&lt;br /&gt;
* Translation Talk&lt;br /&gt;
* Translation Discussion with Edouard&lt;br /&gt;
* Flow Direction Meeting with Ondrej, Ondrej's Student, Martin, and Markus Metz&lt;br /&gt;
* CMake and Conda Testing on Linux&lt;br /&gt;
* CMake Testing on Windows&lt;br /&gt;
* Mentoring: Chung-Yuan, Abdullah&lt;br /&gt;
&lt;br /&gt;
Thursday 5/22&lt;br /&gt;
* [https://github.com/OSGeo/grass/pull/5740 CMake: Fix the parameter is incorrect: . error for MSVC]&lt;br /&gt;
* Lightning Talk&lt;br /&gt;
* CMake and Conda Testing on Linux&lt;br /&gt;
* CMake Testing on Windows&lt;br /&gt;
* CI: Discussion with Edouard&lt;br /&gt;
* Mentoring: Chung-Yuan, Abdullah&lt;br /&gt;
&lt;br /&gt;
Friday 5/23&lt;br /&gt;
* CMake and Conda Testing on Linux&lt;br /&gt;
* CMake Testing on Windows&lt;br /&gt;
* CI: Discussion with Edouard&lt;br /&gt;
* Mentoring: Chung-Yuan, Abdullah&lt;br /&gt;
&lt;br /&gt;
Saturday 5/24&lt;br /&gt;
* [https://github.com/OSGeo/grass/pull/5771 MSVC: Use the same M_PI_4 value to avoid redefinition warnings]&lt;br /&gt;
* CMake Testing on Windows&lt;br /&gt;
* Mentoring: Abdullah&lt;br /&gt;
&lt;br /&gt;
=== Edouard Choinière ===&lt;br /&gt;
&lt;br /&gt;
* Quick ideas, way too much for a week: Helping others (may take a reasonable part of the time), managing CI, setting up localization template updating workflow, backporting tool? Pytest/coverage improvements? Discuss and design other projects, to work on during the year. Open to change on other priorities once there, anything that is useful. Maybe make a little progress on high dpi GUI, especially on Windows.&lt;br /&gt;
&lt;br /&gt;
* Weekend before sprint:&lt;br /&gt;
** Clear up Renovate PRs to not use CI time during the sprint, reviewing and merging: [https://github.com/OSGeo/grass/pull/5664 #5664], [https://github.com/OSGeo/grass/pull/5665 #5665], [https://github.com/OSGeo/grass/pull/5666 #5666], [https://github.com/OSGeo/grass/pull/5667 #5667], [https://github.com/OSGeo/grass/pull/5668 #5668]&lt;br /&gt;
** PR to avoid some CI run time for the sprint: [https://github.com/OSGeo/grass/pull/5670 #5670]&lt;br /&gt;
** Reviewed open PRs for PRs that were mergeable before the sprint, updated outdated PRs to avoid having it needing CI time during sprint. Only ended up merging [https://github.com/OSGeo/grass/pull/5658 #5658], but another reviewed one that might still need changes: [https://github.com/OSGeo/grass/pull/5628 #5628]&lt;br /&gt;
* Monday May 19, 2025:&lt;br /&gt;
** PR got merged: [https://github.com/OSGeo/grass/pull/5670 #5670],[https://github.com/OSGeo/grass/pull/5550 #5550]&lt;br /&gt;
** Reviewed PRs: [https://github.com/OSGeo/grass/pull/5671 #5671], [https://github.com/OSGeo/grass/pull/5672 #5672]&lt;br /&gt;
** Discussions:&lt;br /&gt;
*** Shonil Sateesh Bhid &amp;amp; Shuham on their CI &amp;amp; pytest work and project.&lt;br /&gt;
*** Māris Nartišs about a potential issue and improvement for it. Will be discussed in the security reporting tab, also allowing to test the security vulnerability reporting process. + Research on existing solutions&lt;br /&gt;
** Reviewed: [https://github.com/OSGeo/grass/pull/5682 #5682], [https://github.com/OSGeo/grass/pull/5660 #5660],&lt;br /&gt;
** Reviewed, edited and merged: [https://github.com/OSGeo/grass/pull/3672 #3672]&lt;br /&gt;
** Discussed/helped user for: [https://github.com/OSGeo/grass/pull/5678 #5678] and [https://github.com/OSGeo/grass/pull/5684 #5684]&lt;br /&gt;
** Long discussion and vision planning for windows scripting with Vaclav, concerning [https://github.com/OSGeo/grass/pull/5624 #5624]. Tested alternatives and tried the consequences of that PR. This older PR finally got merged.&lt;br /&gt;
** Created PRs for NSIS installer: [https://github.com/OSGeo/grass/pull/5685 #5685] and also [https://github.com/OSGeo/grass/pull/5686 #5686], which should address [https://github.com/OSGeo/grass/issues/5663 #5663]. Still needs to test it.&lt;br /&gt;
** Agreed on convention for titles with Vaclav, unblocking [https://github.com/OSGeo/grass/pull/5341 #5341]&lt;br /&gt;
** Found a name with Ondrej and finally merged older PRs of an external contributor [https://github.com/OSGeo/grass/pull/5473 #5473] and [https://github.com/OSGeo/grass/pull/5474 #5474]&lt;br /&gt;
* Thursday May 20, 2025:&lt;br /&gt;
** Reviewed: [https://github.com/OSGeo/grass/pull/5695 #5695]&lt;br /&gt;
** Merged PRs: [https://github.com/OSGeo/grass/pull/5673 #5673], [https://github.com/OSGeo/grass/pull/5691 #5691], [https://github.com/OSGeo/grass/pull/5690 #5690], [https://github.com/OSGeo/grass/pull/5684 #5684],&lt;br /&gt;
** Discussed with author of [https://github.com/OSGeo/grass/pull/5660 #5660] and [https://github.com/OSGeo/grass/issues/5659 #5659] about rgb/hsl bug and tests for help.&lt;br /&gt;
** Worked with Corey to adjust markdown links for new markdownlint rule, finishing up [https://github.com/OSGeo/grass/pull/5669 #5669]&lt;br /&gt;
** Created PRs: [https://github.com/OSGeo/grass/pull/5692 #5692], [https://github.com/OSGeo/grass/pull/5694 #5694], [https://github.com/OSGeo/grass/pull/5689 #5689]&lt;br /&gt;
* Wednesday May 21, 2025:&lt;br /&gt;
** Created a new set of GitHub rulesets for the required checks, applied with Vaclav. One of them is separated in order to increase velocity during the sprint&lt;br /&gt;
** Reviewed the branch protection rules for grass-addons repo with Vaclav. Creating rulesets will be possible after the sprint with the info collected.&lt;br /&gt;
** Reviewed the security reporting settings and secret scanning settings with Vaclav for the main grass repo.&lt;br /&gt;
** Got shown by Huidae Cho how to update the translation files, and reviewed Weblate settings. No settings changed, but a backup stored for 30 days was kept.&lt;br /&gt;
** Created a first implementation of a translation file update workflow&lt;br /&gt;
** Tested out the two NSIS installer PRs, the first one, for installing the VC runtime earlier doesn't work as expected, and after more research I don't know enough to fix it. The second PR with High-DPI improvement was correct and got merged [https://github.com/OSGeo/grass/pull/5685 #5685]&lt;br /&gt;
** Helped a student set up a grass installation on WSL with conda.&lt;br /&gt;
** PRs created: [https://github.com/OSGeo/grass/pull/5736 #5736], [https://github.com/OSGeo/grass/pull/5734 #5734]&lt;br /&gt;
** My PRs that got merged: [https://github.com/OSGeo/grass/pull/5685 #5685], [https://github.com/OSGeo/grass/pull/5341 #5341], [https://github.com/OSGeo/grass/pull/5689 #5689]&lt;br /&gt;
** Reviewed and merged multiple PRs, restarting failed required checks of the previous night.&lt;br /&gt;
&lt;br /&gt;
=== Laurent Courty ===&lt;br /&gt;
&lt;br /&gt;
* Objectives: An xarray backend for GRASS STRDS. Fixing related issues&lt;br /&gt;
* May 20&lt;br /&gt;
** Presented itzi&lt;br /&gt;
** Uploaded arm64 wheels to PyPI for MacOS and Linux ([https://pypi.org/project/itzi/#files])&lt;br /&gt;
** Discussed with other developers about issue #629&lt;br /&gt;
* May 21&lt;br /&gt;
** Uploaded xarray-grass to PyPI&lt;br /&gt;
** Added CI tests to xarray-grass&lt;br /&gt;
** Discussed with the group about the xarray-grass backend&lt;br /&gt;
** Discussed with the group about solving mapset switching in the temporal framework (issue #629)&lt;br /&gt;
** Created PR #5735 to address issue #629&lt;br /&gt;
* May 22&lt;br /&gt;
** Fix bug in PR #5735&lt;br /&gt;
* May 23&lt;br /&gt;
** Continue working on xarray-grass&lt;br /&gt;
** Discussed with Vashek about the GRASS tool's python interface&lt;br /&gt;
* May 24&lt;br /&gt;
** Continue working on xarray-grass&lt;br /&gt;
** published xarray_grass-0.1.0a2 on PyPI&lt;br /&gt;
** Discussed with Vashek about the grass session issues in python&lt;br /&gt;
&lt;br /&gt;
=== Robert S. Dzur | Bohannan Huston, Inc. ===&lt;br /&gt;
&lt;br /&gt;
* r.in.pdal&lt;br /&gt;
&lt;br /&gt;
=== David W. Farris | East Carolina University ===&lt;br /&gt;
&lt;br /&gt;
* A tool to calculate gravity terrain corrections&lt;br /&gt;
&lt;br /&gt;
=== Neel Ghoshal | NC State University ===&lt;br /&gt;
• LLM for helping users find tools&amp;lt;br&amp;gt;&lt;br /&gt;
5/19&amp;lt;br&amp;gt;&lt;br /&gt;
• Learnt how to PR (#5674)&amp;lt;br&amp;gt;&lt;br /&gt;
• Setup GRASS on system&amp;lt;br&amp;gt;&lt;br /&gt;
• Found small issue with compilation document&amp;lt;br&amp;gt;&lt;br /&gt;
• Discussed about the possible use case of LLM for helping users find tools&amp;lt;br&amp;gt;&lt;br /&gt;
5/20&amp;lt;br&amp;gt;&lt;br /&gt;
• Learnt about cookie cutter&amp;lt;br&amp;gt;&lt;br /&gt;
• Set up wsl on system&amp;lt;br&amp;gt;&lt;br /&gt;
• Compiled GRASS&amp;lt;br&amp;gt;&lt;br /&gt;
• Listed data sources for LLM training&amp;lt;br&amp;gt;&lt;br /&gt;
5/21&amp;lt;br&amp;gt;&lt;br /&gt;
• Extracted tool information from Markdown files&amp;lt;br&amp;gt;&lt;br /&gt;
• Started off with data cleaning&amp;lt;br&amp;gt;&lt;br /&gt;
5/22&amp;lt;br&amp;gt;&lt;br /&gt;
• Worked on LLM setup&amp;lt;br&amp;gt;&lt;br /&gt;
5/23&amp;lt;br&amp;gt;&lt;br /&gt;
• Ran and finetuned a basic test LLM model for extracted data&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Caitlin Haedrich | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* Event photographs, food coordination&lt;br /&gt;
* git/github mentoring&lt;br /&gt;
* GRASS mentoring&lt;br /&gt;
* Lightning Talk preparation&lt;br /&gt;
* Preparing workshop for [https://www.geomorphometry2025.org/ Geomorphometry2025]&lt;br /&gt;
&lt;br /&gt;
=== Brendan Harmon | Louisiana State University ===&lt;br /&gt;
&lt;br /&gt;
* Plan: developing ([https://github.com/baharmon/r.earthworks r.earthworks]) addon &amp;amp; tutorials&lt;br /&gt;
* Log: [https://github.com/baharmon?tab=overview&amp;amp;from=2025-05-19&amp;amp;to=2025-05-24 GitHub activity]&lt;br /&gt;
* Activities: published r.earthworks to addons repo, discussed modernizing colors, &amp;amp; started map algebra tutorials&lt;br /&gt;
* Unfinished: develop map algebra tutorials, open issue about modernizing color, start discussion on citations, open issue about v.to.rast bug, etc...&lt;br /&gt;
&lt;br /&gt;
=== Linda Karlovska | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* Fix uninitialized variables in DOutFile() method: ([https://github.com/OSGeo/grass/pull/5650 PR])&lt;br /&gt;
* Update figures related to GUI: ([https://github.com/OSGeo/grass/pull/5651  PR])&lt;br /&gt;
&lt;br /&gt;
Working on integration of the Jupyter notebooks to GUI (work for the whole week :-))&lt;br /&gt;
&lt;br /&gt;
=== Martin Landa | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* Tutorial: GISMentors courses updated ([https://github.com/OSGeo/grass-tutorials/pull/45 PR])&lt;br /&gt;
* libgis: G__usage_markdown() include tool label in metadata if defined ([https://github.com/OSGeo/grass/pull/5677 PR])&lt;br /&gt;
* PyGRASS: Module description property not defined always ([https://github.com/OSGeo/grass/pull/5681 PR])&lt;br /&gt;
* Website: OpenGeoLabs commercial support ([https://github.com/OSGeo/grass-website/pull/537 PR])&lt;br /&gt;
* v.select: create output also when no features found ([https://github.com/OSGeo/grass/pull/5696 PR])&lt;br /&gt;
* wxGUI: avoid creating nested list of errors (Graphical modeler) ([https://github.com/OSGeo/grass/pull/5700 PR])&lt;br /&gt;
* wxGUI/gmodeler: refactor - move ModelParamDialog to dialogs.py ([https://github.com/OSGeo/grass/pull/5715 PR])&lt;br /&gt;
* GUI: make Python editor dockable ([https://github.com/OSGeo/grass/pull/5733 PR])&lt;br /&gt;
* r.relief: module label changed to description ([https://github.com/OSGeo/grass/pull/5741 PR])&lt;br /&gt;
* GUI: propagate previously defined where option value ([https://github.com/OSGeo/grass/pull/5747 PR])&lt;br /&gt;
* GUI: always show 'Close dialog on finish' option ([https://github.com/OSGeo/grass/pull/5751 PR])&lt;br /&gt;
* GUI: do not remove parameter value on dialog update event ([https://github.com/OSGeo/grass/pull/5760 PR])&lt;br /&gt;
* documentation: add miscellaneous tools too full index (markdown) ([https://github.com/OSGeo/grass/pull/5761 PR])&lt;br /&gt;
&lt;br /&gt;
=== Nicklas Larsson | Hungarian National Museum ===&lt;br /&gt;
&lt;br /&gt;
Planned work: CMake build system; perhaps Conda recipe&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nilason?tab=overview&amp;amp;from=2025-05-19&amp;amp;to=2025-05-24 GitHub activity]&lt;br /&gt;
&lt;br /&gt;
* Preparation for CMake build conforming to Filesystem Hierarchy Standard (FHS), resolving resource paths for both the current and FHS in code. In collaboration with Huidae Cho and with important input from Vaclav Petras ([https://github.com/OSGeo/grass/pull/5630 PR5630])&lt;br /&gt;
&lt;br /&gt;
* Helped young students in build configuration and debugging techniques.&lt;br /&gt;
&lt;br /&gt;
* Discussion with several participants on solutions to publish a GRASS package to Conda-forge.&lt;br /&gt;
&lt;br /&gt;
=== Chung-Yuan Liang ===&lt;br /&gt;
&lt;br /&gt;
* r.horizon&lt;br /&gt;
** [https://github.com/OSGeo/grass/pull/4213 PR4213]&lt;br /&gt;
** Discussed with Vashek, Anna, and Huidae regarding parallelization performance.&lt;br /&gt;
* r.mapcalc&lt;br /&gt;
** [https://github.com/OSGeo/grass/pull/5742 PR5742]&lt;br /&gt;
** Parallelized a part of r.mapcalc.&lt;br /&gt;
** Discussed with Anna and Huidae how to improve the parallelization. &lt;br /&gt;
** More work is needed for better efficiency for threads &amp;gt; 4.&lt;br /&gt;
* r.univar&lt;br /&gt;
** [https://github.com/OSGeo/grass/pull/5748 PR5748], [https://github.com/OSGeo/grass/pull/5750 PR5750]&lt;br /&gt;
** Created a test for large data and parallel computations.&lt;br /&gt;
** Applied Kahan sum to avoid accumulations of floating point errors.&lt;br /&gt;
** Update reference numbers in other testing scripts that use r.univar.&lt;br /&gt;
* Discussing how to improve I/O and memory buffers for raster data in the parallelization aspect.&lt;br /&gt;
&lt;br /&gt;
=== Andres Lucero | Bohannan Huston Inc ===&lt;br /&gt;
&lt;br /&gt;
* r.in.pdal&lt;br /&gt;
&lt;br /&gt;
=== Alen Mangafić | Geodetic Institute of Slovenia ===&lt;br /&gt;
Monday May 19 &lt;br /&gt;
* Presentationf of i.hyper, add-on which offers hyperspectral data support in GRASS.&lt;br /&gt;
* Architecture of the multi-module addon&lt;br /&gt;
Tuesday May 20&lt;br /&gt;
* i.hyper.import module: importing EnMAP imagery as 3D raster map&lt;br /&gt;
* i.hyper.preproc module: draft&lt;br /&gt;
Wednesday May 21&lt;br /&gt;
* fixing the i.hyper.import module&lt;br /&gt;
* i.hyper.preproc module: implementing Savitzky-Golay filter&lt;br /&gt;
&lt;br /&gt;
=== Helena Mitasova | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* standardized data set and related tutorials&lt;br /&gt;
* documentation for interpolation tools&lt;br /&gt;
* collaborate/coordinate/discuss hydrology tools (analytics, simulations, soil properties inputs)&lt;br /&gt;
* assist with wiki cleanup if needed&lt;br /&gt;
&lt;br /&gt;
Monday May 19&lt;br /&gt;
* investigated issues with v.surf.rst documentation in source code, tested and identified fixes needed&lt;br /&gt;
* discussed coupling GRASS with Blender versus potree for 3D object rendering with Brendan, Anna and Caitlin (for TL activities and other applications)&lt;br /&gt;
* discussed soil data for runoff estimation and other hydro topics, to be worked on on day 2&lt;br /&gt;
&lt;br /&gt;
Tuesday May 20&lt;br /&gt;
* worked with Corey on fixing v.surf.rst documentation, discussed ideas for improvements and for documentation / tutorial for cross-valiadation&lt;br /&gt;
* discussed suggestions for graphics and examples to be inculded in v.surf.rst docs with Michelle &lt;br /&gt;
* discussed new developments in hydrology tools&lt;br /&gt;
* experimented with basic/standardized versus specialized data sets for documentation and tutorials&lt;br /&gt;
&lt;br /&gt;
Wednesday May 21&lt;br /&gt;
* explored existing tutorials, emailed Paulo about finishing the one on interpolation&lt;br /&gt;
* tested NM basic data set with GIS582 class assignment (very cool)&lt;br /&gt;
* discussed design of Jnotebooks that would work with various localized data with Caitlin&lt;br /&gt;
&lt;br /&gt;
Thursday May 22&lt;br /&gt;
* discussed needed capabilities for a more advanced color ramp processing tool with Brendan&lt;br /&gt;
* added further ideas to basic dataset document after talking to Vero - we just need standardized names for the localized tutorials to work&lt;br /&gt;
* discussed infiltration fix pull request for r.sim.water with Anna - more work is needed&lt;br /&gt;
&lt;br /&gt;
=== Michael Mulqueen | MassGIS ===&lt;br /&gt;
&lt;br /&gt;
* depth to water, hydro from lidar, etc&lt;br /&gt;
&lt;br /&gt;
=== Māris Nartišs ===&lt;br /&gt;
&lt;br /&gt;
* Taking photos of the event&lt;br /&gt;
* Introduced a new GRASS core module r.smooth.edgepreserve&lt;br /&gt;
* Discussed architecture of hyperspectral data import and per-processing tool&lt;br /&gt;
* Discussed testing and organizing AI modules downloading data from internet&lt;br /&gt;
* Prepared and gave a presentation on code preparation for translations (best practice)&lt;br /&gt;
* Debugging translation file updating with Edouard&lt;br /&gt;
* Changed default multiprocessor setting to always use maximum number of available threads&lt;br /&gt;
* Unified max process setting handling in all modules that use default parser parameter&lt;br /&gt;
* Discovered and supervised fixing a bug in r.univar parallelization code&lt;br /&gt;
* Discussed requirements for raster data reading parallelization (GRASS 9)&lt;br /&gt;
* Discussed future features to be implemented (long term view)&lt;br /&gt;
* Run modules in tests under valgrind; opened three bug reports, but log file analysis is incomplete&lt;br /&gt;
&lt;br /&gt;
=== Ondřej Pešek | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/pesekon2?tab=overview&amp;amp;from=2025-05-19&amp;amp;to=2025-05-24 GitHub activity]&lt;br /&gt;
* Refactoring, fixing, improving, discussing g.gui.gmodeler&lt;br /&gt;
* Discussing hyperspectral with Alen Mangafic&lt;br /&gt;
* Discussing jupyter in single GUI with Linda Karlovska&lt;br /&gt;
* PyGRASS&lt;br /&gt;
* Docs&lt;br /&gt;
* CQ&lt;br /&gt;
* Reviewing PRs, PR archeology&lt;br /&gt;
&lt;br /&gt;
=== Vaclav (Vashek) Petras | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/wenzeslaus?tab=overview&amp;amp;from=2025-05-19&amp;amp;to=2025-05-24 GitHub activity]&lt;br /&gt;
* My focus: Getting feedback and ideas for computational engine use case, APIs, funding.&lt;br /&gt;
* Summit organizing&lt;br /&gt;
* Implementing rebranding on GitHub (repos, teams)&lt;br /&gt;
* Feedback session on project image&lt;br /&gt;
* Feedback session on easier access to tools&lt;br /&gt;
* Discussed LLMs with Neel Ghoshal, Riya&lt;br /&gt;
* Discussed session setupp  Martin Landa&lt;br /&gt;
* Discussed conda with Nicklas Larsson&lt;br /&gt;
* Discussed hyperspectral with Alen Mangafić, Veronica Andreo, and Anna Petrasova&lt;br /&gt;
* Discussed code for new smoothing tool, integer overflows, translations with Māris Nartišs&lt;br /&gt;
* Compared setup of GRASS session and project in fasterRaster, QGIS, and GRASS itself with Adam Smith&lt;br /&gt;
* Discussed potential of Pixi for packaging or compilation with Gregory Power&lt;br /&gt;
* Discussed itzi model distribution issues with Laurent Courty&lt;br /&gt;
* Discussed r.horizon parallelization with Chung-Yuan Liang and Anna Petrasova&lt;br /&gt;
* Answered coding and setup questions for Neel Ghoshal, Abdullah Azzam, and Alen Mangafić&lt;br /&gt;
&lt;br /&gt;
=== Anna Petrasova | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/petrasovaa?tab=overview&amp;amp;from=2025-05-19&amp;amp;to=2025-05-24 GitHub activity]&lt;br /&gt;
* plan: mentoring, documentation&lt;br /&gt;
* Monday&lt;br /&gt;
** discussing hyperspectral implementation with Alen&lt;br /&gt;
** helping mentee David Farris implementing his gravity correction addon&lt;br /&gt;
* Tuesday&lt;br /&gt;
** delivered intro to creating an addon, documentation&lt;br /&gt;
** mentoring Alen, Abdullah&lt;br /&gt;
** discussing bug in i.his.rgb with Jayneel&lt;br /&gt;
** reviews&lt;br /&gt;
* Wednesday&lt;br /&gt;
** discuss and demonstrate tutorials page&lt;br /&gt;
** mentoring Alen, Jayneel&lt;br /&gt;
** call with GSoC student&lt;br /&gt;
* Thursday&lt;br /&gt;
** lightning talk&lt;br /&gt;
** discussing openmp implementations for r.horizon, r.mapcalc, default thread number&lt;br /&gt;
* Friday&lt;br /&gt;
** grass repo README&lt;br /&gt;
** reviews&lt;br /&gt;
&lt;br /&gt;
=== Gregory Power | Town of Cary ===&lt;br /&gt;
&lt;br /&gt;
* Documentation&lt;br /&gt;
* Investigate [https://pixi.sh/latest/ Pixi] to manage installation and build procedures.&lt;br /&gt;
* Learned more about GRASS's vector format and modules&lt;br /&gt;
** Need a deeper explanation on how the different vector subtypes behave&lt;br /&gt;
** Need a cleaner output of v.clean so users can inspect error types&lt;br /&gt;
** Documentation could use a comparison of GRASS's topological model and components with that of OGC's Simple Features&lt;br /&gt;
&lt;br /&gt;
=== Pratikshya Regmi | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* Event photographs and videos&lt;br /&gt;
* Opened a pull request to change GRASS GIS to GRASS on the documentation (this was my first contribution to GRASS)&lt;br /&gt;
* Worked on preparing the mock document for LLM RAG&lt;br /&gt;
* Wrote a tutorial to  Visualize Contour Lines with a Color Gradient with Folium.&lt;br /&gt;
* Finished mockup document and testing on LLM.&lt;br /&gt;
&lt;br /&gt;
=== Riya | Indian Institute of Technology, Roorkee ===&lt;br /&gt;
&lt;br /&gt;
* I am currently thinking of developing an AI Agent for the grass jupyter library which will help the users with mathematical calculations done in GIS.&lt;br /&gt;
&lt;br /&gt;
=== Jayneel Shah | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* improve the test coverage of imagery modules.&lt;br /&gt;
&lt;br /&gt;
=== Krishna Prasad Sheshadri ===&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
=== Adam Smith | Missouri Botanical Garden ===&lt;br /&gt;
&lt;br /&gt;
Overall: R package fasterRaster (fielding bug reports, adding features)&lt;br /&gt;
&lt;br /&gt;
Monday:&lt;br /&gt;
* Assessed scope of fasterRaster issue [https://github.com/adamlilith/fasterRaster/issues/83 83]&lt;br /&gt;
&lt;br /&gt;
Tuesday:&lt;br /&gt;
* Created a PR for fasterRaster tutorial on GRASS tutorials page.&lt;br /&gt;
* Improved handling of addons, including autodetect and installing when needed, enabling easier creation of addon-dependent methods.&lt;br /&gt;
* Presented *fasterRaster* package to group.&lt;br /&gt;
&lt;br /&gt;
Wednesday:&lt;br /&gt;
* Created fasterRaster methods for neighborhood matrices, terrain ruggedness index, and multivariate environmental similarity&lt;br /&gt;
&lt;br /&gt;
=== Michelle (Mimi) Stephens | ERDC ===&lt;br /&gt;
&lt;br /&gt;
* Previous work: coupling R and Python scripts for computational analysis in GRASS.&lt;br /&gt;
* Current work: Running through GRASS commands to create visual outputs that can be added to the new GRASS 8.5 manual pages - r.mapcalc, v.surf.rst, examples with topographic parameters, LinkedIn requests.&lt;br /&gt;
* Tutorial for Windows users to install a WSL2 Linux environment. Creates a conda environment with wxpython, installs GRASS without requiring OSGeo installer. Fast, simple, and minimal install. Resolves various issues encountered in government due to automatic Windows updates, cyber security, vpn routing, user preference, and isolated distro can be completely removed if needed. -&amp;gt; Motivation for WSL2 - wanted more hands-on practice with Unix command line tools for HPC; Docker not allowed, but miniforge and Apptainer are on ERDC's HPC; able to install grass via command line (only on internet-capable HPC systems); AND - For other users that always wanted a more native feel to their grass instance!&lt;br /&gt;
* Future work: Presenting on GRASS in JUNE at CERLCON.&lt;br /&gt;
&lt;br /&gt;
=== Corey White | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* JSON, mentoring&lt;br /&gt;
&lt;br /&gt;
=== Doug Newcomb | Semi Retired Cartographer ===&lt;br /&gt;
&lt;br /&gt;
* Discussed hydroflattening method&lt;br /&gt;
* Discussed direct point cloud input to v.surf.rst&lt;br /&gt;
* Learning git procedures by updating branding (GRASS GIS to GRASS)  for raster commands&lt;br /&gt;
Tuesday&lt;br /&gt;
* Continued updating branding for raster commands&lt;br /&gt;
* Started working on tutorial for r.hydro.flatten&lt;br /&gt;
Wednesday&lt;br /&gt;
* Finalized Data set for for r.hydro.flatten&lt;br /&gt;
* Worked on Lightning Talk for Thursday&lt;br /&gt;
Thursday&lt;br /&gt;
* Continued work on r.hydro.flatten tutorial&lt;br /&gt;
* Gave lightning talk on r.hydro.flatten&lt;br /&gt;
Friday&lt;br /&gt;
* Worked with Rob Dzur on r.hydro.flatten workflow.&lt;br /&gt;
* Explored the possibility of using r.resample.bspline for areas with high standard deviation ranges.&lt;br /&gt;
&lt;br /&gt;
* Worked with Rob Dzur on identifying workflow for implimenting USGS GMI, https://www.usgs.gov/ngp-standards-and-specifications/elevation-derived-hydrography-data-acquisition-specifications-16 ,  in GRASS and connected Rob with USGS contact for GMI.&lt;br /&gt;
&lt;br /&gt;
=== Natalie Trso | Balance Geo LLC ===&lt;br /&gt;
&lt;br /&gt;
* r.sim.water&lt;br /&gt;
&lt;br /&gt;
== Guests and remote participants ==&lt;br /&gt;
&lt;br /&gt;
=== Luís de Sousa | University of Lisbon ===&lt;br /&gt;
&lt;br /&gt;
* Review outstanding PRs&lt;br /&gt;
* Prepare GRASS sessions for the OpenGeoHub Summer School&lt;br /&gt;
&lt;br /&gt;
=== Markus Neteler | mundialis ===&lt;br /&gt;
&lt;br /&gt;
* Support full automation of new GRASS manual pages deployment on server (upload artifacts from GitHub to OSGeo servers (grass and download))&lt;br /&gt;
* Source code license documentation: Using SPDX License IDs ({{GH-Issues|4190}})&lt;br /&gt;
* Support Wiki cleanup&lt;br /&gt;
* [https://github.com/neteler?tab=overview&amp;amp;from=2025-05-19&amp;amp;to=2025-05-24 GitHub contributions]&lt;br /&gt;
&lt;br /&gt;
=== Nishant Bansal | Indian Institute of Technology, Varanasi ===&lt;br /&gt;
&lt;br /&gt;
* Review the previous work on JSON during last year’s GSoC, including enhancements and the addition of JSON output support to other modules.&lt;/div&gt;</summary>
		<author><name>Gregorywpower</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Performance_comparison_GRASS_vs._ArcGIS&amp;diff=28112</id>
		<title>Performance comparison GRASS vs. ArcGIS</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Performance_comparison_GRASS_vs._ArcGIS&amp;diff=28112"/>
		<updated>2025-02-03T03:12:41Z</updated>

		<summary type="html">&lt;p&gt;Gregorywpower: remove under construction notice&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ArcGIS]]&lt;br /&gt;
== Longest flow path ==&lt;br /&gt;
&lt;br /&gt;
''The r.accumulate module implements a fast longest flow path algorithm for hydrologic modeling.'' ([https://twitter.com/HuidaeCho/status/1279868419119210497 Quote: Twitter], [https://doi.org/10.1016/j.envsoft.2020.104774 Test: Paper])&lt;br /&gt;
&lt;br /&gt;
== Vector buffer (special case) ==&lt;br /&gt;
&lt;br /&gt;
:'''Task:''' Create buffer around vector polygon with negative distance&lt;br /&gt;
:'''Input data:''' Vector layer 'StatPolygon' from [http://www.arcdata.cz/produkty-a-sluzby/geograficka-data/arccr-500/ ArcCR500] dataset&lt;br /&gt;
:'''Comparison:''' Windows Server Enterprise {{bullet}} Intel Xeon CPU E5520 2.27GHz 2.26GHz (2 processors) {{bullet}} 8GB {{bullet}} 64bit OS&lt;br /&gt;
::*'''GRASS 7:''' &amp;lt;code&amp;gt;v.buffer input=StatPolygon output=Stat_5000 distance=-5000&amp;lt;/code&amp;gt; &amp;amp;rarr; '''12sec'''&lt;br /&gt;
::*'''ArcGIS 10.2.0:''' &amp;lt;code&amp;gt;Buffer StatPolygon Stat_5000 &amp;quot;-5000 Meters&amp;quot; FULL ROUND NONE&amp;lt;/code&amp;gt; &amp;amp;rarr; '''6min 50sec'''&lt;br /&gt;
&lt;br /&gt;
{{fig|buffer-negative-distance|Vector buffer with negative distance (GRASS)|size=640}}&lt;br /&gt;
{{fig|arcgis-buffer-negative-distance|Vector buffer with negative distance (ArcGIS)|size=640}}&lt;br /&gt;
&lt;br /&gt;
== Clipping Contest Benchmark ==&lt;br /&gt;
&lt;br /&gt;
ContourClipTest with ArcGIS, QGIS, GlobalMapper, Manifold, JGRASS ... (tests done in 2011):&lt;br /&gt;
&lt;br /&gt;
https://courses.neteler.org/arcgis-vs-qgis-etc-clipping-contest-rematch-revisited/&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[GRASS GIS Performance]]&lt;/div&gt;</summary>
		<author><name>Gregorywpower</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Jupyter_notebooks&amp;diff=28061</id>
		<title>GRASS GIS Jupyter notebooks</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Jupyter_notebooks&amp;diff=28061"/>
		<updated>2024-12-18T05:17:40Z</updated>

		<summary type="html">&lt;p&gt;Gregorywpower: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Jupyter Notebook is a web application that allows you to create and share documents that contain scripts and code, equations, visualizations and explanatory text, combined.&lt;br /&gt;
&lt;br /&gt;
== Get started ==&lt;br /&gt;
&lt;br /&gt;
Read the intro in the official documentation for [https://grass.osgeo.org/grass-stable/manuals/libpython/grass.jupyter.html grass.jupyter package].&lt;br /&gt;
&lt;br /&gt;
== List of selected GRASS GIS Jupyter notebooks ==&lt;br /&gt;
&lt;br /&gt;
''(add yours to the list!)''&lt;br /&gt;
&lt;br /&gt;
'''Intro notebooks:'''&lt;br /&gt;
* [https://github.com/OSGeo/grass/blob/main/doc/notebooks Official notebooks in OSGeo/grass repo] ([https://mybinder.org/v2/gh/OSGeo/grass/main?urlpath=lab%2Ftree%2Fdoc%2Fnotebooks%2Fjupyter_example.ipynb jupyter_example.ipynb on Binder])&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/grass-gis-workshop-foss4g-2022 Unleash the power of GRASS GIS with Jupyter (FOSS4G 2022 workshop)]&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/grass-gis-workshop-FOSS4G-2021 GRASS GIS: From Beginner to Power User (FOSS4G 2021 workshop)]&lt;br /&gt;
* [https://github.com/wenzeslaus/try-grass-in-jupyter-with-bash wenzeslaus/try-grass-in-jupyter-with-bash] (experimental)&lt;br /&gt;
* NSF platform: https://wholetale.org/&lt;br /&gt;
** GRASS GIS Introduction, by Anna Petrasova: https://dashboard.wholetale.org/run/63d832bab4a0197e9a9ecdad?tab=files&lt;br /&gt;
&lt;br /&gt;
'''Windows related:'''&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnWindows_standalone_Tutorial.ipynb GRASS GIS Jupyter Notebooks on Windows standalone installer tutorial]&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnWindows_OSGeo4W_Tutorial.ipynb GRASS GIS Jupyter Notebooks on Windows with OSGeo4W]&lt;br /&gt;
&lt;br /&gt;
'''Mac related:'''&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnMac_Tutorial.ipynb GRASS GIS Jupyter Notebooks on Mac]&lt;br /&gt;
&lt;br /&gt;
'''Workbook Collections:'''&lt;br /&gt;
* [https://github.com/wenzeslaus/geospatial-modeling-course-jupyter/tree/master/notebooks 14 Jupyter Notebooks for learning geospatial analysis and modeling with GRASS GIS] (Python and command line versions)&lt;br /&gt;
&lt;br /&gt;
'''Species Distribution Modeling:'''&lt;br /&gt;
* NSF platform: https://wholetale.org/&lt;br /&gt;
** Using satellite data for Species Distribution Modeling with GRASS GIS and R, by Veronica Andreo https://dashboard.wholetale.org/run/64388157b3b74e434bd8f1ac?tab=files&lt;br /&gt;
&lt;br /&gt;
'''Image processing/OBIA:'''&lt;br /&gt;
* [https://github.com/veroandreo/foss4g2022_grass4rs GRASS GIS for remote sensing data processing and analysis]&lt;br /&gt;
* [https://github.com/neteler/jupyter_sentinel2_grass_gis GRASS GIS 8 and processing of multitemporal EO data]&lt;br /&gt;
* [https://github.com/tgrippa/Opensource_OBIA_processing_chain An open-source semi-automated processing chain for urban OBIA classification]&lt;br /&gt;
&lt;br /&gt;
'''Python and PyGRASS:'''&lt;br /&gt;
* [https://github.com/zarch/workshop-pygrass Workshop on PyGRASS using IPython notebook]&lt;br /&gt;
* [https://github.com/wenzeslaus/foss4g-2022-developing-custom-grass-tools Developing custom GRASS tools (FOSS4G 2022 workshop)]&lt;br /&gt;
* [https://github.com/wenzeslaus/python-grass-addon How to write a Python GRASS GIS 7 addon (FOSS4G Europe 2015 workshop)]&lt;br /&gt;
* [https://github.com/lucadelu/docker-stacks/tree/geospatial/geospatial-notebook Jupyter Notebook Geospatial Python Stack]&lt;br /&gt;
&lt;br /&gt;
'''R and GRASS GIS:'''&lt;br /&gt;
* [https://gist.github.com/joergsteinkamp/43fb13a82aeab9b5c0dcc4433f97f1a6 Simple Opensource GIS examples with GRASS GIS and R]&lt;br /&gt;
&lt;br /&gt;
'''Wildfire Modeling:'''&lt;br /&gt;
* [https://github.com/acoiman/wildfire_modeling Wildfire Modeling in Yosemite National Park]&lt;br /&gt;
&lt;br /&gt;
== Running GRASS GIS in Jupyter Lab with docker ==&lt;br /&gt;
&lt;br /&gt;
* JupyterGrass: GRASS GIS in Jupyter Lab&lt;br /&gt;
** docker-compose file and instructions: https://gist.github.com/manuelep/e56fe90399c44e02e7cb97d5ef95edbd&lt;br /&gt;
&lt;br /&gt;
== Running GRASS GIS in a Jupyter notebook locally ==&lt;br /&gt;
&lt;br /&gt;
Both Jupyter and GRASS GIS have so called environments or sessions which need to be combined. Existing online environments with example notebooks are usually prepared to run right away, but locally, one must prepare the necessary software setup.&lt;br /&gt;
&lt;br /&gt;
=== Software requirements ===&lt;br /&gt;
&lt;br /&gt;
You need to have a working GRASS GIS installation.&lt;br /&gt;
&lt;br /&gt;
You need to have a working Jupyter installation. If you are using ''pip'', you can install Jupyter using:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install jupyter&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GRASS GIS and the Python you used to install Jupyter need to know about each other.&lt;br /&gt;
&lt;br /&gt;
On Linux, this will be usually true and no special steps are needed. GRASS GIS just uses the system Python and you presumably use pip which uses system Python too.&lt;br /&gt;
&lt;br /&gt;
On Windows, install Jupyter using the Python which is available in GRASS session. There is no system Python on Windows, so, e.g., installing Jupyter in conda and standalone GRASS GIS results in two different and disconnected Python installations. See this [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnWindows_Tutorial.ipynb NCSU GIS714 Jupyter On Windows Tutorial] for installing Jupyter using pip which is linked with Python linked to GRASS GIS.&lt;br /&gt;
&lt;br /&gt;
=== Start Jupyter, then GRASS GIS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jupyter lab&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a notebook, start the session using the [https://grass.osgeo.org/grass-stable/manuals/libpython/grass.jupyter.html grass.jupyter package].&lt;br /&gt;
&lt;br /&gt;
On Windows, due to a lack of system Python shared among all applications, it is easiest to start GRASS GIS (to get a command line with Python) and start Jupyter from there, see the [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnWindows_Tutorial.ipynb NCSU GIS714 Jupyter On Windows Tutorial]. (The session in command line will be replaced by a new session in the notebook.)&lt;br /&gt;
&lt;br /&gt;
=== Start GRASS GIS, then GRASS GIS ===&lt;br /&gt;
&lt;br /&gt;
If the above does not work for you or you want your notebooks to not deal with GRASS session at all, start GRASS shell and then start Jupyter from there, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ grass ...&lt;br /&gt;
GRASS &amp;gt; jupyter lab&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be done in one command, avoiding need for an additional step in the GRASS shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ grass ... --exec jupyter lab&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ grass ~/data/world_wgs84/coastal --exec jupyter lab&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Windows tricks ===&lt;br /&gt;
&lt;br /&gt;
If you get the error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
FileNotFoundError: [WinError 2] The system cannot find the file specified&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the executable on Windows is '''not called''' &amp;lt;tt&amp;gt;'''grass'''&amp;lt;/tt&amp;gt; like on Linux but &amp;lt;tt&amp;gt;'''grass8'''&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;'''grass83'''&amp;lt;/tt&amp;gt; (to avoid a strange Python import error).&lt;br /&gt;
That should do the trick. If not, try simply providing a full path yourself including the extension (e.g., &amp;lt;tt&amp;gt;C:\...\grass84.bat&amp;lt;/tt&amp;gt;), e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ask GRASS GIS where its Python packages are.&lt;br /&gt;
sys.path.append(&lt;br /&gt;
    subprocess.check_output([&amp;quot;C:\\Program Files\\GRASS GIS 8.4\\grass84.bat&amp;quot;, &amp;quot;--config&amp;quot;, &amp;quot;python_path&amp;quot;], text=True).strip()&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be made simpler by adding the path to where your &amp;lt;tt&amp;gt;'''grass84.bat'''&amp;lt;/tt&amp;gt; is to your &amp;quot;Path&amp;quot; environment variable on Windows, which you can edit at the account level, or system level via the &amp;quot;Edit environment variables for your account&amp;quot; and &amp;quot;Edit the system environment variables&amp;quot; respectively. If you do the above, you can simplify the code snippet to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ask GRASS GIS where its Python packages are.&lt;br /&gt;
sys.path.append(&lt;br /&gt;
    subprocess.check_output([&amp;quot;grass84&amp;quot;, &amp;quot;--config&amp;quot;, &amp;quot;python_path&amp;quot;], text=True).strip()&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also call &amp;lt;tt&amp;gt;'''grass84'''&amp;lt;/tt&amp;gt; from a Powershell instance or command prompt when you add the directory where you grass84.bat is installed and you can access grass command from the shell like you can on Linux or Mac.&lt;br /&gt;
&lt;br /&gt;
== Infrastructure ==&lt;br /&gt;
&lt;br /&gt;
* NSF platform: https://wholetale.org/&lt;br /&gt;
** Using satellite data for SDM with GRASS GIS and R, by Veronica Andreo https://dashboard.wholetale.org/run/64388157b3b74e434bd8f1ac?tab=files&lt;br /&gt;
** GRASS GIS Introduction, by Anna Petrasova: https://dashboard.wholetale.org/run/63d832bab4a0197e9a9ecdad?tab=files&lt;br /&gt;
* Colab (Google)&lt;br /&gt;
* Binder&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/wenzeslaus/gdoc2py GRASS GIS focused converter from HTML with pre code tags to Jupyter Notebook]&lt;br /&gt;
* RISE: Jupyter/IPython Slideshow Extension, https://rise.readthedocs.io/en/stable/&lt;br /&gt;
&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Python]]&lt;/div&gt;</summary>
		<author><name>Gregorywpower</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Jupyter_notebooks&amp;diff=28060</id>
		<title>GRASS GIS Jupyter notebooks</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Jupyter_notebooks&amp;diff=28060"/>
		<updated>2024-12-18T05:15:22Z</updated>

		<summary type="html">&lt;p&gt;Gregorywpower: add additional notes for convenience for Windows users&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Jupyter Notebook is a web application that allows you to create and share documents that contain scripts and code, equations, visualizations and explanatory text, combined.&lt;br /&gt;
&lt;br /&gt;
== Get started ==&lt;br /&gt;
&lt;br /&gt;
Read the intro in the official documentation for [https://grass.osgeo.org/grass-stable/manuals/libpython/grass.jupyter.html grass.jupyter package].&lt;br /&gt;
&lt;br /&gt;
== List of selected GRASS GIS Jupyter notebooks ==&lt;br /&gt;
&lt;br /&gt;
''(add yours to the list!)''&lt;br /&gt;
&lt;br /&gt;
'''Intro notebooks:'''&lt;br /&gt;
* [https://github.com/OSGeo/grass/blob/main/doc/notebooks Official notebooks in OSGeo/grass repo] ([https://mybinder.org/v2/gh/OSGeo/grass/main?urlpath=lab%2Ftree%2Fdoc%2Fnotebooks%2Fjupyter_example.ipynb jupyter_example.ipynb on Binder])&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/grass-gis-workshop-foss4g-2022 Unleash the power of GRASS GIS with Jupyter (FOSS4G 2022 workshop)]&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/grass-gis-workshop-FOSS4G-2021 GRASS GIS: From Beginner to Power User (FOSS4G 2021 workshop)]&lt;br /&gt;
* [https://github.com/wenzeslaus/try-grass-in-jupyter-with-bash wenzeslaus/try-grass-in-jupyter-with-bash] (experimental)&lt;br /&gt;
* NSF platform: https://wholetale.org/&lt;br /&gt;
** GRASS GIS Introduction, by Anna Petrasova: https://dashboard.wholetale.org/run/63d832bab4a0197e9a9ecdad?tab=files&lt;br /&gt;
&lt;br /&gt;
'''Windows related:'''&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnWindows_standalone_Tutorial.ipynb GRASS GIS Jupyter Notebooks on Windows standalone installer tutorial]&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnWindows_OSGeo4W_Tutorial.ipynb GRASS GIS Jupyter Notebooks on Windows with OSGeo4W]&lt;br /&gt;
&lt;br /&gt;
'''Mac related:'''&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnMac_Tutorial.ipynb GRASS GIS Jupyter Notebooks on Mac]&lt;br /&gt;
&lt;br /&gt;
'''Workbook Collections:'''&lt;br /&gt;
* [https://github.com/wenzeslaus/geospatial-modeling-course-jupyter/tree/master/notebooks 14 Jupyter Notebooks for learning geospatial analysis and modeling with GRASS GIS] (Python and command line versions)&lt;br /&gt;
&lt;br /&gt;
'''Species Distribution Modeling:'''&lt;br /&gt;
* NSF platform: https://wholetale.org/&lt;br /&gt;
** Using satellite data for Species Distribution Modeling with GRASS GIS and R, by Veronica Andreo https://dashboard.wholetale.org/run/64388157b3b74e434bd8f1ac?tab=files&lt;br /&gt;
&lt;br /&gt;
'''Image processing/OBIA:'''&lt;br /&gt;
* [https://github.com/veroandreo/foss4g2022_grass4rs GRASS GIS for remote sensing data processing and analysis]&lt;br /&gt;
* [https://github.com/neteler/jupyter_sentinel2_grass_gis GRASS GIS 8 and processing of multitemporal EO data]&lt;br /&gt;
* [https://github.com/tgrippa/Opensource_OBIA_processing_chain An open-source semi-automated processing chain for urban OBIA classification]&lt;br /&gt;
&lt;br /&gt;
'''Python and PyGRASS:'''&lt;br /&gt;
* [https://github.com/zarch/workshop-pygrass Workshop on PyGRASS using IPython notebook]&lt;br /&gt;
* [https://github.com/wenzeslaus/foss4g-2022-developing-custom-grass-tools Developing custom GRASS tools (FOSS4G 2022 workshop)]&lt;br /&gt;
* [https://github.com/wenzeslaus/python-grass-addon How to write a Python GRASS GIS 7 addon (FOSS4G Europe 2015 workshop)]&lt;br /&gt;
* [https://github.com/lucadelu/docker-stacks/tree/geospatial/geospatial-notebook Jupyter Notebook Geospatial Python Stack]&lt;br /&gt;
&lt;br /&gt;
'''R and GRASS GIS:'''&lt;br /&gt;
* [https://gist.github.com/joergsteinkamp/43fb13a82aeab9b5c0dcc4433f97f1a6 Simple Opensource GIS examples with GRASS GIS and R]&lt;br /&gt;
&lt;br /&gt;
'''Wildfire Modeling:'''&lt;br /&gt;
* [https://github.com/acoiman/wildfire_modeling Wildfire Modeling in Yosemite National Park]&lt;br /&gt;
&lt;br /&gt;
== Running GRASS GIS in Jupyter Lab with docker ==&lt;br /&gt;
&lt;br /&gt;
* JupyterGrass: GRASS GIS in Jupyter Lab&lt;br /&gt;
** docker-compose file and instructions: https://gist.github.com/manuelep/e56fe90399c44e02e7cb97d5ef95edbd&lt;br /&gt;
&lt;br /&gt;
== Running GRASS GIS in a Jupyter notebook locally ==&lt;br /&gt;
&lt;br /&gt;
Both Jupyter and GRASS GIS have so called environments or sessions which need to be combined. Existing online environments with example notebooks are usually prepared to run right away, but locally, one must prepare the necessary software setup.&lt;br /&gt;
&lt;br /&gt;
=== Software requirements ===&lt;br /&gt;
&lt;br /&gt;
You need to have a working GRASS GIS installation.&lt;br /&gt;
&lt;br /&gt;
You need to have a working Jupyter installation. If you are using ''pip'', you can install Jupyter using:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install jupyter&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GRASS GIS and the Python you used to install Jupyter need to know about each other.&lt;br /&gt;
&lt;br /&gt;
On Linux, this will be usually true and no special steps are needed. GRASS GIS just uses the system Python and you presumably use pip which uses system Python too.&lt;br /&gt;
&lt;br /&gt;
On Windows, install Jupyter using the Python which is available in GRASS session. There is no system Python on Windows, so, e.g., installing Jupyter in conda and standalone GRASS GIS results in two different and disconnected Python installations. See this [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnWindows_Tutorial.ipynb NCSU GIS714 Jupyter On Windows Tutorial] for installing Jupyter using pip which is linked with Python linked to GRASS GIS.&lt;br /&gt;
&lt;br /&gt;
=== Start Jupyter, then GRASS GIS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jupyter lab&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a notebook, start the session using the [https://grass.osgeo.org/grass-stable/manuals/libpython/grass.jupyter.html grass.jupyter package].&lt;br /&gt;
&lt;br /&gt;
On Windows, due to a lack of system Python shared among all applications, it is easiest to start GRASS GIS (to get a command line with Python) and start Jupyter from there, see the [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnWindows_Tutorial.ipynb NCSU GIS714 Jupyter On Windows Tutorial]. (The session in command line will be replaced by a new session in the notebook.)&lt;br /&gt;
&lt;br /&gt;
=== Start GRASS GIS, then GRASS GIS ===&lt;br /&gt;
&lt;br /&gt;
If the above does not work for you or you want your notebooks to not deal with GRASS session at all, start GRASS shell and then start Jupyter from there, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ grass ...&lt;br /&gt;
GRASS &amp;gt; jupyter lab&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be done in one command, avoiding need for an additional step in the GRASS shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ grass ... --exec jupyter lab&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ grass ~/data/world_wgs84/coastal --exec jupyter lab&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Windows tricks ===&lt;br /&gt;
&lt;br /&gt;
If you get the error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
FileNotFoundError: [WinError 2] The system cannot find the file specified&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the executable on Windows is '''not called''' &amp;lt;tt&amp;gt;'''grass'''&amp;lt;/tt&amp;gt; like on Linux but &amp;lt;tt&amp;gt;'''grass8'''&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;'''grass83'''&amp;lt;/tt&amp;gt; (to avoid a strange Python import error).&lt;br /&gt;
That should do the trick. If not, try simply providing a full path yourself including the extension (e.g., &amp;lt;tt&amp;gt;C:\...\grass84.bat&amp;lt;/tt&amp;gt;), e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ask GRASS GIS where its Python packages are.&lt;br /&gt;
sys.path.append(&lt;br /&gt;
    subprocess.check_output([&amp;quot;C:\\Program Files\\GRASS GIS 8.4\\grass84.bat&amp;quot;, &amp;quot;--config&amp;quot;, &amp;quot;python_path&amp;quot;], text=True).strip()&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be made simpler by adding the path to where your &amp;lt;tt&amp;gt;'''grass84.bat'''&amp;lt;/tt&amp;gt; is to your &amp;quot;Path&amp;quot; environment variable on Windows, which you can edit at the account level, or system level via the &amp;quot;Edit environment variables for your account&amp;quot; and &amp;quot;Edit the system environment variables&amp;quot; respectively. If you do the above, you can simplify the code snippet to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ask GRASS GIS where its Python packages are.&lt;br /&gt;
sys.path.append(&lt;br /&gt;
    subprocess.check_output([&amp;quot;grass84&amp;quot;, &amp;quot;--config&amp;quot;, &amp;quot;python_path&amp;quot;], text=True).strip()&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also call ```grass84``` from a Powershell instance or command prompt when you add the directory where you grass84.bat is and you can access grass command from the shell like you can on Linux or Mac.&lt;br /&gt;
&lt;br /&gt;
== Infrastructure ==&lt;br /&gt;
&lt;br /&gt;
* NSF platform: https://wholetale.org/&lt;br /&gt;
** Using satellite data for SDM with GRASS GIS and R, by Veronica Andreo https://dashboard.wholetale.org/run/64388157b3b74e434bd8f1ac?tab=files&lt;br /&gt;
** GRASS GIS Introduction, by Anna Petrasova: https://dashboard.wholetale.org/run/63d832bab4a0197e9a9ecdad?tab=files&lt;br /&gt;
* Colab (Google)&lt;br /&gt;
* Binder&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/wenzeslaus/gdoc2py GRASS GIS focused converter from HTML with pre code tags to Jupyter Notebook]&lt;br /&gt;
* RISE: Jupyter/IPython Slideshow Extension, https://rise.readthedocs.io/en/stable/&lt;br /&gt;
&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Python]]&lt;/div&gt;</summary>
		<author><name>Gregorywpower</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Jupyter_notebooks&amp;diff=28059</id>
		<title>GRASS GIS Jupyter notebooks</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Jupyter_notebooks&amp;diff=28059"/>
		<updated>2024-12-18T05:11:03Z</updated>

		<summary type="html">&lt;p&gt;Gregorywpower: make updates on how to add grass to an existing python environment on Windows&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Jupyter Notebook is a web application that allows you to create and share documents that contain scripts and code, equations, visualizations and explanatory text, combined.&lt;br /&gt;
&lt;br /&gt;
== Get started ==&lt;br /&gt;
&lt;br /&gt;
Read the intro in the official documentation for [https://grass.osgeo.org/grass-stable/manuals/libpython/grass.jupyter.html grass.jupyter package].&lt;br /&gt;
&lt;br /&gt;
== List of selected GRASS GIS Jupyter notebooks ==&lt;br /&gt;
&lt;br /&gt;
''(add yours to the list!)''&lt;br /&gt;
&lt;br /&gt;
'''Intro notebooks:'''&lt;br /&gt;
* [https://github.com/OSGeo/grass/blob/main/doc/notebooks Official notebooks in OSGeo/grass repo] ([https://mybinder.org/v2/gh/OSGeo/grass/main?urlpath=lab%2Ftree%2Fdoc%2Fnotebooks%2Fjupyter_example.ipynb jupyter_example.ipynb on Binder])&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/grass-gis-workshop-foss4g-2022 Unleash the power of GRASS GIS with Jupyter (FOSS4G 2022 workshop)]&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/grass-gis-workshop-FOSS4G-2021 GRASS GIS: From Beginner to Power User (FOSS4G 2021 workshop)]&lt;br /&gt;
* [https://github.com/wenzeslaus/try-grass-in-jupyter-with-bash wenzeslaus/try-grass-in-jupyter-with-bash] (experimental)&lt;br /&gt;
* NSF platform: https://wholetale.org/&lt;br /&gt;
** GRASS GIS Introduction, by Anna Petrasova: https://dashboard.wholetale.org/run/63d832bab4a0197e9a9ecdad?tab=files&lt;br /&gt;
&lt;br /&gt;
'''Windows related:'''&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnWindows_standalone_Tutorial.ipynb GRASS GIS Jupyter Notebooks on Windows standalone installer tutorial]&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnWindows_OSGeo4W_Tutorial.ipynb GRASS GIS Jupyter Notebooks on Windows with OSGeo4W]&lt;br /&gt;
&lt;br /&gt;
'''Mac related:'''&lt;br /&gt;
* [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnMac_Tutorial.ipynb GRASS GIS Jupyter Notebooks on Mac]&lt;br /&gt;
&lt;br /&gt;
'''Workbook Collections:'''&lt;br /&gt;
* [https://github.com/wenzeslaus/geospatial-modeling-course-jupyter/tree/master/notebooks 14 Jupyter Notebooks for learning geospatial analysis and modeling with GRASS GIS] (Python and command line versions)&lt;br /&gt;
&lt;br /&gt;
'''Species Distribution Modeling:'''&lt;br /&gt;
* NSF platform: https://wholetale.org/&lt;br /&gt;
** Using satellite data for Species Distribution Modeling with GRASS GIS and R, by Veronica Andreo https://dashboard.wholetale.org/run/64388157b3b74e434bd8f1ac?tab=files&lt;br /&gt;
&lt;br /&gt;
'''Image processing/OBIA:'''&lt;br /&gt;
* [https://github.com/veroandreo/foss4g2022_grass4rs GRASS GIS for remote sensing data processing and analysis]&lt;br /&gt;
* [https://github.com/neteler/jupyter_sentinel2_grass_gis GRASS GIS 8 and processing of multitemporal EO data]&lt;br /&gt;
* [https://github.com/tgrippa/Opensource_OBIA_processing_chain An open-source semi-automated processing chain for urban OBIA classification]&lt;br /&gt;
&lt;br /&gt;
'''Python and PyGRASS:'''&lt;br /&gt;
* [https://github.com/zarch/workshop-pygrass Workshop on PyGRASS using IPython notebook]&lt;br /&gt;
* [https://github.com/wenzeslaus/foss4g-2022-developing-custom-grass-tools Developing custom GRASS tools (FOSS4G 2022 workshop)]&lt;br /&gt;
* [https://github.com/wenzeslaus/python-grass-addon How to write a Python GRASS GIS 7 addon (FOSS4G Europe 2015 workshop)]&lt;br /&gt;
* [https://github.com/lucadelu/docker-stacks/tree/geospatial/geospatial-notebook Jupyter Notebook Geospatial Python Stack]&lt;br /&gt;
&lt;br /&gt;
'''R and GRASS GIS:'''&lt;br /&gt;
* [https://gist.github.com/joergsteinkamp/43fb13a82aeab9b5c0dcc4433f97f1a6 Simple Opensource GIS examples with GRASS GIS and R]&lt;br /&gt;
&lt;br /&gt;
'''Wildfire Modeling:'''&lt;br /&gt;
* [https://github.com/acoiman/wildfire_modeling Wildfire Modeling in Yosemite National Park]&lt;br /&gt;
&lt;br /&gt;
== Running GRASS GIS in Jupyter Lab with docker ==&lt;br /&gt;
&lt;br /&gt;
* JupyterGrass: GRASS GIS in Jupyter Lab&lt;br /&gt;
** docker-compose file and instructions: https://gist.github.com/manuelep/e56fe90399c44e02e7cb97d5ef95edbd&lt;br /&gt;
&lt;br /&gt;
== Running GRASS GIS in a Jupyter notebook locally ==&lt;br /&gt;
&lt;br /&gt;
Both Jupyter and GRASS GIS have so called environments or sessions which need to be combined. Existing online environments with example notebooks are usually prepared to run right away, but locally, one must prepare the necessary software setup.&lt;br /&gt;
&lt;br /&gt;
=== Software requirements ===&lt;br /&gt;
&lt;br /&gt;
You need to have a working GRASS GIS installation.&lt;br /&gt;
&lt;br /&gt;
You need to have a working Jupyter installation. If you are using ''pip'', you can install Jupyter using:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install jupyter&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GRASS GIS and the Python you used to install Jupyter need to know about each other.&lt;br /&gt;
&lt;br /&gt;
On Linux, this will be usually true and no special steps are needed. GRASS GIS just uses the system Python and you presumably use pip which uses system Python too.&lt;br /&gt;
&lt;br /&gt;
On Windows, install Jupyter using the Python which is available in GRASS session. There is no system Python on Windows, so, e.g., installing Jupyter in conda and standalone GRASS GIS results in two different and disconnected Python installations. See this [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnWindows_Tutorial.ipynb NCSU GIS714 Jupyter On Windows Tutorial] for installing Jupyter using pip which is linked with Python linked to GRASS GIS.&lt;br /&gt;
&lt;br /&gt;
=== Start Jupyter, then GRASS GIS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
jupyter lab&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a notebook, start the session using the [https://grass.osgeo.org/grass-stable/manuals/libpython/grass.jupyter.html grass.jupyter package].&lt;br /&gt;
&lt;br /&gt;
On Windows, due to a lack of system Python shared among all applications, it is easiest to start GRASS GIS (to get a command line with Python) and start Jupyter from there, see the [https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnWindows_Tutorial.ipynb NCSU GIS714 Jupyter On Windows Tutorial]. (The session in command line will be replaced by a new session in the notebook.)&lt;br /&gt;
&lt;br /&gt;
=== Start GRASS GIS, then GRASS GIS ===&lt;br /&gt;
&lt;br /&gt;
If the above does not work for you or you want your notebooks to not deal with GRASS session at all, start GRASS shell and then start Jupyter from there, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ grass ...&lt;br /&gt;
GRASS &amp;gt; jupyter lab&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be done in one command, avoiding need for an additional step in the GRASS shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ grass ... --exec jupyter lab&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ grass ~/data/world_wgs84/coastal --exec jupyter lab&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Windows tricks ===&lt;br /&gt;
&lt;br /&gt;
If you get the error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
FileNotFoundError: [WinError 2] The system cannot find the file specified&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the executable on Windows is '''not called''' &amp;lt;tt&amp;gt;'''grass'''&amp;lt;/tt&amp;gt; like on Linux but &amp;lt;tt&amp;gt;'''grass8'''&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;'''grass83'''&amp;lt;/tt&amp;gt; (to avoid a strange Python import error).&lt;br /&gt;
That should do the trick. If not, try simply providing a full path yourself including the extension (e.g., &amp;lt;tt&amp;gt;C:\...\grass84.bat&amp;lt;/tt&amp;gt;), e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Ask GRASS GIS where its Python packages are.&lt;br /&gt;
sys.path.append(&lt;br /&gt;
    subprocess.check_output([&amp;quot;C:\\Program Files\\GRASS GIS 8.4\\grass84.bat&amp;quot;, &amp;quot;--config&amp;quot;, &amp;quot;python_path&amp;quot;], text=True).strip()&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be made simpler by adding the path to where your &amp;lt;tt&amp;gt;'''grass84.bat'''&amp;lt;/tt&amp;gt; is to your &amp;quot;Path&amp;quot; environment variable on Windows, which you can edit at the account level, or system level via the &amp;quot;Edit environment variables for your account&amp;quot; and &amp;quot;Edit the system environment variables&amp;quot; respectively.&lt;br /&gt;
&lt;br /&gt;
== Infrastructure ==&lt;br /&gt;
&lt;br /&gt;
* NSF platform: https://wholetale.org/&lt;br /&gt;
** Using satellite data for SDM with GRASS GIS and R, by Veronica Andreo https://dashboard.wholetale.org/run/64388157b3b74e434bd8f1ac?tab=files&lt;br /&gt;
** GRASS GIS Introduction, by Anna Petrasova: https://dashboard.wholetale.org/run/63d832bab4a0197e9a9ecdad?tab=files&lt;br /&gt;
* Colab (Google)&lt;br /&gt;
* Binder&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/wenzeslaus/gdoc2py GRASS GIS focused converter from HTML with pre code tags to Jupyter Notebook]&lt;br /&gt;
* RISE: Jupyter/IPython Slideshow Extension, https://rise.readthedocs.io/en/stable/&lt;br /&gt;
&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Python]]&lt;/div&gt;</summary>
		<author><name>Gregorywpower</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Performance&amp;diff=28002</id>
		<title>GRASS GIS Performance</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Performance&amp;diff=28002"/>
		<updated>2024-10-13T02:14:07Z</updated>

		<summary type="html">&lt;p&gt;Gregorywpower: /* Maximum Number of Attribute Columns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GRASS GIS Performance ==&lt;br /&gt;
&lt;br /&gt;
GRASS GIS is noted for being ready for massive data analysis. This page contains an yet incomplete collection of performance indicators.&lt;br /&gt;
&lt;br /&gt;
=== Architecture ===&lt;br /&gt;
&lt;br /&gt;
GRASS GIS is fully 32bit and 64bit compliant. See also the [[Software requirements specification]].&lt;br /&gt;
&lt;br /&gt;
=== Search strategies used in processing geodata ===&lt;br /&gt;
&lt;br /&gt;
GRASS GIS makes heavy use of search trees in order to speed up computation:&lt;br /&gt;
* segment lib: btree2&lt;br /&gt;
* 2D splines (RST): quadtree&lt;br /&gt;
* 3D splines (RST): octree&lt;br /&gt;
* vector lib topology: R*-tree&lt;br /&gt;
&lt;br /&gt;
See the [http://grass.osgeo.org/programming7/ Programmer's manual] for details.&lt;br /&gt;
&lt;br /&gt;
=== Number of opened input files ===&lt;br /&gt;
&lt;br /&gt;
There are only operating system constraints of the number of input files which can be opened simultaneously. Commonly the limit is 1024 files. In operating systems like Linux this limit can be overcome with the &amp;quot;ulimit&amp;quot; settings.&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
* {{cmd|r.series}}&lt;br /&gt;
* {{cmd|r.series.accumulate}}&lt;br /&gt;
&lt;br /&gt;
=== Memory management ===&lt;br /&gt;
&lt;br /&gt;
Due to the modular architecture of GRASS GIS the overhead of the software itself is minimal. &lt;br /&gt;
&lt;br /&gt;
'''Raster data operations''': where appropriate, modules offer a parameter to optimize caching (&amp;quot;memory&amp;quot; parameter).&lt;br /&gt;
# Pixel based operations: they have very low impact on memory usage.&lt;br /&gt;
# Moving window based operations: they have medium impact on memory usage.&lt;br /&gt;
# Full map operations (watersheds, cost surfaces, etc.): they have high impact on memory usage.&lt;br /&gt;
# Statistical operations: while univariate statistics have low impact on memory usage, quartiles and other aggregated statistics have medium impact on memory usage.&lt;br /&gt;
&lt;br /&gt;
'''Vector data operations''':&lt;br /&gt;
# Vector point operations: memory consumption depends on the amount of points. LiDAR data processing is commonly demanding. For some operations the creation of topology can be skipped to reduce the memory footprint.&lt;br /&gt;
# Vector line operations: they have low impact on memory usage (depends on the amount of data).&lt;br /&gt;
# Vector area/faces operations: they have high impact on memory usage.&lt;br /&gt;
# Topological versus non-topological operations: a subset of vector modules is able to operate on point vector maps without topology which saves notably RAM usage.&lt;br /&gt;
&lt;br /&gt;
'''Database operations''':&lt;br /&gt;
* Most operations are simply SQL transactions with low impact on memory usage.&lt;br /&gt;
&lt;br /&gt;
'''See also'''&lt;br /&gt;
* Solving [[Memory issues]] when dealing with large amounts of data&lt;br /&gt;
&lt;br /&gt;
=== Vector management ===&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;vector map&amp;quot; is a data layer consisting of a number of sparse features in geographic space. These might be data points (drill sites), lines (roads), polygons (park boundary), volumes (3D CAD structure), or some combination of all these. Typically each feature in the map will be tied to a set of attribute layers stored in a database (road names, site ID, geologic type, etc.). As a general rule these can exist in 2D or 3D space and are independent of the GIS's computation region.&lt;br /&gt;
&lt;br /&gt;
See also {{cmd|vectorintro}} in the manual.&lt;br /&gt;
&lt;br /&gt;
==== Vector geometry ====&lt;br /&gt;
&lt;br /&gt;
In all GRASS GIS versions, &lt;br /&gt;
&lt;br /&gt;
* with topology the feature limit is at time 2^31 - 1 (about 2 billion) features per vector map.&lt;br /&gt;
* ''TODO: add limit if topology creation is disabled at import for points (e.g., LiDAR points).''&lt;br /&gt;
&lt;br /&gt;
==== Vector attribute management ====&lt;br /&gt;
&lt;br /&gt;
Attributes are managed through a SQL interface (see also {{cmd|databaseintro}})&lt;br /&gt;
&lt;br /&gt;
The default database backend is&lt;br /&gt;
* DBF files (tend to be slow) in GRASS GIS 6 ({{cmd|grass-dbf|version=64}})&lt;br /&gt;
* SQLite file (very fast compared to DBF  in GRASS GIS 7 ({{cmd|grass-sqlite}})&lt;br /&gt;
&lt;br /&gt;
Other SQL backends are offered as well including PostgreSQL, MySQL, etc.: see {{cmd|sql}} support in GRASS GIS.&lt;br /&gt;
&lt;br /&gt;
'''Speed of DBF versus SQLite drivers''': attribute operations which take hours using the DBF backend just take seconds using the SQLite backend.&lt;br /&gt;
&lt;br /&gt;
==== Maximum Number of Attribute Columns ====&lt;br /&gt;
&lt;br /&gt;
The maximum number of attribute columns of a table connected to a vector map is defined by the capabilities of the the selected database backend (set with {{cmd|db.connect}}).&lt;br /&gt;
&lt;br /&gt;
* '''DBF-Backend''': GRASS 4.x - 6.x use by default the DBF backend. While there is no explicitly stated maximum number of allowed attribute columns, Web sources report a maximum '''between 128 and 1023/24'''. Trials with GRASS 6.4.2 in 2012 result in write failure if &amp;gt; 2000 attribute columns are used. Export to DBF-based ESRI Shapefile provides a warning if more that '''255''' attributes are used: Other software tools may ignore all further attributes, hence a maximum of '''128''' columns may be prudent.&lt;br /&gt;
* '''SQLite-Backend''': GRASS 7.x uses by default the SQLite backend. The default maximum number of attribute columns is '''2000''' according to the [https://www.sqlite.org/limits.html#max_column specifications]. This number can be increased by compiling SQlite with changed settings.&lt;br /&gt;
* '''MySQL-Backend''': The default maximum number of attribute columns is '''4096''' according to the [https://dev.mysql.com/doc/refman/5.1/en/column-count-limit.html specifications].&lt;br /&gt;
* '''PostgreSQL-Backend''': The default maximum number of attribute columns is '''250-1600''' according to the [https://wiki.postgresql.org/wiki/FAQ#What_is_the_maximum_size_for_a_row.2C_a_table.2C_and_a_database.3F specifications] depending on column types.&lt;br /&gt;
* '''Oracle-Backend''': The default maximum number of attribute columns is '''1000''' according to the [https://docs.oracle.com/cd/B19306_01/server.102/b14237/limits003.htm specifications].&lt;br /&gt;
&lt;br /&gt;
==== Maximum file size of the attributes file ====&lt;br /&gt;
&lt;br /&gt;
* '''DBF-Backend''' (in GRASS 6 the default DB backend): ''to be added'' (2Gb? in case of LFS enabled?)&lt;br /&gt;
* '''SQLite-Backend''' (in GRASS 7 the default DB backend): The maximum file size of a SQLite db is '''140 TB''', independent of the architecture, i.e. Large File Support (LFS) is always there. Usually SQLite will hit the maximum file size limit of the underlying filesystem or disk hardware size limit long before it hits its own [http://www.sqlite.org/fileformat2.html internal size limit].&lt;br /&gt;
&lt;br /&gt;
=== Raster management ===&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;raster map&amp;quot; is a data layer consisting of a gridded array of cells. It has a certain number of rows and columns, with a data point (or null value indicator) in each cell. These may exist as a 2D grid or as a 3D cube made up of many smaller cubes, i.e. a stack of 2D grids. &lt;br /&gt;
&lt;br /&gt;
See also {{cmd|rasterintro}} in the manual.&lt;br /&gt;
&lt;br /&gt;
==== Raster map precision types ====&lt;br /&gt;
&lt;br /&gt;
* '''CELL DATA TYPE''': a raster map from INTEGER type (4 bytes, whole numbers only).&lt;br /&gt;
** In GRASS GIS, CELL is a 32 bit integer with a range from -2,147,483,647 to +2,147,483,647. The value -2,147,483,648 is reserved for NODATA.&lt;br /&gt;
* '''FCELL DATA TYPE''': a raster map from FLOAT type (4 bytes, 7-9 digits precision).&lt;br /&gt;
** In GRASS GIS, FCELL is a 32 bit float (Float32) with a range from -3.4E38 to 3.4E38. However, the integer precision can be only ensured between -16777216 and 16777216. If your raster overpass this range we strongly suggest to use DCELL, as Float64 data type. &lt;br /&gt;
* '''DCELL DATA TYPE''': a raster map from DOUBLE type (8 bytes, 15-17 digits precision).&lt;br /&gt;
** In GRASS GIS, DCELL is a 64 bit float (Float64) with a range from -1.79E308 to 1.79E308.&lt;br /&gt;
* '''NULL''': represents &amp;quot;no data&amp;quot; in raster maps, to be distinguished from 0 (zero) data value.&lt;br /&gt;
&lt;br /&gt;
Aliases:&lt;br /&gt;
* '''INTEGER MAP''': see CELL DATA TYPE&lt;br /&gt;
* '''FLOAT MAP''': see FCELL DATA TYPE&lt;br /&gt;
* '''DOUBLE MAP''': see DCELL DATA TYPE&lt;br /&gt;
&lt;br /&gt;
(reference in the [https://github.com/OSGeo/grass/blob/master/include/gis.h#L588 GRASS GIS source code])&lt;br /&gt;
&lt;br /&gt;
See also [[GRASS raster semantics]]&lt;br /&gt;
&lt;br /&gt;
== Large file support ==&lt;br /&gt;
=== Large raster data processing ===&lt;br /&gt;
&lt;br /&gt;
GRASS GIS 7 supports the off_t type, hence it can address an enormous amount of raster data.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[Large raster data processing]]&lt;br /&gt;
&lt;br /&gt;
==== Some '''benchmarks''' ====&lt;br /&gt;
&lt;br /&gt;
* Import of [http://www.ecad.eu/ ECAD 6.0] Tmean dataset: 22650 layers in single netCDF file: import takes 300 Seconds while reading file via NFS (i.e. 75 maps per second)&lt;br /&gt;
* Calculation of watersheds, half basins, flow accumulation, drainage directions, and stream with {{cmd|r.watershed}} for an area of 90,000 rows x 100,000 cols (9,000,000,000 cells, metric) successfully done in 77.2 hours (Intel Xeon X5670, 2.93GHz)&lt;br /&gt;
* European DEM at 25m ([http://www.eea.europa.eu/data-and-maps/data/eu-dem#tab-original-data eudem_dem_3035_europe.tif], 24.1 GB GeoTIFF, 48 billion cells) processing:&lt;br /&gt;
** Import of this GeoTIFF file with r.in.gdal on a blade via NFS: a) '''77h''' without memory option (hence 40MB = GDAL's default cache), b) ''''1.5h'''' with memory=300 (hence using 300MB GDAL cache), c) ''''1.5h'''' with memory=2000 (hence using 2GB GDAL cache)&lt;br /&gt;
* r.neighbors with [https://trac.osgeo.org/grass/ticket/2676#comment:2 3.694261e+12 pixels] (rows: 440046 cols: 830958 cells)&lt;br /&gt;
* Import of Global Forest Loss map with rows=560000 * cols=1440000 = 8.064e+11 pixels (see {{trac|3365}}); map can be easily shown in GRASS GIS monitor&lt;br /&gt;
* r.stream.extract: the upper limit matrix cell number that can handle is about 1.15e+18 raster cells (1.15 &amp;quot;[https://en.wikipedia.org/wiki/Unit_prefix exa]&amp;quot;-cells. The number of detected stream segments must not be larger than 2,147,483,647 streams.&lt;br /&gt;
* ... add more&lt;br /&gt;
&lt;br /&gt;
=== Large vector data processing ===&lt;br /&gt;
&lt;br /&gt;
GRASS GIS 7 supports the off_t type, hence it can address an enormous amount of vector data.&lt;br /&gt;
Currently multi-billion vector points have been managed ([http://lists.osgeo.org/pipermail/grass-dev/2011-January/052996.html citation]) without topology (since not needed). In all GRASS versions, the limit with topology is at  time 2^31 - 1 (about 2 billion) features per vector map.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[Large vector data processing]]&lt;br /&gt;
&lt;br /&gt;
==== Some '''benchmarks''' ====&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
* ... add more&lt;br /&gt;
&lt;br /&gt;
== Parallelization ==&lt;br /&gt;
&lt;br /&gt;
In GRASS 7, a few modules have been experimentally parallelized with OpenMP. However, if data can be processed in chunks, GRASS GIS can be used on clusters.&lt;br /&gt;
&lt;br /&gt;
* [[OpenMP/Benchmarks]]&lt;br /&gt;
&lt;br /&gt;
Parallelized modules:&lt;br /&gt;
&lt;br /&gt;
* v.surf.rst, r.sim.water, r.sun, ...&lt;br /&gt;
&lt;br /&gt;
Note: As of 2020,  there are still issues with openMP (it may lead to weird results or perform slower).&lt;br /&gt;
&lt;br /&gt;
== Benchmarks ==&lt;br /&gt;
&lt;br /&gt;
=== r.neighbors ===&lt;br /&gt;
&lt;br /&gt;
  $ g.region -pa n=228500 s=215000 w=630000 e=645000 res=0.5&lt;br /&gt;
  $ r.random.surface output=random&lt;br /&gt;
  $ time r.neighbors input=random output=avg,min,max method=average,minimum,maximum size=5&lt;br /&gt;
  real	6m58.801s&lt;br /&gt;
  user	6m45.132s&lt;br /&gt;
  sys	0m6.864s&lt;br /&gt;
&lt;br /&gt;
810,000,000 cells (27,000x30,000), 3 outputs (average, min, max), window size 5, one core, negligible use of RAM.&lt;br /&gt;
&lt;br /&gt;
== User reports ==&lt;br /&gt;
&lt;br /&gt;
* [[Case studies]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Parallel GRASS jobs]]&lt;br /&gt;
* [[Software requirements specification]]&lt;br /&gt;
* [[Performance comparison GRASS vs. ArcGIS]]&lt;br /&gt;
* [[OpenMP/Benchmarks|Benchmarks of OpenMP parallelized code]]&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/GIS_workstation_setup_tips GIS workstation setup tips] (OSGeo Wiki page)&lt;br /&gt;
&lt;br /&gt;
[[Category: FAQ]]&lt;br /&gt;
[[Category: Hardware]]&lt;br /&gt;
[[Category: massive data analysis]]&lt;br /&gt;
[[Category: Raster]]&lt;br /&gt;
[[Category: Vector]]&lt;/div&gt;</summary>
		<author><name>Gregorywpower</name></author>
	</entry>
</feed>