<?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=Baharmon</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=Baharmon"/>
	<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/wiki/Special:Contributions/Baharmon"/>
	<updated>2026-05-04T11:41:05Z</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=28420</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=28420"/>
		<updated>2025-05-24T21:19:55Z</updated>

		<summary type="html">&lt;p&gt;Baharmon: /* Brendan Harmon | Louisiana State University */&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;
&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>Baharmon</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Talk:GRASS_Developer_Summit_Raleigh_2025&amp;diff=28319</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=28319"/>
		<updated>2025-05-20T14:07:01Z</updated>

		<summary type="html">&lt;p&gt;Baharmon: /* Day 4, Thursday, May 22 */&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;
&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;
| 8: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, deep dive into new documentation, 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 || Your topic here (10-minute presentation and 10-minute discussion)&lt;br /&gt;
|-&lt;br /&gt;
| 11:20-11:40 || Self-organized feedback sessions || Temporal framework global variables ([https://github.com/OSGeo/grass/issues/629]) - Laurent Courty&lt;br /&gt;
|-&lt;br /&gt;
| 11:40-12:00 || Self-organized feedback sessions || GSoC call&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 || 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 || 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;
| 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 || 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;
| 10:00-11: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 || Your topic here&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || Walk to [https://maps.app.goo.gl/kHVHY62QxTd6wHKd9 On the Oval Culinary Creatins]. 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;
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:00-9:00 || Breakfast || TBA. 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 || NSF POSE project evaluation, contributor community feedback.&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 || Your topic here&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || TBA. 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 || TBA. &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;
&lt;br /&gt;
=== Veronica Andreo | CONICET - Instituto Gulich ===&lt;br /&gt;
&lt;br /&gt;
* Plan: &lt;br /&gt;
** Review of temporal tutorials to push them to tutorials&lt;br /&gt;
** Sync branding between GRASS and tutorials websites&lt;br /&gt;
** GRASS project admin stuff &lt;br /&gt;
** Understand new docs contribution and building workflow&lt;br /&gt;
** Interface with R&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;
* Website footer enhancement&lt;br /&gt;
* Fix descriptions and their display in 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 post&lt;br /&gt;
* Discussion about hyperspectral with Alen and Anna&lt;br /&gt;
&lt;br /&gt;
=== Abdullah Azzam | New Mexico State University ===&lt;br /&gt;
&lt;br /&gt;
* r.runoff&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;
=== 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;
&lt;br /&gt;
=== Laurent Courty ===&lt;br /&gt;
&lt;br /&gt;
* An xarray backend for GRASS STRDS. Fixing related issues&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&lt;br /&gt;
• Discussed about the possible use case of LLM for helping users find tools&lt;br /&gt;
&lt;br /&gt;
=== Caitlin Haedrich | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* Jupyter API, event photographs&lt;br /&gt;
&lt;br /&gt;
=== Brendan Harmon | Louisiana State University ===&lt;br /&gt;
&lt;br /&gt;
* Developing ([https://github.com/baharmon/r.earthworks r.earthworks]) addon &amp;amp; tutorials&lt;br /&gt;
* [https://github.com/baharmon?tab=overview&amp;amp;from=2025-05-19&amp;amp;to=2025-05-24 GitHub activity]&lt;br /&gt;
&lt;br /&gt;
=== Linda Karlovska | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* I plan to work on GUI enhancements, particularly the Jupyter-style interactive page for enhanced scripting and visualization.&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;
&lt;br /&gt;
=== Nicklas Larsson | Hungarian National Museum ===&lt;br /&gt;
&lt;br /&gt;
* CMake build system; perhaps Conda recipe&lt;br /&gt;
&lt;br /&gt;
=== Chung-Yuan Liang ===&lt;br /&gt;
&lt;br /&gt;
* parallelize some modules, improve testing&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;
&lt;br /&gt;
* Add-on which offers basic hyperspectral data support in GRASS.&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 16&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;
=== 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;
* Preparing a new raster data analysis tool r.smooth for inclusion into GRASS core&lt;br /&gt;
* Discussing architecture of hyperspectral data import and per-processing tool&lt;br /&gt;
&lt;br /&gt;
=== Ondřej Pešek | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* Many things to fix/improve in g.gui.gmodeler, finally finish an addon for CNNs in GRASS&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;
* computational engine, APIs, funding, summit organization&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;
* mentoring, documentation&lt;br /&gt;
&lt;br /&gt;
=== Gregory Power | Town of Cary ===&lt;br /&gt;
&lt;br /&gt;
* Documentation&lt;br /&gt;
&lt;br /&gt;
=== Pratikshya Regmi | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* I plan to showcase my work on integrating LLM and GRASS GIS.&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;
* R package fasterRaster (fielding bug reports, adding features)&lt;br /&gt;
&lt;br /&gt;
Monday: Assessed scope of fasterRaster issue [https://github.com/adamlilith/fasterRaster/issues/83 83]&lt;br /&gt;
&lt;br /&gt;
=== Michelle (Mimi) Stephens ===&lt;br /&gt;
&lt;br /&gt;
* Coding and visualization&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;
== 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>Baharmon</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Talk:GRASS_Developer_Summit_Raleigh_2025&amp;diff=28318</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=28318"/>
		<updated>2025-05-20T14:05:29Z</updated>

		<summary type="html">&lt;p&gt;Baharmon: /* Day 5, Friday, May 23 */&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;
&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;
| 8: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, deep dive into new documentation, 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 || Your topic here (10-minute presentation and 10-minute discussion)&lt;br /&gt;
|-&lt;br /&gt;
| 11:20-11:40 || Self-organized feedback sessions || Temporal framework global variables ([https://github.com/OSGeo/grass/issues/629]) - Laurent Courty&lt;br /&gt;
|-&lt;br /&gt;
| 11:40-12:00 || Self-organized feedback sessions || GSoC call&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 || 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 || Your topic here&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;
| 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 || 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;
| 10:00-11: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 || Your topic here&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || Walk to [https://maps.app.goo.gl/kHVHY62QxTd6wHKd9 On the Oval Culinary Creatins]. 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;
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:00-9:00 || Breakfast || TBA. 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 || NSF POSE project evaluation, contributor community feedback.&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 || Your topic here&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || TBA. 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 || TBA. &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;
&lt;br /&gt;
=== Veronica Andreo | CONICET - Instituto Gulich ===&lt;br /&gt;
&lt;br /&gt;
* Plan: &lt;br /&gt;
** Review of temporal tutorials to push them to tutorials&lt;br /&gt;
** Sync branding between GRASS and tutorials websites&lt;br /&gt;
** GRASS project admin stuff &lt;br /&gt;
** Understand new docs contribution and building workflow&lt;br /&gt;
** Interface with R&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;
* Website footer enhancement&lt;br /&gt;
* Fix descriptions and their display in 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 post&lt;br /&gt;
* Discussion about hyperspectral with Alen and Anna&lt;br /&gt;
&lt;br /&gt;
=== Abdullah Azzam | New Mexico State University ===&lt;br /&gt;
&lt;br /&gt;
* r.runoff&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;
=== 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;
&lt;br /&gt;
=== Laurent Courty ===&lt;br /&gt;
&lt;br /&gt;
* An xarray backend for GRASS STRDS. Fixing related issues&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&lt;br /&gt;
• Discussed about the possible use case of LLM for helping users find tools&lt;br /&gt;
&lt;br /&gt;
=== Caitlin Haedrich | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* Jupyter API, event photographs&lt;br /&gt;
&lt;br /&gt;
=== Brendan Harmon | Louisiana State University ===&lt;br /&gt;
&lt;br /&gt;
* Developing ([https://github.com/baharmon/r.earthworks r.earthworks]) addon &amp;amp; tutorials&lt;br /&gt;
* [https://github.com/baharmon?tab=overview&amp;amp;from=2025-05-19&amp;amp;to=2025-05-24 GitHub activity]&lt;br /&gt;
&lt;br /&gt;
=== Linda Karlovska | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* I plan to work on GUI enhancements, particularly the Jupyter-style interactive page for enhanced scripting and visualization.&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;
&lt;br /&gt;
=== Nicklas Larsson | Hungarian National Museum ===&lt;br /&gt;
&lt;br /&gt;
* CMake build system; perhaps Conda recipe&lt;br /&gt;
&lt;br /&gt;
=== Chung-Yuan Liang ===&lt;br /&gt;
&lt;br /&gt;
* parallelize some modules, improve testing&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;
&lt;br /&gt;
* Add-on which offers basic hyperspectral data support in GRASS.&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 16&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;
=== 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;
* Preparing a new raster data analysis tool r.smooth for inclusion into GRASS core&lt;br /&gt;
* Discussing architecture of hyperspectral data import and per-processing tool&lt;br /&gt;
&lt;br /&gt;
=== Ondřej Pešek | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* Many things to fix/improve in g.gui.gmodeler, finally finish an addon for CNNs in GRASS&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;
* computational engine, APIs, funding, summit organization&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;
* mentoring, documentation&lt;br /&gt;
&lt;br /&gt;
=== Gregory Power | Town of Cary ===&lt;br /&gt;
&lt;br /&gt;
* Documentation&lt;br /&gt;
&lt;br /&gt;
=== Pratikshya Regmi | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* I plan to showcase my work on integrating LLM and GRASS GIS.&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;
* R package fasterRaster (fielding bug reports, adding features)&lt;br /&gt;
&lt;br /&gt;
Monday: Assessed scope of fasterRaster issue [https://github.com/adamlilith/fasterRaster/issues/83 83]&lt;br /&gt;
&lt;br /&gt;
=== Michelle (Mimi) Stephens ===&lt;br /&gt;
&lt;br /&gt;
* Coding and visualization&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;
== 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>Baharmon</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Talk:GRASS_Developer_Summit_Raleigh_2025&amp;diff=28317</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=28317"/>
		<updated>2025-05-20T14:04:11Z</updated>

		<summary type="html">&lt;p&gt;Baharmon: /* Brendan Harmon | Louisiana State University */&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;
&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;
| 8: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, deep dive into new documentation, 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 || Your topic here (10-minute presentation and 10-minute discussion)&lt;br /&gt;
|-&lt;br /&gt;
| 11:20-11:40 || Self-organized feedback sessions || Temporal framework global variables ([https://github.com/OSGeo/grass/issues/629]) - Laurent Courty&lt;br /&gt;
|-&lt;br /&gt;
| 11:40-12:00 || Self-organized feedback sessions || GSoC call&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 || 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 || Your topic here&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;
| 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 || 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;
| 10:00-11:00 || PSC meeting || Project Steering Committee meets (public).&lt;br /&gt;
|-&lt;br /&gt;
| 11:00-11:20 || Self-organized feedback session || Modernizing Color Tables (Brendan)&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 || Your topic here&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || Walk to [https://maps.app.goo.gl/kHVHY62QxTd6wHKd9 On the Oval Culinary Creatins]. 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;
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:00-9:00 || Breakfast || TBA. 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 || NSF POSE project evaluation, contributor community feedback.&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 || Your topic here&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || TBA. 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 || TBA. &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;
&lt;br /&gt;
=== Veronica Andreo | CONICET - Instituto Gulich ===&lt;br /&gt;
&lt;br /&gt;
* Plan: &lt;br /&gt;
** Review of temporal tutorials to push them to tutorials&lt;br /&gt;
** Sync branding between GRASS and tutorials websites&lt;br /&gt;
** GRASS project admin stuff &lt;br /&gt;
** Understand new docs contribution and building workflow&lt;br /&gt;
** Interface with R&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;
* Website footer enhancement&lt;br /&gt;
* Fix descriptions and their display in 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 post&lt;br /&gt;
* Discussion about hyperspectral with Alen and Anna&lt;br /&gt;
&lt;br /&gt;
=== Abdullah Azzam | New Mexico State University ===&lt;br /&gt;
&lt;br /&gt;
* r.runoff&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;
=== 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;
&lt;br /&gt;
=== Laurent Courty ===&lt;br /&gt;
&lt;br /&gt;
* An xarray backend for GRASS STRDS. Fixing related issues&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&lt;br /&gt;
• Discussed about the possible use case of LLM for helping users find tools&lt;br /&gt;
&lt;br /&gt;
=== Caitlin Haedrich | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* Jupyter API, event photographs&lt;br /&gt;
&lt;br /&gt;
=== Brendan Harmon | Louisiana State University ===&lt;br /&gt;
&lt;br /&gt;
* Developing ([https://github.com/baharmon/r.earthworks r.earthworks]) addon &amp;amp; tutorials&lt;br /&gt;
* [https://github.com/baharmon?tab=overview&amp;amp;from=2025-05-19&amp;amp;to=2025-05-24 GitHub activity]&lt;br /&gt;
&lt;br /&gt;
=== Linda Karlovska | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* I plan to work on GUI enhancements, particularly the Jupyter-style interactive page for enhanced scripting and visualization.&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;
&lt;br /&gt;
=== Nicklas Larsson | Hungarian National Museum ===&lt;br /&gt;
&lt;br /&gt;
* CMake build system; perhaps Conda recipe&lt;br /&gt;
&lt;br /&gt;
=== Chung-Yuan Liang ===&lt;br /&gt;
&lt;br /&gt;
* parallelize some modules, improve testing&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;
&lt;br /&gt;
* Add-on which offers basic hyperspectral data support in GRASS.&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 16&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;
=== 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;
* Preparing a new raster data analysis tool r.smooth for inclusion into GRASS core&lt;br /&gt;
* Discussing architecture of hyperspectral data import and per-processing tool&lt;br /&gt;
&lt;br /&gt;
=== Ondřej Pešek | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* Many things to fix/improve in g.gui.gmodeler, finally finish an addon for CNNs in GRASS&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;
* computational engine, APIs, funding, summit organization&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;
* mentoring, documentation&lt;br /&gt;
&lt;br /&gt;
=== Gregory Power | Town of Cary ===&lt;br /&gt;
&lt;br /&gt;
* Documentation&lt;br /&gt;
&lt;br /&gt;
=== Pratikshya Regmi | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* I plan to showcase my work on integrating LLM and GRASS GIS.&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;
* R package fasterRaster (fielding bug reports, adding features)&lt;br /&gt;
&lt;br /&gt;
Monday: Assessed scope of fasterRaster issue [https://github.com/adamlilith/fasterRaster/issues/83 83]&lt;br /&gt;
&lt;br /&gt;
=== Michelle (Mimi) Stephens ===&lt;br /&gt;
&lt;br /&gt;
* Coding and visualization&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;
== 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>Baharmon</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Talk:GRASS_Developer_Summit_Raleigh_2025&amp;diff=28316</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=28316"/>
		<updated>2025-05-20T14:01:57Z</updated>

		<summary type="html">&lt;p&gt;Baharmon: /* Brendan Harmon | Louisiana State University */&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;
&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;
| 8: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, deep dive into new documentation, 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 || Your topic here (10-minute presentation and 10-minute discussion)&lt;br /&gt;
|-&lt;br /&gt;
| 11:20-11:40 || Self-organized feedback sessions || Temporal framework global variables ([https://github.com/OSGeo/grass/issues/629]) - Laurent Courty&lt;br /&gt;
|-&lt;br /&gt;
| 11:40-12:00 || Self-organized feedback sessions || GSoC call&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 || 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 || Your topic here&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;
| 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 || 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;
| 10:00-11:00 || PSC meeting || Project Steering Committee meets (public).&lt;br /&gt;
|-&lt;br /&gt;
| 11:00-11:20 || Self-organized feedback session || Modernizing Color Tables (Brendan)&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 || Your topic here&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || Walk to [https://maps.app.goo.gl/kHVHY62QxTd6wHKd9 On the Oval Culinary Creatins]. 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;
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:00-9:00 || Breakfast || TBA. 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 || NSF POSE project evaluation, contributor community feedback.&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 || Your topic here&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || TBA. 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 || TBA. &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;
&lt;br /&gt;
=== Veronica Andreo | CONICET - Instituto Gulich ===&lt;br /&gt;
&lt;br /&gt;
* Plan: &lt;br /&gt;
** Review of temporal tutorials to push them to tutorials&lt;br /&gt;
** Sync branding between GRASS and tutorials websites&lt;br /&gt;
** GRASS project admin stuff &lt;br /&gt;
** Understand new docs contribution and building workflow&lt;br /&gt;
** Interface with R&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;
* Website footer enhancement&lt;br /&gt;
* Fix descriptions and their display in 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 post&lt;br /&gt;
* Discussion about hyperspectral with Alen and Anna&lt;br /&gt;
&lt;br /&gt;
=== Abdullah Azzam | New Mexico State University ===&lt;br /&gt;
&lt;br /&gt;
* r.runoff&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;
=== 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;
&lt;br /&gt;
=== Laurent Courty ===&lt;br /&gt;
&lt;br /&gt;
* An xarray backend for GRASS STRDS. Fixing related issues&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&lt;br /&gt;
• Discussed about the possible use case of LLM for helping users find tools&lt;br /&gt;
&lt;br /&gt;
=== Caitlin Haedrich | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* Jupyter API, event photographs&lt;br /&gt;
&lt;br /&gt;
=== Brendan Harmon | Louisiana State University ===&lt;br /&gt;
&lt;br /&gt;
* Plugin development (r.earthworks) &amp;amp; tutorials&lt;br /&gt;
* [GitHub activity](https://github.com/baharmon?tab=overview&amp;amp;from=2025-05-19&amp;amp;to=2025-05-24)&lt;br /&gt;
&lt;br /&gt;
=== Linda Karlovska | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* I plan to work on GUI enhancements, particularly the Jupyter-style interactive page for enhanced scripting and visualization.&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;
&lt;br /&gt;
=== Nicklas Larsson | Hungarian National Museum ===&lt;br /&gt;
&lt;br /&gt;
* CMake build system; perhaps Conda recipe&lt;br /&gt;
&lt;br /&gt;
=== Chung-Yuan Liang ===&lt;br /&gt;
&lt;br /&gt;
* parallelize some modules, improve testing&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;
&lt;br /&gt;
* Add-on which offers basic hyperspectral data support in GRASS.&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 16&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;
=== 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;
* Preparing a new raster data analysis tool r.smooth for inclusion into GRASS core&lt;br /&gt;
* Discussing architecture of hyperspectral data import and per-processing tool&lt;br /&gt;
&lt;br /&gt;
=== Ondřej Pešek | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* Many things to fix/improve in g.gui.gmodeler, finally finish an addon for CNNs in GRASS&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;
* computational engine, APIs, funding, summit organization&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;
* mentoring, documentation&lt;br /&gt;
&lt;br /&gt;
=== Gregory Power | Town of Cary ===&lt;br /&gt;
&lt;br /&gt;
* Documentation&lt;br /&gt;
&lt;br /&gt;
=== Pratikshya Regmi | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* I plan to showcase my work on integrating LLM and GRASS GIS.&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;
* R package fasterRaster (fielding bug reports, adding features)&lt;br /&gt;
&lt;br /&gt;
Monday: Assessed scope of fasterRaster issue [https://github.com/adamlilith/fasterRaster/issues/83 83]&lt;br /&gt;
&lt;br /&gt;
=== Michelle (Mimi) Stephens ===&lt;br /&gt;
&lt;br /&gt;
* Coding and visualization&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;
== 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>Baharmon</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Talk:GRASS_Developer_Summit_Raleigh_2025&amp;diff=28296</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=28296"/>
		<updated>2025-05-19T14:52:26Z</updated>

		<summary type="html">&lt;p&gt;Baharmon: /* Day 5, Friday, May 23 */&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;
&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 || Your topic here (10-minute presentation and 10-minute discussion)&lt;br /&gt;
|-&lt;br /&gt;
| 11:20-11:40 || Self-organized feedback sessions || Temporal framework global variables ([https://github.com/OSGeo/grass/issues/629]) - Laurent Courty&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 || 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 || Your topic here&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;
| 8: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, deep dive into new documentation, 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 || 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 || GSoC call&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 || 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 || Your topic here&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;
| 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 || 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;
| 10:00-11:00 || PSC meeting || Project Steering Committee meets (public).&lt;br /&gt;
|-&lt;br /&gt;
| 11:00-11:20 || Self-organized feedback session || Modernizing Color Tables (Brendan)&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 || Your topic here&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || Walk to [https://maps.app.goo.gl/kHVHY62QxTd6wHKd9 On the Oval Culinary Creatins]. 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;
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:00-9:00 || Breakfast || TBA. 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 || NSF POSE project evaluation, contributor community feedback.&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 || Your topic here&lt;br /&gt;
|-&lt;br /&gt;
| 12:00-13:00 || Lunch || TBA. 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 || TBA. &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;
&lt;br /&gt;
=== Veronica Andreo | CONICET - Instituto Gulich ===&lt;br /&gt;
&lt;br /&gt;
* Plan: &lt;br /&gt;
** Review of temporal tutorials to push them to tutorials&lt;br /&gt;
** Sync branding between GRASS and tutorials websites&lt;br /&gt;
** GRASS project admin stuff &lt;br /&gt;
** Understand new docs contribution and building workflow&lt;br /&gt;
** Interface with R&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;
&lt;br /&gt;
=== Abdullah Azzam | New Mexico State University ===&lt;br /&gt;
&lt;br /&gt;
* r.runoff&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;
* tutorial development&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;
=== 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;
=== Laurent Courty ===&lt;br /&gt;
&lt;br /&gt;
* An xarray backend for GRASS STRDS. Fixing related issues&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;
&lt;br /&gt;
=== Caitlin Haedrich | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* Jupyter API, event photographs&lt;br /&gt;
&lt;br /&gt;
=== Brendan Harmon | Louisiana State University ===&lt;br /&gt;
&lt;br /&gt;
* Plugin development (r.earthworks) &amp;amp; tutorials&lt;br /&gt;
&lt;br /&gt;
=== Linda Karlovska | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* I plan to work on GUI enhancements, particularly the Jupyter-style interactive page for enhanced scripting and visualization.&lt;br /&gt;
&lt;br /&gt;
=== Martin Landa | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* Graphical modeler, Python API, Windows builds&lt;br /&gt;
&lt;br /&gt;
=== Nicklas Larsson | Hungarian National Museum ===&lt;br /&gt;
&lt;br /&gt;
* CMake build system; perhaps Conda recipe&lt;br /&gt;
&lt;br /&gt;
=== Chung-Yuan Liang ===&lt;br /&gt;
&lt;br /&gt;
* parallelize some modules, improve testing&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;
&lt;br /&gt;
* Add-on which offers basic hyperspectral data support in GRASS.&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;
=== 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;
* Publish modules in progress.&lt;br /&gt;
&lt;br /&gt;
=== Ondřej Pešek | Czech Technical University in Prague ===&lt;br /&gt;
&lt;br /&gt;
* Many things to fix/improve in g.gui.gmodeler, finally finish an addon for CNNs in GRASS&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;
* computational engine, APIs, funding, summit organization&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;
* mentoring, documentation&lt;br /&gt;
&lt;br /&gt;
=== Gregory Power | Town of Cary ===&lt;br /&gt;
&lt;br /&gt;
* Documentation&lt;br /&gt;
&lt;br /&gt;
=== Pratikshya Regmi | NC State University ===&lt;br /&gt;
&lt;br /&gt;
* I plan to showcase my work on integrating LLM and GRASS GIS.&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;
* R package fasterRaster (fielding bug reports, adding features)&lt;br /&gt;
&lt;br /&gt;
=== Michelle (Mimi) Stephens ===&lt;br /&gt;
&lt;br /&gt;
* Coding and visualization&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;
== 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>Baharmon</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Color_tables&amp;diff=28128</id>
		<title>Color tables</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Color_tables&amp;diff=28128"/>
		<updated>2025-02-18T23:12:51Z</updated>

		<summary type="html">&lt;p&gt;Baharmon: Update color link from cvn to GitHub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
Color tables live in &amp;lt;tt&amp;gt;$GISBASE/etc/colors&amp;lt;/tt&amp;gt; (see [https://github.com/OSGeo/grass/tree/main/lib/gis/colors github])&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.colors}} ({{cmd|r.colors}} manual in GRASS 7 has colors tables embedded as well as the GUI dialog)&lt;br /&gt;
* {{cmd|r.colors.stddev}} ([http://hamish.bowman.googlepages.com/grass_color_maps samples])&lt;br /&gt;
* {{cmd|r.colors.out}}&lt;br /&gt;
* {{cmd|r3.colors}}&lt;br /&gt;
* {{cmd|r3.colors.out}}&lt;br /&gt;
* {{cmd|v.colors}}&lt;br /&gt;
* {{cmd|v.colors.out}}&lt;br /&gt;
&lt;br /&gt;
* {{cmd|d.legend}}&lt;br /&gt;
* {{cmd|d.colortable}}&lt;br /&gt;
&lt;br /&gt;
=== Addons ===&lt;br /&gt;
&lt;br /&gt;
* User contributed color rules in the [https://trac.osgeo.org/grass/browser/grass-addons/grass6/raster/r.colors.tools/palettes GRASS Addons repository]&lt;br /&gt;
* Convert from [[GMT]] color tables with {{AddonCmd|r.cpt2grass}}&lt;br /&gt;
* Use {{AddonCmd|r.colors.quantiles}} to create raster colors rules based on ''n''-quantiles. It uses the [[GRASS_and_Rstat|R and the spgrass6 package]].&lt;br /&gt;
* Use {{AddonCmd|r.colors.out_sld}} to export GRASS raster colors rules in OGC SLD template v1.0.0 XML format for Geoserver and the ilk&lt;br /&gt;
* Use {{AddonCmd|r.colors.out_vtk}} to export GRASS raster colors rules for use with VTK-based visualization software.&lt;br /&gt;
&lt;br /&gt;
== Repositories ==&lt;br /&gt;
&lt;br /&gt;
* There is an online colormap repository with many fine [[GMT]] (and many others) gradients at &lt;br /&gt;
: http://soliton.vm.bytemark.co.uk/pub/cpt-city/&lt;br /&gt;
&lt;br /&gt;
* There are a number of command line tools for working with the GMT .cpt files at&lt;br /&gt;
: http://soliton.vm.bytemark.co.uk/pub/jjg/en/code/cptutils/&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
=== Built in ===&lt;br /&gt;
&lt;br /&gt;
The numeric values of following color tables can be found in the [https://github.com/OSGeo/grass/tree/main/lib/gis/colors here]&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_aspect.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_aspectcolr.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_bcyr.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_bgyr.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_byg.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_byr.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_celsius.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:Colortable_corine.png|center]] --&amp;gt;&lt;br /&gt;
[[Image:Colortable_corine_clc.gcolors.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_curvature.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_differences.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_elevation.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_etopo2.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_evi.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_grey.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_grey1.0.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_grey255.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_gyr.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_haxby.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_ndvi.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_population.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_precipitation.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_rainbow.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_ramp.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_ryb.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_ryg.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_sepia.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_slope.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_srtm.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_terrain.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_wave.png|center]]&lt;br /&gt;
&lt;br /&gt;
=== Addons ===&lt;br /&gt;
&lt;br /&gt;
These user contributions can be found in the [https://trac.osgeo.org/grass/browser/grass-addons/grass6/raster/r.colors.tools/palettes GRASS addons SVN repository]&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_palette_chl_etc.gcolors.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_palette_sst.gcolors.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_palette_GMT_ocean.gcolors.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_palette_roygbiv.gcolors.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_palette_high_intensity.gcolors.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Colortable_palette_low_intensity.gcolors.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* ''The script used to create these thumbnails can be found on the [[Talk:Color_tables|discussion page]].''&lt;br /&gt;
&lt;br /&gt;
== Using GRASS color palettes in QGIS == &lt;br /&gt;
&lt;br /&gt;
Most of them can already be found there, you just have to hunt for them. In the raster layer properties window's style tab, select &amp;quot;Singleband pseudocolor&amp;quot; as the type, &amp;quot;Generate new color map&amp;quot;, &amp;quot;New color ramp&amp;quot;, for ramp type choose &amp;quot;cpt-city&amp;quot;, change to the &amp;quot;Sort by Author&amp;quot; tab, and look for &amp;quot;grass&amp;quot;. They can also be found in the QGIS section cpt-city's QGIS theme.&lt;br /&gt;
&lt;br /&gt;
If there's a new set of color rules which are not in [[QGIS]], you can prepare a .svg palette file for use with QGIS using the following commands. Consider to then open a ticket in the QGIS issue tracker asking them to add it (and attach the file of course to save someone some work :)&lt;br /&gt;
&lt;br /&gt;
You will need the [http://soliton.vm.bytemark.co.uk/pub/jjg/en/code/cptutils/ ''cptsvg'' command line tool from cptutils] and the GRASS 6 addon module {{AddonCmd|r.out.gmt|version=64}}.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 g.region n=100 s=0 w=0 e=100 res=1&lt;br /&gt;
 r.mapcalc &amp;quot;dummy = row()&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 r.colors dummy color=roygbiv&lt;br /&gt;
 r.out.gmt dummy out=roygbiv&lt;br /&gt;
 rm roygbiv.grd&lt;br /&gt;
 cptsvg --geometry=300x45 -o roygbiv.svg -v roygbiv.cpt&lt;br /&gt;
 &lt;br /&gt;
 r.colors dummy rules=~/grass/svn/grass-addons/grass6/raster/r.colors.tools/palettes/palette_sst.gcolors&lt;br /&gt;
 r.out.gmt dummy out=palette_sst&lt;br /&gt;
 rm palette_sst.grd&lt;br /&gt;
 cptsvg --geometry=300x45 -o palette_sst.svg -v palette_sst.cpt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can then copy the resulting .svg file into &amp;lt;tt&amp;gt;/usr/share/qgis/resources/cpt-city-qgis-min/grass/&amp;lt;/tt&amp;gt; on Linux (or &amp;lt;tt&amp;gt;C:\Program&amp;amp;nbsp;Files\QGIS&amp;amp;nbsp;VERSION\apps\qgis\resources\cpt-city-qgis-min\grass\&amp;lt;/tt&amp;gt; on MS Windows).&lt;br /&gt;
&lt;br /&gt;
Another solution to export raster color tables is to slightly tweak the output of {{Cmd|r.colors.out}}, in order to provide QGIS with a regular color chart source file. It might be handy when dealing with maps produced by {{Cmd|r.composite}}, i.e. unregistered color charts. The example bellow may be adapted to ones needs (here the alpha channel defaults to 255):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
r.colors.out map=my_raster rules=~/in.colors&lt;br /&gt;
cat in.colors|sed 's/:/,/'g|sed 's/ /,/'g|awk 'BEGIN {FS=&amp;quot;,&amp;quot;;OFS=&amp;quot;,&amp;quot;};{print $1,$2,$3,$4,255,$1}'&amp;gt;out.colors&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Loading QGIS color palettes into GRASS ==&lt;br /&gt;
&lt;br /&gt;
The GRASS GIS addon module {{AddonCmd|r.cpt2grass|version=7}} can be used after the ''svgx'' command line program from the &amp;lt;tt&amp;gt;cptutils&amp;lt;/tt&amp;gt; package, using [[GMT]]'s .cpt color table format as a go-between:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 svgx --output dkbluered.cpt --type cpt  /usr/share/qgis/resources/cpt-city-qgis-min/h5/dkbluered.svg&lt;br /&gt;
 r.cpt2grass in=dkbluered.cpt output=dkbluered.gcolors&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can then use the *.gcolors file with the {{Cmd|r.colors}} rules= option (or set the color rules directly from the ''r.cpt2grass'' module).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Colors]]&lt;br /&gt;
[[Category: VTK]]&lt;br /&gt;
[[Category: QGIS]]&lt;/div&gt;</summary>
		<author><name>Baharmon</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Python_Scripting_Library&amp;diff=28127</id>
		<title>GRASS Python Scripting Library</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Python_Scripting_Library&amp;diff=28127"/>
		<updated>2025-02-18T22:18:05Z</updated>

		<summary type="html">&lt;p&gt;Baharmon: /* Uses for read, feed and pipe, start and exec commands */ Fixed broken link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Python}}&lt;br /&gt;
Python API documentation:&lt;br /&gt;
&lt;br /&gt;
* [https://grass.osgeo.org/grass78/manuals/libpython/ Python API for GRASS GIS 7] and [http://grass.osgeo.org/grass78/manuals/libpython/script_intro.html Python Scripting Library]&lt;br /&gt;
* (old: [https://grass.osgeo.org/programming6/pythonlib.html for GRASS GIS 6]: core.py, db.py, raster.py, vector.py, setup.py, array.py task.py)&lt;br /&gt;
&lt;br /&gt;
The GRASS Python Scripting Library can be imported by statement&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
import grass.script as grass&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The other packages such as PyGRASS can be imported in a similar way.&lt;br /&gt;
&lt;br /&gt;
The code in {{src|lib/python/|lib/python}} provides &amp;lt;tt&amp;gt;grass.script&amp;lt;/tt&amp;gt; and other packages in order to support GRASS scripts written in Python. The {{src|scripts}} directory of GRASS GIS 7 contains a series of examples actually provided to the end users (while the script in GRASS GIS 6 are shell scripts).&lt;br /&gt;
&lt;br /&gt;
For more general info, see also [[GRASS and Python]] and see also [[Converting Bash scripts to Python]] if you have some Bash scripts you want to rewrite to Python.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Calling a GRASS module in Python ===&lt;br /&gt;
&lt;br /&gt;
Imagine, you wanted to execute this command in Python:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  r.profile -g input=mymap output=newfile profile=12244.256,-295112.597,12128.012,-295293.77&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All arguments except the first (which is a flag) are keyword arguments, i.e. &amp;lt;tt&amp;gt;arg = val&amp;lt;/tt&amp;gt;. For the flag, use &amp;lt;tt&amp;gt;flags = 'g'&amp;lt;/tt&amp;gt; (note that &amp;quot;-g&amp;quot; would be the negative of a Python variable named &amp;quot;g&amp;quot;!). So:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       grass.run_command('r.profile',&lt;br /&gt;
               input = input_map,&lt;br /&gt;
               output = output_file,&lt;br /&gt;
               profile = [12244.256,-295112.597,12128.012,-295293.77]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
               profile = [(12244.256,-295112.597),(12128.012,-295293.77)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i.e. you need to provide the keyword, and the argument must be a valid Python expression. Function &amp;lt;code&amp;gt;run_command()&amp;lt;/code&amp;gt; etc accept lists and tuples.&lt;br /&gt;
&lt;br /&gt;
'''What is the proper way to include keyword-arguments tuples?'''&lt;br /&gt;
&lt;br /&gt;
For example, &amp;quot;g.list -f type=rast,vect&amp;quot; translates into:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       import grass.script as grass&lt;br /&gt;
       grass.run_command(&amp;quot;g.list&amp;quot;, flags=&amp;quot;f&amp;quot;, type=&amp;quot;rast,vect&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       import grass.script as grass&lt;br /&gt;
       grass.run_command(&amp;quot;g.list&amp;quot;, flags=&amp;quot;f&amp;quot;, type=[&amp;quot;rast&amp;quot;,&amp;quot;vect&amp;quot;])&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The various *_command() functions accept arbitrary keyword arguments. Any keywords which don't have a specific meaning to either the *_command() function or the Popen constructor are treated as arguments to the GRASS module.&lt;br /&gt;
&lt;br /&gt;
'''What is the proper way to use multiple flags?'''&lt;br /&gt;
&lt;br /&gt;
How can I call a module with multiple flags set (e.g., -a and -b) in GRASS-Python?&lt;br /&gt;
&lt;br /&gt;
  flags = &amp;quot;ab&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       import grass.script as grass&lt;br /&gt;
       grass.run_command(&amp;quot;r.info&amp;quot;, flags=&amp;quot;eg&amp;quot;, map=[&amp;quot;elevation&amp;quot;])&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Differences between ''run_command()'' and ''read_command()'':'''&lt;br /&gt;
&lt;br /&gt;
* {{pyapi|script|script.core|run_command}} executes the command and waits for it to terminate; it doesn't redirect any of the standard streams.&lt;br /&gt;
* {{pyapi|script|script.core|read_command}} executes the command with stdout redirected to a pipe, and reads everything written to it. Once the command terminates, it returns the data written to stdout as a string.&lt;br /&gt;
&lt;br /&gt;
'''How to retrieve error messages from ''read_command()'':'''&lt;br /&gt;
&lt;br /&gt;
None of the existing *_command functions redirect stderr. You can do so with e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import grass.script as grass&lt;br /&gt;
&lt;br /&gt;
def read2_command(*args, **kwargs):&lt;br /&gt;
   kwargs['stdout'] = grass.PIPE&lt;br /&gt;
   kwargs['stderr'] = grass.PIPE&lt;br /&gt;
   ps = grass.start_command(*args, **kwargs)&lt;br /&gt;
   return ps.communicate()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This behaves like &amp;lt;tt&amp;gt;read_command()&amp;lt;/tt&amp;gt; except that it returns a tuple of (stdout, stderr) rather than just stdout.&lt;br /&gt;
&lt;br /&gt;
== Uses for read, feed and pipe, start and exec commands ==&lt;br /&gt;
&lt;br /&gt;
All of the &amp;lt;tt&amp;gt;*_command&amp;lt;/tt&amp;gt; functions use {{pyapi|script|script.core|make_command}} to construct a command&lt;br /&gt;
line for a program which uses the {{cmd|g.parser|desc=GRASS parser}}. Most of them then pass&lt;br /&gt;
that command line to &amp;lt;tt&amp;gt;subprocess.Popen()&amp;lt;/tt&amp;gt; via {{pyapi|script|script.core|start_command}}, except&lt;br /&gt;
for {{pyapi|script|script.core|exec_command}} which uses &amp;lt;tt&amp;gt;os.execvpe()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[To be precise, they use &amp;lt;tt&amp;gt;grass.Popen()&amp;lt;/tt&amp;gt;, which just calls&lt;br /&gt;
&amp;lt;tt&amp;gt;subprocess.Popen()&amp;lt;/tt&amp;gt; with 'shell=True' on Windows and 'shell=False'&lt;br /&gt;
otherwise. On Windows, you need to use 'shell=True' to be able to&lt;br /&gt;
execute scripts (including batch files); 'shell=False' only works with&lt;br /&gt;
binary executables.]&lt;br /&gt;
&lt;br /&gt;
{{pyapi|script|script.core|start_command}} separates the arguments into those which&lt;br /&gt;
&amp;lt;tt&amp;gt;subprocess.Popen()&amp;lt;/tt&amp;gt; understands and the rest. The rest are passed to&lt;br /&gt;
&amp;lt;tt&amp;gt;make_command()&amp;lt;/tt&amp;gt; to construct a command line which is passed as the&lt;br /&gt;
&amp;quot;args&amp;quot; parameter to &amp;lt;tt&amp;gt;subprocess.Popen()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In other words, {{pyapi|script|script.core|start_command}} is a GRASS-oriented interface to&lt;br /&gt;
&amp;lt;tt&amp;gt;subprocess.Popen()&amp;lt;/tt&amp;gt;. It should be suitable for any situation where you&lt;br /&gt;
would use &amp;lt;tt&amp;gt;subprocess.Popen()&amp;lt;/tt&amp;gt; to execute a normal GRASS command (one&lt;br /&gt;
which uses the GRASS parser, which is almost all of them; the main&lt;br /&gt;
exception is {{cmd|r.mapcalc}} in 6.x).&lt;br /&gt;
&lt;br /&gt;
Most of the others are convenience wrappers around &amp;lt;tt&amp;gt;start_command()&amp;lt;/tt&amp;gt;, for common use cases.&lt;br /&gt;
&lt;br /&gt;
* {{pyapi|script|script.core|run_command}} calls the wait() method on the process, so it doesn't return until the command has finished, and returns the command's exit code. Similar to &amp;lt;tt&amp;gt;system()&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* {{pyapi|script|script.core|pipe_command}} calls &amp;lt;tt&amp;gt;start_command()&amp;lt;/tt&amp;gt; with 'stdout=PIPE' and returns the process object. You can use the process' .stdout member to read the command's stdout. Similar to popen(..., &amp;quot;r&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
* {{pyapi|script|script.core|feed_command}} calls &amp;lt;tt&amp;gt;start_command()&amp;lt;/tt&amp;gt; with stdin=PIPE and returns the process object. You can use the process' .stdin member to write to the command's stdout. Similar to popen(..., &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
* {{pyapi|script|script.core|read_command}} calls &amp;lt;tt&amp;gt;pipe_command()&amp;lt;/tt&amp;gt;, reads the data from the command's stdout, and returns it as a string. Similar to `backticks` in the shell.&lt;br /&gt;
&lt;br /&gt;
* {{pyapi|script|script.core|write_command}} calls &amp;lt;tt&amp;gt;feed_command()&amp;lt;/tt&amp;gt;, sends the string specified by the &amp;quot;stdin&amp;quot; argument to the command's stdin, waits for the command to finish and returns its exit code. Similar to &amp;quot;echo ... | command&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* {{pyapi|script|script.core|parse_command}} calls &amp;lt;tt&amp;gt;read_command()&amp;lt;/tt&amp;gt; and parses its output as key-value pairs. Useful for obtaining information from {{cmd|g.region}}, {{cmd|g.proj}}, {{cmd|r.info}}, etc.&lt;br /&gt;
&lt;br /&gt;
* {{pyapi|script|script.core|exec_command}} doesn't use &amp;lt;tt&amp;gt;start_command()&amp;lt;/tt&amp;gt; but &amp;lt;tt&amp;gt;os.execvpe()&amp;lt;/tt&amp;gt;. This causes the specified command to replace the current program (i.e. the Python script), so &amp;lt;tt&amp;gt;exec_command()&amp;lt;/tt&amp;gt; never returns. Similar to bash's &amp;quot;exec&amp;quot; command. This can be useful if the script is a &amp;quot;wrapper&amp;quot; around a single command, where you construct the command line and execute the command as the final step. Notes: exec_command() is rarely appropriate. You probably want run_command() instead. On Windows, exec_command() will probably require the &amp;quot;.exe&amp;quot; suffix.&lt;br /&gt;
&lt;br /&gt;
If you have any other questions, you might want to look at the code ({{src|python/grass/script/core.py}}). Most of these functions are only a few lines long.&lt;br /&gt;
&lt;br /&gt;
=== Hints for parse_command() ===&lt;br /&gt;
&lt;br /&gt;
To turn this command&lt;br /&gt;
        g.rename raster=old_name,new_name&lt;br /&gt;
into a g.parse_command() call, you need to consider that it is a function call with three arguments:&lt;br /&gt;
# &amp;quot;g.rename&amp;quot;&lt;br /&gt;
# raster=old_name&lt;br /&gt;
# new_name&lt;br /&gt;
&lt;br /&gt;
The second argument is a keyword argument, the first and third are&lt;br /&gt;
positional (non-keyword) arguments. Python doesn't allow positional&lt;br /&gt;
arguments to follow keyword arguments; positional arguments come&lt;br /&gt;
first, keyword arguments last.&lt;br /&gt;
&lt;br /&gt;
Given the context, it's safe to assume that you want to pass a pair of&lt;br /&gt;
map names as the value to the rast= option. This requires explicit&lt;br /&gt;
parentheses so that the comma is treated as forming a tuple rather&lt;br /&gt;
than as an argument separator:&lt;br /&gt;
&lt;br /&gt;
        g.parse_command(&amp;quot;g.rename&amp;quot;, raster=(old_name,new_name))&lt;br /&gt;
&lt;br /&gt;
The parentheses in a tuple value can only be omitted if it doesn't&lt;br /&gt;
result in the comma being ambiguous (as is the case in a function&lt;br /&gt;
call).&lt;br /&gt;
&lt;br /&gt;
== Interfacing ==&lt;br /&gt;
&lt;br /&gt;
=== Interfacing with NumPy ===&lt;br /&gt;
&lt;br /&gt;
The {{pyapi|script|script.array|array}} module defines a &amp;lt;code&amp;gt;class array&amp;lt;/code&amp;gt; which is a subclass of [http://docs.scipy.org/doc/numpy/reference/generated/numpy.memmap.html numpy.memmap] that reads/writes the underlying file via {{cmd|r.out.bin}}/{{cmd|r.in.bin}}. Metadata can be read with {{pyapi|script|script.raster|raster_info}}:&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import grass.script as grass&lt;br /&gt;
import grass.script.array as garray&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    map = &amp;quot;elevation&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # read map&lt;br /&gt;
    a = garray.array(map)&lt;br /&gt;
&lt;br /&gt;
    # get raster map info&lt;br /&gt;
    print(grass.raster_info(map)['datatype'])&lt;br /&gt;
    i = grass.raster_info(map)&lt;br /&gt;
    &lt;br /&gt;
    # get computational region info&lt;br /&gt;
    c = grass.region()&lt;br /&gt;
    print(&amp;quot;rows: %d&amp;quot; % c['rows'])&lt;br /&gt;
    print(&amp;quot;cols: %d&amp;quot; % c['cols'])&lt;br /&gt;
&lt;br /&gt;
    # new array for result&lt;br /&gt;
    b = garray.array()&lt;br /&gt;
    # calculate new map from input map and store as GRASS raster map&lt;br /&gt;
    b[...] = (a / 50).astype(int) * 50&lt;br /&gt;
    b.write(&amp;quot;elev.50m&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The size of the array is taken from the current region ([[computational region]]).&lt;br /&gt;
&lt;br /&gt;
The main drawback of using numpy is that you're limited by available&lt;br /&gt;
memory. Using a subclass of &amp;lt;code&amp;gt;numpy.memmap&amp;lt;/code&amp;gt; lets you use files which may&lt;br /&gt;
be much larger, but processing the entire array in one go is likely to&lt;br /&gt;
produce in-memory results of a similar size.&lt;br /&gt;
&lt;br /&gt;
'''NULL (no data) management:'''&lt;br /&gt;
&lt;br /&gt;
For integer maps, the NULL value is -2^31 = -2147483648. For floating-point maps, the NULL value is NaN. Note that the null= parameter for read() and write() specifies the value in the numpy array which is mapped to/from null values in the GRASS raster map.&lt;br /&gt;
&lt;br /&gt;
If you're using floating-point numpy arrays, then use (Note: This assumes that atof() and sscanf(&amp;quot;%lf&amp;quot;) recognise &amp;quot;nan&amp;quot;; this is the case on Linux, but doesn't appear to work on Windows)&lt;br /&gt;
 null=numpy.nan&lt;br /&gt;
&lt;br /&gt;
For integer arrays, using&lt;br /&gt;
 null=-2147483648&lt;br /&gt;
will ensure that valid values don't collide with NYLLs.&lt;br /&gt;
&lt;br /&gt;
'''MASK support:'''&lt;br /&gt;
&lt;br /&gt;
Reading and writing use r.out.bin and r.in.bin respectively. r.out.bin respects the MASK.&lt;br /&gt;
&lt;br /&gt;
=== Interfacing with NumPy and SciPy  ===&lt;br /&gt;
&lt;br /&gt;
[http://docs.scipy.org/doc/scipy/reference/index.html SciPy] offers simple access to complex calculations. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from scipy import stats&lt;br /&gt;
import grass.script as grass&lt;br /&gt;
import grass.script.array as garray&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    map = &amp;quot;elevation&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    x = garray.array(map)&lt;br /&gt;
&lt;br /&gt;
    # Descriptive Statistics:&lt;br /&gt;
    print(&amp;quot;max, min, mean, var:&amp;quot;)&lt;br /&gt;
    print(x.max(), x.min(), x.mean(), x.var())&lt;br /&gt;
    print(&amp;quot;Skewness test: z-score and 2-sided p-value:&amp;quot;)&lt;br /&gt;
    print(stats.skewtest(stats.skew(x)))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interfacing with NumPy, SciPy and Matlab ===&lt;br /&gt;
&lt;br /&gt;
One may also use the SciPy - Matlab interface:&lt;br /&gt;
    &lt;br /&gt;
    r.out.mat input=elevation output=elev.mat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
    ### PY ###&lt;br /&gt;
    import scipy.io as sio&lt;br /&gt;
    # load data&lt;br /&gt;
    elev = sio.loadmat('elev.mat')&lt;br /&gt;
    # retrive the actual array. the data set contains also the spatial reference&lt;br /&gt;
    elev.get('map_data')&lt;br /&gt;
    data = elev.get('map_data')&lt;br /&gt;
    # a first simple plot&lt;br /&gt;
    import pylab&lt;br /&gt;
    pylab.plot(data)&lt;br /&gt;
    pylab.show()&lt;br /&gt;
    # the contour plot&lt;br /&gt;
    pylab.contour(data)&lt;br /&gt;
    # obviously data needs to ne reversed&lt;br /&gt;
    import numpy as np&lt;br /&gt;
    data_rev = data[::-1]&lt;br /&gt;
    pylab.contour(data_rev)&lt;br /&gt;
    # =&amp;gt; this is a quick plot. basemap mapping may provide a nicer map!&lt;br /&gt;
    #######&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Display example ===&lt;br /&gt;
Example of Python script, which is processed by {{cmd|g.parser}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
#&lt;br /&gt;
############################################################################&lt;br /&gt;
#&lt;br /&gt;
# MODULE:      d.shadedmap&lt;br /&gt;
# AUTHOR(S):   Unknown; updated to GRASS 5.7 by Michael Barton&lt;br /&gt;
#              Converted to Python by Glynn Clements&lt;br /&gt;
# PURPOSE:     Uses d.his to drape a color raster over a shaded relief map&lt;br /&gt;
# COPYRIGHT:   (C) 2004,2008,2009 by the GRASS Development Team&lt;br /&gt;
#&lt;br /&gt;
#              This program is free software under the GNU General Public&lt;br /&gt;
#              License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
#              for details.&lt;br /&gt;
#&lt;br /&gt;
#############################################################################&lt;br /&gt;
&lt;br /&gt;
#%Module&lt;br /&gt;
#% description: Drapes a color raster over a shaded relief map using d.his&lt;br /&gt;
#% keyword: display&lt;br /&gt;
#% keyword: raster&lt;br /&gt;
#%End&lt;br /&gt;
#%option&lt;br /&gt;
#% key: reliefmap&lt;br /&gt;
#% type: string&lt;br /&gt;
#% gisprompt: old,cell,raster&lt;br /&gt;
#% description: Name of shaded relief or aspect map&lt;br /&gt;
#% required : yes&lt;br /&gt;
#%end&lt;br /&gt;
#%option&lt;br /&gt;
#% key: drapemap&lt;br /&gt;
#% type: string&lt;br /&gt;
#% gisprompt: old,cell,raster&lt;br /&gt;
#% description: Name of raster to drape over relief map&lt;br /&gt;
#% required : yes&lt;br /&gt;
#%end&lt;br /&gt;
#%option&lt;br /&gt;
#% key: brighten&lt;br /&gt;
#% type: integer&lt;br /&gt;
#% description: Percent to brighten&lt;br /&gt;
#% options: -99-99&lt;br /&gt;
#% answer: 0&lt;br /&gt;
#%end&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
from grass.script import core as grass&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    drape_map = options['drapemap']&lt;br /&gt;
    relief_map = options['reliefmap']&lt;br /&gt;
    brighten = options['brighten']&lt;br /&gt;
    ret = grass.run_command(&amp;quot;d.his&amp;quot;, h_map = drape_map,  i_map = relief_map, brighten = brighten)&lt;br /&gt;
    sys.exit(ret)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    options, flags = grass.parser()&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parsing the options and flags  ===&lt;br /&gt;
&lt;br /&gt;
{{pyapi|script|script.core|parser}} is an interface to {{cmd|g.parser}}, and allows to parse the ''options'' and ''flags'' passed to your script on the command line. It is to be called at the top-level:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    options, flags = grass.parser()&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global variables &amp;quot;options&amp;quot; and &amp;quot;flags&amp;quot; are Python dictionaries containing the options/flags values, keyed by lower-case option/flag names. The values in &amp;quot;options&amp;quot; are strings, those in &amp;quot;flags&amp;quot; are Python booleans. All those variables have to be previously declared in the header of your script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; options, flags = grass.parser()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; options&lt;br /&gt;
{'input': 'my_map', 'output': 'map_out', 'option1': '21.472', 'option2': ''}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; flags&lt;br /&gt;
{'c': True, 'm': False}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Accessing the --quiet and --verbose flags:'''&lt;br /&gt;
&lt;br /&gt;
See {{pyapi|script|script.core|verbosity}} for the 5 verbosity levels:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from grass.script import core as grass&lt;br /&gt;
&lt;br /&gt;
# to hide non-error messages from subprocesses&lt;br /&gt;
if grass.verbosity() &amp;lt;= 2:&lt;br /&gt;
    outdev = open(os.devnull, 'w')&lt;br /&gt;
else:&lt;br /&gt;
    outdev = sys.stdout&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parsing tabular text output ===&lt;br /&gt;
&lt;br /&gt;
Examples in Python for configurable separator for parsing their tabular text output:&lt;br /&gt;
&lt;br /&gt;
* {{src|scripts/m.proj/m.proj.py}}&lt;br /&gt;
* {{src|scripts/v.report/v.report.py}}&lt;br /&gt;
* {{src|scripts/r.out.xyz/r.out.xyz.py}}&lt;br /&gt;
* {{src|scripts/r.tileset/r.tileset.py}}&lt;br /&gt;
&lt;br /&gt;
=== Passing several floats to a single option ===&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
python my.module.py input=input output=output myoption=0.1,0.2,0.5&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The values in the &amp;quot;options&amp;quot; dictionary returned from the parser()&lt;br /&gt;
function are always strings. You can parse the string with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
        myoption = map(float, options['myoption'].split(','))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The option definition in the script should have:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
        #% type: double&lt;br /&gt;
        #% multiple: yes&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows g.parser to validate the option syntax, so you can rely&lt;br /&gt;
upon the string being in the correct format. If the values have a&lt;br /&gt;
fixed range, you can use e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
        #% options: 0.0-1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to have the parser check that the values fall within the range.&lt;br /&gt;
&lt;br /&gt;
For more information on option definitions, see:&lt;br /&gt;
&lt;br /&gt;
https://grass.osgeo.org/programming7/gislib.html#Complete_Structure_Members_Table&lt;br /&gt;
&lt;br /&gt;
=== Example for embedding r.mapcalc (map algebra) ===&lt;br /&gt;
&lt;br /&gt;
{{pyapi|script|script.raster|mapcalc}} accepts a template string followed by keyword&lt;br /&gt;
arguments for the substitutions, e.g. (code snippets):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
grass.mapcalc(&amp;quot;${out} = ${rast1} + ${rast2}&amp;quot;,&lt;br /&gt;
              out = options['output'],&lt;br /&gt;
              rast1 = options['raster1'],&lt;br /&gt;
              rast2 = options['raster2'])&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Best practice'': first copy all of the options[] into separate variables at the beginning of main(), i.e.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    output = options['output']&lt;br /&gt;
    raster1 = options['raster1']&lt;br /&gt;
    raster2 = options['raster2']&lt;br /&gt;
 &lt;br /&gt;
    ...&lt;br /&gt;
 &lt;br /&gt;
    grass.mapcalc(&amp;quot;${out} = ${rast1} + ${rast2}&amp;quot;,&lt;br /&gt;
                  out = output,&lt;br /&gt;
                  rast1 = raster1,&lt;br /&gt;
                  rast2 = raster2)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Performing multiple computations using &amp;lt;tt&amp;gt;grass.script.raster.mapcalc()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
expr = &amp;quot;;&amp;quot;.join([&lt;br /&gt;
        &amp;quot;$out.r = r#$first * $frac + (1.0 - $frac) * r#$second&amp;quot;,&lt;br /&gt;
        &amp;quot;$out.g = g#$first * $frac + (1.0 - $frac) * g#$second&amp;quot;,&lt;br /&gt;
        &amp;quot;$out.b = b#$first * $frac + (1.0 - $frac) * b#$second&amp;quot;])&lt;br /&gt;
grass.mapcalc(expr, out=out, first=first, second=second, frac=percent/100.0)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hint: multi-line strings can be separated by using a semicolon instead of a newline.&lt;br /&gt;
&lt;br /&gt;
=== Looping over file names stored in an ASCII file ===&lt;br /&gt;
&lt;br /&gt;
When looping over file names stored in an ASCII file and getting the error&lt;br /&gt;
&lt;br /&gt;
   WARNING: Illegal filename &amp;lt;map.f1jan.05216.something&lt;br /&gt;
          &amp;gt;. Character &amp;lt;&lt;br /&gt;
          &amp;gt; not allowed.&lt;br /&gt;
&lt;br /&gt;
then the line terminators may be the reason.&lt;br /&gt;
When you iterate over a file, the strings include the line terminators (e.g. '\n' or '\r\n'). Use e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
    for line in gl:&lt;br /&gt;
        renamed = line.rstrip().replace('.','_')&lt;br /&gt;
        ...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to remove any trailing whitespace (including newlines) from each line.&lt;br /&gt;
&lt;br /&gt;
=== Example for parsing raster category labels ===&lt;br /&gt;
&lt;br /&gt;
How to obtain the text labels&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
    # dump cats to file to avoid &amp;quot;too many argument&amp;quot; problem:&lt;br /&gt;
    p = grass.pipe_command('r.category', map = rastertmp, separator = ';', quiet = True)&lt;br /&gt;
    cats = []&lt;br /&gt;
    for line in p.stdout:&lt;br /&gt;
        cats.append(line.rstrip('\r\n').split(';')[0])&lt;br /&gt;
    p.wait()&lt;br /&gt;
&lt;br /&gt;
    number = len(cats)&lt;br /&gt;
    if number &amp;lt; 1:&lt;br /&gt;
        grass.fatal(_(&amp;quot;No categories found in raster map&amp;quot;))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example for parsing category numbers ===&lt;br /&gt;
&lt;br /&gt;
'''Q:''' How to obtain the number of cells of a certain category?&lt;br /&gt;
&lt;br /&gt;
'''A:''' It is recommended to use {{pyapi|script|script.core|pipe_command}} and parse the output, e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       p = grass.pipe_command('r.stats',flags='c',input='map')&lt;br /&gt;
       result = {}&lt;br /&gt;
       for line in p.stdout:&lt;br /&gt;
           val,count = line.strip().split()&lt;br /&gt;
           result[int(val)] = int(count)&lt;br /&gt;
       p.wait()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example for parsing the region output of a module ===&lt;br /&gt;
&lt;br /&gt;
Some of the GRASS GIS modules are delivering region information (e.g. {{cmd|r.in.xyz}} which scans a LiDAR file for the extent of the point cloud). The retrieved region settings (using '''-g''' flag for script style output) can be parsed in Python:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import os&lt;br /&gt;
from grass.script import core as gcore&lt;br /&gt;
&lt;br /&gt;
from grass.pygrass.modules.shortcuts import general as g&lt;br /&gt;
from grass.pygrass.modules.shortcuts import raster as r&lt;br /&gt;
&lt;br /&gt;
# scan a LiDAR xyz point file for its extent&lt;br /&gt;
compregion = gcore.parse_command(&amp;quot;r.in.xyz&amp;quot;, input=&amp;quot;tmp.xyz&amp;quot;, separator=&amp;quot;space&amp;quot;, flags=&amp;quot;sg&amp;quot;, output=&amp;quot;bbox&amp;quot;,&lt;br /&gt;
                                  parse=(gcore.parse_key_val, {'sep': '=', 'vsep': ' '}))&lt;br /&gt;
print(compregion)&lt;br /&gt;
# set computational region from LiDAR extent&lt;br /&gt;
# hint: we turn here the dictionary to a region by unpacking the dictionary:&lt;br /&gt;
g.region(res=&amp;quot;1&amp;quot;, flags=&amp;quot;p&amp;quot;, **compregion)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the two '''*''' above which unpack the dictionary (see also the related [https://docs.python.org/2/tutorial/controlflow.html#keyword-arguments Python manual] page).&lt;br /&gt;
&lt;br /&gt;
=== Example for getting the region's number of rows and columns ===&lt;br /&gt;
&lt;br /&gt;
'''Q:''' How to obtain the number of rows and columns of the current region?&lt;br /&gt;
&lt;br /&gt;
'''A:''' It is recommended to use the {{pyapi|script|script.core|region}} function which will create a dictionary with values for extents and resolution, e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
#-*- coding:utf-8 -*-&lt;br /&gt;
#&lt;br /&gt;
############################################################################&lt;br /&gt;
#&lt;br /&gt;
# MODULE:       g.region.resolution&lt;br /&gt;
# AUTHOR(S):    based on a post at GRASS-USER mailing list [1]               &lt;br /&gt;
# PURPOSE:	Parses &amp;quot;g.region -g&amp;quot;, prints out number of rows, cols&lt;br /&gt;
# COPYLEFT:     ;-)&lt;br /&gt;
# COMMENT:      ...a lot of comments to be easy-to-read for/by beginners&lt;br /&gt;
#&lt;br /&gt;
#############################################################################&lt;br /&gt;
#&lt;br /&gt;
#%Module&lt;br /&gt;
#% description: Print number of rows, cols of current geographic region&lt;br /&gt;
#% keyword: region&lt;br /&gt;
#%end&lt;br /&gt;
&lt;br /&gt;
# importing required modules&lt;br /&gt;
import sys # the sys module [2]&lt;br /&gt;
from grass.script import core as grass # the core module [3]&lt;br /&gt;
&lt;br /&gt;
# information about imported modules can be obtained using the dir() function&lt;br /&gt;
# e.g.: dir(sys)&lt;br /&gt;
&lt;br /&gt;
# define the &amp;quot;main&amp;quot; function: get number of rows, cols of region&lt;br /&gt;
def main():&lt;br /&gt;
    &lt;br /&gt;
    # #######################################################################&lt;br /&gt;
    # the following commented code works but is kept only for learning purposes&lt;br /&gt;
     &lt;br /&gt;
    ## assigning the output of the command &amp;quot;g.region -g&amp;quot; in a string called &amp;quot;return_rows_x_cols&amp;quot;&lt;br /&gt;
    # return_rows_x_cols = grass.read_command('g.region', flags = 'g')&lt;br /&gt;
    &lt;br /&gt;
    ## parsing arguments of interest (rows, cols) in a dictionary named &amp;quot;rows_x_cols&amp;quot;&lt;br /&gt;
    # rows_x_cols = grass.parse_key_val(return_rows_x_cols)&lt;br /&gt;
    &lt;br /&gt;
    ## selectively print rows, cols from the dictionary &amp;quot;rows_x_cols&amp;quot;&lt;br /&gt;
    # print 'rows=%d \ncols=%d' % (int(rows_x_cols['rows']), int(rows_x_cols['cols']))&lt;br /&gt;
    &lt;br /&gt;
    # #######################################################################&lt;br /&gt;
    &lt;br /&gt;
    # faster/ easier way: use of the &amp;quot;grass.region()&amp;quot; function&lt;br /&gt;
    gregion = grass.region()&lt;br /&gt;
    rows = gregion['rows']&lt;br /&gt;
    cols = gregion['cols']&lt;br /&gt;
    &lt;br /&gt;
    # print rows, cols properly formatted &lt;br /&gt;
    print 'rows=%d \ncols=%d' % (rows, cols)&lt;br /&gt;
&lt;br /&gt;
    # average resolution (in case of non-square pixels)&lt;br /&gt;
    avg_res=(gregion['nsres'] + gregion['ewres']) / 2.0&lt;br /&gt;
&lt;br /&gt;
# this &amp;quot;if&amp;quot; condition instructs execution of code contained in this script, *only* if the script is being executed directly &lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;: # this allows the script to be used as a module in other scripts or as a standalone script&lt;br /&gt;
    options, flags = grass.parser() #&lt;br /&gt;
    sys.exit(main()) #&lt;br /&gt;
&lt;br /&gt;
# Links&lt;br /&gt;
# [1] http://n2.nabble.com/Getting-rows-cols-of-a-region-in-a-script-tp2787474p2787509.html&lt;br /&gt;
# [2] http://www.python.org/doc/2.5.2/lib/module-sys.html&lt;br /&gt;
# [3] https://grass.osgeo.org/grass78/manuals/libpython&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Managing mapsets ===&lt;br /&gt;
&lt;br /&gt;
To check if a certain mapset exists in the active location, use {{pyapi|script|script.core|mapsets}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       grass.mapsets(False)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... returns a list of mapsets in the current location.&lt;br /&gt;
&lt;br /&gt;
=== r.mapcalc example ===&lt;br /&gt;
&lt;br /&gt;
Example of Python script, which is processed by {{cmd|g.parser}}:&lt;br /&gt;
&lt;br /&gt;
The shell script line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  r.mapcalc &amp;quot;MASK = if(($cloudResampName &amp;lt; 0.01000),1,null())&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
would be written like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       import grass.script as grass&lt;br /&gt;
&lt;br /&gt;
       ...&lt;br /&gt;
&lt;br /&gt;
       grass.mapcalc(&amp;quot;MASK=if(($cloudResampName &amp;lt; 0.01000),1,null())&amp;quot;,&lt;br /&gt;
                     cloudResampName = cloudResampName)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first argument to the mapcalc function is a template (see the Python library documentation for [http://docs.python.org/library/string.html string.Template]). Any keyword arguments (other than &amp;lt;tt&amp;gt;quiet&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;verbose&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;overwrite&amp;lt;/tt&amp;gt;) specify substitutions.&lt;br /&gt;
&lt;br /&gt;
=== r.mapcalc example: defining a moving window ===&lt;br /&gt;
&lt;br /&gt;
Moving window of 4 cell in every 8 direction and do a boolean comparison. Boolean value (e.g. the result of a comparison) is an integer, with 1 for true, 0 for false.&lt;br /&gt;
Then do a r.mapcalc calculation with the moving window.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       import grass.script as grass&lt;br /&gt;
           &lt;br /&gt;
       # define a moving window of 4 cell in every 8 direction&lt;br /&gt;
       #&lt;br /&gt;
       # map[4,4]                                    map[4,0]                                    map[4,-4]		&lt;br /&gt;
       # 	    map[3,3]                         map[3,0]                         map[3,-3]			&lt;br /&gt;
       # 		       map[2,2]              map[2,0]              map[2,-2]				&lt;br /&gt;
       #                                  map[1,1]   map[1,0]   map[1,-1]	 				&lt;br /&gt;
       # map[0,4]   map[0,3]   map[0,2]   map[0,1]       x      map[0,-1]  map[0,-2]  map[0,-3]  map[0,-4]&lt;br /&gt;
       #                                  map[-1,1]  map[-1,0]  map[-1,-1]					&lt;br /&gt;
       #                       map[-2,2]             map[-2,0]             map[-2,-2]				&lt;br /&gt;
       #            map[-3,3]                        map[-3,0]                        map[-3,-3]			&lt;br /&gt;
       # map[-4,4]                                   map[-4,0]                                   map[-4,-4]&lt;br /&gt;
       &lt;br /&gt;
       # define the offet duplets&lt;br /&gt;
       &lt;br /&gt;
       offsets = [d&lt;br /&gt;
           for j in xrange(1,4+1)&lt;br /&gt;
           for i in [j,-j]&lt;br /&gt;
           for d in [(i,0),(0,i),(i,i),(i,-i)]]&lt;br /&gt;
       	&lt;br /&gt;
       # &amp;gt;&amp;gt;&amp;gt;offsets&lt;br /&gt;
       # [(1, 0), (0, 1), (1, 1), (1, -1), (-1, 0), (0, -1), (-1, -1), (-1, 1), (2, 0), (0, 2), (2, 2), (2, -2), (-2, 0), (0, -2), \&lt;br /&gt;
       # (-2, -2), (-2, 2), (3, 0), (0, 3), (3, 3), (3, -3), (-3, 0), (0, -3), (-3, -3), (-3, 3), (4, 0), (0, 4), (4, 4), (4, -4), \&lt;br /&gt;
       # (-4, 0), (0, -4), (-4, -4), (-4, 4)]&lt;br /&gt;
       &lt;br /&gt;
       # define the calculation term&lt;br /&gt;
       &lt;br /&gt;
       terms = [&amp;quot;(myelevnc[%d,%d] &amp;lt; myelevnc)&amp;quot; % d&lt;br /&gt;
                for d in offsets]&lt;br /&gt;
       &lt;br /&gt;
       # &amp;gt;&amp;gt;&amp;gt;terms&lt;br /&gt;
       # ['(myelevnc[1,0] &amp;lt; myelevnc)', '(myelevnc[0,1] &amp;lt; myelevnc)', '(myelevnc[1,1] &amp;lt; myelevnc)', '(myelevnc[1,-1] &amp;lt; myelevnc)', \&lt;br /&gt;
       # '(myelevnc[-1,0] &amp;lt; myelevnc)', '(myelevnc[0,-1] &amp;lt; myelevnc)', '(myelevnc[-1,-1] &amp;lt; myelevnc)', '(myelevnc[-1,1] &amp;lt; myelevnc)',\&lt;br /&gt;
       # '(myelevnc[2,0] &amp;lt; myelevnc)', '(myelevnc[0,2] &amp;lt; myelevnc)', '(myelevnc[2,2] &amp;lt; myelevnc)', '(myelevnc[2,-2] &amp;lt; myelevnc)', \&lt;br /&gt;
       # '(myelevnc[-2,0] &amp;lt; myelevnc)', '(myelevnc[0,-2] &amp;lt; myelevnc)', '(myelevnc[-2,-2] &amp;lt; myelevnc)', '(myelevnc[-2,2] &amp;lt; myelevnc)', \&lt;br /&gt;
       # '(myelevnc[3,0] &amp;lt; myelevnc)', '(myelevnc[0,3] &amp;lt; myelevnc)', '(myelevnc[3,3] &amp;lt; myelevnc)', '(myelevnc[3,-3] &amp;lt; myelevnc)', \&lt;br /&gt;
       # '(myelevnc[-3,0] &amp;lt; myelevnc)', '(myelevnc[0,-3] &amp;lt; myelevnc)', '(myelevnc[-3,-3] &amp;lt; myelevnc)', '(myelevnc[-3,3] &amp;lt; myelevnc)', \&lt;br /&gt;
       # '(myelevnc[4,0] &amp;lt; myelevnc)', '(myelevnc[0,4] &amp;lt; myelevnc)', '(myelevnc[4,4] &amp;lt; myelevnc)', '(myelevnc[4,-4] &amp;lt; myelevnc)', \&lt;br /&gt;
       # '(myelevnc[-4,0] &amp;lt; myelevnc)', '(myelevnc[0,-4] &amp;lt; myelevnc)', '(myelevnc[-4,-4] &amp;lt; myelevnc)', '(myelevnc[-4,4] &amp;lt; myelevnc)']&lt;br /&gt;
       &lt;br /&gt;
       # define the calculation expression&lt;br /&gt;
       &lt;br /&gt;
       expr = &amp;quot;elevation_percentile4 = (100.0 / 48.0) * (%s)&amp;quot; % &amp;quot; + &amp;quot;.join(terms)&lt;br /&gt;
       &lt;br /&gt;
       # &amp;gt;&amp;gt;&amp;gt;expr&lt;br /&gt;
       #  elevation_percentile4 = (100.0 / 48.0) * ((myelevnc[1,0] &amp;lt; myelevnc) + (myelevnc[0,1] &amp;lt; myelevnc) + (myelevnc[1,1] &amp;lt; myelevnc) + \&lt;br /&gt;
       # (myelevnc[1,-1] &amp;lt; myelevnc) + (myelevnc[-1,0] &amp;lt; myelevnc) + (myelevnc[0,-1] &amp;lt; myelevnc) + (myelevnc[-1,-1] &amp;lt; myelevnc) + \&lt;br /&gt;
       # (myelevnc[-1,1] &amp;lt; myelevnc) + (myelevnc[2,0] &amp;lt; myelevnc) + (myelevnc[0,2] &amp;lt; myelevnc) + (myelevnc[2,2] &amp;lt; myelevnc) + \&lt;br /&gt;
       # (myelevnc[2,-2] &amp;lt; myelevnc) + (myelevnc[-2,0] &amp;lt; myelevnc) + (myelevnc[0,-2] &amp;lt; myelevnc) + (myelevnc[-2,-2] &amp;lt; myelevnc) + \&lt;br /&gt;
       # (myelevnc[-2,2] &amp;lt; myelevnc) + (myelevnc[3,0] &amp;lt; myelevnc) + (myelevnc[0,3] &amp;lt; myelevnc) + (myelevnc[3,3] &amp;lt; myelevnc) + \&lt;br /&gt;
       # (myelevnc[3,-3] &amp;lt; myelevnc) + (myelevnc[-3,0] &amp;lt; myelevnc) + (myelevnc[0,-3] &amp;lt; myelevnc) + (myelevnc[-3,-3] &amp;lt; myelevnc) + \&lt;br /&gt;
       # (myelevnc[-3,3] &amp;lt; myelevnc) + (myelevnc[4,0] &amp;lt; myelevnc) + (myelevnc[0,4] &amp;lt; myelevnc) + (myelevnc[4,4] &amp;lt; myelevnc) + \&lt;br /&gt;
       # (myelevnc[4,-4] &amp;lt; myelevnc) + (myelevnc[-4,0] &amp;lt; myelevnc) + (myelevnc[0,-4] &amp;lt; myelevnc) + (myelevnc[-4,-4] &amp;lt; myelevnc)\&lt;br /&gt;
       #  + (myelevnc[-4,4] &amp;lt; myelevnc))&lt;br /&gt;
       &lt;br /&gt;
       # do the r.mapcalc calculation with the moving window&lt;br /&gt;
       &lt;br /&gt;
       grass.mapcalc( expr )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using output from GRASS modules in the script ===&lt;br /&gt;
&lt;br /&gt;
Sometimes you need to use the output of a module for the next step. There are dedicated functions to obtain the result of, for example, a statistical analysis.&lt;br /&gt;
&lt;br /&gt;
Example: get the range of a raster map and use it in {{cmd|r.mapcalc}}. Here you can use {{pyapi|script|script.raster|raster_info}}, e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       import grass.script as grass&lt;br /&gt;
&lt;br /&gt;
       max = grass.raster_info(inmap)['max']&lt;br /&gt;
       grass.mapcalc(&amp;quot;$outmap = $inmap / $max&amp;quot;,&lt;br /&gt;
                     inmap = inmap, outmap = outmap, max = max)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using output from r.what ===&lt;br /&gt;
&lt;br /&gt;
''Q: How does one return attribute values from a call to the 'r.what' module running in a python script?''&lt;br /&gt;
&lt;br /&gt;
A: If you use &amp;lt;tt&amp;gt;grass.script.raster_what()&amp;lt;/tt&amp;gt;, it returns a list of dictionaries.&lt;br /&gt;
&lt;br /&gt;
PyGRASS which requires you to add &amp;lt;tt&amp;gt;stdout_=PIPE&amp;lt;/tt&amp;gt;, then you can get the output as a string from &amp;lt;tt&amp;gt;module.outputs.stdout&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Or using directly the C API through python with (North Carolina dataset example):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from grass.pygrass.vector import VectorTopo&lt;br /&gt;
from grass.pygrass.raster import RasterRow&lt;br /&gt;
from grass.pygrass.gis.region import Region&lt;br /&gt;
&lt;br /&gt;
with RasterRow('elevation', mode='r') as rast:&lt;br /&gt;
    with VectorTopo('hospitals', mode='r') as hospitals:&lt;br /&gt;
        region = Region()&lt;br /&gt;
        for hosp in hospitals:&lt;br /&gt;
            value = rast.get_value(hosp, region)&lt;br /&gt;
            if value is not None:&lt;br /&gt;
                print(hosp.cat, value)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Avoiding a syntax error for r.rescale ===&lt;br /&gt;
&lt;br /&gt;
''Q: How to avoid a syntax error for r.rescale related to &amp;quot;from=&amp;quot; ?&lt;br /&gt;
&lt;br /&gt;
A: &amp;quot;from&amp;quot; is a reserved word, use from_ instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
grass.run_command('r.rescale', input=mis1, output=mis1_8bit, from_='0,2048', to='0,255')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface to copying maps (g.copy) ===&lt;br /&gt;
&lt;br /&gt;
Copy a raster map (for vector, replace &amp;quot;rast&amp;quot; with &amp;quot;vect&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       grass.run_command('g.copy', rast = (input, output))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To generalize it, &amp;quot;datatype&amp;quot; is the form of grass data to copy (eg, rast, vect, etc)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       grass.run_command('g.copy', **{datatype: (input, output)})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface to listing maps (g.list) ===&lt;br /&gt;
&lt;br /&gt;
You may use the functions in [https://grass.osgeo.org/grass-stable/manuals/libpython/script.html?highlight=list_grouped#script.core.list_grouped script.core.list_grouped()]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# list all&lt;br /&gt;
list_grouped('raster')['PERMANENT']&lt;br /&gt;
[..., 'lakes', ..., 'slope', ...&lt;br /&gt;
&lt;br /&gt;
# list with pattern&lt;br /&gt;
list_grouped('vect', pattern='*roads*')['PERMANENT']&lt;br /&gt;
['railroads', 'roadsmajor']&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For temporal data, see likewise [https://grass.osgeo.org/grass-stable/manuals/libpython/temporal.html?highlight=list_grouped#temporal.gui_support.tlist_grouped temporal.gui_support.tlist_grouped()]&lt;br /&gt;
&lt;br /&gt;
See also [[Python/pygrass#Sample_PyGRASS_scripts|Sample PyGRASS scripts]] for an alternative solution.&lt;br /&gt;
&lt;br /&gt;
=== i.group with patterns as name for input ===&lt;br /&gt;
&lt;br /&gt;
Imagery groups can be populated like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from grass.pygrass.gis import Mapset&lt;br /&gt;
&lt;br /&gt;
run_command(&amp;quot;i.group&amp;quot;, group=&amp;quot;mygroup&amp;quot;, input=mset.glist(&amp;quot;raster&amp;quot;, pattern=&amp;quot;mypattern_*&amp;quot;))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Percentage output for progress of computation ===&lt;br /&gt;
&lt;br /&gt;
A) Within a Python script, the {{pyapi|script|script.core|percent}} module method wraps the &amp;lt;tt&amp;gt;g.message -p&amp;lt;/tt&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
B) If you call a GRASS command within the Python code, you have to parse the output by setting &amp;lt;tt&amp;gt;GRASS_MESSAGE_FORMAT=gui&amp;lt;/tt&amp;gt; in the environment when running the command and read from the command's stderr; e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       import grass.script as grass&lt;br /&gt;
       env = os.environ.copy()&lt;br /&gt;
       env['GRASS_MESSAGE_FORMAT'] = 'gui'&lt;br /&gt;
       p = grass.start_command(..., stderr = grass.PIPE, env = env)&lt;br /&gt;
       # read from p.stderr&lt;br /&gt;
       p.wait()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to capture both stdout and stderr, you need to use threads, select, or non-blocking I/O to consume data from both streams as it is generated in order to avoid deadlock.&lt;br /&gt;
&lt;br /&gt;
ALTERNATIVE:&lt;br /&gt;
&lt;br /&gt;
Redirect both stdout and stderr to the same pipe (and hope that the normal output doesn't include anything which will be mistaken for progress/error/etc messages):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       p = grass.start_command(..., stdout = grass.PIPE, stderr = grass.STDOUT, env = env)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NULL data management ===&lt;br /&gt;
&lt;br /&gt;
How to analyse if there are only NULL cells in a map:&lt;br /&gt;
&lt;br /&gt;
If a map contains only null cells, its minimum and maximum will be &amp;quot;NULL&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
       $ r.mapcalc 'foo = null()'&lt;br /&gt;
       $ r.info -r foo&lt;br /&gt;
       min=NULL&lt;br /&gt;
       max=NULL&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using the Python API, The 'min' and 'max' values in the result of the {{pyapi|script|script.raster|raster_info}} function will be &amp;lt;tt&amp;gt;None&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Counting cells ===&lt;br /&gt;
&lt;br /&gt;
Counting cells is far more expensive than simply determining whether&lt;br /&gt;
there are any non-null cells. Counting cells requires reading the&lt;br /&gt;
entire map, while the {{cmd|r.info}} approach only needs to read the metadata&lt;br /&gt;
files.&lt;br /&gt;
&lt;br /&gt;
If you do need to count cells, {{cmd|r.stats}} is likely to be more efficient than {{cmd|r.univar}}.&lt;br /&gt;
&lt;br /&gt;
A count loop:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       while grass.raster_info(inmap)['max'] is not None:&lt;br /&gt;
           ...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Display: overlayed map display with labels ===&lt;br /&gt;
&lt;br /&gt;
Example: display a vector map and overlay its labels on top of the map.&lt;br /&gt;
&lt;br /&gt;
If the environment contains the setting GRASS_PNG_READ=TRUE, d.* commands should overlay their output on an existing image (otherwise the first command creates the file map.png but the second command overwrites the file with only the labels). So the following should work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       grass.run_command('d.vect', map='my_shape')&lt;br /&gt;
       env = os.environ.copy()&lt;br /&gt;
       env['GRASS_PNG_READ'] = 'TRUE'&lt;br /&gt;
       grass.run_command('d.labels', labels='my_shape_labels', env = env)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Path to GISDBASE ===&lt;br /&gt;
In order to a avoid hardcoded paths to GRASS mapset files like the SQLite DB file, you can get the GISDBASE variable from the environment:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       import grass.script as grass&lt;br /&gt;
       import os.path&lt;br /&gt;
&lt;br /&gt;
       env = grass.gisenv()&lt;br /&gt;
&lt;br /&gt;
       gisdbase = env['GISDBASE']&lt;br /&gt;
       location = env['LOCATION_NAME']&lt;br /&gt;
       mapset = env['MAPSET']&lt;br /&gt;
&lt;br /&gt;
       path = os.path.join(gisdbase, location, mapset, 'sqlite.db')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parse the GRASS GIS version or revision or path to library ===&lt;br /&gt;
&lt;br /&gt;
In order to a avoid hardcoded versions or to scan the SVN revision of the GRASS GIS version used, you can query the {{cmd|helptext|startup script}}:&lt;br /&gt;
&lt;br /&gt;
'''Variant 1 (pure Python solution) - svn_revision:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import subprocess&lt;br /&gt;
cmd = subprocess.Popen('grass78 --config svn_revision', shell=True, stdout=subprocess.PIPE)&lt;br /&gt;
revision = cmd.communicate()[0].rstrip()&lt;br /&gt;
print(revision)&lt;br /&gt;
# the result is for example: '72327'.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Variant 2 (GRASS GIS-Python solution) - svn_revision:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import subprocess&lt;br /&gt;
import grass.script as grass&lt;br /&gt;
cmd = grass.Popen('grass78 --config svn_revision', shell=True, stdout=subprocess.PIPE)&lt;br /&gt;
revision = cmd.communicate()[0].rstrip()&lt;br /&gt;
print(revision)&lt;br /&gt;
# the result is for example: '72327'.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Path to GRASS GIS library (GRASS GIS-Python solution):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import subprocess&lt;br /&gt;
import grass.script as grass&lt;br /&gt;
cmd = grass.Popen('grass78 --config path', shell=True, stdout=subprocess.PIPE)&lt;br /&gt;
version = cmd.communicate()[0].rstrip()&lt;br /&gt;
print(version)&lt;br /&gt;
# the result is for example: '/usr/local/grass-7.6.svn'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating a new location ===&lt;br /&gt;
&lt;br /&gt;
Use {{pyapi|script|script.core|create_location}} to create a new location.&lt;br /&gt;
&lt;br /&gt;
=== Use Python reserved keyword ===&lt;br /&gt;
&lt;br /&gt;
'''Q:''' ''r.resamp.bspline'' uses 'lambda' as a command line parameter name, but when you try to use it with {{pyapi|script|script.core|run_command}} or {{pyapi|script|script.core|start_command}} you get an error as lambda is a python reserved keyword. How to work around that?&lt;br /&gt;
&lt;br /&gt;
'''A:''' Append an underscore to the name, i.e.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       grass.run_command('r.resamp.bspline', lambda_ = ...)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this follows Python [http://legacy.python.org/dev/peps/pep-0008/#descriptive-naming-styles PEP8] style guide. In GRASS GIS version 6, you have to prepend the underscore.&lt;br /&gt;
&lt;br /&gt;
=== Controlling the PNG display driver ===&lt;br /&gt;
&lt;br /&gt;
Code fragment to control the {{cmd|pngdriver}} in Python:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
from grass.script import core as grass&lt;br /&gt;
def main():&lt;br /&gt;
       os.environ['GRASS_PNGFILE'] = filename&lt;br /&gt;
       os.environ['GRASS_WIDTH'] = str(width)&lt;br /&gt;
       os.environ['GRASS_HEIGHT'] = str(height)&lt;br /&gt;
       grass.run_command('d.his', i='elevation_shade', h='elevation')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sophisticated cleanup procedure ===&lt;br /&gt;
&lt;br /&gt;
Scripts which create several temporary files need a more sophisticated cleanup procedure which deletes all the tmp maps which have been created. This procedure should also work if the script stops (e.g due to an error).&lt;br /&gt;
&lt;br /&gt;
Solution: Define a list of map names which starts out empty and has names appended to it as the names are generated. Code fragment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       import atexit, sys&lt;br /&gt;
       import grass.script as grass&lt;br /&gt;
&lt;br /&gt;
       tmp_rast = []&lt;br /&gt;
&lt;br /&gt;
       def cleanup():&lt;br /&gt;
           for rast in tmp_rast:&lt;br /&gt;
               grass.run_command(&amp;quot;g.remove&amp;quot;,&lt;br /&gt;
                                 flags = 'f',&lt;br /&gt;
                                 type = 'raster',&lt;br /&gt;
                                 name = rast,&lt;br /&gt;
                                 quiet = True)&lt;br /&gt;
&lt;br /&gt;
       def main():&lt;br /&gt;
           ...&lt;br /&gt;
           while ...:&lt;br /&gt;
               next_rast = ...&lt;br /&gt;
               tmp_rast.append(next_rast)&lt;br /&gt;
               ...&lt;br /&gt;
&lt;br /&gt;
       if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
           options, flags = grass.parser()&lt;br /&gt;
           atexit.register(cleanup)&lt;br /&gt;
           sys.exit(main())&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using temporary region for computations ===&lt;br /&gt;
&lt;br /&gt;
There are two possible ways how to define temporary region for raster-based computations within your scripts. First method uses environmental variable WIND_OVERRIDE, the second GRASS_REGION, see {{cmd|variables|desc=GRASS variables}} for more info. The key point is to recover the current region when the script is finished or terminated.&lt;br /&gt;
&lt;br /&gt;
* ''First method'' (WIND_OVERRIDE) is implemented as {{pyapi|script|script.core|use_temp_region}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
import grass.script as grass&lt;br /&gt;
&lt;br /&gt;
# store the current region settings and installs an atexit&lt;br /&gt;
# handler to recover the current region on script termination&lt;br /&gt;
grass.use_temp_region()&lt;br /&gt;
&lt;br /&gt;
grass.run_command('g.region', region='detail')&lt;br /&gt;
&lt;br /&gt;
grass.mapcalc('map = 1', overwrite=True)&lt;br /&gt;
&lt;br /&gt;
# after making operations using the temporary region,&lt;br /&gt;
# to unset the temporary WIND_OVERRIDE file and remove any &lt;br /&gt;
# region named by it, it is possible to use del_temp_region&lt;br /&gt;
grass.del_temp_region()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ''Second method'' (GRASS_REGION) doesn't store current region settings to any temporary region, it just defines GRASS_REGION which forces GIS Library to use this settings for raster-based computations instead of the settings stored in WIND file (ie. current region). See {{pyapi|script|script.core|region_env}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
import os&lt;br /&gt;
import grass.script as grass&lt;br /&gt;
&lt;br /&gt;
# copy environment and define GRASS_REGION environmental variable&lt;br /&gt;
# same as `g.region region=detail`&lt;br /&gt;
env = os.environ.copy()&lt;br /&gt;
env['GRASS_REGION'] = grass.region_env(region='detail')&lt;br /&gt;
 &lt;br /&gt;
grass.mapcalc('map = 1', overwrite=True, env=env)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using predefined constants ===&lt;br /&gt;
&lt;br /&gt;
Some constants are wrapped from C to Python through ctypes.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
from grass.lib.gis import GRASS_EPSILON&lt;br /&gt;
GRASS_EPSILON&lt;br /&gt;
1e-15&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Getting a list of wrapped C functions and constants ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
import pprint&lt;br /&gt;
import grass.lib.gis as grass_gis&lt;br /&gt;
&lt;br /&gt;
# simple list&lt;br /&gt;
dir(grass_gis)&lt;br /&gt;
&lt;br /&gt;
# pretty printing&lt;br /&gt;
pprint.pprint(dir(grass_gis))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Direct Access from wxGUI ==&lt;br /&gt;
&lt;br /&gt;
[[wxGUI]] Layer Manager in GRASS GIS comes with &amp;quot;Python shell&amp;quot; which enables users to type and execute python commands directly in wxGUI environment.&lt;br /&gt;
&lt;br /&gt;
[[Image:wxgui-pyshell.png|center|400px|Embedded interactive Python Shell in wxGUI Layer Manager]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[GRASS GIS Jupyter notebooks]]&lt;br /&gt;
* [[Working with GRASS without starting it explicitly‎]]&lt;br /&gt;
* Many more tutorials under [[:Category:Python]]&lt;/div&gt;</summary>
		<author><name>Baharmon</name></author>
	</entry>
</feed>