Introduction

Landscape ecology focuses on how ecological processes are influenced by the heterogeneous landscapes and how the ecological processes themselves influence the landscapes [1,2,3]. Because landscapes are defined as mosaics of different land covers, ecosystems, habitat types, or land uses [4,5,6], spatial context is essential and ecological processes can vary spatially [3]. Thus, landscape ecology emphasizes spatial patterns to a high degree [7] and consequently relies on software to preprocess, modify, model, analyze, and visualize these spatial patterns.

Software to manage and analyze data becomes increasingly important in modern scientific research [8] and many scientific studies would not have been possible without open-source software [9]. Open-source software includes all software that is released under licenses that allow for the use, modification and distribution of the software [10]. Open-source software development has many advantages, such as fast innovation, transparency, reliability, and longevity, mainly due to many diverse contributors [10, 11]. Additionally, open-source software facilitates (computational) reproducibility and allows a better understanding of the methodology of a study [9, 12]. Furthermore, open-source software allows other scientists to reuse code and not “reinvent the wheel” [9] by customizing existing software to their specific needs [13]. Importantly, though not strictly necessary by definition of open-source [13, 14], most open-source software is also free-of-cost, in contrast to often expensive proprietary software [11, 13, 14]. This democratizes scientific research. For more general overviews of open-source software for landscape ecology studies see [13,14,15,16].

One successful example of an open-source project is the R programming language, and its extensions called packages [17]. Packages allow to easily share code and make functionality and documentation available to users and by that extend the capability of the R programming language [18]. First released in 1995 [19], this programming language is among the most popular programming languages today, especially in ecology [20•]. Originally introduced as a statistical programming language, a large number of packages designed to analyze spatial data subsequently emerged for the R programming language [21, 22••]. Thus, the R programming language can be a very powerful tool. In addition to handling spatial data, other analytical tasks such as statistical modeling, creation of publication-ready figures, and even complete reports can be done within the R environment (Fig. 1).

Fig. 1
figure 1

Exemplary workflow of spatial data analyses for landscape ecology using the R programming language. For all major tasks, some example R packages are listed. For more packages related to the specific task, see Table 1

The growing body of R packages related to spatial data processing and analysis results in a high capability of this language for landscape ecology. The expanding CRAN Task Views (curated lists of packages related to a certain topic) document this: Analysis of Spatial Data [23] and Handling and Analyzing Spatio-Temporal Data [24] currently list about 300 packages in total. Since the task views are maintained manually by just a few people, the actual amount of R packages related to spatial data is most likely higher. The growing popularity of the R programming language for spatial data analysis and landscape ecology can also be seen with the increasing number of related textbooks [22••, 25,26,27]. A recent overview over the progress of R to handle spatial data can be found in [28••].

Even though many other open-source tools [29,30,31] and suitable programming languages (e.g., Python) for landscape ecology exist, in this review, we focus on software implemented in the R programming language. We acknowledge that there are reasons and circumstances to use other software tools and programming languages, however, a comprehensive discussion of pros and cons is outside the scope of this manuscript. Thus, in the first part of this article, we present an overview of existing R packages for landscape ecology and closely related fields (Table 1). We included only packages that were available on the official R package archive network CRAN at the time the manuscript was prepared. This ensures that all included packages were at least maintained to fulfill CRAN’s technical quality standards. In the second part, we present a survey in which we asked the community how they currently use the R programming language and to identify topics for which R packages are presently missing for landscape ecology.

Table 1 Overview of commonly used R packages for spatial data and landscape ecology. Packages are sorted by their major application task. The table only includes packages specifically designed for spatial data or landscape ecology

Existing Packages

Most R packages are developed and maintained by the community, which shows how open-source software development can facilitate innovation, reproducibility, and reuse of code. There are three major online platforms to host R packages and make them accessible to potential users: CRAN, GitHub, and Bioconductor. The last one focuses on tools for the analysis of genomic data; therefore, in this review we focus on only the former two.

CRAN (the Comprehensive R Archive Network) provides large visibility to the community, ease of installation, and a technical quality standard, including checks for common problems on all major operating systems [18]. GitHub hosts source code under version control, and allows users to install packages with one line of code using the remotes [32] package. Additionally, hosting a package on GitHub provides many useful features to collaborate and communicate between developers and users [18], or integrated unit testing (i.e., testing if functions return an expected value).

The guaranteed technical quality standard of CRAN requires more initial work for developers compared to GitHub. At the same time, it ensures for users that the package can be installed on their machine. Additionally, the technical quality standard of CRAN also facilitates reproducibility and reuse of code, as shown by many reverse dependencies of R packages, i.e., package x requires and uses code from package y. CRAN also provides archived versions of outdated or orphaned packages, thus ensuring long-term availability and reproducibility of code. That being said, most R packages can be found on both platforms, and many developers use GitHub for regular development and CRAN to publish stable releases of the packages. Furthermore, online communities like rOpenSci also provide a peer-review process for code quality. It is important to mention that while the package environment has many advantages, its highly dynamic characteristic with constant updates by the community might also be a threat to reproducibility since backward compatibility is not always ensured. Packages that deal with such issue include groundhog [33], packrat [34], or renv [35]. These packages facilitate reproducibility to a high degree by preserving the project environment, including specific package versions used for the analysis. For more information about R package development in general, see [18].

Spatial Data Representations

While base R has several built-in data structures, including vectors, matrices, data frames, and lists, yet it has no internal support for reading, processing, or visualizing spatial data. However, as discussed previously, one strength and core idea of the R programming language are its expandability by packages. Because there is a substantial interest in spatial data analysis, support for spatial data is now provided by many R packages ([22••], Table 1). Most spatial data belong to one of two data models, namely spatial raster and spatial vector model, and both data models have several implementations in the R language. Importantly, main R packages for spatial data use the external GDAL [36] and PROJ [37] libraries, which allow for reading and writing of hundreds of spatial data formats, and for coordinates transformation. Additionally, R allows for conversion between data models and specific implementations, which can be useful if given methods only exist for a particular data model or implementation.

In the raster data model, surfaces are divided into cells, where each cell stores a numeric value. The values could represent discrete phenomena, such as a class number of a land cover category, or continuous phenomena, such as elevation values. Currently, the most prominent package allowing for raster data representation is raster [38]. A raster successor, terra, aimed at the simpler interface and improved performance is being developed [39], however, it could take several years for this package to be adopted by other developers and users. Alternatively, the stars package can be used to read and process raster data focusing on spatial-temporal data cubes [40]. Additionally, there are packages that improve some basic raster operations in terms of computational performance or compatibility between raster and vector operations, such as fasterize [41], rasterDT [42], or exactextractr [43].

The vector data model consists of two main elements i) geometries (such as points, lines, polygons) and ii) attributes, where each geometry is connected to a row in the attribute table. In many cases, this data model allows a more realistic representation of landscape features, however, with higher computational cost [22••]. The sp package was the standard for vector data representation for more than ten years [44, 45]. As of 2020, more than 500 R packages directly depend on or import sp. However, sp is not actively developed anymore, and its recommended successor is the sf package [46]. Besides many advantages and strengths of the sf package in terms of spatial data handling, it also integrates into the widely used tidyverse packages [47]. The tidyverse is a collection of R packages developed for almost all major tasks of any data analysis project. Because all tidyverse packages follow the same philosophy how to structure data, one strength of the tidyverse is its high consistency of usage across its packages [47]. sf builds on the idea of “simple features,” a standard used to describe spatial geometries using points, lines (two connected points) and polygons (several connected points), and attributes connected to these geometries [27].

Spatial Data Download

Nowadays, spatial data at various scales is available from many online-accessible sources. A lot of this data are publicly available, either as a direct download or through an API connection, and several packages can use this to download the spatial data directly into a R session. Since publicly available data is becoming more prominent, so are R packages to access them. Packages include rnaturalearth [48] to access the Natural Earth database to download region and country data, the elevatr package to access raster elevation data [49], the rgbif package to access the Global Biodiversity Information Facility (GBIF) portal [50], the BIEN package [51] to access the Botanical Information and Ecology Network Database, the marmap to download bathymetry data from the ETOPO1 database [52], or the FedData package [53] to access the National Land Cover Database (NLCD) data for the USA. Furthermore, the getlandsat package [54] allows users to download Landsat 8 satellite data, the MODIS package [55] to download MODIS products, and sen2r [56] to download Sentinel-2 optical images. Also, the getData() function from the raster package allows users to download climatic and bioclimatic data from WorldClim v1.4. Additionally, the rgee package [57] gives access to an extensive catalog of data from Google Earth Engine, including climate data, land cover maps, and satellite imagery.

Spatial Data Processing

Coordinate reference systems (CRS) describe how spatial data are projected from the earth’s three-dimensional surface to a two-dimensional surface as required for spatial analysis or creating maps [22••, 27]. This is also referred to as spatial projection and is often the first barrier in spatial data analysis. It is not only required to have all of the used data in the same projection, but also to select a proper CRS. This is of importance because the projection into a two-dimensional surface unavoidably leads to distortion, and different CRS are optimized for different properties, regions of the world, and scales [22••, 45]. Coordinates in spatial data represent one of many coordinate reference systems. Two main groups of CRS, namely geographical and projected, exist, with each having many members. Using geographical CRS, positions are specified by latitude and longitude coordinates in degrees. However, most landscape ecology studies should utilize projected CRSs, which use some measurement units (e.g., meters). The selection of projected CRS should be based on the property of spatial data that needs to be kept intact (e.g., no distortion of areas, shapes, distances, or angles) and be appropriate for a given study area. A common way to refer to different CRS is to use codes developed by the European Petrol Survey Group (EPSG). Tools to find an appropriate CRS for a certain region can be found at https://spatialreference.org, https://epsg.org, or http://epsg.io. All packages from “Spatial Data Representations” have interfaces for coordinates transformations, allowing unification of spatial projections when the used data have different CRS.

Until 2020, spatial R objects stored information about their CRS using Proj4 string representations, and these strings could also be used for CRS transformations. However, the major changes in upstream software, namely PROJ6 and GDAL3, limited the capabilities of the Proj4 strings and switched to use a new representation called WKT2-2019 for storing the CRS. Thus, spatial objects saved with degraded Proj4 string representation to R file formats could be incorrectly read, and special attention should be given to check their correctness. Proj4 string representation is also not recommended to set or transform CRS and instead the previously introduced EPSG codes should be used. A more detailed explanation of the recent CRS changes can be found in [28••].

Another common spatial data processing task is required when the available data extends over a larger area than the study region. In this case, the pre-processing of spatial data should include vector clipping or raster cropping. Related to that, masking certain areas of the study region using spatial filters (e.g., water bodies, urban areas) can be required. Packages from “Spatial Data Representations” also allow for these operations. Additionally, they offer many other operations, such as merging or joining spatial data, extracting values from one dataset into another, raster resolution changes, or vector data simplifications. A comprehensive collection of methods to aggregate raster values to a coarser resolution can also be found in the grainchanger package [58]. Furthermore, landscapetools is a collection of various utility functions for the raster data model [59].

Finally, there are several tools for landscape ecology implemented in GIS software, such as r.li or r.pi for GRASS GIS [31, 60, 61], terrain analysis methods in SAGA GIS [62], or morphological operations for Google Earth Engine. It is possible to control several GIS software directly from R using dedicated packages, such as rgrass7 [63] for GRASS GIS, RSAGA [64] for SAGA GIS, and rgee [57] for Google Earth Engine. Direct access to these GIS software within R allows to create reproducible and sharable R scripts, even if functionality is currently not available in R.

Table 2

Creating Maps

Creating maps is essential when working with spatial data. Maps play an important role in checking the spatial and value-related quality of data, data exploration, and finally communicating results. R allows two major types of maps. Firstly, static maps in which the developer has full control over the presentation of the map and secondly, interactive maps in which the user can modify the map by, e.g., changing the displayed values. All packages listed in “Spatial Data Representations” have build-in methods for plotting spatial data using the generic plot() function (Fig. 2a). However, the generic functions are focused on quick visual inspection of the data (Fig. 2a), rather than creating complete maps as they do not directly support additional map elements (e.g., scale bar, north arrow) nor small multiples maps.

Fig. 2
figure 2

Comparison of different options to create maps of the total annual precipitation in Switzerland using (a) base plot, (b) ggplot2 package, and (c) tmap package. All three approaches result in similar-looking outputs, but their syntax and capabilities differ. All maps show the total annual precipitation of Switzerland. Data were downloaded with the raster package (precipitation data) and rnaturalearth package (country borders) package. The code to create the maps can be found in the Appendix

The popular plotting package ggplot2 (Fig. 2b) can also visualize spatial data and is build on a layered grammar of graphics, which allows to create maps by combining individual graphical elements (e.g., raster and vector elements) [65]. Additionally, there is an extension especially designed to plot spatial data named ggspatial, which provides additional map elements [66]. For more information about ggplot2 in general, see [65]. The tmap package provides a provides a coherent plotting system intended for drawing maps (Fig. 2c) [67]. This package operates in two modes, static and interactive, which means that the same code can be used to create static or interactive maps. Quick interactive visualization of spatial data can be done with the mapview package [68]. Both, tmap and mapview build upon the leaflet package and leaflet javascript library [69]. Static thematic maps, including proportional symbols, choropleth, or typology maps, can be created with the cartography package [70]. Further plotting methods for raster objects can be found in the rasterVis package [71]. A slightly different approach to visualizing spatial data is adapted by the rayshader package [72] that creates topographic 2D and 3D maps.

Ecological Analysis

Quantify Landscape Characteristics

One of the most fundamental steps of landscape ecology analyses is to describe and quantify landscape characteristics [2, 73]. For discrete land cover classes, the composition (number and abundance) and configuration (spatial arrangement) of the landscape are often described using landscape metrics [74,75,76,77•]. These metrics allow the comparison of different landscapes, quantification of temporal and spatial landscape changes and investigation of interactions between landscape characteristics and ecological processes [75].

The introduction of FRAGSTATS in 1995 heavily facilitated the use of landscape metrics software [77•–79] and the landscapemetrics package [80] allows to calculate the most widely used landscape metrics within the R environment.

More recently, surface metrics were suggested as an alternative to landscape metrics for continuous raster data [81]. The geodiv package [82] allows calculation of gradient surface metrics to facilitate continuous analysis of landscape features. Additionally, the belg package allows calculation of the Boltzmann entropy of a landscape gradient [83].

Most landscape metrics are represented by a single number depicting specific characteristics of a local landscape. Another possibility is to derive spatial signatures - a multi-value representation of landscape composition and configuration, such as a co-occurrence histogram [84]. Spatial signatures calculated for many landscapes can be compared using one of a set of existing distance measures (e.g., Euclidian, Jensen-Shannon, Jaccard). This enables several types of spatial analysis on categorical raster data, such as searching for similar landscapes, detecting changes between landscape patterns, and spatial clustering of landscapes based on their composition and configuration. All of the spatial signatures methods mentioned above are implemented in the motif package [84].

Spatial Statistics

Spatial statistics are complimentary to landscape metrics, and can be used to analyze patterns in continuous data (e.g., normalized difference vegetation index, disturbance intensity, topography). In landscape ecology, spatial statistics has three key uses: i) detecting and correcting for spatial autocorrelation; ii) quantifying and comparing landscape patterns; iii) interpolating data.

Point pattern analysis uses event-level data, such as locations of individuals, and links the spatial pattern to the ecological process. The spatstat package [85] contains functionality for point pattern analysis, including exploratory analysis; simulation of point process models; and modeling fitting, inference, and diagnostics. A comprehensive textbook covering both theoretical background as well as applied examples can be found here [86].

Distance-based methods allow for the detection and correction of spatial autocorrelation in data. It is key to do so as landscape data are highly spatially autocorrelated, and this non-independence can affect inferences from statistical modeling. The spdep package [45] has methods for quantifying multiple metrics of spatial autocorrelation and correcting these in a spatial autoregressive model. The rinla [87] and inlabru [88] packages also provide functionality for modeling of spatially structured data.

Finally, the spatial structure of continuous landscapes can be quantified and compared with geostatistical tools, such as variograms and correlograms. R packages geoR [89] and gstat [90] provide functionality for this type of analysis, as well as interpolation methods, known as (co-)kriging. Geostatistics also allows for spatial data simulations.

Species Distribution Modeling

Species distribution modeling (SDM) examines how landscape patterns (e.g., habitat suitability or resources availability) influence and determine the patterns of species’ distributions, mainly to infer ecological processes and predict future species’ distributions [91]. Originated in the 1970s, SDM has experienced numerous methodological advancement, and a large body of literature exists today [92, 93]. Additionally, textbooks introducing basic concepts of SDM in R exist [26, 94].

Because the used modeling approaches are diverse [26, 95, 96], there is also a large number of R packages used for SDMs. Popular approaches and packages include generalized linear models using, e.g., the stats [17] package; generalized additive models using, e.g., the mgcv [97] or lme4 [98] package; classification and regression trees (CART) using, e.g., the rpart [99], randomForest [100] or ranger [101] package or multivariate data analysis using, e.g., the ade4 [102] or vegan [103] package. Also, packages specifically designed for SDM exist, including the dismo [104], sdm [105], ecospat [106], biomod2 [107], PresenceAbsence [108], or zoon [109] packages. Additionally, packages such as ENMeval [110] provide functionality for model tuning and evaluation.

Related to SDMs, there is a growing number of R packages to analyze data from tracked animals, to study their movement characteristics, space use, and interaction with other animals and the environment. These analyses often use results of landscape ecological analyses as predictor variables to explain variation in space use [111], behavioral states [112], or habitat selection [113]. Widely used R packages include ctmm [114] and adehabitatHR [115] for home-range estimation, moveHMM [116] for the classification of behavioral states, and amt [117] for habitat selection. A recent and very comprehensive overview of R packages for the analysis of animal movement data is given by [118].

Connectivity

Connectivity is one of the core elements of landscape structure [119] and thus one of the core concepts of landscape ecology [3]. Landscape connectivity describes how landscape characteristics facilitate or hinder the movement of species [120] or other aspects of mobility, such as dispersal, gene or nutrient flow [3]. While structural connectivity focuses only on landscape characteristics (e.g., movement corridors, barriers), functional connectivity also includes behavior characteristics of the species such as habitat associations and dispersal distances [3, 120]. Given its broad concept, many different measures of connectivity exist [121]. At the patch level, structural connectivity can be measured using nearest-neighbor distances or characterizations of the patch neighborhood (e.g., amount of suitable habitat) [3, 121]. Such measures are provided within the landscapemetrics package (see “Quantify Landscape Characteristics”). Furthermore, the lconnect package [122] and Makurhini package [123] provide several landscape connectivity metrics. Another way to describe connectivity is based on graph theory with the advantage that functional connectivity can also be included [121]. In graph theory [124], landscapes are described by nodes (i.e., habitat patches) connected by and functional connections called links (or edges) [124]. The grainscape package [125] provides a tool to model connectivity based on spatially explicit networks. More generally, the igraph package [126] provides functionality for graph theoretic analyses. Resistance surfaces and least-cost paths are other tools to model functional connectivity which include attributes of the matrix. The resistance surface describes the effects of facilitating or hindering the landscape’s characteristics for an organism moving within it [127]. Least-cost paths can be calculated using the gdistance package [128]. Absorbing Markov chains quantify landscape connectivity as the combination of movement and mortality based on the landscape characteristics [129], and is provided by the recently published samc package [130].

Landscape Genetics

Landscape genetics investigates how characteristics of landscapes interact with gene flow, genetic drift, and selection [131]. Such insights improve our understanding of metapopulation dynamics, speciation, species’ distributions, and conservation [132]. By explicitly including landscape characteristics, landscape genetics provides a more detailed analysis than more abstract concepts (e.g., metapopulation genetics) [133]. As a result of its interdisciplinarity, landscape genetics draws together methods from multiple fields, including landscape ecology, spatial statistics, geography, and population genetics [132].

Since describing connectivity between two locations is one of the fundamental steps of landscape genetics, all packages useful for connectivity (see “Connectivity”) are also important for landscape genetics. Further functionality for landscape genetics such as quantifying and analyzing population genetic structure, and hierarchical decomposition analysis can be found in the graphs4lg [134], PopGenReport [135, 136], HierDpart [137], or GeNetIt [138] packages.

Neutral Landscape Models

Neutral landscape models are used to create structured landscapes in the absence of specific ecological and landscape processes as null models against which hypotheses including specific ecological and landscape processes can be tested statistically [139, 140]. Because neutral landscape models are not based on ecological and landscape processes, many different generic algorithms to create landscapes can be found across several R packages. A comprehensive collection of algorithms to simulate neutral landscape models specifically designed for landscape ecology can be found in the NLMR package [59]. Furthermore, the RandomFields package [141] allows to simulate Gaussian fields, which could be used as neutral landscape models.

Survey of R Usage by Landscape Ecology Community

To better understand how the landscape ecology community uses R, we conducted a short survey using mailing lists and social media to reach the community. Thus, the survey was not necessarily representative for all skill levels of R users and results are most likely biased towards more advanced users. Also, the survey did not include any personal questions, such as age or country of residence, which might affect the representation of the survey. All raw data and scripts to analyze the data can be found at https://github.com/r-spatialecology/Hesselbarth_et_al_CLER.

In total, the survey was answered by 109 participants, of which the majority were either “PhD students” (33%), followed by “Post-Docs” (26.6%) and “Professors” (14.7%). Other, less frequent answers were “Data scientists”, “None of the above”, “Government employees”, “Master’s degree student”, and “Bachelor’s degree student” (in decreasing order).

Most people use R either “daily” (53.2%) or a “few times a week” (36.7%). Almost half of all participants described themselves as “advanced” users (46.8%), while 40.4% described themselves as “intermediate” users. Related to this, about half of the participants either implemented their own package (21.1%) or plan to do so in the future (22%) and most of these packages are hosted on GitHub and/or CRAN.

We asked the participants to select which terms describe their research topics the best, and options that were selected by more than 10% of participants included “biodiversity”, followed by “land use management”, “landscape connectivity”, and “nature conservation” (Fig. 3a).

Fig. 3
figure 3

Results of the online survey about open-source software tools in R for landscape ecology. Results include (a) which terms describe major research topics the best, (b) the most important workflow task, (c) the most used R packages and (d) the overall usefulness or R for landscape ecology. The “others” category includes all answers with less than five total mentions

Next, we were interested in the most important tasks to the workflow of the participants. Not surprisingly, “(pre-) processing of data”, “spatial statistics”, and “creating maps” were the most selected options (Fig. 3b). The available options seemed to describe the most important task to the workflow quite well since only very few participants selected the “others” option (all options with less than five total answers were classified as “others”).

More people use the raster data model (72.5%) in comparison to the vector data model (27.5%). This was also represented in the most used R packages (Fig. 3c). When asked for the three most used packages, participants of the survey listed 93 packages in total. The raster package was mentioned the most, followed by the sf package. Both packages are designed for basic and advanced data handling and processing of raster and vector data, respectively, representing the results of Fig. 3c. Nevertheless, the large availability and usage of different R packages across the community can be seen in the large “others” option (packages mentioned by less than 5 participants; 35.9%).

Lastly, when asked how useful R is currently for landscape ecology, the vast majority of participants answered with either “very useful” or “useful” (summarized 90.8%) and only very few participants evaluated R as “intermediate”, “not useful” or “not useful at all” (summarized 9.2%; Fig. 3d).

The survey also included a section in which participants could list methods and tools currently missing in R and answers to this question were very diverse. Overall, 23.9% of the participants reported that currently no packages and functionality are missing for them or they lack the overview to answer the question. There were three most common topics across the answers of the participants. Firstly, many participants (12.8%) wished for a better computational performance of R in terms of speed and required RAM, especially for larger data sets. Secondly, participants are missing specific approaches to quantify landscape characteristics (such as surface metrics), or are wishing for an improvement of currently available approaches to quantify landscape characteristics (9.2%). Thirdly, many participants (8.3%) are currently missing advanced and easy-to-apply methods to create high-quality maps or other visualization-related functionality.

Conclusions

Since its first introduction in 1995, R has come a long way from an exclusively statistical programming language to a powerful landscape ecology tool. Today, many R packages, mainly developed by the community itself, provide a vast collection of functions and algorithms aimed at spatial data handling and analysis. The highly dynamic development of R packages for landscape ecology also shows the strength of open-source software with its high innovation, transparency, reliability, and longevity. However, since landscape ecology constantly develops and improves, consequently also the R programming language and its packages are under constant change to adapt to these new developments.

A comprehensive collection of R software packages exists to handle the most common tasks of landscape ecology. Because it is possible to import, modify, analyze, and visualize spatial data all in the same scripted programming environment, R allows for transparent and reproducible workflows. Scripts including all analysis steps and parameter settings can easily be shared, thus the script-based characteristic of the R programming language allows the easy distribution and reproduction of analysis across all major operation systems (e.g., Windows, macOS, Linux), as demonstrated by the R script in the Appendix. This is a big advantage over point-and-click software interfaces where analysis steps and parameter settings can only be described but not shared, and furthermore, are often only available for certain operating systems. This also allows users to easily interchange, modify, or adapt methods from other related and unrelated fields.

The survey revealed that the landscape ecology community is overall satisfied with the capabilities of the R programming language for landscape ecology. Furthermore, the survey showed that many members of the landscape ecology community actively develop R packages themselves, demonstrating that tools are constantly added and updated.

Landscape ecology combines many different research topics and methodological approaches, and most of them heavily rely on spatial data. While the R programming language is generally well suited to handle, analyze and visualize spatial data, the increasing availability of large data sets also leads to the challenges of increased computational demands, in terms of computational time as well as memory requirements, the R programming language has to face. Some packages discussed herein, such as raster and terra, already provide solutions by processing data in chunks small enough to be stored in RAM memory. Furthermore, parallel processing, including the use of high performance clusters, is also provided by several R packages. While this is outside the scope of this manuscript, further resources about parallel processing in R can be found here [142,143,144]. Furthermore, as the individual fields collected under the umbrella of landscape ecology develop, so will the need for R packages related to those fields. Nevertheless, as the development of R packages over the past years clearly demonstrated, the landscape ecology community is ready to face these challenges.