1 of 48

State of

Corey White, Huidae Cho, Alen Mangafić, Vaclav (Vashek) Petras, Luca Delucchi, Markus Neteler, Veronica Andreo, Moritz Lennert

FOSS4G 2025 – Auckland (New Zealand)

2 of 48

    • Advanced geospatial modeling and analysis
    • Fast, trusted, science-based tools
      • 400+ core tools
            • 400+ contributor addons
  • Modern Tooling
        • Jupyter Notebooks
        • R Studio
        • Python and C API
        • GUI

3 of 48

4 of 48

5 of 48

Releases

            • 8.4.1, February 2025 Current version for everyday user
            • 8.5.0 Preview, Daily Latest reviewed functional code
            • 7.8.8 Legacy, August 2023
              • Maintained legacy version for some production systems

6 of 48

Thanks to all those involved!

Contributors 138

+ 99 contributors

Community

7 of 48

Community

Average 32 commits per week over the past year

49 active contributors over the past year

8 of 48

  • Invest your time into technologies that stay and don't disappear in couple years.
  • Shell scripting, Python, GRASS.
  • Longevity, stability, sustainability, open-source, platform-independent.
  • Things develop, versions update, features are added...

...but general ideas stay the same.

Code from 2002 running in 2025?

version 5.0 code works as is in 8.5:

although there is a better way to write it:

r.mapcalc depr.bin="if((elev - fill)< 0., 1, 0)"

r.mapcalc "depr_bin = if((elev - fill) < 0., 1, 0)"

Career and Mental Health Investment

9 of 48

New in 8.4 comparing to 8.3

10 of 48

Supervised classification with Support Vector Machines

  • i.svm.train: train with Support Vector Machine
  • i.svm.predict: predict with Support Vector Machine

by Maris Nartiss (Nartiss & Melniks 2023)

Tools: More Machine Learning

11 of 48

v.fill.holes: fill holes in areas by keeping only outer boundaries

by Vaclav Petras

Tools: More Topology Handling

12 of 48

JSON output format support (format="json") in multiple tools (v.db.select, t.rast.list, …)

With better integration in Python:

More coming in 8.5 (r.report, r.info, …)

by Anna Petrasova, Vaclav Petras, Huidae Cho, Kriti Birda, Corey White, and others

v.db.select roadsmajor format=json

import json

import grass.script as gs

data = gs.parse_command("v.db.select", map="roadsmajor", format="json") for row in data["records"]:

print(row["ROAD_NAME"])

Interfaces: JSON for Text Outputs

https://github.com/orgs/OSGeo/projects/10

13 of 48

The Python API, command line, and GUI are now using project instead of location for the main component of the data hierarchy.

  • .../data/missouri (location → project)
  • interstate_44 (mapset aka sub-project)

Locations are now Projects

14 of 48

  • Projects keep the data consistent.
    • Same format for all data.
    • Same CRS for all data.
    • Separates data preprocessing from analysis.
  • Mapsets keep the data organized.
    • One default mapset or multiple mapsets.
    • Work is happening in one mapset, but data from any mapset can be used.
  • .../data/missouri (project)
  • interstate_44 (mapset)

import grass.script as gs

gs.create_project("/path/to/project", epsg="3358")

Projects

15 of 48

grass.script Python package:

Greatly simplified the creation of new projects in Python without a running session (no more chicken and egg problems)

by Vaclav Petras, funded by NSF Award #2322073, granted to Natrx, Inc.

import grass.script as gs

gs.create_project("cordoba_utm21s", epsg="32721")

gs.setup.init("cordoba_utm21s")

Python API: Simpler Creation of Projects

16 of 48

--tmp-location is now --tmp-project

--tmp-location continues to work

grass --tmp-project EPSG:3358 --exec \ r.viewshed input=elevation \ output=viewshed coordinates=642964,222890

CLI: temporary project with --exec

17 of 48

grass.jupyter Python package:

  • New grass.jupyter.SeriesMap class for animating series of vectors or rasters (temporal animations already available)
  • New option to create a maps with ipyleaflet

(will bring interactivity in 8.5)

by Caitlin Haedrich, Riya Saxena, Anna Petrasova

s = gj.SeriesMap(height = 500) s.add_rasters(["elevation_shade", "geology", "soils"]) s.add_vectors(["streams", "streets", "viewpoints"]) s.d_barscale()

s.show()

m = InteractiveMap(map_backend="ipyleaflet") m.add_vector("streams") m.add_raster("elevation")

m.show()

Python API: Animations and ipyleaflet

18 of 48

by Linda Karlovska with a GRASS Student Grant

GUI: new History Browser panel

19 of 48

model new landforms using cut and fill operations to add and remove earth from an elevation raster

using r.earthworks

by Brendan Harmon

Addon Tools: model new landforms

20 of 48

i.eodag: download, import, preprocessing, cloud detection, and masking of remote sensing data with EODAG (Earth Observation Data Access Gateway)

by Hamed A. Elgizery, Veronica Andreo, Stefan Blumentrath, Luca Delucchi

Addon Tools: Digest data with EODAG

21 of 48

t.stac toolset allows the user to explore metadata and ingest SpatioTemporal Asset Catalog (STAC) items, collections, and catalogs

  • Based on the PySTAC library

by Corey T. White,

OpenPlains Inc. and

Center for Geospatial Analytics NCSU

Addon Tools: working with STAC

22 of 48

i.sam2 allows users to segment orthoimagery using text based prompts with SamGeo.

by Corey T. White,

OpenPlains Inc. and

Center for Geospatial Analytics NCSU

Addon Tools: Deep Learning

23 of 48

i.hyper allows users to import, preprocess, visualize spectral and export 3D hyperspectral maps

by Alen Mangafić and Tomaž Žagar, Geodetic Institute of Slovenia

See it Friday 9 AM WG404

Addon Tools: Hyperspectral imagery

24 of 48

R: rgrass

Maintained GRASS under OSGeo – Steven Pawley

25 of 48

by Adam B. Smith.

R: fasterRaster

26 of 48

Guess what’s next?

27 of 48

More Features

28 of 48

D = if(start_date(A) < "2005-01-01", A + B)

Sum maps from A with maps with equal time stamps from B

which occurred before Jan 1, 2005

by Thomas Leppelt and Soeren Gebbert

Tools: Temporal Algebra

29 of 48

r.accumulate – fast weighted flow accumulation, watersheds, stream networks, and longest flow paths using a flow direction, r.flowaccumulation – parallel flow accumulation, r.hydrobasin – parallel watershed delineation, r.lfp – parallel longest flow path (next talk in this room)

by Huidae Cho

Tools: Fast Hydrology Algorithms

r.hydrobasin

30 of 48

r.runoff – Computes event-based runoff using the SCS Curve Number (SCS-CN) method.

r.curvenumber – Generates the Curve Number raster from the landcover and hydraulic soils group.

r.timeofconcentration – Computes per-cell time of concentration (Tc) using the Kirpich equation from longest upstream flow-path length and path-average slope

by Abdullah Azzam

Tools: More hydrology tool

31 of 48

v.clean – automated topology with outputs for additional checks

by Markus Metz, Radim Blazek, and others

Tools: Vector Topology Cleaning

32 of 48

Community and Project

Maintenance

33 of 48

Since GRASS is doing more in geospatial than just GIS,

we are re-adopting GRASS instead of GRASS GIS.

Re-adopting the Classic Name & New Logo

Lead by the NC State Center for Geospatial Analytics �& Approved by the Project Steering Committee in February

34 of 48

Redesigned Website

35 of 48

lead by the NC State Center for Geospatial Analytics

New Tutorial Site

36 of 48

lead by the NC State Center for Geospatial Analytics

New Documentation

37 of 48

Project Road Map

38 of 48

Elections: October 2024, Positions Filled: 4

Project Steering Committee Elections

Total Members: 9

Term Length: 6 years

39 of 48

NSF grant awarded to NC State, ASU, NMSU, Yale

    • To enhance infrastructure
    • To revise contributing guidelines
    • To support community building

The NSF program is not funding new features, bug fixes, or ongoing maintenance.

40 of 48

  • Contributions through NumFOCUS partially support face-to-face meetings and student grants.
  • We would like to finance ongoing maintenance.

https://numfocus.org/project/grass

Financial Contributions

41 of 48

Commercial Support

42 of 48

redbubble.com/people/grassgis

or search for "grass project shop" on Redbubble

lead by the NC State Center for Geospatial Analytics

Swag Shop

43 of 48

Student grants to contribute to GRASS (call open for 2025)

Student Grants Program

44 of 48

grass.osgeo.org > Latest news > Report from the GRASS Community Meeting

Funding: US NSF (Award 2303651), Bohannan Huston, Inc., and the Center for Geospatial Analytics at NC State

GRASS Developer Summit 2025

45 of 48

grass.osgeo.org > Latest news > Report from the GRASS Community Meeting

Funding: US NSF (Award 2303651), Bohannan Huston, Inc., and the Center for Geospatial Analytics at NC State

GRASS Developer Summit 2025

  • Over 30 GRASS contributors from around the world gathered for six days of focused development, collaboration, and community building at the 2025 GRASS Developer Summit in Raleigh, NC.
  • The summit combined coding sprints, roadmap planning, and thematic sessions, covering topics from Jupyter integration, hyperspectral support, and xarray backend development, to documentation, tutorials, translation, and parallelization - culminating in a broad set of contributions. And beer.
  • Lightning talks showcased GRASS applications across trench planning for optical cables, hydrology, erosion, urban modeling, and more, engaging local geospatial professionals and researchers.

46 of 48

Tentative GRASS Developer Summit 2026

July 2026, San Michele all’Adige, Provincia di Trento, Italy

47 of 48

    • CMake for Linux, Mac and Windows (Native Windows build)

    • Conda for Linux and Mac
    • Python
      • grass.tools
      • Improved NumPy integration
  • Integrated Jupyter Notebooks

Coming in GRASS 8.5

(Probably Spring 2026)

48 of 48

SUPPORT IT !!!