Vaclav (Vashek) Petras
Geospatial Research Software Engineer at North Carolina State University
BS & MS in Geoinformatics, Czech Technical University in Prague
PhD in Geospatial Analytics, NC State
GRASS GIS Development Team Member
GRASS GIS Project Steering Committee Member
Open Source Geospatial Foundation Charter Member
Community
Open community of users and developers
Contributors to code, documentation, translations, …
Project Steering Committee
PSC Chair: VerĂ³nica Andreo (since February 2021)
Credit goes to the whole community, not just this talk's authors.
Support
Community support
Commercial support
Write to grass-dev or contact me privately if your name is not here!
General Features
Free and open source, you can use, modify, improve, share
Large amount of tools: 500+ core modules , 300+ addons
Graphical User Interface and Command Line Interface
Python API, C API, and libraries
Interface & connection with R, QGIS, WPS, …
Different data types supported:
vector ,
raster
(including satellite imagery ),
3D raster (voxel) ,
and
space-time datasets (temporal data) .
Scientific Foundations
Innovation with Stability
Improvements bring need for changes, but breaking changes are introduced only when needed, for example:
Graphical user interface changes as needed.
Python API added in v6 taking the leading position from Bash, matured in v7, additions planned for 8.2.
Basic things continue to work in the same way, for example:
Raster algebra expression from 2002 (v5) works in 2021 (v8):
depressions =
if(elevation - fill < 0, 1, 0)
Only the best practice on how you write spaces around an equal sign changed.
All-in-one Software Suite
All matured tools available right away.
Download of experimental tools possible.
Network analysis, hydrology, OBIA, time series, …
GRASS GIS 8
Roadmap:
7.8.6 Fall 2021
8.0.0 Fall 2021
First release in the new era.
8.0.1 Winter 2021
8.2.0 Spring 2022
Enjoy the GSoC 2021 results!
Improved First-time User Experience
Initial project sets up automatically and suggestions for next steps are provided.
by Linda Kladivova &
rest of the community (many reviews, video calls, user surveys, …)
No Startup Screen
Single-Window GUI
Ongoing code refactoring to enable a single-window GUI with dockable widgets.
Opt-in preview coming in 8.2.
See talk I hated the way GRASS started so I changed it. 2021-09-30, 08:00
by Linda Kladivova
Centralized Data Management
All data manipulation centered around revamped Data tab.
by Linda Kladivova, Anna Petrasova, Vaclav Petras
Dark Theme Support
Interface respects system dark theme.
by Anna Petrasova, Nicklas Larsson
GitHub-centered Software Development
Git
PRs
Issues
GitHub Actions
Improved and Robust Code Quality Checks
Python code formatted by Black.
Python code checked against Flake8.
Most of warnings in C code removed and now checked.
Code tested with CodeQL.
by Nicklas Larsson, Vaclav Petras, Anna Petrasova, Carmen Tawalika, ...
Docker Containers
Different flavours (add or suggest more!)
Built and updated automatically
actinia
See talk News from actinia (2021-09-30, 09:30)
by Markus Neteler, Carmen Tawalika, Anika Weinmann, …
Improved HPC Readiness
by Vaclav Petras, Markus Neteler, Nicklas Larsson, …
Grassy the Hungry Cow
-----------------------------------
| I'm always hungry for more GRASS! |
-----------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
_\|/__\|/__\|/_ || || _\|/__\|/_
Thanks to cowsay .
Lidar Data Import with PDAL
binning using any point dimension (including user defined ones, e.g., from PDAL filters)
point filtering by values in any dimension
support of 19 binning methods (including eigenvalues)
by Vaclav Petras and Maris Nartiss
Latest PROJ and GDAL
Support for PROJ >=6 added.
Support for GDAL >=3 added.
WKT2 can be used for CRS definitions.
High-accuracy coordinate transformations supported.
by Markus Metz
GRASS is currently supporting the latest versions of PROJ and GDAL.
All the fancy new high-accuracy coordinate transformation methods are supported.
The WKT2 can be used to define a CRS and is printed as CRS info by g.proj.
Some new PROJ 8 functionality is not yet supported.
For example, automated download of datum transformation grids is yet missing.
Skeletons and Centerlines
v.voronoi tool can now create area skeletons and centerlines.
by Markus Metz
Semantic Labels for Rasters
add a semantic label to any raster map (e.g., S2_1
or red
)
image classification use sematic labels to identify bands
new portable signature files created as a result of training use it to identify bands
different scenes can then be classified if semantic labels are the same
by Maris Nartiss and Martin Landa
Faster External Data Links
r.external links (opens) external raster data (GeoTiffs, …) faster.
(2-5× faster, or almost no time for some workflows)
by Markus Metz
Great for workflows when only portion of the data is processed in GRASS GIS.
OpenMP parallelization
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 (Google Summer of Code 2021)
Parallelization of multiple, often used raster modules, with benchmarks.
Especially useful for big data processing
Can work on all platforms, providing GRASS is compiled with OpenMP
Integration with Jupyter Notebooks
New Python library that simplifies the launch of GRASS GIS in Jupyter and the display of vector & raster data.
by Caitlin Haedrich (Google Summer of Code 2021)
Simpler GRASS GIS initialization
More intuitive API for rendering
Classic rendering with d.* commands, rendering with webmap and zooming, also 3D rendering
Available now as experimental, coming in 8.2 officially
Spatial Query of Projections
Select a CRS spatially on a map.
by Huidae Cho and Owen Smith
Much More by Broader Community
Valley Bottom Flatness Index
r.valley.bottom - Multi-resolution Valley Bottom Flatness (MrVBF)
by Helmut Kudrnovsky, Steven Pawley
Hydrologic Parameters Using a Flow Direction Raster
r.accumulate - weighted flow accumulation, subwatersheds, stream networks, and longest flow paths using a flow direction
See
Physically-Based Hydrologic Modeling Using GRASS GIS
(FOSS4G 2021 workshop,
material )
by Huidae Cho
Weighted layers for dasymetric mapping
r.area.createweight - Weighting layer for dasymetric mapping using a random forest regression model.
See talk A tool for machine learning based dasymetric mapping approaches in GRASS GIS . (2021-09-30, 08:00)
by Charlotte Flasse, Tais Grippa, Safa Fennia
Sentinel, THREDDS, …, netCDF
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, …
See talks
Sentinel processing in GRASS GIS: A growing toolset for downloading, preprocessing and multitemporal analysis of Copernicus Sentinel data (2021-10-01, 08:00)
and
Cold war reconnaissance imagery reloaded: orthorectifying the 1960s in high resolution (2021-09-29, 11:00)
by
Fondazione Edmund Mach,
OpenGeoLabs,
mundialis
GSoC,
NC State University,
CONICET,
Norwegian Institute for Nature Research,
…
FUTURES
r.futures - set of tools for urban growth modeling
by NC State Center for Geospatial Analytics
PoPS
r.pops.spread - Pest or Pathogen Spread simulation
by NC State Center for Geospatial Analytics
Tangible Landscape
Geospatial tangible user interface
by NC State Center for Geospatial Analytics
Resources
Documentation:
Tutorials (my three favorites) :
Books:
Open Source GIS: A GRASS GIS Approach (the classic)
Tangible Modeling with Open Source GIS (use-case-based with additional flavors)
Open Source Approaches to Spatial Data Handling (broader context)
Code contributions
GRASS GIS development is GitHub-centered:
core, addons, website
Other contributions are relevant too!
Translation: Use Transifex.
Documentation: Fix typos in manual pages, add examples, write wiki tutorials, …
Post material to GRASS social media.
Write a blog post for GRASS website.
Bring your own ideas!
Sponsoring
Money and employee time donations are very important for GRASS GIS development. You can:
organize or finance community sprints
contribute to infrastucture needs (e.g., website)
pay developers to implement new features and fix specific bugs
New: opencollective.com/grass