Title: | Providing Preprocessed Reference Data for Flemish Natura 2000 Habitat Analyses |
---|---|
Description: | The n2khab package is an R package with preprocessing functions and standard reference data, useful for analyses regarding Flemish Natura 2000 habitats and regionally important biotopes (RIBs). |
Authors: | Floris Vanderhaeghe [aut, cre] , Toon Westra [aut] , Cécile Herr [aut] , Hans Van Calster [aut] , Dries Adriaens [ctb] , Maud Raman [ctb] , Jan Wouters [ctb] , Steven De Saeger [ctb] , Els Lommelen [ctb] , Luc Denys [ctb] , An Leyssen [ctb] , Patrik Oosterlynck [ctb] , Jeroen Vanden Borre [ctb] , Nathalie Cools [ctb] , Bruno De Vos [ctb] , Suzanna Lettens [ctb] , Arne Verstraeten [ctb] , Research Institute for Nature and Forest [cph] |
Maintainer: | Floris Vanderhaeghe <[email protected]> |
License: | GPL-3 |
Version: | 0.11.0 |
Built: | 2024-11-02 05:44:43 UTC |
Source: | https://github.com/inbo/n2khab |
The functions calculate the checksum (digest; hash value) of one or multiple files. They can be used to verify file integrity.
checksum(files, hash_fun = c("xxh64", "md5", "sha256")) xxh64sum(files) md5sum(files) sha256sum(files)
checksum(files, hash_fun = c("xxh64", "md5", "sha256")) xxh64sum(files) md5sum(files) sha256sum(files)
files |
Character vector of file path(s). File path(s) can be absolute or relative. |
hash_fun |
String that defines the hash function. See Usage for allowed values; defaults to the first. |
A few cryptographic and non-cryptographic hash functions are implemented,
either from the OpenSSL library (through
openssl
)
or as embedded in the
digest
package.
Functions md5sum()
etc. are simple shortcuts to checksum()
with the appropriate hash function preset.
Their names were chosen to match those of xxHash and GNU coreutils.
The cryptographic algorithms use the OpenSSL implementation and
stream-hash the binary
contents of the connections to the respective files.
They turn the hash-format for binary streams by the openssl
package
into a regular hash string.
Note that n2khab
will mask
tools::md5sum()
,
which is a standalone implementation.
Named character vector with the same length as files
and with the file names as names.
Other functions regarding file management for N2KHAB projects:
download_zenodo()
,
fileman_folders()
,
fileman_up()
,
locate_n2khab_data()
# creating two different temporary files: file1 <- tempfile() file2 <- tempfile() files <- c(file1, file2) file.create(files) con <- file(file2) writeLines("some text", con) close(con) # computing alternative checksums: checksum(files) xxh64sum(files) md5sum(files) sha256sum(files) ## Not run: # This will error: files <- c(file1, file2, tempfile(), tempfile()) checksum(files) ## End(Not run)
# creating two different temporary files: file1 <- tempfile() file2 <- tempfile() files <- c(file1, file2) file.create(files) con <- file(file2) writeLines("some text", con) close(con) # computing alternative checksums: checksum(files) xxh64sum(files) md5sum(files) sha256sum(files) ## Not run: # This will error: files <- c(file1, file2, tempfile(), tempfile()) checksum(files) ## End(Not run)
Converts base 4 fractions, representing the full GRTS addresses from the
raster data source GRTSmaster_habitats
into decimal (i.e. base 10)
integer values.
Before the actual conversion happens, leading digits from the full GRTS
address can be discarded according to the level
specified by the user.
Hence, the result may correspond to the GRTS ranking at a lower spatial
resolution.
convert_base4frac_to_dec(x, level)
convert_base4frac_to_dec(x, level)
x |
A scalar or vector of base 4 fractions, originating from the
|
level |
The number of leading digits to discard from the GRTS base 4
address, i.e. from the ' |
For example, the base 4 fraction 0.0000000000100
is converted into decimal integer 16
(= 4^2
) as long as the
level
argument is 10
or lower (if not, it will be 0
) and
0.0000000000101
is converted into either 17
(
level <= 10
) or 1
(if level
is 11
or 12
).
Long base 4 fractions seem to be handled and stored easier than long (base 4) integers. This approach follows the one of Stevens & Olsen (2004) to represent the reverse hierarchical order in a GRTS sample.
The function works on a vector and retains NA
values.
As such, it can be used in raster::calc()
.
When writing such a raster to a file, it is recommended to use the
INT4U
data type (see dataType
).
The corresponding decimal (i.e. base 10) integer scalar or vector.
Stevens D.L. & Olsen A.R. (2004). Spatially Balanced Sampling of Natural Resources. Journal of the American Statistical Association 99 (465): 262–278. doi:10.1198/016214504000000250.
Other functions involved in processing the 'GRTSmaster_habitats' data source:
convert_dec_to_base4frac()
,
read_GRTSmh()
,
read_GRTSmh_base4frac()
,
read_GRTSmh_diffres()
oldoption <- options(list(digits = 15, scipen = 999)) # one scalar: convert_base4frac_to_dec(0.1010101010101, level = 0) # vector, level 0: convert_base4frac_to_dec(c(NA, 0.1010101010101), level = 0) # vector, level 5: convert_base4frac_to_dec(c(NA, 0.1010101010101), level = 5) # same vector, all sensible levels computed: sapply(0:12, function(i) { convert_base4frac_to_dec(c(NA, 0.1010101010101), level = i ) }) options(oldoption)
oldoption <- options(list(digits = 15, scipen = 999)) # one scalar: convert_base4frac_to_dec(0.1010101010101, level = 0) # vector, level 0: convert_base4frac_to_dec(c(NA, 0.1010101010101), level = 0) # vector, level 5: convert_base4frac_to_dec(c(NA, 0.1010101010101), level = 5) # same vector, all sensible levels computed: sapply(0:12, function(i) { convert_base4frac_to_dec(c(NA, 0.1010101010101), level = i ) }) options(oldoption)
GRTSmaster_habitats
data source to
base 4 fractionsConverts decimal (i.e. base 10) integer values from the raster data source
GRTSmaster_habitats
into base 4 fractions, using a precision of
13 digits behind the decimal mark (as needed to cope with the range of
values).
For example, the integer 16
(= 4^2
) is converted into
0.0000000000100
and 4^12
is converted into
0.1000000000000
.
convert_dec_to_base4frac(x)
convert_dec_to_base4frac(x)
x |
A decimal (i.e. base 10) scalar or vector of integer values from the
|
Long base 4 fractions seem to be handled and stored easier than long (base 4) integers. This approach follows the one of Stevens & Olsen (2004) to represent the reverse hierarchical order in a GRTS sample as base-4-fraction addresses.
The function works on a vector and retains NA
values.
As such, it can be used in raster::calc()
.
When writing such a raster to a file, it is needed to use the FLT8S
data type (see dataType
).
Otherwise several digits will change.
The function is based on code from the baseConvert()
function
in Will Gray's Gmisc package.
The corresponding base4 scalar or vector, stored as a fraction.
Stevens D.L. & Olsen A.R. (2004). Spatially Balanced Sampling of Natural Resources. Journal of the American Statistical Association 99 (465): 262–278. doi:10.1198/016214504000000250.
Other functions involved in processing the 'GRTSmaster_habitats' data source:
convert_base4frac_to_dec()
,
read_GRTSmh()
,
read_GRTSmh_base4frac()
,
read_GRTSmh_diffres()
oldoption <- options(list(digits = 15, scipen = 999)) convert_dec_to_base4frac(c(14, 15, NA, 456)) options(oldoption)
oldoption <- options(list(digits = 15, scipen = 999)) convert_dec_to_base4frac(c(14, 15, NA, 456)) options(oldoption)
This function will download an entire archive from Zenodo (https://zenodo.org). It only works for Zenodo created DOI (not when the DOI is for example derived from Zookeys.)
download_zenodo(doi, path = ".", parallel = TRUE, quiet = FALSE)
download_zenodo(doi, path = ".", parallel = TRUE, quiet = FALSE)
doi |
a doi pointer to the Zenodo archive starting with '10.5281/zenodo.'. See examples. |
path |
Path where the data must be downloaded. Defaults to the working directory. |
parallel |
Logical.
If |
quiet |
Logical ( |
Hans Van Calster, [email protected]
Floris Vanderhaeghe, [email protected]
Other functions regarding file management for N2KHAB projects:
checksum()
,
fileman_folders()
,
fileman_up()
,
locate_n2khab_data()
## Not run: # Example download of an archive containing a single zip download_zenodo(doi = "10.5281/zenodo.1283345") download_zenodo(doi = "10.5281/zenodo.1283345", quiet = TRUE) # Example download of an archive containing multiple files # using parallel download # (multiple files will be simultaneously downloaded) download_zenodo(doi = "10.5281/zenodo.1172801", parallel = TRUE) # Example download of an archive containing a single pdf file download_zenodo(doi = "10.5281/zenodo.168478") ## End(Not run)
## Not run: # Example download of an archive containing a single zip download_zenodo(doi = "10.5281/zenodo.1283345") download_zenodo(doi = "10.5281/zenodo.1283345", quiet = TRUE) # Example download of an archive containing multiple files # using parallel download # (multiple files will be simultaneously downloaded) download_zenodo(doi = "10.5281/zenodo.1172801", parallel = TRUE) # Example download of an archive containing a single pdf file download_zenodo(doi = "10.5281/zenodo.168478") ## End(Not run)
'env_pressures' is a data source in the
vc-format which provides
a checklist of environmental pressures, represented by codes, together
with the pressure-class and the textual explanation (with optional remarks).
The codes of environmental pressures, pressure-classes and explanations
are explained in the
data source namelist
(which can accommodate multiple
languages).
A vc-formatted data source. As such, it corresponds to a data frame with 35 rows and 3 variables:
Code of the environmental pressure, as a factor.
This is the ID for use in diverse workflows and datasets.
Corresponding names and abbreviations
in multiple languages are stored in namelist
(as name and shortname, respectively).
The abbreviation may be seen as an alternative, language-dependent code.
Contains no duplicates!
A code explained by namelist
,
corresponding to the environmental pressure's class.
Is a factor.
A code explained by namelist
,
corresponding to the explanation on the environmental pressure, and
optional remarks.
Explanation and remarks are stored in namelist
(as name and shortname, respectively)
read_env_pressures()
read_env_pressures(lang = "nl")
textdata/env_pressures.csv
textdata/env_pressures.yml
The latest worksheet of this googlesheet. Currently, the googlesheet and the data source are both kept up-to-date.
Other n2khab-referencelists:
namelist
,
types
Takes a data frame with a column of type codes
(main type or subtype codes),
and, under certain conditions, adds new rows with codes of the associated
subtypes and main types, respectively.
It allows to do sensible selections and joins with interpreted forms of the
habitatmap_stdized
and watersurfaces_hab
data sources:
habitatmap_terr
,
read_watersurfaces_hab(interpreted = TRUE)
.
If the data frame has one or more grouping variables, by default the
operation is done independently for each group in turn.
expand_types(x, type_var = "type", use_grouping = TRUE, strict = TRUE)
expand_types(x, type_var = "type", use_grouping = TRUE, strict = TRUE)
x |
An object of class |
type_var |
A string.
The name of the data frame variable that holds the type codes.
Defaults to |
use_grouping |
Logical.
If the data frame has one or more grouping variables
(class |
strict |
Logical. Apply conditions before expanding subtype codes to main type codes? |
The extra rows in the data frame take the values for other variables
from the rows with which they are associated, based on the
subtype - main type relation.
Type codes in the data frame are verified to comply with the codes from the
types
data source.
A warning is given when they don't.
Main type codes are always expanded with the subtype codes that belong to it.
The applied approach to add main type codes only makes sense assuming that the result is to be confronted with one of the above listed geospatial data sources.
In order to add main type codes based on subtype codes that are present in the type column, specific conditions have to be met:
for 2330: both subtype codes must be present
for 5130: 5130_hei must be present (note that only the main type code occurs in the targeted data sources)
for 6230: 6230_ha, 6230_hmo and 6230_hn must be present (not the rare 6230_hnk)
for 91E0: 91E0_va, 91E0_vm and 91E0_vn must be present (not the rarer 91E0_sf, 91E0_vc and 91E0_vo)
However, it is possible to relax this requirement by setting
strict = FALSE
.
This will add the main type code whenever one of the above required
subtype codes is present.
In all cases no other main type codes are added apart from
2330, 5130, 6230 and 91E0.
This is because the data sources with which the result
is to be matched (see Description) don't contain certain main type codes,
and because it makes no sense in other cases
(rbbkam, rbbzil & 9120 in the habitatmap
do not refer to a
main type but to a non-defined subtype with no specific code).
A data frame, either identical or longer than the input data frame.
read_types
,
read_habitatmap_terr
,
read_watersurfaces_hab
library(dplyr) x <- n2khabmon::read_scheme_types() %>% filter(scheme == "GW_05.1_terr") expand_types(x) expand_types(x, strict = FALSE) x <- n2khabmon::read_scheme_types() %>% filter(scheme == "GW_05.1_terr") %>% group_by(typegroup) expand_types(x) expand_types(x, use_grouping = FALSE) # equals above example x <- tribble( ~mycode, ~obs, "2130", 5, "2190", 45, "2330_bu", 8, "2330_dw", 8, "5130_hei", 7, "6410_mo", 78, "6410_ve", 4, "91E0_vn", 10 ) expand_types(x, type_var = "mycode") expand_types(x, type_var = "mycode", strict = FALSE)
library(dplyr) x <- n2khabmon::read_scheme_types() %>% filter(scheme == "GW_05.1_terr") expand_types(x) expand_types(x, strict = FALSE) x <- n2khabmon::read_scheme_types() %>% filter(scheme == "GW_05.1_terr") %>% group_by(typegroup) expand_types(x) expand_types(x, use_grouping = FALSE) # equals above example x <- tribble( ~mycode, ~obs, "2130", 5, "2190", 45, "2330_bu", 8, "2330_dw", 8, "5130_hei", 7, "6410_mo", 78, "6410_ve", 4, "91E0_vn", 10 ) expand_types(x, type_var = "mycode") expand_types(x, type_var = "mycode", strict = FALSE)
n2khab_data
folderThis function will check for the existence of default data folders,
create them if necessary, and return the path to the n2khab_data
folder.
fileman_folders(root = c("rproj", "git"), path = NA)
fileman_folders(root = c("rproj", "git"), path = NA)
root |
Character string indicating whether the root folder of the current git repository or the root folder of the current Rstudio project should be used as the folder where you want the data folder structure to be created.
Can be |
path |
An optional argument to specify a custom path to a folder where you want the data folder structure to be created. Default is |
In n2khab projects a standardized folder setup is used for binary
data, as explained in the
vignette on data storage (run vignette("v020_datastorage")
).
The functions creates the folders n2khab_data
, n2khab_data/10_raw
and n2khab_data/20_processed
, or prints a message if these already
exist.
The function returns the path to n2khab_data
.
A character string that gives the absolute path to the n2khab_data/
folder.
Other functions regarding file management for N2KHAB projects:
checksum()
,
download_zenodo()
,
fileman_up()
,
locate_n2khab_data()
## Not run: fileman_folders() datapath <- fileman_folders(root = "git") ## End(Not run)
## Not run: fileman_folders() datapath <- fileman_folders(root = "git") ## End(Not run)
Searches for a specific file or folder, starting from the start
directory and sequentially climbing up one directory level at a time.
The first match causes this sequence to stop
and the full path will be returned.
fileman_up(name, start = ".", levels = 10)
fileman_up(name, start = ".", levels = 10)
name |
Name of file or folder to search for. An exact match is needed. The matching is case sensitive. |
start |
String. Directory to start searching from. |
levels |
Integer.
How many levels to sequentially climb up in the file hierarchy,
if the file or folder is not found in the |
Symbolic links are matched, and in the returned path they are converted.
The path to the specified folder or file (string), or NULL
if
not found.
Other functions regarding file management for N2KHAB projects:
checksum()
,
download_zenodo()
,
fileman_folders()
,
locate_n2khab_data()
## Not run: fileman_up("n2khab_data") ## End(Not run)
## Not run: fileman_up("n2khab_data") ## End(Not run)
n2khab_data
directoryReturns the absolute path of the n2khab_data
directory by searching
upwards in the directory hierarchy (starting in the working directory); the
first hit will be returned.
locate_n2khab_data()
locate_n2khab_data()
If the n2khab_data_path
option (or environment variable
N2KHAB_DATA_PATH
) is set, that value will be returned instead (see
n2khab_options()
).
See the data management advice in the
vignette on data storage (run vignette("v020_datastorage")
)
for more information.
Other functions regarding file management for N2KHAB projects:
checksum()
,
download_zenodo()
,
fileman_folders()
,
fileman_up()
## Not run: locate_n2khab_data() ## End(Not run)
## Not run: locate_n2khab_data() ## End(Not run)
The package can be configured by means of options or environment variables. These will influence the behaviour of certain functions. Each option has its sibling environment variable. When both have a value, the option will be given priority.
This function queries these options and environment variables, and returns the resulting state for each of them (not distinguishing between options or environment variables as the source).
n2khab_options()
n2khab_options()
Options are typically harder to
isolate from the R code that you collaborate on and share through a
repository.
This is especially the case when using renv
: it requires
.Rprofile
as part of your project in the working directory, which prevents
.Rprofile
files elsewhere on the system from being used.
Consequently, it is advised to:
use options()
where this affects behaviour that must be the same across
users and machines for reproducibility.
Put these inside your script, or at least in an .Rprofile
file that is
shared together with the other project files.
Example: which package to use to represent raster objects.
use environment variables where behaviour must be machine-specific, e.g.
to override the default location of the n2khab_data
directory (can also be
needed when using reprex::reprex()
).
For example, you can create an .Renviron
file in your working directory
and ignore it in distributed version control.
Or you can set the environment variable at a higher level, e.g. in an
.Renviron
file in your home directory.
See base::Startup for more information.
A data frame with the names and values of possible options.
Missing values are returned as NA
.
option | environment variable | type | description |
n2khab_data_path |
N2KHAB_DATA_PATH |
string | Path of the n2khab_data directory. Takes priority over the default locations where reading functions expect this directory. |
n2khab_use_raster |
N2KHAB_USE_RASTER |
logical | Should the raster package be used to return raster objects? The terra package is used by default. |
n2khab_options() oldopt <- options(n2khab_use_raster = TRUE) n2khab_options() options(oldopt) # Unacceptable values yield an error message; # the data frame is still returned with NA: oldopt <- options(n2khab_data_path = 0, n2khab_use_raster = TRUE) n2khab_options() options(oldopt)
n2khab_options() oldopt <- options(n2khab_use_raster = TRUE) n2khab_options() options(oldopt) # Unacceptable values yield an error message; # the data frame is still returned with NA: oldopt <- options(n2khab_data_path = 0, n2khab_use_raster = TRUE) n2khab_options() options(oldopt)
'namelist' is a data source in the vc-format which provides names and (optionally) shortnames for IDs/codes used in other data sources. Multiple languages are supported.
A vc-formatted data source. As such, it corresponds to a data frame with many rows and 4 variables:
A code used elsewhere.
An
IETF BCP
47 language tag, such as "en"
or "nl"
, to identify
the language of name
and shortname
.
The name corresponding to code
and lang
.
Optionally, a shorter variant of name
.
read_namelist()
read_namelist(lang = "nl")
textdata/namelist.tsv
textdata/namelist.yml
The 'namelist' data source has got its contents from the sources of several other n2khab-referencelists (see the source of those).
Other n2khab-referencelists:
env_pressures
,
types
Returns an administrative geospatial data source. The coordinate reference system is 'BD72 / Belgian Lambert 72' (EPSG-code 31370).
read_admin_areas( file = file.path(locate_n2khab_data(), c("10_raw/flanders", "10_raw/provinces", "10_raw/sac")), dsn = c("flanders", "provinces", "sac") )
read_admin_areas( file = file.path(locate_n2khab_data(), c("10_raw/flanders", "10_raw/provinces", "10_raw/sac")), dsn = c("flanders", "provinces", "sac") )
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
dsn |
A string, conforming to one of the data source names listed under
Usage.
Considering the default values of the Different data sources are handled differently by the function.
The |
See section Usage to see which N2KHAB data sources are
available.
You get a list of the data source names and related information with
XXXXXXXXX
.
You are referred to the raw N2KHAB-data collection
at Zenodo to learn
more about these data sources.
A Simple feature collection of geometry type MULTIPOLYGON
or
POLYGON
.
## Not run: flanders <- read_admin_areas(dsn = "flanders") provinces <- read_admin_areas(dsn = "provinces") sac <- read_admin_areas(dsn = "sac") ## End(Not run)
## Not run: flanders <- read_admin_areas(dsn = "flanders") provinces <- read_admin_areas(dsn = "provinces") sac <- read_admin_areas(dsn = "sac") ## End(Not run)
ecoregions
data source as an sf
objectReturns the raw data source ecoregions
, with unique polygon
identifiers polygon_code
and polygon_id
.
Multiple polygons can have the same region_name
.
The coordinate reference system is 'BD72 / Belgian Lambert 72'
(EPSG-code 31370).
read_ecoregions(file = file.path(locate_n2khab_data(), "10_raw/ecoregions"))
read_ecoregions(file = file.path(locate_n2khab_data(), "10_raw/ecoregions"))
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
Original columns of the raw data source were mapped as:
CODE
-> polygon_code
NR
-> polygon_id
REGIO
-> region_name
DISTRICT
-> district_name
Apart from the label, there is no complementary information between
polygon_code
and polygon_id
.
A Simple feature collection of geometry type MULTIPOLYGON
.
## Not run: ecoregions <- read_ecoregions() ecoregions ## End(Not run)
## Not run: ecoregions <- read_ecoregions() ecoregions ## End(Not run)
Returns the included data source env_pressures
as a
tibble
.
Names, shortnames, explanations and optional remarks from
namelist
are added,
in English by default.
read_env_pressures( path = pkgdatasource_path("textdata/env_pressures", ".yml"), file = "env_pressures", file_namelist = "namelist", lang = "en" )
read_env_pressures( path = pkgdatasource_path("textdata/env_pressures", ".yml"), file = "env_pressures", file_namelist = "namelist", lang = "en" )
path |
Location of the data sources |
file |
The filename of the |
file_namelist |
The filename of the |
lang |
An
IETF BCP 47 language tag, such as |
env_pressures
is a data source in the
vc-format which provides
a checklist of environmental pressures, represented by codes, together
with the pressure-class and the textual explanation.
read_env_pressures()
reads the env_pressures
data
source, adds
human-readable attributes and returns it as a
tibble
.
A tibble is a data frame that makes working in the tidyverse a little
easier.
By default, the data version delivered with the package is used and English
text (lang = "en"
) is returned for names of environmental pressures and
pressure-classes, and for textual explanations and remarks.
The env_pressures
data frame as a tibble
,
with human-readable text added for environmental pressures,
pressure-classes and textual explanations and remarks
according to the lang
argument.
The tibble has 35 rows and 7 variables.
See env_pressures
for documentation of the data-source's contents.
See namelist
for the link between codes or other identifiers
and the corresponding text.
The human-readable attributes are represented by the following variables:
ep_abbrev
A (language-dependent) abbreviation (alternative code)
of the environmental pressure.
Is a factor with the level order coinciding with that of
ep_code
.
ep_name
The name of the environmental pressure.
Is a factor with the level order coinciding with that of
ep_code
.
ep_class_name
The name of the environmental pressure's class.
Is a factor with the level order coinciding with that of
ep_class
.
explanation
An explanation of the environmental pressure.
remarks
Optional remarks about the environmental pressure.
read_env_pressures()
read_env_pressures(lang = "nl")
Other reading functions for n2khab-referencelists:
read_namelist()
,
read_types()
read_env_pressures() read_env_pressures(lang = "nl")
read_env_pressures() read_env_pressures(lang = "nl")
GRTSmaster_habitats
data source or a
10-layered variant as a SpatRaster objectBy default, the GRTSmaster_habitats
data source is returned as a
single-layered SpatRaster object with decimal integer ranking numbers as values.
If brick = TRUE
, a ten-layered SpatRaster is
returned (data source GRTSmh_brick
; resolution 32 m)
with the decimal integer ranking numbers of 10 hierarchical levels of the
GRTS cell addresses, including the one from GRTSmaster_habitats
(with GRTS cell addresses at the resolution level).
The coordinate reference system is 'BD72 / Belgian Lambert 72'
(EPSG-code 31370).
read_GRTSmh( file = file.path(locate_n2khab_data(), c("10_raw/GRTSmaster_habitats/GRTSmaster_habitats.tif", "20_processed/GRTSmh_brick/GRTSmh_brick.tif")), brick = FALSE )
read_GRTSmh( file = file.path(locate_n2khab_data(), c("10_raw/GRTSmaster_habitats/GRTSmaster_habitats.tif", "20_processed/GRTSmh_brick/GRTSmh_brick.tif")), brick = FALSE )
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
brick |
Logical; determines whether the single- or ten-layered SpatRaster is returned. See the Details section. |
The data source GRTSmaster_habitats
, provided and documented in
Zenodo, is a monolayered GeoTIFF
file covering the whole of Flanders and the Brussels Capital Region at a
resolution of 32 m.
Its values are unique decimal integer ranking numbers from the GRTS
algorithm applied to the Flemish and Brussels area.
Beware that not all GRTS ranking numbers are present in the data source, as
the original GRTS raster has been clipped with the Flemish outer borders
(i.e., not excluding the Brussels Capital Region).
The GRTS algorithm uses a quadrant-recursive, hierarchically randomized
function that maps the unit square to the unit interval, resulting in a
base-4 GRTS address for each location (see
read_GRTSmh_base4frac
).
The ranking numbers in GRTSmaster_habitats
are base-10 numbers and
follow the reverse
hierarchical order: each consecutive subset of ranking numbers corresponds
to a spatially balanced sample of locations.
Hence, it allows dynamical sample sizes.
More information on the GRTS algorithm can be found in Stevens & Olsen (2003,
2004) and in the GRTS and
spsurvey packages.
Depending on the value of the brick
argument, the function either
returns the GRTSmaster_habitats
data source as a
single-layered SpatRaster (brick = FALSE
), or (brick = TRUE
)
returns the GRTSmh_brick
data source as a
ten-layered SpatRaster (resolution 32 m)
with the decimal integer ranking numbers of 10 hierarchical levels of the
GRTS cell addresses, including the one from GRTSmaster_habitats
(with GRTS cell addresses at the resolution level).
The GRTSmh_brick
data source is a processed dataset (ten-layered
GeoTIFF), available at
Zenodo, and can only be
returned by the function when it is already present as a file.
See R-code in the
n2khab-preprocessing repository for its creation from
the GRTSmaster_habitats
data source.
Both GeoTIFFs (GRTSmaster_habitats
, GRTSmh_brick
) use the
INT4S
datatype.
The higher-level ranking numbers of the ten-layered variant allow spatially
balanced
samples at lower spatial resolution than that of 32 m, and can also be
used for aggregation purposes.
The provided hierarchical levels correspond to the resolutions vector
32 * 2^(0:9)
(minimum: 32 meters, maximum: 16384 meters), with
the corresponding SpatRaster layers named as level0
to level9
.
A single- or a ten-layered SpatRaster object, always with 21041043 cells.
If the package is configured to use the raster package
(see n2khab_options()
), a RasterLayer is
returned if brick = FALSE
and a RasterBrick if brick = TRUE
.
Stevens D.L. & Olsen A.R. (2003). Variance estimation for spatially balanced samples of environmental resources. Environmetrics 14 (6): 593–610. doi:10.1002/env.606.
Stevens D.L. & Olsen A.R. (2004). Spatially Balanced Sampling of Natural Resources. Journal of the American Statistical Association 99 (465): 262–278. doi:10.1198/016214504000000250.
Other functions involved in processing the 'GRTSmaster_habitats' data source:
convert_base4frac_to_dec()
,
convert_dec_to_base4frac()
,
read_GRTSmh_base4frac()
,
read_GRTSmh_diffres()
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has # the 'n2khab_data' folder AND that the latest version of the # 'GRTSmaster_habitats' data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can consider # what to do. r <- read_GRTSmh() r r10 <- read_GRTSmh(brick = TRUE) r10 ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has # the 'n2khab_data' folder AND that the latest version of the # 'GRTSmaster_habitats' data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can consider # what to do. r <- read_GRTSmh() r r10 <- read_GRTSmh(brick = TRUE) r10 ## End(Not run)
GRTSmh_base4frac
as a
SpatRasterThe GRTSmh_base4frac
data source is like a mirror to
GRTSmaster_habitats
, holding the ranking numbers as base 4 fractions.
The function returns it as a SpatRaster in the Belgian Lambert 72 CRS
(EPSG-code 31370).
read_GRTSmh_base4frac( file = file.path(locate_n2khab_data(), "20_processed/GRTSmh_base4frac/GRTSmh_base4frac.tif") )
read_GRTSmh_base4frac( file = file.path(locate_n2khab_data(), "20_processed/GRTSmh_base4frac/GRTSmh_base4frac.tif") )
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
The data source file, read by the function, is a monolayered GeoTIFF in the
FLT8S
datatype and is available at
Zenodo.
In GRTSmh_base4frac
, the decimal (i.e. base 10) integer values from
the raster data source GRTSmaster_habitats
(see
read_GRTSmh
) have been converted into base 4 fractions,
using a precision
of 13 digits behind the decimal mark (as needed to cope with the range of
values).
For example, the integer 16
(= 4^2
) has been converted into
0.0000000000100
and 4^12
has been converted into
0.1000000000000
.
Long base 4 fractions seem to be handled and stored easier than long (base 4) integers. This approach follows the one of Stevens & Olsen (2004) to represent the reverse hierarchical order in a GRTS sample as base-4-fraction addresses.
See R-code in the
n2khab-preprocessing repository for the creation from
the GRTSmaster_habitats
data source.
Beware that not all GRTS ranking numbers are present in the data source, as the original GRTS raster has been clipped with the Flemish outer borders (i.e., not excluding the Brussels Capital Region).
Also, be warned that R does not regard the values as base 4, but as base 10. So, what really matters is only the notation with many digits, to be regarded as a base 4 fraction.
A SpatRaster with 21041043 cells.
If the package is configured to use the raster package
(see n2khab_options()
), a RasterLayer is
returned instead.
Stevens D.L. & Olsen A.R. (2004). Spatially Balanced Sampling of Natural Resources. Journal of the American Statistical Association 99 (465): 262–278. doi:10.1198/016214504000000250.
Other functions involved in processing the 'GRTSmaster_habitats' data source:
convert_base4frac_to_dec()
,
convert_dec_to_base4frac()
,
read_GRTSmh()
,
read_GRTSmh_diffres()
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has # the 'n2khab_data' folder AND that the latest version of the # 'GRTSmh_base4frac' data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can consider # what to do. oldopt <- options(scipen = 999, digits = 15) r <- read_GRTSmh_base4frac() r options(oldopt) ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has # the 'n2khab_data' folder AND that the latest version of the # 'GRTSmh_base4frac' data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can consider # what to do. oldopt <- options(scipen = 999, digits = 15) r <- read_GRTSmh_base4frac() r options(oldopt) ## End(Not run)
sf
polygon layer from the processed data
source GRTSmh_diffres
The GRTSmh_diffres
data source is derived from
GRTSmh_brick
.
It provides the hierarchical levels 1 to 9 of the
GRTS cell addresses at the corresponding spatial resolution.
The function returns one selected level, either as a SpatRaster or as an
sf
polygon layer (in the latter case, only levels 4 to 9 are
provided).
The coordinate reference system is 'BD72 / Belgian Lambert 72'
(EPSG-code 31370).
read_GRTSmh_diffres( dir = file.path(locate_n2khab_data(), "20_processed/GRTSmh_diffres"), level, polygon = FALSE )
read_GRTSmh_diffres( dir = file.path(locate_n2khab_data(), "20_processed/GRTSmh_diffres"), level, polygon = FALSE )
dir |
The data source directory (absolute or relative).
The default follows the data management advice in the
vignette on data storage (run |
level |
Integer in the range from 1 to 9; determines the spatial resolution. See the Details section. |
polygon |
Logical; determines whether a polygon layer or a SpatRaster is returned. See the Details section. |
The GRTSmh_diffres
data source file is a file collection (available
at Zenodo), composed of
nine monolayered GeoTIFF files of the INT4S
datatype plus a GeoPackage
with six polygon layers:
The polygon layers in the GeoPackage are the dissolved, polygonized
versions of levels 4 to 9 of the
GRTSmh_brick
data source (see read_GRTSmh
).
This means that they provide the decimal (i.e. base 10) integer values of
these higher hierarchical levels of the GRTS cell addresses
of the raw data source GRTSmaster_habitats
.
Hence, the polygons are typically squares that correspond to the GRTS cell at
the specified hierarchical level.
The polygon layer is however restricted to the non-NA
cells of the original
GRTSmaster_habitats
raster.
Consequently, a part of the polygons is clipped along the Flemish border.
Levels 1 to 3 are not provided for the whole of Flanders,
because this would inflate the GPKG file.
You can look at the source code
to do such things.
The GeoTIFF files provide the respective levels 1 to 9 of the
GRTSmh_brick
data source in a raster format, at the resolution that
corresponds to the GRTS cell at the specified hierarchical level.
The presence of NA
cells around Flanders at level 0 implies that, with
decreasing resolution, the raster's extent increases and larger areas outside
Flanders are covered by non-NA
cells along the border.
The function returns the selected level
either as an sf
polygon
layer or as a SpatRaster, depending on the
polygon
argument.
The higher-level ranking numbers (compared to the original level 0) allow spatially balanced samples at lower spatial resolution than that of 32 m, and can also be used for aggregation purposes.
The levels 1 to 9 correspond to the resolutions vector
32 * 2^(1:9)
in meters:
level | resolution (m) |
1 | 64 |
2 | 128 |
3 | 256 |
4 | 512 |
5 | 1024 |
6 | 2048 |
7 | 4096 |
8 | 8192 |
9 | 16384 |
See R-code in the
n2khab-preprocessing repository for the creation from
the GRTSmh_brick
data source.
Beware that not all GRTS ranking numbers at the specified level are provided, as the original GRTS raster has been clipped with the Flemish outer borders (i.e., not excluding the Brussels Capital Region).
Either a SpatRaster or a Simple feature collection of geometry type
POLYGON
.
If the package is configured to use the raster package
(see n2khab_options()
), a RasterLayer is
returned instead of a SpatRaster.
Other functions involved in processing the 'GRTSmaster_habitats' data source:
convert_base4frac_to_dec()
,
convert_dec_to_base4frac()
,
read_GRTSmh()
,
read_GRTSmh_base4frac()
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has # the 'n2khab_data' folder AND that the latest version of the # 'GRTSmh_diffres' data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can consider # what to do. r <- read_GRTSmh_diffres(level = 7) r p <- read_GRTSmh_diffres(level = 7, polygon = TRUE) p ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has # the 'n2khab_data' folder AND that the latest version of the # 'GRTSmh_diffres' data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can consider # what to do. r <- read_GRTSmh_diffres(level = 7) r p <- read_GRTSmh_diffres(level = 7, polygon = TRUE) p ## End(Not run)
habitatmap
as an sf
multipolygon layerReturns the raw data source habitatmap
(De Saeger et al., 2023)
as a standardized sf
multipolygon layer
(tidyverse-styled, internationalized) in the Belgian Lambert 72 CRS
(EPSG-code 31370).
Given the size of the data source, this function
takes a bit longer than usual to run.
read_habitatmap( file = file.path(locate_n2khab_data(), "10_raw/habitatmap"), filter_hab = FALSE, fix_geom = FALSE, version = c("habitatmap_2023", "habitatmap_2020", "habitatmap_2018") )
read_habitatmap( file = file.path(locate_n2khab_data(), "10_raw/habitatmap"), filter_hab = FALSE, fix_geom = FALSE, version = c("habitatmap_2023", "habitatmap_2020", "habitatmap_2018") )
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
filter_hab |
If |
fix_geom |
Logical.
Should invalid or corrupt geometries be fixed in the resulting |
version |
Version ID of the data source. Defaults to the latest available version defined by the package. |
A Simple feature collection of
type MULTIPOLYGON
.
De Saeger S., Dhaluin P., Erens R., Guelinckx G., Hennebel D., Jacobs I., Kumpen M., Van Oost F., Spanhove T., Leyssen A., Oosterlynck P., Van Dam G., Van Hove M., Wils C. (red.) (2023). Biologische Waarderingskaart en Natura 2000 Habitatkaart, uitgave 2023. (Rapporten van het Instituut voor Natuur- en Bosonderzoek; Nr. 31). Instituut voor Natuur- en Bosonderzoek (INBO). doi:10.21436/inbor.96375305.
De Saeger, S., Oosterlynck, P. & Paelinckx, D. (2017). The Biological Valuation Map (BVM): a field-driven survey of land cover and vegetation in the Flemish Region of Belgium. Documents phytosociologiques - Actes du colloque de Saint-Mandé 2012 - Prodrome et cartographie des végétations de France - 2017. Vol. 6: 372-382.
Other functions involved in processing the 'habitatmap' data source:
read_habitatmap_stdized()
,
read_habitatmap_terr()
,
read_watersurfaces_hab()
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'habitatmap' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. hm <- read_habitatmap() hm hm_valid <- read_habitatmap(fix_geom = TRUE) hm_valid all(sf::st_is_valid(hm)) all(sf::st_is_valid(hm_valid)) ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'habitatmap' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. hm <- read_habitatmap() hm hm_valid <- read_habitatmap(fix_geom = TRUE) hm_valid all(sf::st_is_valid(hm)) all(sf::st_is_valid(hm_valid)) ## End(Not run)
habitatmap_stdized
as a list of two
objectsread_habitatmap_stdized
returns the data source habitatmap_stdized
as a list of two objects:
habitatmap_polygons
: an sf object in the Belgian Lambert 72
CRS (EPSG-code 31370) with all polygons
of the habitatmap
that contain habitat or a regionally
important biotope (RIB).
habitatmap_types
: a tibble with information on the
habitat and RIB types (HAB1, HAB2,..., HAB5) that occur within
each polygon of habitatmap_polygons
.
read_habitatmap_stdized( file = file.path(locate_n2khab_data(), "20_processed/habitatmap_stdized/habitatmap_stdized.gpkg"), version = c("habitatmap_stdized_2023_v1", "habitatmap_stdized_2020_v1", "habitatmap_stdized_2018_v2", "habitatmap_stdized_2018_v1") )
read_habitatmap_stdized( file = file.path(locate_n2khab_data(), "20_processed/habitatmap_stdized/habitatmap_stdized.gpkg"), version = c("habitatmap_stdized_2023_v1", "habitatmap_stdized_2020_v1", "habitatmap_stdized_2018_v2", "habitatmap_stdized_2018_v1") )
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
version |
Version ID of the data source. Defaults to the latest available version defined by the package. |
The data source habitatmap_stdized
is the processed version
of the raw data source habitatmap
(De Saeger et al., 2023).
Every polygon in the habitatmap
can consist of maximum 5
different types. This information is stored in the
columns 'HAB1', HAB2',..., 'HAB5' of the attribute table. The
fraction of each type within the polygons is stored in
the columns 'PHAB1', 'PHAB2', ..., 'PHAB5'.
The data source habitatmap_stdized
is a GeoPackage, available at
Zenodo, that
contains:
habitatmap_polygons
: a spatial layer with every
habitatmap
polygon that contains a habitat or RIB type
listed in types
.
habitatmap_types
: a table with the types that occur in each polygon.
The processing of the habitatmap_types
tibble included
following steps:
For some polygons the type is uncertain, and the
type code in the raw habitatmap
data source consists
of 2 or 3 possible types, separated with a ','. The different
possible types are split up and one row is created for
each of them, with phab
for each new row simply set to the original
value of phab
.
The variable certain
will be FALSE
if
the original code consists of 2 or 3 possible types, and TRUE
if only one type is provided.
Some polygons contain both a standing water habitat type
and rbbmr
:
3130_rbbmr
,
3140_rbbmr
,
3150_rbbmr
and
3160_rbbmr
.
Since habitatmap_stdized_2020_v1
, the two
types 31xx
and rbbmr
are split up and one row is
created for each of them, with phab
for each new row simply
set to the original value of phab
.
The variable certain
in this case will be TRUE
for both
types.
After those first two steps, a given polygon could contain the
same type with the same value for certain
repeated several
times, e.g. when 31xx_rbbmr
is present with phab
= yy%
and 31xx
is present with phab
= zz%.
In that case the rows with the same polygon_id
, type
and certain
were gathered into one row and the respective
phab
values were added up.
For some polygons the original type code in the
habitatmap
was not consistent with general coding syntax or
with the type codes from the types
data source. In that
case the code was adjusted.
The R-code for creating the habitatmap_stdized
data source
can be found in the n2khab-preprocessing repository.
A list of two objects:
habitatmap_polygons
: an sf object of habitatmap
polygons with two attribute variables
polygon_id
description_orig
: polygon description based on the
orginal type codes in the raw habitatmap
habitatmap_types
: a tibble with following variables
polygon_id
type
: habitat or RIB type listed in types
.
certain
: TRUE
when the type is certain and
FALSE
when the type is uncertain.
code_orig
: original type code in raw habitatmap
.
phab
: proportion of polygon covered by type, as a percentage.
Since version habitatmap_stdized_2020_v1
, rows are unique only
by the combination of the polygon_id
, type
and
certain
columns.
De Saeger S., Dhaluin P., Erens R., Guelinckx G., Hennebel D., Jacobs I., Kumpen M., Van Oost F., Spanhove T., Leyssen A., Oosterlynck P., Van Dam G., Van Hove M., Wils C. (red.) (2023). Biologische Waarderingskaart en Natura 2000 Habitatkaart, uitgave 2023. (Rapporten van het Instituut voor Natuur- en Bosonderzoek; Nr. 31). Instituut voor Natuur- en Bosonderzoek (INBO). doi:10.21436/inbor.96375305.
De Saeger, S., Oosterlynck, P. & Paelinckx, D. (2017). The Biological Valuation Map (BVM): a field-driven survey of land cover and vegetation in the Flemish Region of Belgium. Documents phytosociologiques - Actes du colloque de Saint-Mandé 2012 - Prodrome et cartographie des végétations de France - 2017. Vol. 6: 372-382.
Other functions involved in processing the 'habitatmap' data source:
read_habitatmap()
,
read_habitatmap_terr()
,
read_watersurfaces_hab()
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'habitatmap_stdized' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. hms <- read_habitatmap_stdized() hms_polygons <- hms$habitatmap_polygons hms_types <- hms$habitatmap_types hms_polygons hms_types ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'habitatmap_stdized' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. hms <- read_habitatmap_stdized() hms_polygons <- hms$habitatmap_polygons hms_types <- hms$habitatmap_types hms_polygons hms_types ## End(Not run)
habitatmap_terr
as a list of two
objectsread_habitatmap_terr()
returns the data source habitatmap_terr
as a list of two objects: habitatmap_terr_polygons
, having the Belgian
Lambert 72 CRS (EPSG-code 31370), and
habitatmap_terr_types
.
habitatmap_terr
is the further interpreted, terrestrial part of
habitatmap_stdized
(see read_habitatmap_stdized
),
which, in turn, is derived from the raw data source habitatmap
(De Saeger et al., 2023).
By default, occurrences of type 7220
are dropped because a more
reliable data source is available for this habitat type (see drop_7220
argument).
Note: a type is a habitat (sub)type or a regionally
important biotope (RIB).
read_habitatmap_terr( file = file.path(locate_n2khab_data(), "20_processed/habitatmap_terr/habitatmap_terr.gpkg"), keep_aq_types = TRUE, drop_7220 = TRUE, version = c("habitatmap_terr_2023_v1", "habitatmap_terr_2020_v2", "habitatmap_terr_2020_v1", "habitatmap_terr_2018_v2", "habitatmap_terr_2018_v1") )
read_habitatmap_terr( file = file.path(locate_n2khab_data(), "20_processed/habitatmap_terr/habitatmap_terr.gpkg"), keep_aq_types = TRUE, drop_7220 = TRUE, version = c("habitatmap_terr_2023_v1", "habitatmap_terr_2020_v2", "habitatmap_terr_2020_v1", "habitatmap_terr_2018_v2", "habitatmap_terr_2018_v1") )
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
keep_aq_types |
Logical; |
drop_7220 |
Logical; |
version |
Version ID of the data source. Defaults to the latest available version defined by the package. |
habitatmap_terr
was derived from habitatmap_stdized
as
follows:
it excludes all polygons
that are most probably aquatic habitat or RIB.
These are the polygons for which
all habitat or RIB types are aquatic.
In the process, a distinction was also made between 2190_a
and
2190_overig
.
There is no exclusion of aquatic types when these coexist with
terrestrial types in the same polygon.
The aquatic types are the types for which hydr_class == "HC3"
in the types
data source (hydr_class
is the hydrological
class; cf. the output of read_types()
);
it excludes types which most probably are no
habitat or RIB at all.
Those are the types where code_orig
contains "bos"
or is
equal to "6510,gh"
or "9120,gh"
;
it translates several main type codes into a corresponding
subtype which they almost always represent:
6410
-> 6410_mo
,
6430
-> 6430_hf
,
6510
-> 6510_hu
,
7140
-> 7140_meso
,
9130
-> 9130_end
;
it distinguishes types rbbhfl
and rbbhf
.
The data source habitatmap_terr
is a GeoPackage, available at
Zenodo, that contains:
habitatmap_terr_polygons
: a spatial polygon layer
habitatmap_terr_types
: a table with the types that occur
in each polygon.
The R-code for creating the habitatmap_terr
data source
can be found in the
n2khab-preprocessing
repository.
A list of two objects:
habitatmap_terr_polygons
: a Simple feature collection of
geometry type MULTIPOLYGON
with four attribute variables:
polygon_id
description_orig
: polygon description based on the
original type codes in the habitatmap
data source
description
: based on description_orig
but with the
interpreted type codes
source
: states where description
comes from: either
habitatmap_stdized
or habitatmap_stdized + interpretation
habitatmap_terr_types
: a tibble with the following
variables (the first 4 being identical to those in
habitatmap_stdized
):
polygon_id
type
: the interpreted habitat or RIB type
certain
code_orig
phab
source
: states where type
comes from: either
habitatmap_stdized
or habitatmap_stdized + interpretation
Since version habitatmap_terr_2020_v1
, rows are unique only
by the combination of the polygon_id
, type
and
certain
columns.
De Saeger S., Dhaluin P., Erens R., Guelinckx G., Hennebel D., Jacobs I., Kumpen M., Van Oost F., Spanhove T., Leyssen A., Oosterlynck P., Van Dam G., Van Hove M., Wils C. (red.) (2023). Biologische Waarderingskaart en Natura 2000 Habitatkaart, uitgave 2023. (Rapporten van het Instituut voor Natuur- en Bosonderzoek; Nr. 31). Instituut voor Natuur- en Bosonderzoek (INBO). doi:10.21436/inbor.96375305.
De Saeger, S., Oosterlynck, P. & Paelinckx, D. (2017). The Biological Valuation Map (BVM): a field-driven survey of land cover and vegetation in the Flemish Region of Belgium. Documents phytosociologiques - Actes du colloque de Saint-Mandé 2012 - Prodrome et cartographie des végétations de France - 2017. Vol. 6: 372-382.
Other functions involved in processing the 'habitatmap' data source:
read_habitatmap()
,
read_habitatmap_stdized()
,
read_watersurfaces_hab()
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'habitatmap_terr' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. habmap_terr <- read_habitatmap_terr() habmap_terr$habitatmap_terr_polygons habmap_terr$habitatmap_terr_types habmap_terr_noaq <- read_habitatmap_terr(keep_aq_types = FALSE) habmap_terr_noaq$habitatmap_terr_polygons habmap_terr_noaq$habitatmap_terr_types ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'habitatmap_terr' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. habmap_terr <- read_habitatmap_terr() habmap_terr$habitatmap_terr_polygons habmap_terr$habitatmap_terr_types habmap_terr_noaq <- read_habitatmap_terr(keep_aq_types = FALSE) habmap_terr_noaq$habitatmap_terr_polygons habmap_terr_noaq$habitatmap_terr_types ## End(Not run)
habitatquarries
Returns the raw data source habitatquarries
as an sf
polygon
layer in the Belgian Lambert 72 CRS (EPSG-code
31370).
Optionally, associated bibliographic references can be returned (arguments
references
or bibtex
).
read_habitatquarries( file = file.path(locate_n2khab_data(), "10_raw/habitatquarries/habitatquarries.gpkg"), filter_hab = FALSE, references = FALSE, bibtex = FALSE, version = "habitatquarries_2020v1" )
read_habitatquarries( file = file.path(locate_n2khab_data(), "10_raw/habitatquarries/habitatquarries.gpkg"), filter_hab = FALSE, references = FALSE, bibtex = FALSE, version = "habitatquarries_2020v1" )
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
filter_hab |
If |
references |
If |
bibtex |
If |
version |
Version ID of the data source. Defaults to the latest available version defined by the package. |
The data source habitatquarries
is a GeoPackage, available at
Zenodo, that contains:
habitatquarries
: a spatial polygon layer that corresponds
with the presence or absence of the Natura 2000 Annex I habitat type 8310
(Caves not open to the public) in the Flemish Region (and border areas),
Belgium;
extra_references
: a non-spatial table of site-specific
bibliographic references.
In general, different polygons represent different quarry units with their own internal climatic environment. Units that cross Flemish borders have been split into separate polygons. Exceptionally they may overlap if such units are situated above each other.
Depending on the arguments, one of:
a simple feature collection of
type POLYGON
, with attribute variables:
polygon_id
: a unique number per polygon.
unit_id
: a unique number for each quarry unit. Quarry units
consisting of several polygons (= partly outside the Flemish region)
have a number greater than or equal to 100.
name
: site name.
code_orig
: original 'habitattype' code in the raw data
source habitatquarries
.
type
: habitat type listed in types
- in this
case either 8310
or missing (NA
).
extra_reference
: site-specific bibliographic reference(s).
Values refer to rows in the non-spatial data frame extra_references
.
if references = TRUE
: a list with both the sf
object (element habitatquarries
) and a data frame of bibliographic
references (element extra_references
).
if bibtex = TRUE
: NULL
(invisibly).
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'habitatquarries' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. hq <- read_habitatquarries() hq hq2 <- read_habitatquarries(filter_hab = TRUE) hq2 hq3 <- read_habitatquarries(references = TRUE) hq3 read_habitatquarries(bibtex = TRUE) ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'habitatquarries' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. hq <- read_habitatquarries() hq hq2 <- read_habitatquarries(filter_hab = TRUE) hq2 hq3 <- read_habitatquarries(references = TRUE) hq3 read_habitatquarries(bibtex = TRUE) ## End(Not run)
habitatsprings
as an sf
point
layerReturns the raw data source habitatsprings
as an sf
point
layer in the Belgian Lambert 72 CRS (EPSG-code
31370).
Optionally, a derived sf
object of type-7220
-locations can be
returned at the population unit level, through aggregation by unit_id
.
read_habitatsprings( file = file.path(locate_n2khab_data(), "10_raw/habitatsprings/habitatsprings.geojson"), filter_hab = FALSE, units_7220 = FALSE, version = "habitatsprings_2020v2" )
read_habitatsprings( file = file.path(locate_n2khab_data(), "10_raw/habitatsprings/habitatsprings.geojson"), filter_hab = FALSE, units_7220 = FALSE, version = "habitatsprings_2020v2" )
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
filter_hab |
If |
units_7220 |
If |
version |
Version ID of the data source. Defaults to the latest available version defined by the package. |
The data source habitatsprings
is a GeoJSON file (conforming to
the RFC7946 specifications), available at
Zenodo.
It represents sites that correspond with presence or absence
of the Natura 2000 habitat type 7220
(Petrifying springs with tufa
formation (Cratoneurion)) in springs and streaming water segments in
the Flemish Region, Belgium.
A Simple feature collection of
type POINT
, with attribute variables:
point_id
name
: site name.
system_type
: environmental typology of 7220
: mire
,
rivulet
or unknown
(non-7220
types are NA
)
code_orig
: original type code in raw
habitatsprings
.
type
: habitat type listed in types
.
certain
: TRUE
when the type is certain and
FALSE
when the type is uncertain.
unit_id
: population unit id for large scale sampling
events.
Spatially close points have the same value.
area_m2
: area as square meters.
year
: year of field inventory.
in_sac
: logical.
Is the site situated within a Special Area of Conservation?
source
: original data source of the record.
Note that the type
and system_type
variables have
implicit NA
values
(i.e. there is
no factor level to represent the missing values).
If you want this category to appear in certain results, you can add
it as a level with
forcats::fct_explicit_na()
.
With units_7220 = TRUE
, variable point_id
is dropped and
an extra attribute variable nr_of_points
is
added.
It represents the number of points that belong to each unit.
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'habitatsprings' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. hs <- read_habitatsprings() hs hs2 <- read_habitatsprings(units_7220 = TRUE) hs2 ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'habitatsprings' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. hs <- read_habitatsprings() hs hs2 <- read_habitatsprings(units_7220 = TRUE) hs2 ## End(Not run)
habitatstreams
as an sf
linestring
layer or as a listReturns the raw data source habitatstreams
(section 'habitat 3260' from
De Saeger et al., 2023) as an sf
linestring
layer or as a list of two objects: the sf
object (CRS:
Belgian Lambert 72 (EPSG-code 31370))
plus a data frame
with textual explanation of the values of the source_id
variable.
read_habitatstreams( file = file.path(locate_n2khab_data(), "10_raw/habitatstreams"), source_text = FALSE )
read_habitatstreams( file = file.path(locate_n2khab_data(), "10_raw/habitatstreams"), source_text = FALSE )
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
source_text |
Logical, defaults to |
For more information about this map, see also the documentation of the previous version (Leyssen et al., 2020).
With source_text = FALSE
(default): a Simple feature collection of
type LINESTRING
.
With source_text = TRUE
: a list of two objects:
lines
: the same sf
object as with source_text = FALSE
.
sources
: textual explanation on the values of the source_id
variable in the sf
object.
De Saeger S., Dhaluin P., Erens R., Guelinckx G., Hennebel D., Jacobs I., Kumpen M., Van Oost F., Spanhove T., Leyssen A., Oosterlynck P., Van Dam G., Van Hove M., Wils C. (red.) (2023). Biologische Waarderingskaart en Natura 2000 Habitatkaart, uitgave 2023. (Rapporten van het Instituut voor Natuur- en Bosonderzoek; Nr. 31). Instituut voor Natuur- en Bosonderzoek (INBO). doi:10.21436/inbor.96375305.
Leyssen A., Smeekens V., Denys L. (2020). Indicatieve situering van het Natura 2000 habitattype 3260. Submontane en laaglandrivieren met vegetaties behorend tot het Ranunculion fluitantis en het Callitricho-Batrachion. Uitgave 2020 (versie 1.7). Rapporten van het Instituut voor Natuur- en Bosonderzoek 2020 (34). Research Institute for Nature and Forest, Brussels. doi:10.21436/inbor.18903609.
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'habitatstreams' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. library(magrittr) library(sf) hs <- read_habitatstreams() hs hs2 <- read_habitatstreams(source_text = TRUE) hs2 all.equal( hs %>% st_drop_geometry(), hs2$lines %>% st_drop_geometry() ) ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'habitatstreams' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. library(magrittr) library(sf) hs <- read_habitatstreams() hs hs2 <- read_habitatstreams(source_text = TRUE) hs2 all.equal( hs %>% st_drop_geometry(), hs2$lines %>% st_drop_geometry() ) ## End(Not run)
Returns the included data source namelist
as a
tibble
,
by default filtered according to English names and shortnames.
read_namelist( path = pkgdatasource_path("textdata/namelist", ".yml"), file = "namelist", lang = "en" )
read_namelist( path = pkgdatasource_path("textdata/namelist", ".yml"), file = "namelist", lang = "en" )
path |
Location of the data source. The default is to use the location of the data source as delivered by the installed package. |
file |
The filename of the data source, without extension. The default is to use the file delivered by the installed package. |
lang |
An
IETF BCP
47 language tag, such as |
namelist
is a data source in the
vc-format which provides
names and (optionally) shortnames for IDs/codes used in other data sources.
read_namelist()
reads it and returns it as a
tibble
.
A tibble is a data frame that makes working in the tidyverse a little
easier.
By default, the data version delivered with the package is used and only English
names (lang = "en"
) are returned.
The namelist
data frame as a tibble
,
filtered according to the lang
argument.
See namelist
for documentation of the tibble's contents.
read_namelist()
read_namelist(lang = "nl")
Other reading functions for n2khab-referencelists:
read_env_pressures()
,
read_types()
read_namelist() read_namelist(lang = "nl")
read_namelist() read_namelist(lang = "nl")
raster_runif
as a SpatRasterThe raster_runif
data source covers Flanders and the Brussels
Capital Region
and has a resolution of 32 meters.
The raster cells with non-missing values match the value-cells of
the GRTSmaster_habitats
data source (see read_GRTSmh
)
with a small buffer added.
Every raster cell has a random value between 0 and 1 according to the
uniform distribution.
The coordinate reference system is 'BD72 / Belgian Lambert 72'
(EPSG-code 31370).
read_raster_runif( file = file.path(locate_n2khab_data(), "10_raw/raster_runif/raster_runif.tif"), version = "raster_runif_v1" )
read_raster_runif( file = file.path(locate_n2khab_data(), "10_raw/raster_runif/raster_runif.tif"), version = "raster_runif_v1" )
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
version |
Version ID of the data source. Defaults to the latest available version defined by the package. |
The raster_runif
data source is a GeoTIFF file (available at
Zenodo).
The R-code for creating the raster_runif
data source can be found in
the
n2khab-preprocessing repository.
A SpatRaster.
If the package is configured to use the raster package
(see n2khab_options()
), a RasterLayer is
returned instead.
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has # the 'n2khab_data' folder AND that the latest version of the # 'raster_runif' data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can consider # what to do. r <- read_raster_runif() r ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has # the 'n2khab_data' folder AND that the latest version of the # 'raster_runif' data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can consider # what to do. r <- read_raster_runif() r ## End(Not run)
shallowgroundwater
as an sf
multipolygon layerReturns the raw data source shallowgroundwater
as an sf
multipolygon
layer.
The coordinate reference system is 'BD72 / Belgian Lambert 72'
(EPSG-code 31370).
read_shallowgroundwater( file = file.path(locate_n2khab_data(), "10_raw/shallowgroundwater/shallowgroundwater.gpkg") )
read_shallowgroundwater( file = file.path(locate_n2khab_data(), "10_raw/shallowgroundwater/shallowgroundwater.gpkg") )
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
The data source shallowgroundwater
represents the areas in
the Flemish region of Belgium where the mean lowest groundwater level (MLW;
Knotters & Van Walsum, 1997; Van Heesen, 1970) is estimated to be less than
approximately 2 m below soil surface (hence, 'shallow' groundwater).
Groundwater dependent species and communities can be expected to be present
mostly within these areas.
The data source is a GeoPackage, available at
Zenodo, and contains a single
spatial multipolygon layer shallowgroundwater
.
The data source has been compiled from subsets of
various other spatial data sources.
This process is described in more detail at Zenodo.
The R code for finishing the shallowgroundwater
data source,
starting from an intermediate result, can be found in the
n2khab-preprocessing
repository.
A Simple feature collection of geometry type MULTIPOLYGON
.
All attribute variables are logical
variables referring to a data source (subset) or procedure that has
contributed to
the shallowgroundwater
data source.
If a variable is TRUE
for a multipolygon, then the related data
source (subset) or procedure has
contributed to the multipolygon.
For one multipolygon, several variables can be TRUE
at the same time.
Each combination of values occurs in only one multipolygon.
The attribute variables listed below are described in more detail at
Zenodo; their description
typically refers to the meaning of TRUE
:
geomorph_wcoast
: mainly concerns dune slacks, mud flats and
salt marshes.
Derived from: Cosyns et al. (2019)
anthrop_gwdep
: zones located within a 100 m buffer around
(almost) everywhere groundwater dependent habitat types (or regionally
important biotopes) ánd situated within zones classified as 'anthropogenic'
areas within the soil map.
Derived from: soilmap_simple
and
habitatmap_terr
data sources
narrowanthrop_gwdep
: narrow zones classified as 'anthropogenic'
areas within the soil map that include (almost) everywhere groundwater
dependent habitat types (or regionally important biotopes).
Derived from: soilmap_simple
and
habitatmap_terr
data sources
drainage
: soils that are at least moderately gleyic or wet.
Derived from: soilmap_simple
data source
dunes_gwdep
: zones located within a 100 m buffer around (almost)
everywhere groundwater dependent habitat types (or regionally important
biotopes) ánd situated within zones classified as 'dunes' areas within the
soil map.
Derived from: soilmap_simple
and
habitatmap_terr
data sources
peat_profile
: variant of the soil profile indicates a
superficial peaty cover, mostly on gleyic or permanently water saturated
soil with or without profile development ((v)
), eventually combined
with strong anthropogenic influence ((o)
).
Derived from: soilmap_simple
data source
peat_substr
: soil substrate (layer underlying superficial layer,
and lithologically diverging from it) consists of peat material starting at
small (less than 75 cm; v
) or moderate depths (75-125 cm;
(v)
), or a combination of the previous (v-
).
Derived from: soilmap_simple
data source
peat_parentmat
: parent material contains a mixture of at least
30% of peaty material.
Derived from: soilmap_simple
data source
peat_texture
: soil consists of plain peat material.
Derived from: soilmap_simple
data source
phys_system
: polygons designated as seepage areas where
groundwater is supposed to gather after having infiltrated elsewhere
(infiltration areas) and being transported through the landscape (passage
areas).
Derived from: Lhermitte & Honnay (1994)
zwin
: the contour of the Zwin Nature Reserve in the most
eastern part of the Flemish coastal area.
Derived from: Open Street Map, consulted 2021-10-06 by QGIS plugin
QuickOSM
habitat_1130
: polygons located within estuaries (habitat type
1130
).
Derived from: habitatmap
data source
gwdepth_coast
: locations with estimated average lowest
groundwater table less than 2.5 m below soil surface (shallow groundwater),
based on interpolation of measured groundwater levels in areas along the
Flemish coast with sufficient gauge densities.
Derived from:
the Watina
database of the Research Institute for Nature and Forest (INBO)
gwdepth_local
: mean lowest groundwater level less than 2 m
below soil surface (MLW) in a large military training site for which no
information is available in the soil map of Flanders.
Derived from: Batelaan et al. (2012)
seepage
: area with modelled seepage fluxes of at least
0.8 mm/day in the central part of eastern Flanders.
Derived from: Batelaan & De Smedt (1994)
peat_survey
: local peaty zones evaluated by simple measurements
of the depth of plain and superficial peaty soil layers at regular intervals
(about 20 m).
Derived from: local inventories executed or compiled by the Research
Institute for Nature and Forest (INBO)
duneslack
: polygons with dune slack vegetations along the
Flemish coast that typically imply shallow groundwater levels.
Derived from: Provoost et al. (2020)
Batelaan O., De Becker P., El-Rawy M., Herr C., Schneidewind, U. (2012). Doorrekenen van maatregelen voor herstel van vochtige heidevegetaties op het Schietveld van Houthalen-Helchteren via grondwatermodellering. Vrije Universiteit Brussel/Instituut voor Natuur en Bosonderzoek.
Batelaan O., De Smedt F. (1994). Regionale grondwaterstroming rond een aantal kwelafhankelijke natuurgebieden. Vrije Universiteit Brussel.
Cosyns E., Bollengier B., Provoost S. (2019). Masterplan en juridische basis voor grensoverschrijdende samenwerking en bescherming als een transnationaal natuurpark van de duinen tussen Dunkerque (Frankrijk) en Westende (België). Partim Masterplan. Rapport in opdracht van Agentschap Natuur en Bos, Conservatoire de l'espace littoral et des rivages lacustres, Conseil Général Département du Nord. https://www.natuurenbos.be/sites/default/files/inserted-files/masterplan_flandre_ned20200210def.pdf
Knotters M. & van Walsum P.E.V. (1997). Estimating fluctuation quantities from time series of water-table depths using models with a stochastic component. Journal of Hydrology 197 (1): 25–46. doi:10.1016/S0022-1694(96)03278-7.
Lhermitte K., Honnay O. (1994). Kartering van het Fysisch Systeem en de Ruimtelijke structuren in Vlaanderen op schaal 1 : 50 000. Stichting Plattelandsbeleid 1994, Boerenbond, Leuven.
Provoost S., Van Gompel W. & Vercruysse E. (2020). Beheerevaluatie kust. Eindrapport 2015-2019. Rapporten van het Instituut voor Natuur- en Bosonderzoek 2020 (18). Instituut voor Natuur- en Bosonderzoek, Brussel. doi:10.21436/inbor.18039583.
Van Heesen H.C. (1970). Presentation of the seasonal fluctuation of the water table on soil maps. Geoderma 4 (3): 257–278. doi:10.1016/0016-7061(70)90006-6.
Other functions returning environmental data sets:
read_soilmap()
,
read_watercourse_100mseg()
,
read_watersurfaces()
## Not run: shallowgroundwater <- read_shallowgroundwater() shallowgroundwater ## End(Not run)
## Not run: shallowgroundwater <- read_shallowgroundwater() shallowgroundwater ## End(Not run)
soilmap
or soilmap_simple
data source as an
sf
multipolygon layerReturns either the raw data source soilmap
or (by default) the
processed data source soilmap_simple
as a standardized sf
multipolygon layer (tidyverse-styled,
internationalized) in the Belgian Lambert 72 CRS (EPSG-code
31370).
Given the size of these data sources (especially the raw one), this function
takes a bit longer than usual to run.
read_soilmap( file = file.path(locate_n2khab_data(), "20_processed/soilmap_simple/soilmap_simple.gpkg"), file_raw = file.path(locate_n2khab_data(), "10_raw/soilmap"), use_processed = TRUE, version_processed = "soilmap_simple_v2", standardize_coastalplain = FALSE, simplify = FALSE, explan = FALSE )
read_soilmap( file = file.path(locate_n2khab_data(), "20_processed/soilmap_simple/soilmap_simple.gpkg"), file_raw = file.path(locate_n2khab_data(), "10_raw/soilmap"), use_processed = TRUE, version_processed = "soilmap_simple_v2", standardize_coastalplain = FALSE, simplify = FALSE, explan = FALSE )
file |
The absolute or relative file path of the processed data
source |
file_raw |
Same as |
use_processed |
Logical.
If |
version_processed |
Version ID of the |
standardize_coastalplain |
Logical.
Only applied with
These steps coincide with the approach that was taken to construct
|
simplify |
Logical.
Only applied with |
explan |
Logical, defaults to |
The raw data source is published
at DOV
(Databank Ondergrond Vlaanderen) and
is discussed by Van Ranst & Sys (2000) and Dudal et al. (2005).
A 'pure' (single) dataformat of the raw data source (no metadatafiles etc.)
has also been stored (with versioning) at
Zenodo (doi:10.5281/zenodo.3387007) - which we refer to as the
soilmap
data source - in order
to support the read_soilmap()
function and to sustain long-term workflow
reproducibility.
The processed data source soilmap_simple
is a GeoPackage, available at
Zenodo.
Note that factors are generated with implicit NA
values (i.e. there is
no factor level to represent the missing values).
If you want this category to appear in certain results, you can convert
such variables with
forcats::fct_explicit_na()
.
In case the raw data source soilmap
is used
(use_processed = FALSE
), it is possible to
manually perform the standardization for coastal plain features and/or the
simplification,
both of which were applied in the soilmap_simple
data source.
See Arguments for more information.
See R-code in the
n2khab-preprocessing repository for the creation of the
soilmap_simple
data source from
the soilmap
data source.
A Simple feature collection of geometry type MULTIPOLYGON
,
representing either the processed data source soilmap_simple
(default) or
the raw data source soilmap
.
Besides the standardization for the coastal plain areas, soilmap_simple
contains
only a subset of the soilmap
variables (marked with an asterisk below).
The soilmap
attribute variables all start with prefix bsm_
(referring
to the 'Belgian soil map'), in order to distinguish from similar attributes
derived from other maps or field observations.
Most attributes represent categories and are returned as factors. When a variable is a one-to-one translation of another (e.g. code vs. explanation), the order of factor levels is aligned.
Three types of data frame variables are returned when reading soilmap
:
variables with mo_
in their name: their categories follow the
Belgian Morphogenetic System.
With standardize_coastalplain = FALSE
, these are only available outside
the coastal plain areas except for bsm_mo_soilunitype
(which is
standardized already in the raw data source).
variables with ge_
in their name: their categories follow the
Belgian Geomorphological System.
(Note however, that bsm_ge_substr
does follow the Belgian Morphogenetic
System as well.)
Values are typically available within the coastal plain areas,
but some geomorphological soil types (starting with letter O
)
have a wider distribution across Flanders.
They are not included in soilmap_simple
.
A special variable is bsm_ge_typology
, which is TRUE
if
bsm_soiltype
follows the geomorphological typology,
and FALSE
otherwise.
variables without mo_
or ge_
in their name are:
either system-agnostic metadata (first two + last four variables:
bsm_poly_id
, bsm_map_id
, bsm_map_url
, bsm_book_url
,
bsm_detailmap_url
, bsm_profloc_url
),
or mixed (representing mo_
categories within and ge_
categories
outside coastal plains): the other ones, like bsm_region
, bsm_legend
,
bsm_soiltype
and bsm_soilseries
.
A special variable is bsm_converted
, returned only if
standardize_coastalplain = TRUE
.
Many variables have a 'counterpart variable' with suffix _explan
:
they provide a more elaborate textual explanation.
They are not listed below.
Short explanation of attributes is given below. More elaborate explanations can be found in the references and in metadata at DOV.
Meaning of the main non-metadata variables:
bsm_region
(*): name of the region
bsm_ge_region
: code of the region within the coastal plain area
bsm_legend
: generalised (simplified) legend key (37 levels)
bsm_legend_title
and bsm_legend_explan
:
the legend keys and text of Van Ranst & Sys (2000) (833 and 622 levels,
respectively)
bsm_soiltype
: the soil type of the Belgian soil map (mixed nature:
morphogenetic & geomorphological codes).
bsm_soiltype_id
represents a numeric code for each level.
bsm_ge_typology
: Logical.
Does the soiltype code follow the geomorphological typology?
bsm_soiltype_region
: bsm_soiltype
, followed by a code representing
bsm_region
bsm_soilseries
: either the morphogenetic soil series (outside the
coastal plain areas),
which is the three core characters of bsm_soiltype
,
or just bsm_soiltype
if the latter has a geomorphological code.
bsm_converted
(*): Logical.
Were morphogenetic texture and drainage variables (bsm_mo_tex
and
bsm_mo_drain
) derived from a conversion table?
This is equivalent with the question: does bsm_mo_soilunitype
differ
from bsm_soiltype
?
Value TRUE
is largely confined to the 'coastal plain' areas.
Only returned if standardize_coastalplain = TRUE
.
(Note: the variable is not included in version soilmap_simple_v1
.)
bsm_mo_soilunitype
(*): as bsm_soiltype
, but applying morphogenetic
codes within the coastal plain areas in most cases
(see the standardize_coastalplain
argument for more information about this conversion)
bsm_mo_substr
(*), bsm_ge_substr
: code of the soil substrate
bsm_mo_tex
(*): code of the soil texture category
bsm_mo_drain
(*): code of the soil drainage category
bsm_mo_prof
(*): code of the soil profile category
bsm_mo_parentmat
(*): code of a variant regarding the parent material
bsm_mo_profvar
(*): code of a variant regarding the soil profile
bsm_mo_phase
: code of the soil phase (i.e. additional soil
properties).
They are explained in the book that accompanies the specific analog map
identified by bsm_map_id
.
bsm_ge_series
: the geomorphological soil series
bsm_ge_subseries
: the geomorphological soil subseries
Meaning of the metadata variables:
bsm_poly_id
(*): unique polygon ID (numeric)
bsm_map_id
: code of the analog map covering this area
bsm_map_url
: hyperlink to the scanned analog map scale 1:20000 (pdf),
identified by bsm_map_id
bsm_bookurl
: hyperlink to the scanned book (pdf), accompanying the
analog map identified by bsm_map_id
bsm_detailmap_url
: hyperlink to the scanned maps at scale 1:5000
(zip-file with jpg files) belonging to the map identified by
bsm_map_id
bsm_profloc_url
: hyperlink to the scanned maps with the profile
locations
(zip-file with jpg files) belonging to the map identified by
bsm_map_id
(*) Included in the soilmap_simple
data source.
Ampe C. (2013). Databank aardewerk Vlaanderen 2010. Omzetten (zeer) oude legende bodemkartering naar legende bodemkaart Kuststreek. Vlaamse Landmaatschappij Regio West, Bruges, 45 p.
Dudal R., Deckers J., Van Orshoven J. & Van Ranst E. (2005). Soil survey in Belgium and its applications. In: Bullock P., Jones R.J.A., Montanarella L. (editors). Soil Resources of Europe. Office for Official Publications of the European Communities, Luxembourg, p. 63–71. URL: http://hdl.handle.net/1854/LU-368514.
Van Ranst E. & Sys C. (2000). Eenduidige legende van de digitale bodemkaart van Vlaanderen (schaal 1: 20000). Universiteit Gent, Laboratorium voor Bodemkunde, Ghent, 361 p. URL: http://hdl.handle.net/1854/LU-125899.
Other functions returning environmental data sets:
read_shallowgroundwater()
,
read_watercourse_100mseg()
,
read_watersurfaces()
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'soilmap_simple' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. library(dplyr) soilmap_simple <- read_soilmap() soilmap_simple soilmap_simple %>% filter(!is.na(bsm_mo_substr)) %>% glimpse() soilmap_simple %>% filter(bsm_converted) %>% glimpse() ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'soilmap_simple' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. library(dplyr) soilmap_simple <- read_soilmap() soilmap_simple soilmap_simple %>% filter(!is.na(bsm_mo_substr)) %>% glimpse() soilmap_simple %>% filter(bsm_converted) %>% glimpse() ## End(Not run)
Returns the included data source types
as a
tibble
.
Names and shortnames from namelist
are added,
in English by default.
read_types( path = pkgdatasource_path("textdata/types", ".yml"), file = "types", file_namelist = "namelist", lang = "en" )
read_types( path = pkgdatasource_path("textdata/types", ".yml"), file = "types", file_namelist = "namelist", lang = "en" )
path |
Location of the data sources |
file |
The filename of the |
file_namelist |
The filename of the |
lang |
An
IETF BCP 47 language tag, such as |
types
is a data source in the
vc-format which provides
a checklist of types, represented by their current codes, together
with several attributes.
A 'type' refers to either a (main) habitat type, a
habitat subtype or a regionally important biotope (RIB).
read_types()
reads the types
data source, adds
names + shortnames
and returns it as a
tibble
.
A tibble is a data frame that makes working in the tidyverse a little
easier.
By default, the data version delivered with the package is used and English
names (lang = "en"
) are returned for types, attributes and tags.
Note that factors are generated with implicit NA
values (i.e. there is
no factor level to represent the missing values).
If you want this category to appear in certain results, you can convert
such variables with
forcats::fct_explicit_na()
.
The types
data frame as a tibble
,
with names & shortnames added for types, attributes and tags
according to the lang
argument.
See types
for documentation of the data-source's contents.
See namelist
for the link between codes or other identifiers
and the corresponding names (and shortnames).
The added names and shortnames are represented by the following variables:
type_name
type_shortname
typeclass_name
hydr_class_name
hydr_class_shortname
groundw_dep_name
groundw_dep_shortname
flood_dep_name
flood_dep_shortname
tag_1_name
tag_1_shortname
tag_2_name
tag_2_shortname
tag_3_name
tag_3_shortname
Except for the tags, the names and shortnames are factors with their level order according to that of the corresponding attribute.
read_types()
read_types(lang = "nl")
Other reading functions for n2khab-referencelists:
read_env_pressures()
,
read_namelist()
read_types() read_types(lang = "nl")
read_types() read_types(lang = "nl")
watercourse_100mseg
Returns the data source watercourse_100mseg
as a list of two sf
objects:
lines
(LINESTRING
geometry): represents
line segments of length 100 m derived from the raw watercourses
data source;
points
(POINT
geometry):
represents the downstream
endpoints of all segments ('downstream' as defined in watercourses
).
Optionally, only one of these objects is returned. The coordinate reference system is 'BD72 / Belgian Lambert 72' (EPSG-code 31370).
read_watercourse_100mseg( file = file.path(locate_n2khab_data(), "20_processed/watercourse_100mseg/watercourse_100mseg.gpkg"), element = NULL, version = "watercourse_100mseg_20200807v1" )
read_watercourse_100mseg( file = file.path(locate_n2khab_data(), "20_processed/watercourse_100mseg/watercourse_100mseg.gpkg"), element = NULL, version = "watercourse_100mseg_20200807v1" )
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
element |
Optional string.
The string must be one of two possible values: |
version |
Version ID of the data source. Defaults to the latest available version defined by the package. |
The data source watercourse_100mseg
represents all officially known
watercourses
of the Flemish Region as line segments of 100 m (or < 100 m, for the most
upstream segment of a watercourse).
The data source can be used as a base layer of statistical
population units (line segments) and corresponding anchor points,
in the design of monitoring and research of watercourses.
The data source is a GeoPackage, available at Zenodo, and contains two spatial layers:
watercourse_100mseg_lines
: the line segments;
watercourse_100mseg_points
: the corresponding downstream
endpoints.
Both layers have the same number of rows and share the same attributes.
The data source was derived from the raw
watercourses
data
source as follows:
each line ('watercourse') of watercourses
is split into
segments of 100 m, where
the remaining segment of < 100 m (per original line) is situated most
upstream.
For this step, the direction of the lines has been reverted (in
watercourses
the direction is from upstream to downstream).
A unique rank number is assigned to each segment, as well as the
VHAG code from the corresponding line in watercourses
.
the downstream endpoint of each segment is located, and assigned the
same attributes (rank
and vhag_code
).
The R and GRASS code for creating the watercourse_100mseg
data source
can be found in the
n2khab-preprocessing
repository.
By default, a list of two sf
objects (see 'Description').
The lines
and the points
objects have the same number of
rows.
They share the same attributes:
rank
A unique, incremental number for each segment/endpoint. It just reflects the downstream-to-upstream order of segments within each original line.
vhag_code
The VHAG code from the raw watercourses
data
source.
It distinguishes the different watercourses, so it is common to all
segments/points that belong to the same watercourse.
Optionally, only one of these sf
objects is returned.
Other functions returning environmental data sets:
read_shallowgroundwater()
,
read_soilmap()
,
read_watersurfaces()
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of the # 'watercourse_100mseg' data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. (lines <- read_watercourse_100mseg(element = "lines")) (points <- read_watercourse_100mseg(element = "points")) str(read_watercourse_100mseg(), give.attr = FALSE) ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of the # 'watercourse_100mseg' data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. (lines <- read_watercourse_100mseg(element = "lines")) (points <- read_watercourse_100mseg(element = "points")) str(read_watercourse_100mseg(), give.attr = FALSE) ## End(Not run)
watersurfaces
as an sf
polygon layerReturns the raw data source watersurfaces
(Scheers et al., 2022)
as a standardized sf
polygon layer
(tidyverse-styled, internationalized) in the Belgian Lambert 72 CRS
(EPSG-code 31370).
read_watersurfaces( file = NULL, extended = FALSE, fix_geom = FALSE, version = c("watersurfaces_v1.2", "watersurfaces_v1.1", "watersurfaces_v1.0") )
read_watersurfaces( file = NULL, extended = FALSE, fix_geom = FALSE, version = c("watersurfaces_v1.2", "watersurfaces_v1.1", "watersurfaces_v1.0") )
file |
Optional string. An absolute or relative file path of
the data source. If left |
extended |
Logical.
Should names or explanations of codes be added as extra
variables in the result?
Currently only applies to |
fix_geom |
Logical.
Should invalid or corrupt geometries be fixed in the resulting |
version |
Version ID of the data source. Defaults to the latest available version defined by the package. |
If file
is not specified, the function will try to read the file
in the default folder for data storage (as described in the data management
advice in the vignette (run vignette("v020_datastorage")
)).
If you want to use another file or file structure than the default
data storage, you can specify your own file
.
In both cases: always make sure to specify the correct version
, that
is the version corresponding to the file
(note that the version
defaults to the latest version).
See Scheers et al. (2022) for an elaborate explanation of the data source and its attributes.
A Simple feature collection of
type POLYGON
, sorted by polygon_id
, with the following
variables (not mentioning extra 'name' variables for
extended = TRUE
):
polygon_id
: code of the polygon;
wfd_code
: optional; Flemish code of the water body with
regard to the Water Framework Directive (WFD);
hyla_code
: optional; code of the watersurface according to the
Flemish working group 'Hyla', a working group on amphibians & reptiles;
name
: name of the watersurface;
area_name
: name of the area;
wfd_type
: type code according to the Flemish WFD typology
(Denys, 2009);
wfd_type_certain
: Logical.
Is there high confidence about the wfd_type
determination?
depth_class
: class of water depth;
connectivity
: connectivity class;
usage
: usage class;
water_level_management
: water-level management class (not in
older versions).
Denys L. (2009). Een a posteriori typologie van stilstaande, zoete wateren in Vlaanderen. Rapporten van het Instituut voor Natuur- en Bosonderzoek INBO.R.2009.34. Instituut voor Natuur- en Bosonderzoek, Brussel.
Scheers K., Smeekens V., Wils C., Packet J., Leyssen A. & Denys L. (2022). Watervlakken versie 1.2: Polygonenkaart van stilstaand water in Vlaanderen. Uitgave 2022. Instituut voor Natuur- en Bosonderzoek. doi:10.21436/inbor.87014272.
Other functions involved in processing the 'watersurfaces' data source:
read_watersurfaces_hab()
Other functions returning environmental data sets:
read_shallowgroundwater()
,
read_soilmap()
,
read_watercourse_100mseg()
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'watersurfaces' data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. ws <- read_watersurfaces() ws summary(ws) ws_valid <- read_watersurfaces(fix_geom = TRUE) ws_valid all(sf::st_is_valid(ws)) all(sf::st_is_valid(ws_valid)) ws2 <- read_watersurfaces(extended = TRUE) ws2 ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'watersurfaces' data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. ws <- read_watersurfaces() ws summary(ws) ws_valid <- read_watersurfaces(fix_geom = TRUE) ws_valid all(sf::st_is_valid(ws)) all(sf::st_is_valid(ws_valid)) ws2 <- read_watersurfaces(extended = TRUE) ws2 ## End(Not run)
watersurfaces_hab
as a list of two
objectsread_watersurfaces_hab
returns the data source watersurfaces_hab
as a list of two objects:
watersurfaces_polygons
: an sf object in the Belgian Lambert 72
CRS (EPSG-code 31370) with all polygons
that contain standing water types (habitat or RIB).
watersurfaces_types
: a tibble with information on the
standing water types (HAB1, HAB2,..., HAB5) that occur within
each polygon of watersurfaces_polygons
.
read_watersurfaces_hab( file = file.path(locate_n2khab_data(), "20_processed/watersurfaces_hab/watersurfaces_hab.gpkg"), interpreted = FALSE, version = c("watersurfaces_hab_v5", "watersurfaces_hab_v4", "watersurfaces_hab_v3", "watersurfaces_hab_v2", "watersurfaces_hab_v1") )
read_watersurfaces_hab( file = file.path(locate_n2khab_data(), "20_processed/watersurfaces_hab/watersurfaces_hab.gpkg"), interpreted = FALSE, version = c("watersurfaces_hab_v5", "watersurfaces_hab_v4", "watersurfaces_hab_v3", "watersurfaces_hab_v2", "watersurfaces_hab_v1") )
file |
The absolute or relative file path of the data source.
The default follows the data management advice in the
vignette on data storage (run |
interpreted |
If |
version |
Version ID of the data source. Defaults to the latest available version defined by the package. |
The data source watersurfaces_hab
is a combination of habitatmap_stdized
(see
read_habitatmap_stdized
) and the
watersurface map of Flanders.
It contains all standing water types in Flanders.
The data source watersurfaces_hab
is a GeoPackage, available at
Zenodo, that contains:
watersurfaces_hab_polygons
: a spatial layer with all polygons that contain standing water types listed in types
.
watersurfaces_hab_types
: a table in which every row corresponds with a combination of polygon and type.
The polygons with 2190_a habitat (dune slack ponds) are generated by selecting all watersurface polygons that overlap with dune habitat polygons (21xx) of the standardized habitat map.
For each of the other considered habitat types (31xx and rbbah) we select the watersurface polygons that overlap with the selected habitat type polygons of the standardized habitat map. We also select polygons of the standardized habitat map that contain standing water types but do not overlap with any watersurface polygon of the watersurface map.
The R-code for creating the watersurfaces_hab
data source can be found in the n2khab-preprocessing
repository.
A list of two objects:
watersurfaces_polygons
: an sf object of standing water polygons with four attribute variables:
polygon_id
polygon_id_ws
: id for the polygon in the watersurface map
polygon_id_habitatmap
: id's of all overlapping polygons of habitatmap_stdized
that
contain standing water habitat. The different id's are separated by '+'.
description_orig
: descriptions of all overlapping polygons of habitatmap_stdized
that
contain standing water habitat. The different descriptions are separated by '+'.
watersurfaces_types
: a tibble with following variables:
polygon_id
type
: habitat or RIB type listed in types
.
certain
: TRUE
when the type is certain and
FALSE
when the type is uncertain.
code_orig
: original type code in raw habitatmap
.
Scheers K., Smeekens V., Wils C., Packet J., Leyssen A. & Denys L. (2022). Watervlakken versie 1.2: polygonenkaart van stilstaand water in Vlaanderen. Uitgave 2022. Rapporten van het Instituut voor Natuur- en Bosonderzoek 2022 (31). Instituut voor Natuur en Bosonderzoek, Brussel. doi:10.21436/inbor.87014272. #'
De Saeger S., Dhaluin P., Erens R., Guelinckx G., Hennebel D., Jacobs I., Kumpen M., Van Oost F., Spanhove T., Leyssen A., Oosterlynck P., Van Dam G., Van Hove M., Wils C. (red.) (2023). Biologische Waarderingskaart en Natura 2000 Habitatkaart, uitgave 2023. (Rapporten van het Instituut voor Natuur- en Bosonderzoek; Nr. 31). Instituut voor Natuur- en Bosonderzoek (INBO). doi:10.21436/inbor.96375305.
Other functions involved in processing the 'habitatmap' data source:
read_habitatmap()
,
read_habitatmap_stdized()
,
read_habitatmap_terr()
Other functions involved in processing the 'watersurfaces' data source:
read_watersurfaces()
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'watersurfaces_hab' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. wsh <- read_watersurfaces_hab() wsh_polygons <- wsh$watersurfaces_polygons wsh_types <- wsh$watersurfaces_types wsh_polygons wsh_types ## End(Not run)
## Not run: # This example supposes that your working directory or a directory up to 10 # levels above has the 'n2khab_data' folder AND that the latest version of # the 'watersurfaces_hab' # data source is present in the default subdirectory. # In all other cases, this example won't work but at least you can # consider what to do. wsh <- read_watersurfaces_hab() wsh_polygons <- wsh$watersurfaces_polygons wsh_types <- wsh$watersurfaces_types wsh_polygons wsh_types ## End(Not run)
'types' is a data source in the
vc-format which provides
a checklist of types, represented by their current codes, together
with several attributes.
A 'type' refers to either a (main) habitat type, a
habitat subtype or a regionally important biotope (RIB).
The codes of types, typeclasses and further attributes and tags are
explained in the
data source namelist
(which can accommodate multiple
languages).
A vc-formatted data source. As such, it corresponds to a data frame with several variables:
Code of the type, as a factor.
This is the ID for use in diverse workflows and datasets.
Names in multiple languages are to be found in namelist
.
Only currently active codes are kept in this list, in order to avoid
confusion (this especially relates to habitat subtypes and RIBs).
Contains no duplicates!
A factor that labels the type as
either "main_type"
or "subtype"
.
The main type that corresponds with type
,
as a factor.
Each type is either a subtype of a main type, or is a main type itself.
This is indicated by typelevel
.
A code explained by namelist
,
corresponding to the typeclass.
Is a factor.
A code explained by namelist
,
corresponding to the hydrological class.
Is a factor.
A code explained by namelist
,
corresponding to the groundwater dependency category.
Is a factor.
A code explained by namelist
,
corresponding to the flood dependency category.
Is a factor.
Note that flood dependency is only defined for (semi-)terrestrial types,
hence for aquatic types (hydrological class HC3
)
it is NA
.
Optional tag, e.g. a categorization ID explained
by namelist
.
Currently used to indicate subcategories within a few typeclasses,
or to differentiate between lotic and lentic aquatic types.
Optional tag, e.g. a categorization ID explained
by namelist
.
Optional tag, e.g. a categorization ID explained
by namelist
.
read_types()
read_types(lang = "nl")
textdata/types.csv
textdata/types.yml
Most information comes from this googlesheet. Currently, the googlesheet and the data source are both kept up-to-date. However only the 'types' data source is under version control.
The source for the hydrological class attribute is a vc-formatted file stored in the package source code. It is read by the 'generate_textdata' bookdown project which generates the 'types' data source. The referred vc-formatted file was derived from a yet unpublished database on the interrelations between types, hydrological classes, environmental compartments and their characteristics, and environmental pressures.
The source for the groundwater and flood dependency attributes is this googlesheet. Currently, the googlesheet and the data source are both kept up-to-date. However only the 'types' data source is under version control.
Other n2khab-referencelists:
env_pressures
,
namelist