About the presenter...
Co-founder and senior consultant at mundialis, Bonn (DE)
PhD in Geography, Univ. of Hannover
Years of researcher's life in Trento, Italy
Since 2016 in Bonn, Germany @ mundialis
Since 1997 active in the GRASS GIS project
Co-founder of OSGeo
https://www.mundialis.de/neteler/
For newcomers: which GRASS GIS?
GRASS GIS (Geographic Resources Analysis Support System), a FOSS suite used for geospatial data management and analysis, image processing, spatial modeling, and visualization.
Originally developed by the U.S. Army CERL for land management and environmental planning (1982-1995).
Founding member of OSGeo (2006)
39 years of continuous geospatial development
All-in-one software suite
All matured tools available right away
Download of experimental tools possible
Network analysis, hydrology, remote sensing, OBIA, time series, …
Roadmap
7.8.7, Feb 2022
Stability and fixes.
8.0.0, Feb 2022
New startup, data management.
8.0.2, May 2022
Stability and fixes.
8.2.0, June 2022
Jupyter, parallel r.neighbors, …
major.minor.micro – semantic versioning:
major (x) brings features and possibly backward incompatible changes
minor (x.y) brings features and fixes ,
micro (x.y.z) brings fixes ,
Exciting new features in GRASS 8.2+
Integration of GRASS GIS and Jupyter Notebooks
Integration of results from Google Summer of Code 2021
New Python library that simplifies the launch of GRASS GIS in Jupyter and the interactive display of raster/vector data
Easy GRASS GIS initialization
More intuitive API for rendering
Classic rendering with d.* commands, rendering with webmap and zooming, also 3D rendering
by Caitlin Haedrich
Integration of GRASS GIS and Jupyter Notebooks
Notebooks: Mix of text, code, results, images, …
Usage: Prototyping, reproducibility, tutorials, …
Now in GRASS GIS: Python functions for easy integration
tinyurl.com/grass-rc2 (run in Binder)
by Vaclav Petras, Anna Petrasova, Caitlin Haedrich
New! Semantic Labels for Rasters
assigning meaningful labels to raster maps
(e.g., S2_1
or red
)
image classification can use sematic labels to identify bands
different scenes can then be classified if semantic labels are the same
organize bands within one spatio-temporal dataset
signature files can be used for classification if band references match (raster values are semantically equal)
by Maris Nartiss, Martin Landa, Markus Metz
Fast LiDAR data import with PDAL
import of any point dimension (including user defined ones e.g. from PDAL filters)
support of 19 binning methods (including eigenvalues)
point filtering by values in any dimension
by Vaclav Petras and Māris Nartišs
More parallelization in GRASS 8.2+
OpenMP parallelization
Integration of results from Google Summer of Code 2021
r.series
r.univar
r.neighbors
r.patch
r.resamp.interp
r.resamp.filter
r.mfilter
r.slope.aspect
+ benchmarking library
by Aaron Saw Min Sern and Anna Petrasova
Available in 8.2+
Parallelization of multiple, often used raster modules, with benchmarks.
Especially useful for big data processing
Supported on all platforms, provided GRASS is compiled with OpenMP
More parallel tools
Core tools:
r.sun, v.surf.rst, r.sim.sediment, r.sim.water
Addons tools:
r.sun.daily, r.in.usgs,
r.mapcalc.tiled, t.rast.what.aggr,
r.connectivity.corridors, r.viewshed.exposure,
and 14 more
Parallelizing custom Python scripts:
GridModule (by tile)
multiprocessing, ParallelModuleQueue (by task)
A better GUI experience in GRASS 8.2+
Improved First-time User Experience
Improved First-time User Experience
Initial project sets up automatically. Guidance provided for next steps.
by Linda Kladivova &
rest of the community (many reviews, calls, user surveys, …)
Single-Window GUI
Integration of results from Google Summer of Code 2021
One GUI window with optimized layout with dockable widgets.
by Linda Kladivova
Available in 8.2+: Settings > Preferences > General
Code quality and automated releases
Improved and robust code quality checks: GitHub Actions
Python code formatted by Black.
Python code checked against Flake8.
Most of warnings in C code removed and now checked.
Code tested with CodeQL.
Flake8 and Black checks also for Addons.
by Nicklas Larsson, Vaclav Petras, Anna Petrasova, Carmen Tawalika, ...
Automated releases from GitHub
Turning git commit entries into a release page
log message parsing, categorization for the subsection
publishing of source code and auto-generated release notes
by Vaclav Petras (procedure support by Markus Neteler)
Selected addons contributed by the community
Spatial Query of Projections
g.projpicker queries projections spatially using user-drawn geometries and set-theoretic logical operators.
It requires ProjPicker .
addon
by Huidae Cho
Can you see that landslide??
r.survey allows to assess whether objects of certain size could be detected by an observer moving along roads or sitting on a flying object
addon
by Ivan Marchesini
Tap directly into FAIR data warehouses
GRASS GIS understands netCDF data that follows the CF-convention
m.crawl.thredds : Lists URLs for netCDF datasets on Thredds servers
t.rast.import.netcdf : Makes Spatio-temporal data in netCDF format directly available for analysis in GRASS STRDS (also without downloading)
Enjoy data delivered right into your GRASS GIS database from e.g.:
by Stefan Blumentrath (Norwegian Institute for Nature Research - NINA)
Visual Exposure to a Defined Source
r.viewshed.exposure - Weighted cumulative viewshed analysis defining visual exposure to a source
addon
by Zofie Cimburova and Stefan Blumentrath
Get involved! Your contribution is welcome!
Code contributions
GRASS GIS development is GitHub-centered: core, addons, website
File bug reports or feature requests
All issues and PR's are publicly visible
Ask, comment, suggest also in Github Discussions
"Fork me on GitHub " and suggest changes or fix bugs via pull requests
Create your own addon! See this nice workshop for a guideline:
How to write a Python tool for GRASS
Other contributions are relevant too!
Translations: we use OSGeo Weblate
Documentation: start by fixing typos in manual pages, add examples where missing, create cool screenshots, write tutorials in the wiki , etc.
Contribute material for our social media
Write a blog post for our website
Bring your own ideas!
Sponsoring: how to...?
Individuals:
Organizations:
Time: employee time
Money: pay developers (companies) to add features or fix bugs
"One of the greatest benefits of GRASS GIS is that its
environments gives us a plethora of options for manipulating data and
testing/designing our automation/workflow processes."
https://opencollective.com/grass
Student grants program: coding for money!
GRASS GIS offers a limited number of student grants.
These can include actual coding, bug fixing, or documentation
and the creation of educational resources.
https://grasswiki.osgeo.org/wiki/Student_Grants
Creating a Gabor filter bank
i.gabor creates directional filters for image segmentation using i.segment. It requires NumPy and SciPy.
addon
by Owen Smith
Hydrologic Parameters Using a Flow Direction Raster
r.accumulate calculates weighted flow accumulation, subwatersheds, stream networks, and longest flow paths using a flow direction map.
by Huidae Cho
Ecological applications
r.suitability.regions allows to identify suitable regions, e.g., for endangered species, starting from suitability maps.
addon
by Paulo van Breugel
More data: Sentinel, THREDDS, …, netCDF, CSV
Automated download and import of common datasets
i.sentinel, i.modis, i.landsat, r.in.usgs, r.in.nasadem, m.crawl.thredds, t.rast.import.netcdf, …
by
Fondazione Edmund Mach,
OpenGeoLabs,
mundialis,
GSoC,
NC State University,
CONICET,
Norwegian Institute for Nature Research,
…