Example use cases to get vector or raster data from web services.
Source:vignettes/wfs_wcs.Rmd
wfs_wcs.Rmd
library(sf)
#> Linking to GEOS 3.12.1, GDAL 3.8.4, PROJ 9.4.0; sf_use_s2() is TRUE
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
library(inbospatial)Introduction
Spatial web services allow you to seamlessly pull remote spatial data directly into your R session without manually downloading, unzipping, and managing local files.
Historically, the OGC (Open Geospatial Consortium) established standards like WFS (Web Feature Service) for downloading vector data and WCS (Web Coverage Service) for downloading raster data. Recently, these older protocols are being actively replaced by the modern, RESTful OGC API framework. For instance, OGC API Features is the direct, optimized successor to WFS.
In this vignette, we will show how the functions
get_feature_wfs(), get_coverage_wcs(), and the
newly added get_feature_ogc() can be used to easily fetch
data from these services.
For a more in-depth explanation about the underlying mechanics of
these services, we refer to the INBO tutorial about WFS and the vignette about WCS. The tutorial and vignette take a
more hands-on coding approach to manually crafting HTTP requests,
whereas in this vignette, much of that complex logic is hidden away
safely inside the inbospatial functions.
Overview of Spatial Web Services
Depending on whether you need to actually download the raw data for
spatial analysis, or merely view it as a background map, different web
services are used. The table below outlines the most common services,
their data types, and how they map to the inbospatial
package.
| Service Standard | Successor / Modern API | GIS Data Type | Primary Purpose |
inbospatial Function |
|---|---|---|---|---|
| WFS (Web Feature Service) | OGC API Features | Vector (Points, Lines, Polygons) | Data Retrieval | get_feature_wfs() |
| WCS (Web Coverage Service) | OGC API Coverages | Raster (Gridded/Cell data) | Data Retrieval | get_coverage_wcs() |
| OGC API Features | Current Standard | Vector (Points, Lines, Polygons) | Data Retrieval | get_feature_ogc() |
| WMS (Web Map Service) | OGC API Maps | Raster (Rendered Image) | Visualization | add_wms_*() |
| WMTS (Web Map Tile Service) | OGC API Tiles | Vector or Raster Tiles | Visualization | add_wmts_*() |
Vector data examples
This section demonstrates both get_feature_ogc() and
get_feature_wfs. When you have the choice,
get_feature_ogc() is preferred due to better performance
and automatic pagination. Because spatial servers often limit how much
data you can download in a single go, automatic pagination allows the
function to detect when more data is available and quietly make
follow-up requests until the entire dataset is successfully retrieved
for you.
Simple use case without filter
As a test case, we will query provincial boundaries of Flanders from
a layer of the “Provisional Reference of Municipal Boundaries”
(VRBG,
Voorlopig ReferentieBestand Gemeentegrenzen), which is
available via an API on the vlaanderen.be website.
ogc_vrbg <- "https://geo.api.vlaanderen.be/VRBG2025/ogc/features/v1/"
system.time({
provinces <- get_feature_ogc(
url = ogc_vrbg,
collection = "Refprv",
crs = "EPSG:31370"
)
})
#> user system elapsed
#> 0.181 0.009 3.986
provinces
#> Simple feature collection with 5 features and 6 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: 21991.63 ymin: 153058.3 xmax: 258871.8 ymax: 244027.2
#> Projected CRS: BD72 / Belgian Lambert 72
#> # A tibble: 5 × 7
#> UIDN OIDN TERRID NAAM NISCODE NUTS2 SHAPE
#> * <dbl> <dbl> <dbl> <chr> <chr> <chr> <MULTIPOLYGON [m]>
#> 1 23 2 357 Antwerpen 10000 BE21 (((189854.3 238555.1, 189821…
#> 2 24 4 359 Vlaams-Brabant 20001 BE24 (((123085.8 153058.3, 123091…
#> 3 25 3 351 West-Vlaanderen 30000 BE25 (((78795.16 155928.6, 78813.…
#> 4 26 1 355 Limburg 70000 BE22 (((256971.2 156570.3, 256984…
#> 5 27 5 356 Oost-Vlaanderen 40000 BE23 (((97888.3 156976.7, 97895.7…You can achieve (almost) the same result using a combination of
sf::read_sf() and sf::st_transform(). For
WFS, you need to prefix the url with "WFS:".
For OGC API features, you need to prefix the url with
“OAPIF”. We only show the latter.
system.time({
provinces2 <- read_sf(
paste0("OAPIF:", ogc_vrbg),
layer = "Refprv"
)
})
#> user system elapsed
#> 0.771 0.046 4.961
waldo::compare(provinces, provinces2,
x_arg = "inbospatial", y_arg = "sf",
max_diffs = 8
)
#> `inbospatial` is length 7
#> `sf` is length 8
#>
#> names(inbospatial) | names(sf)
#> [1] "UIDN" - "id" [1]
#> [2] "OIDN" - "UIDN" [2]
#> [3] "TERRID" - "OIDN" [3]
#> [4] "NAAM" - "TERRID" [4]
#> [5] "NISCODE" - "NAAM" [5]
#> [6] "NUTS2" - "NISCODE" [6]
#> [7] "SHAPE" - "NUTS2" [7]
#> - "geometry" [8]
#>
#> `names(attr(inbospatial, 'agr'))[1:3]`: "UIDN" "OIDN" "TERRID"
#> `names(attr(sf, 'agr'))[1:4]`: "id" "UIDN" "OIDN" "TERRID"
#>
#> `attr(inbospatial, 'agr')[4:6]`: "NA" "NA" "NA"
#> `attr(sf, 'agr')[4:7]`: "NA" "NA" "NA" "NA"
#>
#> `attr(inbospatial, 'sf_column')`: "SHAPE"
#> `attr(sf, 'sf_column')`: "geometry"
#>
#> `inbospatial$SHAPE` is an S3 object of class <sfc_MULTIPOLYGON/sfc>, a list
#> `sf$SHAPE` is absent
#>
#> `inbospatial$id` is absent
#> `sf$id` is a character vector ('Refprv.1', 'Refprv.2', 'Refprv.3', 'Refprv.4', 'Refprv.5')
#>
#> `inbospatial$geometry` is absent
#> `sf$geometry` is an S3 object of class <sfc_MULTIPOLYGON/sfc>, a listWe notice some differences, but nothing substantial. Going via
sf::read_sf has added an extra field id and
renamed SHAPE to geometry.
Timings do differ substantially. The get_feature_ogc()
function should be faster than sf::read_sf, because the
OAPIF method (which is passed on to GDAL)
relies on the geoJSON file format whereas
get_feature_ogc() collects the data as a
geopackage. The latter is a binary file format whereas the
former is a text format. A binary format is much smaller and therefore
can be downloaded faster. It’s possible that not all providers of
OGC API features have implemented geopackage
as an export option. If that is the case, you can try
read_sf() with OAPIF instead.
For reference, here is the code you would use for an equivalent
WFS query:
wfs_vrbg <- "https://geo.api.vlaanderen.be/VRBG/wfs"
provinces <- get_feature_wfs(
wfs = wfs_vrbg,
layername = "VRBG:Refprv",
crs = "EPSG:31370"
)
provincesFor WFS, you may notice other differences as well, most
notably for field specifications. The reason for such differences is
that get_feature_wfs() retrieves whatever information that
is identified from the WFS request - in the same way as you would paste
the request in the browser. This result is then saved temporarily to a
.GML file and read with sf::read_sf(). Passing
the WFS directly to the dsn argument of
sf::read_sf, on the other hand, will translate the request
to a form that will pass through the GDAL WFS
driver, which handles field specifications by reading them from a
DescribeFeatureType request:
At the first opening, the content of the result of the
GetCapabilitiesrequest will be appended to the file, so that it can be cached for later openings of the dataset. The same applies for theDescribeFeatureTyperequest issued to discover the field definition of each layer.
Apply a CQL-Filter to filter on a field
CQL, the “Common Query Language” (see here, for example), provides a way to filter WFS data. The syntax of CQL is comparable to SQL, yet there are differences in data types and structures.
You can provide and apply filters in get_feature_ogc()
or get_feature_wfs() via the cql_filter
argument.
ogc_vrbg <- "https://geo.api.vlaanderen.be/VRBG2025/ogc/features/v1/"
west_vlaanderen <- get_feature_ogc(
url = ogc_vrbg,
collection = "Refprv",
cql_filter = "NAAM='West-Vlaanderen'",
crs = "EPSG:31370"
)
west_vlaanderen
#> Simple feature collection with 1 feature and 6 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: 21991.63 ymin: 155928.6 xmax: 90410.78 ymax: 229724.6
#> Projected CRS: BD72 / Belgian Lambert 72
#> # A tibble: 1 × 7
#> UIDN OIDN TERRID NAAM NISCODE NUTS2 SHAPE
#> * <dbl> <dbl> <dbl> <chr> <chr> <chr> <MULTIPOLYGON [m]>
#> 1 25 3 351 West-Vlaanderen 30000 BE25 (((78795.16 155928.6, 78813.…Here, we could have also used sf::read_sf() in
combination with an OGR SQL
query:
west_vlaanderen2 <- read_sf(paste0("OAPIF:", ogc_vrbg),
query = "SELECT * FROM Refprv WHERE NAAM='West-Vlaanderen'"
)
waldo::compare(west_vlaanderen, west_vlaanderen2)
#> `old` is length 7
#> `new` is length 8
#>
#> names(old) | names(new)
#> [1] "UIDN" - "id" [1]
#> [2] "OIDN" - "UIDN" [2]
#> [3] "TERRID" - "OIDN" [3]
#> [4] "NAAM" - "TERRID" [4]
#> [5] "NISCODE" - "NAAM" [5]
#> [6] "NUTS2" - "NISCODE" [6]
#> [7] "SHAPE" - "NUTS2" [7]
#> - "_ogr_geometry_" [8]
#>
#> `names(attr(old, 'agr'))[1:3]`: "UIDN" "OIDN" "TERRID"
#> `names(attr(new, 'agr'))[1:4]`: "id" "UIDN" "OIDN" "TERRID"
#>
#> `attr(old, 'agr')[4:6]`: "NA" "NA" "NA"
#> `attr(new, 'agr')[4:7]`: "NA" "NA" "NA" "NA"
#>
#> `attr(old, 'sf_column')`: "SHAPE"
#> `attr(new, 'sf_column')`: "_ogr_geometry_"
#>
#> `old$SHAPE` is an S3 object of class <sfc_MULTIPOLYGON/sfc>, a list
#> `new$SHAPE` is absent
#>
#> `old$id` is absent
#> `new$id` is a character vector ('Refprv.3')
#>
#> `old$_ogr_geometry_` is absent
#> `new$_ogr_geometry_` is an S3 object of class <sfc_MULTIPOLYGON/sfc>, a listAs before, we notice some differences in naming of the fields and the
addition of an extra field id when using
read_sf().
For reference, here is the code you would use for an equivalent
WFS query:
wfs_vrbg <- "https://geo.api.vlaanderen.be/VRBG/wfs"
west_vlaanderen_wfs <- get_feature_wfs(
wfs = wfs_vrbg,
layername = "VRBG:Refprv",
cql_filter = "NAAM='West-Vlaanderen'"
)
west_vlaanderen_wfsRequest a subset of fields
Instead of querying the complete data table, one can select a subset
of variables (fields). The function get_feature_ogc()
provides the properties argument for it, which accepts a
character vector of field names (the field containing the geometry is
always returned). The function get_feature_wfs() provides
the property_name keyword for it, which accepts a string of
comma-separated field names. Note that field names are capitalized on
this particular geoserver.
ogc_vrbg <- "https://geo.api.vlaanderen.be/VRBG2025/ogc/features/v1/"
prov_fields <- get_feature_ogc(
url = ogc_vrbg,
collection = "Refprv",
crs = "EPSG:31370",
properties = c("NAAM", "NUTS2")
)
prov_fields
#> Simple feature collection with 5 features and 2 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: 21991.63 ymin: 153058.3 xmax: 258871.8 ymax: 244027.2
#> Projected CRS: BD72 / Belgian Lambert 72
#> # A tibble: 5 × 3
#> NAAM NUTS2 SHAPE
#> * <chr> <chr> <MULTIPOLYGON [m]>
#> 1 Antwerpen BE21 (((189854.3 238555.1, 189821.8 238591.5, 189759.3 23859…
#> 2 Vlaams-Brabant BE24 (((123085.8 153058.3, 123091.3 153060.2, 123097.3 15307…
#> 3 West-Vlaanderen BE25 (((78795.16 155928.6, 78813.62 156010.4, 78821.33 15607…
#> 4 Limburg BE22 (((256971.2 156570.3, 256984 156602.7, 256999.7 156641.…
#> 5 Oost-Vlaanderen BE23 (((97888.3 156976.7, 97895.73 156980.9, 97898.28 156984…Again, we can use sf::read_sf() in combination with an
OGR SQL
query:
prov_fields_sf <- read_sf(paste0("OAPIF:", ogc_vrbg),
query = "SELECT NAAM, NUTS2 FROM Refprv"
)
waldo::compare(prov_fields, prov_fields_sf)
#> `names(old)`: "NAAM" "NUTS2" "SHAPE"
#> `names(new)`: "NAAM" "NUTS2" "geometry"
#>
#> `attr(old, 'sf_column')`: "SHAPE"
#> `attr(new, 'sf_column')`: "geometry"
#>
#> `old$SHAPE` is an S3 object of class <sfc_MULTIPOLYGON/sfc>, a list
#> `new$SHAPE` is absent
#>
#> `old$geometry` is absent
#> `new$geometry` is an S3 object of class <sfc_MULTIPOLYGON/sfc>, a listFor reference, here is the code you would use for an equivalent
WFS query:
wfs_vrbg <- "https://geo.api.vlaanderen.be/VRBG/wfs"
prov_fields_wfs <- get_feature_wfs(
wfs = wfs_vrbg,
layername = "VRBG:Refprv",
crs = "EPSG:31370",
property_name = paste("NAAM", "NUTS2", "SHAPE", sep = ",")
)
prov_fields_wfsMeteorological data example
Another example of a WFS API is the Belgian Royal Meteorological
Institute (KMI,
Koninklijk Meteorologisch Instituut van België). Details
can be found
here, and
here.
To our knowledge, an OGC APi features service is not
available for this vector data source.
kmi <- "https://opendata.meteo.be/service/wfs"
kmi_stations <- get_feature_wfs(
wfs = kmi,
layer = "synop:synop_station"
)
kmi_stations
#> Simple feature collection with 30 features and 6 fields
#> Geometry type: POINT
#> Dimension: XY
#> Bounding box: xmin: 2.652403 ymin: 49.62036 xmax: 6.1813 ymax: 51.34738
#> Geodetic CRS: WGS 84
#> # A tibble: 30 × 7
#> gml_id name code altitude date_begin date_end
#> <chr> <chr> <int> <dbl> <dttm> <dttm>
#> 1 synop_station.f… UCCL… 6447 101. 2003-12-01 00:00:00 NA
#> 2 synop_station.f… DIEP… 6477 39.3 2004-06-29 00:00:00 NA
#> 3 synop_station.f… FLOR… 6456 288. 1952-01-01 00:00:00 NA
#> 4 synop_station.f… SEMM… 6428 35.5 1980-02-01 06:00:00 NA
#> 5 synop_station.f… BIER… 6478 178 1952-01-01 00:00:00 NA
#> 6 synop_station.f… SINT… 6439 8.3 2007-10-22 00:00:00 NA
#> 7 synop_station.f… MIDD… 6407 3.5 1955-01-01 00:00:00 NA
#> 8 synop_station.f… KLEI… 6479 55.2 1953-01-01 00:00:00 NA
#> 9 synop_station.f… KOKS… 6400 4.7 1952-01-01 00:00:00 NA
#> 10 synop_station.f… MELLE 6434 15 2003-04-02 06:00:00 NA
#> # ℹ 20 more rows
#> # ℹ 1 more variable: the_geom <POINT [°]>This is a list of all KMI stations. You can plot it with
leaflet or mapview to see the stations on a
map and learn that -for instance- Ukkel has code 6447. So let’s extract
the maximum daily temperatures for Ukkel starting from the year
2000.
kmi_synop <- get_feature_wfs(
wfs = kmi,
layername = "synop:synop_data",
property_name = paste(
"code", "timestamp", "temp_max", "the_geom",
sep = ","
),
cql_filter = "((code = 6447) AND (temp_max IS NOT NULL) AND
(timestamp >= '2000-01-01 00:00:00.000'))"
)
kmi_synop
#> Simple feature collection with 9559 features and 3 fields
#> Geometry type: POINT
#> Dimension: XY
#> Bounding box: xmin: 4.357871 ymin: 50.79666 xmax: 4.357875 ymax: 50.79686
#> Geodetic CRS: WGS 84
#> # A tibble: 9,559 × 4
#> code timestamp temp_max the_geom
#> <int> <dttm> <dbl> <POINT [°]>
#> 1 6447 2019-06-07 18:00:00 21.2 (4.357871 50.79686)
#> 2 6447 2014-06-12 18:00:00 23 (4.357871 50.79686)
#> 3 6447 2019-06-08 18:00:00 17.4 (4.357871 50.79686)
#> 4 6447 2021-08-06 18:00:00 20.6 (4.357871 50.79686)
#> 5 6447 2014-06-13 18:00:00 22.6 (4.357871 50.79686)
#> 6 6447 2019-06-09 18:00:00 19.2 (4.357871 50.79686)
#> 7 6447 2014-06-14 18:00:00 19.7 (4.357871 50.79686)
#> 8 6447 2017-01-15 18:00:00 1.4 (4.357871 50.79686)
#> 9 6447 2019-06-10 18:00:00 21.9 (4.357871 50.79686)
#> 10 6447 2014-06-15 18:00:00 19.9 (4.357871 50.79686)
#> # ℹ 9,549 more rowsSpatial filtering using a bounding box
Few analyses will require a whole countries’ data, even if the
country is as small as Belgium. Hence, it might be useful by restricting
the data you query with a bounding box. This works as follows, using a
bbox with the elements xmin,
ymin, xmax, and ymax. For
get_feature_ogc() you can also provide an object of class
bbox (recommended) instead of the named vector. Note: OGC
APIs generally expect the bbox coordinates to be in WGS84
(EPSG:4326). If you pass a bbox object with another
coordinate reference system it will be automatically transformed to
WGS84.
ogc_bwk <- "https://geo.api.vlaanderen.be/BWK/ogc/features/v1"
bbox <- c(xmin = 142600, ymin = 153800, xmax = 146000, ymax = 156900)
bbox <- st_bbox(bbox, crs = st_crs(31370))
bwk_bbox_ogc <- get_feature_ogc(
url = ogc_bwk,
collection = "Bwkhab",
crs = "EPSG:31370",
bbox = bbox
)
bwk_bbox_ogc
#> Simple feature collection with 674 features and 31 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: 137307.1 ymin: 153734.4 xmax: 146672.9 ymax: 160747.2
#> Projected CRS: BD72 / Belgian Lambert 72
#> # A tibble: 674 × 32
#> UIDN OIDN TAG EVAL EENH1 EENH2 EENH3 EENH4 EENH5 EENH6 EENH7 EENH8
#> * <dbl> <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 720336 697808 520982_v… m bl "" "" "" "" "" "" ""
#> 2 720341 697813 520987_v… m bl "" "" "" "" "" "" ""
#> 3 720342 697814 520988_v… m bl "" "" "" "" "" "" ""
#> 4 721379 698851 522610_v… m ur "uv" "" "" "" "" "" ""
#> 5 721678 699150 522991_v… m un "" "" "" "" "" "" ""
#> 6 721692 699164 523008_v… m un "" "" "" "" "" "" ""
#> 7 722583 700055 524319_v… mw hp "kb" "" "" "" "" "" ""
#> 8 723232 700704 525653_v… w hp+ "" "" "" "" "" "" ""
#> 9 723236 700708 525657_v… w hp+ "" "" "" "" "" "" ""
#> 10 723238 700710 525659_v… w hp+ "" "" "" "" "" "" ""
#> # ℹ 664 more rows
#> # ℹ 20 more variables: V1 <chr>, V2 <chr>, V3 <chr>, HERK <chr>, INFO <chr>,
#> # BWKLABEL <chr>, HAB1 <chr>, PHAB1 <int>, HAB2 <chr>, PHAB2 <int>,
#> # HAB3 <chr>, PHAB3 <int>, HAB4 <chr>, PHAB4 <int>, HAB5 <chr>, PHAB5 <int>,
#> # HERKHAB <chr>, HERKPHAB <chr>, HABLEGENDE <chr>, SHAPE <MULTIPOLYGON [m]>
sf::st_geometry(bwk_bbox_ogc) |> plot()
This can also be done using the wkt_filter argument from
sf::read_sf.
bwk_bbox_sf <- read_sf(
paste0("OAPIF:", ogc_bwk),
layer = "Bwkhab",
wkt_filter = sf::st_as_text(
sf::st_as_sfc(
st_bbox(
c(xmin = 142600, ymin = 153800, xmax = 146000, ymax = 156900),
crs = sf::st_crs(31370)
)
)
)
)For reference, here is the code you would use for an equivalent
WFS query:
wfs_bwk <- "https://geo.api.vlaanderen.be/BWK/wfs"
bwk_bbox_wfs <- get_feature_wfs(
wfs = wfs_bwk,
layername = "BWK:Bwkhab",
crs = "EPSG:31370",
bbox = c(xmin = 142600, ymin = 153800, xmax = 146000, ymax = 156900)
)
bwk_bbox_wfs
#This returns a `MULTISURFACE` geometry type.
#We can use a couple of `sf` functions to cast this to regular polygons:
bwk_bbox_wfs %>%
st_cast("GEOMETRYCOLLECTION") %>%
st_collection_extract("POLYGON") %>%
st_geometry() %>%
plot()Spatial filters using spatial binary predicates
In addition to the filters above, you can use logical operations to restrict your area of interest. For example, features can be selected by intersection with another geographical object.
Intersects a point
As a proof of concept, we can directly query parameters at a specific location.
ogc_bwk <- "https://geo.api.vlaanderen.be/BWK/ogc/features/v1"
x_lam <- 173995
y_lam <- 212093
bwk_type <- get_feature_ogc(
url = ogc_bwk,
collection = "Bwkhab",
crs = "EPSG:31370",
cql_filter = sprintf(
"S_INTERSECTS(SHAPE,POINT(%s %s))",
x_lam, y_lam
),
`filter-crs` = "http://www.opengis.net/def/crs/EPSG/0/31370",
)
bwk_type
#> Simple feature collection with 1 feature and 31 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: 173726.3 ymin: 211938.6 xmax: 174194.3 ymax: 212277.6
#> Projected CRS: BD72 / Belgian Lambert 72
#> # A tibble: 1 × 32
#> UIDN OIDN TAG EVAL EENH1 EENH2 EENH3 EENH4 EENH5 EENH6 EENH7 EENH8
#> * <dbl> <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 1451583 871080 662878_v… z ae k(mr) k(mc… "" "" "" "" ""
#> # ℹ 20 more variables: V1 <chr>, V2 <chr>, V3 <chr>, HERK <chr>, INFO <chr>,
#> # BWKLABEL <chr>, HAB1 <chr>, PHAB1 <int>, HAB2 <chr>, PHAB2 <int>,
#> # HAB3 <chr>, PHAB3 <int>, HAB4 <chr>, PHAB4 <int>, HAB5 <chr>, PHAB5 <int>,
#> # HERKHAB <chr>, HERKPHAB <chr>, HABLEGENDE <chr>, SHAPE <MULTIPOLYGON [m]>In theory, this should also be possible “the sf way”.
However, sf filters after query (which takes a long
time).
Raster data examples
Above, we covered OGC API features and Web Feature
Services (WFS), which are vector data. Another common geographical data
type are grid-like or “raster” data, which you can retrieve via Web
Coverage Services (WCS). Behold, there is a
get_coverage_wcs() available for some of the web services
we regularly use at INBO.
To know which layers are available in the WCS service, you can use
the following code which is based on the get_wcs_layers()
function. Here we apply the function to all of the supported WCS
services and gather everything in a single table:
wcs <- c("dtm", "dsm", "omz", "omw", "dhmv", "mercatornet")
list_of_dfs <- lapply(wcs, function(x) {
df <- get_wcs_layers(x)
df <- cbind(wcs = x, df)
return(df)
})
wcs_layers_df <- do.call(rbind, list_of_dfs)
if (knitr::is_html_output()) {
cat("<div style='max-height: 400px; overflow-y: auto;'>")
print(knitr::kable(wcs_layers_df, format = "html"))
cat("</div>")
} else {
print(knitr::kable(wcs_layers_df))
}| wcs | layername | description |
|---|---|---|
| dtm | EL.GridCoverage.DTM | Digitaal Hoogtemodel Vlaanderen II, DTM, raster, 1 m |
| dsm | EL.GridCoverage.DSM | Digitaal Hoogtemodel Vlaanderen II, DSM, raster,1 m |
| omz | OI.OrthoimageCoverage.OMZ.RGB | Orthofotomozaïek, middenschalig, zomeropnamen, kleur, 2021, Vlaanderen |
| omz | OI.OrthoimageCoverage.OMZ.PAN | Orthofotomozaïek, middenschalig, zomeropnamen, panchromatisch, 2021, Vlaanderen |
| omz | OI.OrthoimageCoverage.OMZ.CIR | Orthofotomozaïek, middenschalig, zomeropnamen, kleur-infrarood, 2021, Vlaanderen |
| omw | OI.OrthoimageCoverage.OMW | Orthofotomozaïek, middenschalig, winteropnamen, kleur, 2025, Vlaanderen |
| dhmv | DHMVII_DSM_1m | Digitaal oppervlaktemodel (DSM, ‘digital surface model’) van het maaiveld inclusief objecten in rasterformaat met een grondresolutie van 1m. Dit DSM werd afgeleid van LiDAR-hoogtegegevens die in het kader van het Digitaal Hoogtemodel Vlaanderen II (DHMV-II) werden ingewonnen |
| dhmv | DHMVII_DTM_1m | Digitaal terreinmodel (DTM) van het maaiveld in rasterformaat met een grondresolutie van 1 m. Dit DTM werd afgeleid van LiDAR-hoogtegegevens die in het kader van het Digitaal Hoogtemodel Vlaanderen II (DHMV-II)werden ingewonnen. |
| dhmv | DHMV_II_HILL_25cm | Multi-directionele hillshade van het maaiveld, berekend in 8 richtingen (202,5° - 360° azimuth), zonnehoogte 35° en verticale overdrijving met factor 2. Raster met resolutie 25 cm, aangemaakt door agentschap Digitaal Vlaanderen (EODaS) in samenwerking met het Agentschap Onroerend Erfgoed op basis van de LiDAR LAZ remote sensing brondata van DHM-Vlaanderen II. |
| dhmv | DHMV_II_SVF_25cm | Skyview factor van het maaiveld, berekend in 16 richtingen met een zoekradius van 2,5 meter en met filtering op ruis. Raster met resolutie van 25 cm, aangemaakt door agentschap Digitaal Vlaanderen (EODaS) in samenwerking met het Agentschap Onroerend Erfgoed op basis van de LiDAR LAZ remote sensing brondata van DHM-Vlaanderen II. |
| dhmv | DHMVI_DTM_5m | Digitaal hoogtemodel van Vlaanderen in rastervorm met resolutie van 5m x 5m. De hoogtewaarden betreffen de hoogte van het maaiveld en zijn uitgedrukt in meter TAW (Tweede Algemene Waterpassing, NGI). De hoogtewaarde per pixel is berekend door interpolatie van hoogtemetingen, in hoofdzaak ingewonnen via laseraltimetrie (LIDAR) met een dichtheid van ca 1 punt per 4m², in de periode 2001 - 2004. |
| mercatornet | lu:lu_infra_ha_vlaa_2013 | Aandeel infrastructuur per ha - Vlaanderen - toestand 2013 |
| mercatornet | lu:lu_infra_ha_vlaa_2019 | Aandeel infrastructuur per ha - Vlaanderen - toestand 2019 |
| mercatornet | er:er_aanslptn_1200m_2012 | Aantal aansluitingspunten op het energienet (2012) |
| mercatornet | lu:lu_bebdicht_ha_vlaa_2013 | Bebouwingsdichtheid per ha - Vlaanderen - toestand 2013 |
| mercatornet | lu:lu_bebdicht_ha_vlaa_2019 | Bebouwingsdichtheid per ha - Vlaanderen - toestand 2019 |
| mercatornet | hh:hh_buurtgroen_2013 | Buurtgroen - toestand 2013 |
| mercatornet | hh:hh_buurtgroen_2016 | Buurtgroen - toestand 2016 |
| mercatornet | hh:hh_buurtgroen_2019 | Buurtgroen - toestand 2019 |
| mercatornet | el:el_dhm_vII_raster_20m | Digitaal Hoogtemodel Vlaanderen II, average resampled, 20 m |
| mercatornet | hh:hh_ges_geluid_vlaa_2016 | GES-kaart geluidsbelasting - toestand 2016 |
| mercatornet | hh:hh_ges_hitte_vlabru_2003 | GES-kaart hittestress - toestand 2003 |
| mercatornet | hh:hh_ges_hitte_vlabru_2018 | GES-kaart hittestress - toestand 2018 |
| mercatornet | hh:hh_ges_lucht_vlaa_2017 | GES-kaart luchtkwaliteit - toestand 2017 |
| mercatornet | hh:hh_licht_2012_v3 | Gemiddelde nachtelijke lichtemissies – toestand 2012 |
| mercatornet | hh:hh_licht_2013_v3 | Gemiddelde nachtelijke lichtemissies – toestand 2013 |
| mercatornet | hh:hh_licht_2014_v3 | Gemiddelde nachtelijke lichtemissies – toestand 2014 |
| mercatornet | hh:hh_licht_2015_v3 | Gemiddelde nachtelijke lichtemissies – toestand 2015 |
| mercatornet | hh:hh_licht_2016_v3 | Gemiddelde nachtelijke lichtemissies – toestand 2016 |
| mercatornet | hh:hh_licht_2017_v3 | Gemiddelde nachtelijke lichtemissies – toestand 2017 |
| mercatornet | hh:hh_licht_2018_v3 | Gemiddelde nachtelijke lichtemissies – toestand 2018 |
| mercatornet | hh:hh_licht_2019_v3 | Gemiddelde nachtelijke lichtemissies – toestand 2019 |
| mercatornet | hh:hh_licht_2020_v3 | Gemiddelde nachtelijke lichtemissies – toestand 2020 |
| mercatornet | hh:hh_licht_2021_v3 | Gemiddelde nachtelijke lichtemissies – toestand 2021 |
| mercatornet | hh:hh_licht_2022_v3 | Gemiddelde nachtelijke lichtemissies – toestand 2022 |
| mercatornet | hh:hh_licht_2023_v3 | Gemiddelde nachtelijke lichtemissies – toestand 2023 |
| mercatornet | hh:hh_licht_2024_v3 | Gemiddelde nachtelijke lichtemissies – toestand 2024 |
| mercatornet | lu:lu_gwp_rv_raster | Gewestplan, raster |
| mercatornet | lu:lu_gewogengebhoogte_ha_vlaa_2016 | Gewogen gemiddelde gebouwhoogte per ha - Vlaanderen - toestand 2016 |
| mercatornet | lu:lu_ontwinprior_hydveer_1m | Geïntegreerde prioriteitenkaart voor onthardingswinst hydrologische veerkracht |
| mercatornet | lu:lu_ontwinprior_klimreg_10m | Geïntegreerde prioriteitenkaart voor onthardingswinst klimaatregulatie |
| mercatornet | lu:lu_ontwinprior_natuur_5m | Geïntegreerde prioriteitenkaart voor onthardingswinst natuurontwikkeling en -verbinding |
| mercatornet | er:er_heav_p2030_ele_zon | Hernieuwbare Energieatlas Vlaanderen - Bijkomende potentiële energieproductie vanuit fotovoltaïsche panelen - REV2030-scenario |
| mercatornet | er:er_heav_p2030_wrm_ongeo | Hernieuwbare Energieatlas Vlaanderen - Bijkomende potentiële energieproductie vanuit grondgekoppelde warmtepompen - REV2030-scenario |
| mercatornet | er:er_heav_techpot_wrm_ongeo | Hernieuwbare Energieatlas Vlaanderen - Bijkomende potentiële energieproductie vanuit grondgekoppelde warmtepompen - technisch scenario |
| mercatornet | er:er_heav_p2030_wrm_zon | Hernieuwbare Energieatlas Vlaanderen - Bijkomende potentiële energieproductie vanuit particuliere zonneboilers - REV2030-scenario |
| mercatornet | er:er_heav_techpot_wrm_zon | Hernieuwbare Energieatlas Vlaanderen - Bijkomende potentiële energieproductie vanuit particuliere zonneboilers - technisch scenario |
| mercatornet | er:er_heav_techpot_ele_wt | Hernieuwbare Energieatlas Vlaanderen - Bijkomende potentiële energieproductie vanuit windturbines - technisch scenario |
| mercatornet | er:er_heav_techpot_ele_zon | Hernieuwbare Energieatlas Vlaanderen - Bijkomende potentiële energieproductie vanuit fotovoltaïsche panelen - technisch scenario |
| mercatornet | er:er_heav_p2030_ele_tot | Hernieuwbare Energieatlas Vlaanderen - Totale bijkomende potentiële elektriciteitsproductie - REV2030-scenario |
| mercatornet | er:er_heav_techpot_ele_tot | Hernieuwbare Energieatlas Vlaanderen - Totale bijkomende potentiële elektriciteitsproductie - technisch scenario |
| mercatornet | er:er_heav_p2030_wrm_tot | Hernieuwbare Energieatlas Vlaanderen - Totale bijkomende potentiële warmteproductie - REV2030-scenario |
| mercatornet | er:er_heav_techpot_wrm_tot | Hernieuwbare Energieatlas Vlaanderen - Totale bijkomende potentiële warmteproductie - technisch scenario |
| mercatornet | ni:ni_huish_basisvoorz_ha_vlaa_2013 | Huishoudensdichtheid met goede basisvoorzieningen - Vlaanderen - Toestand 2013 |
| mercatornet | ni:ni_huish_metrovoorz_ha_vlaa_2013 | Huishoudensdichtheid met goede metropolitane voorzieningen - Vlaanderen - Toestand 2013 |
| mercatornet | ni:ni_huish_regiovoorz_ha_vlaa_2013 | Huishoudensdichtheid met goede regionale voorzieningen - Vlaanderen - Toestand 2013 |
| mercatornet | ni:ni_huish_ha_vlaa_2013 | Huishoudensdichtheid per ha - Vlaanderen - Toestand 2013 |
| mercatornet | ni:ni_huish_ha_vlaa_2019 | Huishoudensdichtheid per ha - Vlaanderen - Toestand 2019 |
| mercatornet | ni:ni_inwhuish_ha_vlaa_2013 | Inwoners per bewoond adrespunt per ha - Vlaanderen - Toestand 2013 |
| mercatornet | ni:ni_inwhuish_ha_vlaa_2019 | Inwoners per bewoond adrespunt per ha - Vlaanderen - Toestand 2019 |
| mercatornet | ni:ni_inw_ha_vlaa_2013 | Inwonersdichtheid per ha - Vlaanderen - Toestand 2013 |
| mercatornet | ni:ni_inw_ha_vlaa_2019 | Inwonersdichtheid per ha - Vlaanderen - Toestand 2019 |
| mercatornet | lc:lc_jaarbak_1m_2013 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 1 m-resolutie, 2013 |
| mercatornet | lc:lc_jaarbak_1m_2014 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 1 m-resolutie, 2014 |
| mercatornet | lc:lc_jaarbak_1m_2015 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 1 m-resolutie, 2015 |
| mercatornet | lc:lc_jaarbak_1m_2016 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 1 m-resolutie, 2016 |
| mercatornet | lc:lc_jaarbak_1m_2017 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 1 m-resolutie, 2017 |
| mercatornet | lc:lc_jaarbak_1m_2018 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 1 m-resolutie, 2018 |
| mercatornet | lc:lc_jaarbak_1m_2019 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 1 m-resolutie, 2019 |
| mercatornet | lc:lc_jaarbak_1m_2020 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 1 m-resolutie, 2020 |
| mercatornet | lc:lc_jaarbak_1m_2021 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 1 m-resolutie, 2021 |
| mercatornet | lc:lc_jaarbak_5m_2013 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 5 m-resolutie, 2013 |
| mercatornet | lc:lc_jaarbak_5m_2014 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 5 m-resolutie, 2014 |
| mercatornet | lc:lc_jaarbak_5m_2015 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 5 m-resolutie, 2015 |
| mercatornet | lc:lc_jaarbak_5m_2016 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 5 m-resolutie, 2016 |
| mercatornet | lc:lc_jaarbak_5m_2017 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 5 m-resolutie, 2017 |
| mercatornet | lc:lc_jaarbak_5m_2018 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 5 m-resolutie, 2018 |
| mercatornet | lc:lc_jaarbak_5m_2019 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 5 m-resolutie, 2019 |
| mercatornet | lc:lc_jaarbak_5m_2020 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 5 m-resolutie, 2020 |
| mercatornet | lc:lc_jaarbak_5m_2021 | Jaarlijkse bodemafdekkingskaart (JaarBAK), 5 m-resolutie, 2021 |
| mercatornet | lu:lu_kk_ontwin_1m | Kansenkaart onthardingswinst |
| mercatornet | lu:lu_kk_ruimrend_ha | Kansenkaart ruimtelijk rendement verhogen voor gemengde omgevingen |
| mercatornet | er:er_kb_net_wkk_1200m | Kansrijke gebieden voor de aanleg van een warmtenet (2012) |
| mercatornet | er:er_kb_net_nab_1200m | Kansrijke gebieden voor de aanleg van een warmtenet - indien de restwarmte naar naburige cellen wordt getransporteerd (2012) |
| mercatornet | er:er_kb_net_wkk_min_bp_1200m | Kansrijke gebieden voor de aanleg van een warmtenet - met WKK als warmtebron, scenario lage brandstofprijzen (2012) |
| mercatornet | er:er_kb_net_lok_1200m | Kansrijke gebieden voor de aanleg van een warmtenet - met gebruik van restwarmte in dezelfde gridcel (2012) |
| mercatornet | er:er_kb_net_comb_1200m | Kansrijke gebieden voor de aanleg van een warmtenet - waarbij de restwarmte wordt onttrokken van een buurcel, met een waarde voor restwarmte van 0 EUR/MWh |
| mercatornet | er:er_kb_net_comb_max_wrw_1200m | Kansrijke gebieden voor de aanleg van een warmtenet - waarbij de restwarmte wordt onttrokken van een buurcel, met een waarde voor restwarmte van 25EUR/MWH (2012) |
| mercatornet | lu:lu_knptw_ha_2022_v3 | Knooppuntwaarde per ha - toestand 2022 |
| mercatornet | er:er_kvrg_diff_geb_1200m_2012 | Koudevraag residentieel, tertiair en landbouw (2012) |
| mercatornet | lu:lu_landgebruik_vlaa_2013_v3 | Landgebruik - Vlaanderen - toestand 2013 |
| mercatornet | lu:lu_landgebruik_vlaa_2016_v3 | Landgebruik - Vlaanderen - toestand 2016 |
| mercatornet | lu:lu_landgebruik_vlaa_2019_v3 | Landgebruik - Vlaanderen - toestand 2019 |
| mercatornet | lu:lu_landgebruik_vlaa_2022_v3 | Landgebruik - Vlaanderen - toestand 2022 |
| mercatornet | ni:ni_mobiscore_ha | Mobiscore per ha |
| mercatornet | hh:hh_natbelevweg_2013 | Natuurbeleving op de weg - toestand 2013 |
| mercatornet | hh:hh_natbelevweg_2016 | Natuurbeleving op de weg - toestand 2016 |
| mercatornet | hh:hh_natbelevweg_2019 | Natuurbeleving op de weg - toestand 2019 |
| mercatornet | hh:hh_natbelevweg_2022 | Natuurbeleving op de weg - toestand 2022 |
| mercatornet | lu:lu_openruimte_vlaa_2013_v3 | Open ruimte - Vlaanderen - toestand 2013 |
| mercatornet | lu:lu_openruimte_vlaa_2022_v3 | Open ruimte - Vlaanderen - toestand 2022 |
| mercatornet | lu:lu_opp_onbeb_ha_vlaa_2013 | Oppervlakte onbebouwd per ha - Vlaanderen - toestand 2013 |
| mercatornet | lu:lu_opp_onbeb_ha_ruibes_vlaa_2013 | Oppervlakte onbebouwd per ha ruimtebeslag - Vlaanderen - toestand 2013 |
| mercatornet | lu:lu_ruibes_vlaa_2013_v3 | Ruimtebeslag - Vlaanderen - toestand 2013 |
| mercatornet | lu:lu_ruibes_vlaa_2016_v3 | Ruimtebeslag - Vlaanderen - toestand 2016 |
| mercatornet | lu:lu_ruibes_vlaa_2019_v3 | Ruimtebeslag - Vlaanderen - toestand 2019 |
| mercatornet | lu:lu_ruibes_vlaa_2022_v3 | Ruimtebeslag - Vlaanderen - toestand 2022 |
| mercatornet | lu:lu_rb_rbh_2013 | Ruimtebeslag versus ruimteboekhouding van het RSV - Vlaanderen - Toestand 2013 |
| mercatornet | lu:lu_rb_rbh_2019 | Ruimtebeslag versus ruimteboekhouding van het RSV - Vlaanderen - Toestand 2019 |
| mercatornet | hh:hh_stadsbos_2013 | Stadsbos - toestand 2013 |
| mercatornet | hh:hh_stadsbos_2016 | Stadsbos - toestand 2016 |
| mercatornet | hh:hh_stadsbos_2019 | Stadsbos - toestand 2019 |
| mercatornet | hh:hh_stadsdeelgroen_2013 | Stadsdeelgroen - toestand 2013 |
| mercatornet | hh:hh_stadsdeelgroen_2016 | Stadsdeelgroen - toestand 2016 |
| mercatornet | hh:hh_stadsdeelgroen_2019 | Stadsdeelgroen - toestand 2019 |
| mercatornet | hh:hh_stadsgroen_2013 | Stadsgroen - toestand 2013 |
| mercatornet | hh:hh_stadsgroen_2016 | Stadsgroen - toestand 2016 |
| mercatornet | hh:hh_stadsgroen_2019 | Stadsgroen - toestand 2019 |
| mercatornet | lu:lu_synkwvz_ha_2022_v3 | Synthese knooppuntwaarde en voorzieningenniveau - toestand 2022 |
| mercatornet | ni:ni_tewerk_ha_vlaa_2013 | Tewerkstellingsdichtheid per ha - Vlaanderen - Toestand 2013 |
| mercatornet | ni:ni_tewerk_ha_vlaa_2019 | Tewerkstellingsdichtheid per ha - Vlaanderen - Toestand 2019 |
| mercatornet | ni:ni_tot_basisvoorznv_vlaa_2015 | Totaal basisvoorzieningenniveau - toestand 2015 |
| mercatornet | lu:lu_totvznv_ha_2022_v3 | Totaal voorzieningenniveau - toestand 2022 |
| mercatornet | hh:hh_vlops_nh3_conc_1km_20MZ17M517 | VLOPS kaarten - NH3 - NH3 concentratie (VLOPS20, Meteo 2017, Emissies 2017) |
| mercatornet | hh:hh_vlops_nh3_conc_1km_23MZ21M521 | VLOPS kaarten - NH3 - NH3 concentratie (VLOPS23, meteo 2021, emissies 2021) |
| mercatornet | hh:hh_vlops_nhx_vd_1km_20MZ17M517 | VLOPS kaarten - NH3 - NHx droge depositiesnelheid (VLOPS20, Meteo 2017, Emissies 2017) |
| mercatornet | hh:hh_vlops_nhx_vd_1km_23MZ21M521 | VLOPS kaarten - NH3 - NHx droge depositiesnelheid (VLOPS23, meteo 2021, emissies 2021) |
| mercatornet | hh:hh_vlops_nhx_vd_1km_24MZ22M517 | VLOPS kaarten - NH3 - NHx droge depositiesnelheid (VLOPS24, meteo 2017, emissies 2022) |
| mercatornet | hh:hh_vlops_nhx_vd_1km_25MZ23M517 | VLOPS kaarten - NH3 - NHx droge depositiesnelheid (VLOPS25, meteo 2017, emissies 2023) |
| mercatornet | hh:hh_vlops_nhx_td_1km_20MZ17M517 | VLOPS kaarten - NH3 - NHx totale depositie (VLOPS20, Meteo 2017, Emissies 2017) |
| mercatornet | hh:hh_vlops_nhx_td_1km_23MZ21M521 | VLOPS kaarten - NH3 - NHx totale depositie (VLOPS23, meteo 2021, emissies 2021) |
| mercatornet | hh:hh_vlops_nhx_td_1km_24MZ22M517 | VLOPS kaarten - NH3 - NHx totale depositie (VLOPS24, meteo 2017, emissies 2022) |
| mercatornet | hh:hh_vlops_nhx_td_1km_25MZ23M517 | VLOPS kaarten - NH3 - NHx totale depositie (VLOPS25, meteo 2017, emissies 2023) |
| mercatornet | hh:hh_vlops_noy_vd_1km_20MZ17M517 | VLOPS kaarten - NOx - NOy droge depositiesnelheid (VLOPS20, Meteo 2017, Emissies 2017) |
| mercatornet | hh:hh_vlops_noy_vd_1km_23MZ21M521 | VLOPS kaarten - NOx - NOy droge depositiesnelheid (VLOPS23, meteo 2021, emissies 2021) |
| mercatornet | hh:hh_vlops_noy_vd_1km_24MZ22M517 | VLOPS kaarten - NOx - NOy droge depositiesnelheid (VLOPS24, meteo 2017, emissies 2022) |
| mercatornet | hh:hh_vlops_noy_vd_1km_25MZ23M517 | VLOPS kaarten - NOx - NOy droge depositiesnelheid (VLOPS25, meteo 2017, emissies 2023) |
| mercatornet | hh:hh_vlops_noy_td_1km_20MZ17M517 | VLOPS kaarten - NOx - NOy totale depositie (VLOPS20, Meteo 2017, Emissies 2017) |
| mercatornet | hh:hh_vlops_noy_td_1km_23MZ21M521 | VLOPS kaarten - NOx - NOy totale depositie (VLOPS23, meteo 2021, emissies 2021) |
| mercatornet | hh:hh_vlops_noy_td_1km_24MZ22M517 | VLOPS kaarten - NOx - NOy totale depositie (VLOPS24, meteo 2017, emissies 2022) |
| mercatornet | hh:hh_vlops_noy_td_1km_25MZ23M517 | VLOPS kaarten - NOx - NOy totale depositie (VLOPS25, meteo 2017, emissies 2023) |
| mercatornet | hh:hh_vlops_sox_vd_1km_20MZ17M517 | VLOPS kaarten - SO2 - SOx droge depositiesnelheid (VLOPS20, Meteo 2017, Emissies 2017) |
| mercatornet | hh:hh_vlops_sox_vd_1km_23MZ21M521 | VLOPS kaarten - SO2 - SOx droge depositiesnelheid (VLOPS23, meteo 2021, emissies 2021) |
| mercatornet | hh:hh_vlops_sox_vd_1km_24MZ22M517 | VLOPS kaarten - SO2 - SOx droge depositiesnelheid (VLOPS24, meteo 2017, emissies 2022) |
| mercatornet | hh:hh_vlops_sox_vd_1km_25MZ23M517 | VLOPS kaarten - SO2 - SOx droge depositiesnelheid (VLOPS25, meteo 2017, emissies 2023) |
| mercatornet | hh:hh_vlops_sox_td_1km_20MZ17M517 | VLOPS kaarten - SO2 - SOx totale depositie (VLOPS20, Meteo 2017, Emissies 2017) |
| mercatornet | hh:hh_vlops_sox_td_1km_23MZ21M521 | VLOPS kaarten - SO2 - SOx totale depositie (VLOPS23, meteo 2021, emissies 2021) |
| mercatornet | hh:hh_vlops_sox_td_1km_24MZ22M517 | VLOPS kaarten - SO2 - SOx totale depositie (VLOPS24, meteo 2017, emissies 2022) |
| mercatornet | hh:hh_vlops_sox_td_1km_25MZ23M517 | VLOPS kaarten - SO2 - SOx totale depositie (VLOPS25, meteo 2017, emissies 2023) |
| mercatornet | hh:hh_vlops_tmd_1km_23MZ21M521 | VLOPS kaarten - Totale stikstofdepositie (VLOPS23, meteo 2021, emissies 2021) |
| mercatornet | hh:hh_vlops_tmd_1km_24MZ22M517 | VLOPS kaarten - Totale stikstofdepositie (VLOPS24, meteo 2017, emissies 2022) |
| mercatornet | hh:hh_vlops_tmd_1km_25MZ23M517 | VLOPS kaarten - Totale stikstofdepositie (VLOPS25, meteo 2017, emissies 2023) |
| mercatornet | hh:hh_vlops_tmd_1km_20MZ17M517 | VLOPS kaarten - Totale vermestende depositie (VLOPS20, Meteo 2017, Emissies 2017) |
| mercatornet | hh:hh_vlops_tzd_1km_20MZ17M517 | VLOPS kaarten - Totale verzurende depositie (VLOPS20, Meteo 2017, Emissies 2017) |
| mercatornet | hh:hh_vlops_tzd_1km_23MZ21M521 | VLOPS kaarten - Totale verzurende depositie (VLOPS23, meteo 2021, emissies 2021) |
| mercatornet | hh:hh_vlops_tzd_1km_24MZ22M517 | VLOPS kaarten - Totale verzurende depositie (VLOPS24, meteo 2017, emissies 2022) |
| mercatornet | hh:hh_vlops_tzd_1km_25MZ23M517 | VLOPS kaarten - Totale verzurende depositie (VLOPS25, meteo 2017, emissies 2023) |
| mercatornet | lu:lu_verwwowe_ha_vlaa_2013 | Verweving van wonen en werken - toestand 2013 |
| mercatornet | lu:lu_verwwowe_ha_vlaa_2019 | Verweving van wonen en werken - toestand 2019 |
| mercatornet | lu:lu_vloeropp_ha_vlaa_2016 | Vloeroppervlakte per ha - Vlaanderen - toestand 2016 |
| mercatornet | hh:hh_walkability_2019_v1 | Walkabilityscore bebouwd gebied |
| mercatornet | er:er_wvrg_diff_ind_300m_2012 | Warmtevraag kleine industrie (2012) |
| mercatornet | er:er_wvrg_diff_geb_100m_2012 | Warmtevraag residentieel, tertiair, landbouw en kleine industrie (2012) |
| mercatornet | er:er_wvrg_diff_tot_1200m_2012 | Warmtevraag residentieel, tertiair, landbouw en kleine industrie - totaal (2012) |
| mercatornet | hh:hh_wijkgroen_2013 | Wijkgroen - toestand 2013 |
| mercatornet | hh:hh_wijkgroen_2016 | Wijkgroen - toestand 2016 |
| mercatornet | hh:hh_wijkgroen_2019 | Wijkgroen - toestand 2019 |
| mercatornet | lu:lu_wondicht_ha_vlaa_2013 | Woningdichtheid per ha - Vlaanderen - toestand 2013 |
| mercatornet | lu:lu_wondicht_ha_vlaa_2019 | Woningdichtheid per ha - Vlaanderen - toestand 2019 |
| mercatornet | ni:ni_verwevhogrowo_ha_vla_2013 | verweving hoog groen/wonen per ha - Vlaanderen - toestand 2013 |
| mercatornet | ni:ni_verwevlana_ha_2013 | verweving landbouw/natuur per ha - Vlaanderen - toestand 2013 |
| mercatornet | ni:ni_verwevlawo_ha_vlaa_2013 | verweving landbouw/wonen per ha - Vlaanderen - toestand 2013 |
Below the example of a false-colour infrared image. The three bands
of the image are visualized using terra::plotRGB.
bbox <- sf::st_bbox(
c(xmin = 99477, xmax = 99541, ymin = 172580, ymax = 172640),
crs = sf::st_crs(31370)
)
omz <- get_coverage_wcs(
wcs = "omz",
bbox = bbox,
layername = "OI.OrthoimageCoverage.OMZ.CIR",
resolution = 1,
version = "1.0.0"
)
terra::plotRGB(omz)
Another example, this time extracting the digital terrain model for the same bounding box:
dtm <- get_coverage_wcs(
wcs = "dtm",
bbox = bbox,
layername = "EL.GridCoverage.DTM",
resolution = 1
)
terra::plot(dtm)
Another example using the Hillshade layer from the
“dhmv”: digital elevation model Flanders:
hill <- get_coverage_wcs(
"dhmv",
bbox = bbox,
layername = "DHMV_II_HILL_25cm",
resolution = 0.25,
wcs_crs = "EPSG:31370"
)
terra::plot(hill)
Finally an example extracting total nitrogen deposition in 2025 at 1
km resolution from the mercatorNet service. Be careful here
that you pass the resolution as 1000 meters, i.e. the units of the
wcs_crs. We increased the bounding box in this example to a
10 km x 10 km square.
bbox[c("xmax", "ymax")] <- bbox[c("xmax", "ymax")] + 10000
total_nitrogen <- get_coverage_wcs(
"mercatornet",
bbox = bbox,
layername = "hh:hh_vlops_tmd_1km_25MZ23M517",
resolution = 1000,
wcs_crs = "EPSG:31370"
)
terra::plot(total_nitrogen)
More details on WCS can be found in the
spatial_dhmv_query.Rmd vignette.