EON Summer School 2025
2025-09-04
Computational geographer: intersection between geocomputation and environmental sciences
Associate Professor at the Adam Mickiewicz University, Poznan; Visiting Scientist, University of Münster
Main scientific interest: spatial pattern analysis, focusing on quantifying and understanding patterns in environmental data
Co-author of a few books on geocomputation and spatial analysis with R and Python, including “Geocomputation with R”
Creator and contributor of various R packages for spatial data processing and visualization
Educator, teaching courses on geocomputation, spatial analysis, programming, and data visualization
Website: jakubnowosad.com
Discovering and describing patterns is a vital part of many spatial analysis However, spatial data is gathered in many ways and stored in forms, which requires different approaches to understanding spatial patterns
Discovering and describing spatial patterns is an important part of many geographical studies, and spatial patterns are linked to natural and social processes.
Evaluation of the susceptibility of forest landscapes to agricultural expansion
Bourgoin et al., 2020, 10.1016/j.jag.2019.101958
Reinterpretation of histological images as categorized rasters and their use for disease classification (e.g., liver cancer)
Kendall et al., 2020, 10.1038/s41598-020-74691-9
Hesselbarth, M.H.K., Nowosad, J., de Flamingh, A. et al. Computational Methods in Landscape Ecology. Curr Landscape Ecol Rep 10, 2 (2025). https://doi.org/10.1007/s40823-024-00104-6
Spatial patterns can be quantified using landscape metrics (O’Neill et al. 1988; Turner and Gardner 1991; Li and Reynolds 1993; He et al. 2000; Jaeger 2000; Kot i in. 2006; McGarigal 2014).
Software such as FRAGSTATS, GuidosToolbox, or landscapemetrics has proven useful in many scientific studies (> 12,000 citations).
There is a relationship between an area’s pattern composition and configuration and ecosystem characteristics, such as vegetation diversity, animal distributions, and water quality within this area (Hunsaker i Levine, 1995; Fahrig i Nuttle, 2005; Klingbeil i Willig, 2009; Holzschuh et al., 2010; Fahrig et al., 2011; Carrara et al., 2015; Arroyo-Rodŕıguez et al. 2016; Duflot et al., 2017, many others..)
1. Habitat fragmentation
2. Biodiversity and habitat suitability
3. Land use & land cover change
4. Climate change impacts
5. Spatial configuration and pattern analysis
Randomly selected 16 rasters (100x100 cells) with different proportions of forest (green) areas from Land cover data for the year 2016 of the CCI-LC project (simplified into nine categories)
General assumption is that the spatial pattern of a landscape influences the processes that occur within it
In the last 40 or so years, several hundred different landscape metrics were developed
They quantify the composition and configuration of spatial patterns of categorical rasters
Landscape metrics can be calculated for three different levels: patch, class, and landscape (here we (mostly) focus on the landscape level)
They can be divided into several groups, for example:
SHDI:
AI:
Important considerations:
Entropy:
Relative mutual information:
2D parametrization of categorical rasters’ configurations based on two weakly correlated IT metrics groups similar patterns into distinct regions of the parameters space
# A tibble: 133 × 5
metric name type level function_name
<chr> <chr> <chr> <chr> <chr>
1 area patch area area and edge… patch lsm_p_area
2 cai core area index core area met… patch lsm_p_cai
3 circle related circumscribing circle shape metric patch lsm_p_circle
4 contig contiguity index shape metric patch lsm_p_contig
5 core core area core area met… patch lsm_p_core
6 enn euclidean nearest neighbor distance aggregation m… patch lsm_p_enn
7 frac fractal dimension index shape metric patch lsm_p_frac
8 gyrate radius of gyration area and edge… patch lsm_p_gyrate
9 ncore number of core areas core area met… patch lsm_p_ncore
10 para perimeter-area ratio shape metric patch lsm_p_para
# ℹ 123 more rows
# A tibble: 305 × 6
layer level class id metric value
<int> <chr> <int> <int> <chr> <dbl>
1 1 patch 1 1 perim 1200
2 1 patch 1 2 perim 1200
3 1 patch 1 3 perim 1800
4 1 patch 1 4 perim 1800
5 1 patch 1 5 perim 255000
6 1 patch 1 6 perim 1800
7 1 patch 1 7 perim 1800
8 1 patch 1 8 perim 2400
9 1 patch 1 9 perim 6600
10 1 patch 1 10 perim 6000
# ℹ 295 more rows
# A tibble: 2 × 6
layer level class id metric value
<int> <chr> <int> <int> <chr> <dbl>
1 1 landscape NA NA ai 82.1
2 1 landscape NA NA shdi 1.06
# A tibble: 4 × 6
layer level class id metric value
<int> <chr> <int> <int> <chr> <dbl>
1 1 landscape NA NA ai 98.7
2 1 landscape NA NA shdi 0.0811
3 2 landscape NA NA ai 82.1
4 2 landscape NA NA shdi 1.06
mat_window = matrix(1, nrow = 11, ncol = 11)
w_result = window_lsm(r9, window = mat_window, what = "lsm_l_ai")
plot(r9); plot(w_result$layer_1$lsm_l_ai)
https://r-spatialecology.github.io/landscapemetrics/
# A tibble: 133 × 5
metric name type level function_name
<chr> <chr> <chr> <chr> <chr>
1 area patch area area and edge… patch lsm_p_area
2 cai core area index core area met… patch lsm_p_cai
3 circle related circumscribing circle shape metric patch lsm_p_circle
4 contig contiguity index shape metric patch lsm_p_contig
5 core core area core area met… patch lsm_p_core
6 enn euclidean nearest neighbor distance aggregation m… patch lsm_p_enn
7 frac fractal dimension index shape metric patch lsm_p_frac
8 gyrate radius of gyration area and edge… patch lsm_p_gyrate
9 ncore number of core areas core area met… patch lsm_p_ncore
10 para perimeter-area ratio shape metric patch lsm_p_para
# ℹ 123 more rows
Helpful resources:
Analyze forest dynamics, fragmentation, and spatial complexity over time using categorical raster land cover data to investigate how the forest structure of broadleaved deciduous trees has changed due to bark beetle infestation and other drivers.
"exdata/harz_lc2018.tif"
, "exdata/harz_lc2021.tif"
, "exdata/harz_lc2023.tif"
). Visualize the data to understand its spatial characteristics. Check CRS, extent, resolution, number of categories."exdata/harz_borders.gpkg"
file and crop and mask the land cover rasters to the Harz region.ifel()
function in terra; Hint 2: broadleaved deciduous trees are represented by the value of 2 in the original data).In recent years, the ideas of analyzing spatial patterns have been extended through an approach called pattern-based spatial analysis (Long in in. 2010; Cardille in in. 2010; Cardille in in. 2012; Jasiewicz i in. 2013; Jasiewicz i in. 2015).
The fundamental idea is to divide data into a large number of smaller areas (local landscapes).
Next, represent each area using a statistical description of the spatial pattern - a spatial signature.
Spatial signatures can be compared using a large number of existing distance or dissimilarity measures (Lin 1991; Cha 2007).
This approach enables spatial analyses such as searching, change detection, clustering, or segmentation.
Knowing the distance between spatial signatures can be used in several contexts (Nowosad, 2021, 10.1007/s10980-020-01135-0):
one-to-many
finding similar spatial structures
one-to-one
quantitative assessment of changes in spatial structures
many-to-many
clustering similar spatial structures
Using spatial signatures to compare and evaluate digital soil maps (Rossiter et al., 2022, 10.5194/soil-8-559-2022)
Changes in spatial patterns resulting from the inclusion of small woody elements in land use maps (Golicz et al., 2021, 10.3390/land10101028)
lsp_compare()
function from the motif package, compare the spatial signatures of land cover in 2018 and 2023 in a window of size 25
. (Hint: you need to use the "cove"
signature type, "jensen-shannon"
as a distance measure used, and "terra"
as an output; Hint 2: see https://jakubnowosad.com/motif/articles/v4_compare.html for inspiration).dist
layer of the results to highlight areas with the strongest changes. How can you interpret the results?window = 50
as it looks for areas of a similar size as AOI; Hint 2: see https://jakubnowosad.com/motif/articles/v3_search.html for inspiration). The aim is to identify areas that resemble the 2023 landscape of the AOI in the past, in order to track how such landscapes have evolved over time.WorldClim version 2.1 climate data
for 1970-2000
CMIP6 downscaled future climate projection for 2061-2080 [model: CNRM-ESM2-1; ssp: “585”]
Minimum temperature (°C)
https://jakubnowosad.com/spquery/
How to find and compare areas with similar spatial patterns in non-categorical rasters (e.g., raster time-series)?
https://jakubnowosad.com/patternogram/, https://jakubnowosad.com/ecem-2023
How to detect and describe a range of spatial similarity (spatial autocorrelation) for multiple variables?
It can be used to:
https://jakubnowosad.com/supercells/, https://jakubnowosad.com/foss4g-2022/
supercells: an extension of SLIC (Simple Linear Iterative Clustering; Achanta et al. (2012), doi:10.1109/TPAMI.2012.120) that can be applied to non-imagery geospatial rasters that carry:
Segmentation/regionalization: partitioning space into smaller segments while minimizing internal inhomogeneity and maximizing external isolation
A way to improve the output and reduce the cost of segmentation.
library(terra)
library(supercells)
# Version 1
mintemp_zones = supercells(cmip_tmin_pl, k = 150, compactness = 4)
plot(cmip_tmin_pl[[1]]); plot(mintemp_zones, add = TRUE, col = NA)
# Version 2
mintemp_zones = supercells(cmip_tmin_pl, k = 50, compactness = 4)
plot(cmip_tmin_pl[[1]]); plot(mintemp_zones, add = TRUE, col = NA)
# Version 3
mintemp_zones = supercells(cmip_tmin_pl, k = 150, compactness = 1)
plot(cmip_tmin_pl[[1]]); plot(mintemp_zones, add = TRUE, col = NA)
Mastodon: fosstodon.org/@nowosad
Website: https://jakubnowosad.com