From 2944d25b42f59f4f366c45ee0329da1486494013 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABlle=20Salmon?= Date: Mon, 25 Nov 2024 08:41:36 +0100 Subject: [PATCH 1/4] docs: improve README with more information on spatial data and software MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Anna Krystalli Co-authored-by: Salvador Fernández Bejarano --- README.Rmd | 67 +++++++++++++------ README.md | 189 ++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 183 insertions(+), 73 deletions(-) diff --git a/README.Rmd b/README.Rmd index 144fcb9..15020f7 100644 --- a/README.Rmd +++ b/README.Rmd @@ -26,6 +26,7 @@ options(timeout = 2000) The goal of emodnet.wfs is to allow interrogation of and access to [EMODnet's, European Marine Observation and Data Network, geographic vector data](https://emodnet.ec.europa.eu/en/emodnet-web-service-documentation#inline-nav-3) in R through the [EMODnet Web Feature Services](https://emodnet.ec.europa.eu/en/data-0). [Web Feature services (WFS)](https://www.ogc.org/publications/standard/wfs/) represent a change in the way geographic information is created, modified and exchanged on the Internet and offer direct fine-grained access to geographic information at the feature and feature property level. +Features are representation of geographic entities, such as a coastlines, marine protected areas, offshore platforms, or fishing areas. In WFS, features have geometry (spatial information) and attributes (descriptive data). emodnet.wfs aims at offering an user-friendly interface to this rich data. ## Installation and setup @@ -44,12 +45,23 @@ set the `"emodnet.wfs.quiet"` option to `TRUE`. options("emodnet.wfs.quiet" = TRUE) ``` -## Available services +## Pre-requisites -All available services are contained in the tibble returned by `emodnet_wfs()`. +The emodnet.wfs is designed to be compatible with the modern R geospatial stack, in particular output geospatial objects are [`sf`](https://r-spatial.github.io/sf/) objects, that is to say, a tibble with a geometry list-column. +For users not familiar yet with geospatial data in R, we recommend the following resources: -```{r, echo=FALSE} +- [Spatial Data Science With Applications in R](https://r-spatial.org/book/) by Edzer Pebesma and Roger Bivand. + +- [Geocomputation with R](https://r.geocompx.org/) by Robin Lovelace, Jakub Nowosad and Jannes Muenchow. + +In the documentation we assume a basic familiarity with spatial data: knowing about coordinates and about projections / [coordinate reference systems (CRS)](https://r.geocompx.org/spatial-class#crs-intro). + +## Available data sources (services) + +All available data sources, called services, are contained in the [tibble](https://tibble.tidyverse.org/) returned by `emodnet_wfs()`. + +```{r, echo=TRUE} library(emodnet.wfs) services <- emodnet_wfs() class(services) @@ -59,7 +71,9 @@ services$service_name To explore available services you can use `View()` or your usual way to explore `data.frames`. -## Create Service Client +## Initialise a WFS Service Client + +A WFS service client is responsible for sending requests to a WFS server and processing the responses to retrieve, display, or analyze geospatial features. As such, initialising a client is the first step to interacting with an EMODnet Web Feature Services. Specify the service using the `service` argument. @@ -69,9 +83,11 @@ wfs_bio <- emodnet_init_wfs_client(service = "biology") wfs_bio ``` -## Get WFS Layer info +## List contents of a WFS: Get layer information from a service client -You can get metadata about the layers available from a service. +In the context of a Web Feature Service (WFS), a layer refers to a logical grouping of geographic features that share the same schema (i.e., the same feature type, geometry, and attributes). Layers are the units of data that clients can query, retrieve, and manipulate through a WFS. + +You can access information (metadata) about each layer available from an EMODnet WFS with `emodnet_get_wfs_info()` ```{r} emodnet_get_wfs_info(service = "biology") @@ -99,16 +115,20 @@ emodnet_get_all_wfs_info() ``` -## Get WFS layers +## Get data from a data source: get layers You can extract layers directly from a `wfs` object using layer names. All layers are downloaded as `sf` objects and output as a list with a named element for each layer requested. +The argument `reduce_layers = TRUE` stack all the layers in one single tibble, if possible (for instance if all column names are the same, otherwise it fails). + +By default, `emodnet_get_layers()` returns a list of sf objects, one per layer. + ```{r} emodnet_get_layers(wfs = wfs_bio, layers = layers) ``` -You can change the output `crs` through the argument `crs`. +You can change the output Coordinate Reference System (CRS), which defines how geographic data is mapped to the Earth's surface, through the argument `crs`. ```{r} emodnet_get_layers(wfs = wfs_bio, layers = layers, crs = 3857) @@ -154,36 +174,44 @@ If you get an unexpected error, - Look up the [EMODnet monitor](https://monitor.emodnet.eu/resources?lang=en&resource_type=OGC:WFS); - Open an issue in this [repository](https://github.com/EMODnet/emodnet.wfs/issues). -## Other web services +## Unlock the Full Potential of the EMODnet Web Services: Access Raster and Gridded datasets. + +EMODnet hosts a wealth of marine and maritime data distributed through three complementary web services: WFS, WCS, and ERDDAP. Web services allow users to retrieve data programmatically from remote servers, eliminating the need for manual downloads. This is particularly useful for handling large datasets or conducting dynamic analyses. These services are tailored to different data types and research needs, but together, they ensure seamless access to all EMODnet vector, raster, and gridded datasets. Vector data, such as shipwrecks or boundaries, are accessible through `emodnet.wfs` via Web Feature Services (WFS). Complementary, raster and gridded datasets are available through Web Coverage Services (WCS) and ERDDAP respectively. + +### Access EMODnet raster data through Web Coverage Services with `EMODnetWCS` in R + +EMODnet raster datasets, such as habitat maps or bathymetry, are available through [Web Coverage Services (WCS)](https://wikipedia.org/wiki/Web_Coverage_Service). These data are continuous, gridded, and often used for spatial visualization or environmental modeling. The EMODnetWCS R package provides tools to retrieve and process these raser datasets, in a similar fashion as `emodnet.wfs`. Extensive documentation is available at the [EMODnetWCS website](https://emodnet.github.io/EMODnetWCS/). -There are three ways to access EMODnet data at the moment, that complement each other. -### EMODnet ERDDAP server +### Access EMODnet gridded and tabular datasets through the ERDDAP Server and `rerddap` in R -Some EMODnet data are also published in an [ERDDAP server](https://erddap.emodnet.eu). You can access these data in R using the [rerddap R package](https://docs.ropensci.org/rerddap/): +Both WFS and WCS EMODnet services are based on a federated system: each EMODnet thematic lot manages their servers and data, ensuring that their data are exposed both via WFS and WCS. The twin R packages `emodnet.wfs` and `EMODnetWCS` simplify the access to all the entry points by collecting them in single places, which are the packages themselves. +In contrast, the [EMODnet ERDDAP Server](https://erddap.emodnet.eu) is centrally managed by the EMODnet Central Portal, offering a single access point to all gridded and tabular datasets. ERDDAP simplifies access to datasets such as digital terrain models, vessel density or environmental data. It is particularly suited for large-scale, multidimensional data analysis. In R, the `rerddap` package allows users to query and subset ERDDAP data programmatically, enabling efficient analysis and integration into workflows. For example, researchers can retrieve datasets on vessel density. ```{r rerddap} # install.packages("rerrdap") library(rerddap) +# This is the url where the EMODnet ERDDAP server is located erddap_url <- "https://erddap.emodnet.eu/erddap/" -rerddap::ed_datasets(url = erddap_url) +# Inspect all available datasets +ed_datasets(url = erddap_url) -rerddap::ed_search(query = "vessel density", url = erddap_url) +# Find datasets with the key words "vessel density" +ed_search(query = "vessel density", url = erddap_url) -human_activities_data_info <- rerddap::info(datasetid = "humanactivities_9f8a_3389_f08a", url = erddap_url) +# Inspect more info about the vessel density dataset, using its identifier +human_activities_data_info <- info(datasetid = "humanactivities_9f8a_3389_f08a", url = erddap_url) human_activities_data_info +# Retrieve the vessel density at a particular time period year_2020_gridded_data <- griddap(datasetx = human_activities_data_info, time = c("2020-03-18", "2020-03-19")) head(year_2020_gridded_data$data) ``` - -### EMODnetWCS: Access EMODnet Web Coverage Service data - -This package emodnet.wfs uses [Web Feature Services](https://www.ogc.org/publications/standard/wfs/), hence it is limited to getting vector data. EMODnet also hosts raster data that can be accessed via [Web Coverage Services (WCS)](https://www.ogc.org/publications/standard/wcs/). The R package [EMODnetWCS](https://github.com/EMODnet/EMODnetWCS) makes these data available in R. +More functionalities are available through `rerddap`. Feel free to explore the [rerddap website](https://docs.ropensci.org/rerddap/) to find out what else can you do with the EMODnet datasets in ERDDAP. ## Citation @@ -196,3 +224,4 @@ citation(package = "emodnet.wfs") ## Acknowledgements This package was started by the Sheffield University during the EMODnet Biology WP4 data products workshop in June 2020. + diff --git a/README.md b/README.md index b515e98..b338a5e 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,11 @@ Services](https://emodnet.ec.europa.eu/en/data-0). [Web Feature services change in the way geographic information is created, modified and exchanged on the Internet and offer direct fine-grained access to geographic information at the feature and feature property level. -emodnet.wfs aims at offering an user-friendly interface to this rich -data. +Features are representation of geographic entities, such as a +coastlines, marine protected areas, offshore platforms, or fishing +areas. In WFS, features have geometry (spatial information) and +attributes (descriptive data). emodnet.wfs aims at offering an +user-friendly interface to this rich data. ## Installation and setup @@ -46,35 +49,67 @@ client created successfully”, set the `"emodnet.wfs.quiet"` option to options("emodnet.wfs.quiet" = TRUE) ``` -## Available services - -All available services are contained in the tibble returned by -`emodnet_wfs()`. - - #> [1] "data.frame" - #> [1] "service_name" "service_url" - #> [1] "bathymetry" - #> [2] "biology" - #> [3] "biology_occurrence_data" - #> [4] "chemistry_cdi_data_discovery_and_access_service" - #> [5] "chemistry_cdi_distribution_observations_per_category_and_region" - #> [6] "chemistry_contaminants" - #> [7] "chemistry_marine_litter" - #> [8] "geology_coastal_behavior" - #> [9] "geology_events_and_probabilities" - #> [10] "geology_marine_minerals" - #> [11] "geology_sea_floor_bedrock" - #> [12] "geology_seabed_substrate_maps" - #> [13] "geology_submerged_landscapes" - #> [14] "human_activities" - #> [15] "physics" - #> [16] "seabed_habitats_general_datasets_and_products" - #> [17] "seabed_habitats_individual_habitat_map_and_model_datasets" +## Pre-requisites + +The emodnet.wfs is designed to be compatible with the modern R +geospatial stack, in particular output geospatial objects are +[`sf`](https://r-spatial.github.io/sf/) objects, that is to say, a +tibble with a geometry list-column. + +For users not familiar yet with geospatial data in R, we recommend the +following resources: + +- [Spatial Data Science With Applications in + R](https://r-spatial.org/book/) by Edzer Pebesma and Roger Bivand. + +- [Geocomputation with R](https://r.geocompx.org/) by Robin Lovelace, + Jakub Nowosad and Jannes Muenchow. + +In the documentation we assume a basic familiarity with spatial data: +knowing about coordinates and about projections / [coordinate reference +systems (CRS)](https://r.geocompx.org/spatial-class#crs-intro). + +## Available data sources (services) + +All available data sources, called services, are contained in the +[tibble](https://tibble.tidyverse.org/) returned by `emodnet_wfs()`. + +``` r +library(emodnet.wfs) +services <- emodnet_wfs() +class(services) +#> [1] "data.frame" +names(services) +#> [1] "service_name" "service_url" +services$service_name +#> [1] "bathymetry" +#> [2] "biology" +#> [3] "biology_occurrence_data" +#> [4] "chemistry_cdi_data_discovery_and_access_service" +#> [5] "chemistry_cdi_distribution_observations_per_category_and_region" +#> [6] "chemistry_contaminants" +#> [7] "chemistry_marine_litter" +#> [8] "geology_coastal_behavior" +#> [9] "geology_events_and_probabilities" +#> [10] "geology_marine_minerals" +#> [11] "geology_sea_floor_bedrock" +#> [12] "geology_seabed_substrate_maps" +#> [13] "geology_submerged_landscapes" +#> [14] "human_activities" +#> [15] "physics" +#> [16] "seabed_habitats_general_datasets_and_products" +#> [17] "seabed_habitats_individual_habitat_map_and_model_datasets" +``` To explore available services you can use `View()` or your usual way to explore `data.frames`. -## Create Service Client +## Initialise a WFS Service Client + +A WFS service client is responsible for sending requests to a WFS server +and processing the responses to retrieve, display, or analyze geospatial +features. As such, initialising a client is the first step to +interacting with an EMODnet Web Feature Services. Specify the service using the `service` argument. @@ -93,9 +128,16 @@ wfs_bio #> ....|-- capabilities ``` -## Get WFS Layer info +## List contents of a WFS: Get layer information from a service client -You can get metadata about the layers available from a service. +In the context of a Web Feature Service (WFS), a layer refers to a +logical grouping of geographic features that share the same schema +(i.e., the same feature type, geometry, and attributes). Layers are the +units of data that clients can query, retrieve, and manipulate through a +WFS. + +You can access information (metadata) about each layer available from an +EMODnet WFS with `emodnet_get_wfs_info()` ``` r emodnet_get_wfs_info(service = "biology") @@ -164,11 +206,17 @@ the server emodnet_get_all_wfs_info() ``` -## Get WFS layers +## Get data from a data source: get layers You can extract layers directly from a `wfs` object using layer names. All layers are downloaded as `sf` objects and output as a list with a -named element for each layer requested. +named element for each layer requested. The argument +`reduce_layers = TRUE` stack all the layers in one single tibble, if +possible (for instance if all column names are the same, otherwise it +fails). + +By default, `emodnet_get_layers()` returns a list of sf objects, one per +layer. ``` r emodnet_get_layers(wfs = wfs_bio, layers = layers) @@ -211,7 +259,9 @@ emodnet_get_layers(wfs = wfs_bio, layers = layers) #> 10 mediseh_posidonia_nodata.84 0 2.817453 MULTICURVE (LINESTRING (15.... ``` -You can change the output `crs` through the argument `crs`. +You can change the output Coordinate Reference System (CRS), which +defines how geographic data is mapped to the Earth’s surface, through +the argument `crs`. ``` r emodnet_get_layers(wfs = wfs_bio, layers = layers, crs = 3857) @@ -362,16 +412,48 @@ If you get an unexpected error, - Open an issue in this [repository](https://github.com/EMODnet/emodnet.wfs/issues). -## Other web services - -There are three ways to access EMODnet data at the moment, that -complement each other. - -### EMODnet ERDDAP server - -Some EMODnet data are also published in an [ERDDAP -server](https://erddap.emodnet.eu). You can access these data in R using -the [rerddap R package](https://docs.ropensci.org/rerddap/): +## Unlock the Full Potential of the EMODnet Web Services: Access Raster and Gridded datasets. + +EMODnet hosts a wealth of marine and maritime data distributed through +three complementary web services: WFS, WCS, and ERDDAP. Web services +allow users to retrieve data programmatically from remote servers, +eliminating the need for manual downloads. This is particularly useful +for handling large datasets or conducting dynamic analyses. These +services are tailored to different data types and research needs, but +together, they ensure seamless access to all EMODnet vector, raster, and +gridded datasets. Vector data, such as shipwrecks or boundaries, are +accessible through `emodnet.wfs` via Web Feature Services (WFS). +Complementary, raster and gridded datasets are available through Web +Coverage Services (WCS) and ERDDAP respectively. + +### Access EMODnet raster data through Web Coverage Services with `EMODnetWCS` in R + +EMODnet raster datasets, such as habitat maps or bathymetry, are +available through [Web Coverage Services +(WCS)](https://wikipedia.org/wiki/Web_Coverage_Service). These data are +continuous, gridded, and often used for spatial visualization or +environmental modeling. The EMODnetWCS R package provides tools to +retrieve and process these raser datasets, in a similar fashion as +`emodnet.wfs`. Extensive documentation is available at the [EMODnetWCS +website](https://emodnet.github.io/EMODnetWCS/). + +### Access EMODnet gridded and tabular datasets through the ERDDAP Server and `rerddap` in R + +Both WFS and WCS EMODnet services are based on a federated system: each +EMODnet thematic lot manages their servers and data, ensuring that their +data are exposed both via WFS and WCS. The twin R packages `emodnet.wfs` +and `EMODnetWCS` simplify the access to all the entry points by +collecting them in single places, which are the packages themselves. + +In contrast, the [EMODnet ERDDAP Server](https://erddap.emodnet.eu) is +centrally managed by the EMODnet Central Portal, offering a single +access point to all gridded and tabular datasets. ERDDAP simplifies +access to datasets such as digital terrain models, vessel density or +environmental data. It is particularly suited for large-scale, +multidimensional data analysis. In R, the `rerddap` package allows users +to query and subset ERDDAP data programmatically, enabling efficient +analysis and integration into workflows. For example, researchers can +retrieve datasets on vessel density. ``` r # install.packages("rerrdap") @@ -380,9 +462,11 @@ library(rerddap) #> method from #> print.cache_info httr +# This is the url where the EMODnet ERDDAP server is located erddap_url <- "https://erddap.emodnet.eu/erddap/" -rerddap::ed_datasets(url = erddap_url) +# Inspect all available datasets +ed_datasets(url = erddap_url) #> # A tibble: 8 × 16 #> griddap Subset tabledap Make.A.Graph wms files Title Summary FGDC ISO.19115 #> @@ -397,7 +481,8 @@ rerddap::ed_datasets(url = erddap_url) #> # ℹ 6 more variables: Info , Background.Info , RSS , #> # Email , Institution , Dataset.ID -rerddap::ed_search(query = "vessel density", url = erddap_url) +# Find datasets with the key words "vessel density" +ed_search(query = "vessel density", url = erddap_url) #> # A tibble: 16 × 2 #> title dataset_id #> @@ -418,7 +503,8 @@ rerddap::ed_search(query = "vessel density", url = erddap_url) #> 15 Vessel traffic density, 2019, Tug and Towing EMODPACE_VD_07_Tug #> 16 Vessel traffic density, 2019, Unknown EMODPACE_VD_12_Unk… -human_activities_data_info <- rerddap::info(datasetid = "humanactivities_9f8a_3389_f08a", url = erddap_url) +# Inspect more info about the vessel density dataset, using its identifier +human_activities_data_info <- info(datasetid = "humanactivities_9f8a_3389_f08a", url = erddap_url) human_activities_data_info #> humanactivities_9f8a_3389_f08a #> Base URL: https://erddap.emodnet.eu/erddap @@ -431,6 +517,7 @@ human_activities_data_info #> vd: #> Units: seconds +# Retrieve the vessel density at a particular time period year_2020_gridded_data <- griddap(datasetx = human_activities_data_info, time = c("2020-03-18", "2020-03-19")) #> info() output passed to x; setting base url to: https://erddap.emodnet.eu/erddap head(year_2020_gridded_data$data) @@ -443,15 +530,9 @@ head(year_2020_gridded_data$data) #> 6 -617500 7034500 2020-04-01T00:00:00Z NA ``` -### EMODnetWCS: Access EMODnet Web Coverage Service data - -This package emodnet.wfs uses [Web Feature -Services](https://www.ogc.org/publications/standard/wfs/), hence it is -limited to getting vector data. EMODnet also hosts raster data that can -be accessed via [Web Coverage Services -(WCS)](https://www.ogc.org/publications/standard/wcs/). The R package -[EMODnetWCS](https://github.com/EMODnet/EMODnetWCS) makes these data -available in R. +More functionalities are available through `rerddap`. Feel free to +explore the [rerddap website](https://docs.ropensci.org/rerddap/) to +find out what else can you do with the EMODnet datasets in ERDDAP. ## Citation From f504287e7192dee31d4aef8ca1594336fdecc2ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABlle=20Salmon?= Date: Mon, 25 Nov 2024 08:42:02 +0100 Subject: [PATCH 2/4] fix: align output to docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Anna Krystalli Co-authored-by: Salvador Fernández Bejarano --- R/emodnet_wfs.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/emodnet_wfs.R b/R/emodnet_wfs.R index 6dffbc8..799f052 100644 --- a/R/emodnet_wfs.R +++ b/R/emodnet_wfs.R @@ -1,8 +1,9 @@ .emodnet_wfs <- function() { - utils::read.csv( + data <- utils::read.csv( system.file("services.csv", package = "emodnet.wfs"), stringsAsFactors = FALSE ) + tibble::as_tibble(data) } #' Available EMODnet Web Feature Services #' From c9fe8b7afee793f0a6c3be8c543ae37892edb3ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABlle=20Salmon?= Date: Mon, 25 Nov 2024 08:42:20 +0100 Subject: [PATCH 3/4] docs: add why use eurobis --- vignettes/articles/ecql_filtering.Rmd | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/vignettes/articles/ecql_filtering.Rmd b/vignettes/articles/ecql_filtering.Rmd index 7db297b..7d8e720 100644 --- a/vignettes/articles/ecql_filtering.Rmd +++ b/vignettes/articles/ecql_filtering.Rmd @@ -322,6 +322,10 @@ unique(filter_sf3$country) ### Advanced use -There is more that can be accomplished by using the EMODnet WFS services than downloading data. The emodnet.wfs package is built on top of the [ows4R](https://github.com/eblondel/ows4R) library, meaning that all the functionalities of this package are available for emodnet.wfs. The ows4R returns a special type of R object called R6. You can learn more in Hadley Wickham's chapter on R6 Objects of the [Advance R book](https://adv-r.hadley.nz/r6.html). +There is more that can be accomplished by using the EMODnet WFS services than downloading data. The `emodnet.wfs` package is built on top of the [ows4R](https://github.com/eblondel/ows4R) library, meaning that all the functionalities of this package are available for emodnet.wfs. The ows4R returns a special type of R object called R6. You can learn more in Hadley Wickham's chapter on R6 Objects of the [Advance R book](https://adv-r.hadley.nz/r6.html). + +For instance: it is not efficient to read a large dataset into R just and later subset part of it. This requires longer waiting times and more bandwidth usage, and in very large datasets it would simply not be possible. For instance, all the occurrences data available through the EMODnet Biology portal are stored in [one table](https://www.emodnet-biology.eu/emodnet-data-format): These are approximately 30 millions rows! In this case, we suggest you access the EMODnet Biology occurrence data through the [EMODnet geoviewer](https://emodnet.ec.europa.eu/geoviewer/?layers=6d617269-6e65-696e-666f-000000001510:1:1&basemap=ebwbl&active=12639&bounds=-177.7018404006958,-87.83122047893704,204.7018404006958,100.83122047893704&filters=&projection=EPSG:3857) or the [eurobis R package](https://github.com/lifewatch/eurobis/). This package retrieves occurrences in batches, allowing for large datasets, and uses `viewParams`, a [geoserver-specific filtering feature](https://docs.geoserver.org/main/en/user/data/database/sqlview.html) for faster requests compared to standard OGC or CQL filters. In addition, one of these specific filters allow to query on species traits such as functional groups. + + + -For instance: it is not efficient to read a large dataset into R just and later subset part of it. This requires longer waiting times and more bandwidth usage, and in very large datasets it would simply not be possible. For instance, all the occurrences data available through the EMODnet Biology portal are stored in [one table](https://www.emodnet-biology.eu/emodnet-data-format): These are approximately 30 millions rows! In this case, we suggest you access the EMODnet Biology occurrence data through the [download toolbox](https://www.emodnet-biology.eu/toolbox/) or the [eurobis R package](https://github.com/lifewatch/eurobis/) instead. From f4d9815cab36039f974841c90164b144bc36fa43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABlle=20Salmon?= Date: Mon, 25 Nov 2024 08:42:36 +0100 Subject: [PATCH 4/4] docs: improve vignette MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Anna Krystalli Co-authored-by: Salvador Fernández Bejarano --- vignettes/emodnet.wfs.Rmd | 251 ++++++++++++++++++++------------- vignettes/emodnet.wfs.Rmd.orig | 55 ++++---- 2 files changed, 182 insertions(+), 124 deletions(-) diff --git a/vignettes/emodnet.wfs.Rmd b/vignettes/emodnet.wfs.Rmd index ac40044..274b35b 100644 --- a/vignettes/emodnet.wfs.Rmd +++ b/vignettes/emodnet.wfs.Rmd @@ -1,6 +1,7 @@ --- title: "Accessing and mapping EMODnet data" output: rmarkdown::html_vignette +df_print: "tibble" vignette: > %\VignetteIndexEntry{API details} %\VignetteEngine{knitr::rmarkdown} @@ -25,65 +26,51 @@ pak::pak("EMODnet/emodnet.wfs") ## Explore the EMODnet WFS services with R -For this tutorial we will make use of the `sf`, `dplyr` and `mapview` packages. The simple features `sf` package is a well known standard for dealing with geospatial vector data. The package `dplyr` is a strong library for data manipulation. This package also loads `magrittr`'s pipe operator `%>%` (you could also use the [base pipe](https://r4ds.hadley.nz/workflow-style.html#sec-pipes)), which allows to write pipelines in R. To visualize geometries, `mapview` will create quick interactive maps. +For this tutorial we will make use of the [`sf`](https://r-spatial.github.io/sf/) and [`mapview`](https://r-spatial.github.io/mapview/) packages. +The simple features `sf` package is a well known standard for dealing with geospatial vector data. +To visualize geometries, `mapview` will create quick interactive maps. Run this line to install these packages: ``` r -install.packages(c("sf", "dplyr", "mapview")) +install.packages(c("sf", "mapview")) ``` +EMODnet is organized into [seven thematic lots](https://emodnet.ec.europa.eu/en/emodnet-themes): Bathymetry, Geology, Seabed Habitats, Chemistry, Biology, Physics, and Human Activities, each focusing on a specific aspect of marine data. +With the emodnet.wfs package, we can explore and combine the data served by the EMODnet thematic lots through [OGC Web Feature Services](https://en.wikipedia.org/wiki/Web_Feature_Service) or WFS. - -With the emodnet.wfs package, we can explore and combine the data served by the [EMODnet lots ](https://emodnet.ec.europa.eu/en/emodnet-themes) through [OGC Web Feature Services](https://en.wikipedia.org/wiki/Web_Feature_Service) or WFS. - -Imagine we are interested in seabed substrates. The first step is to choose what EMODnet lot can provide with these data. For that, we can check the services available with the `emodnet_wfs()` function. +Imagine we are interested in seabed substrates. +The first step is to choose what EMODnet thematic lot can provide with these data. +For that, we can check the services available with the `emodnet_wfs()` function. ``` r library(emodnet.wfs) library(mapview) -library(dplyr) library(sf) - -emodnet_wfs() -#> service_name -#> 1 bathymetry -#> 2 biology -#> 3 biology_occurrence_data -#> 4 chemistry_cdi_data_discovery_and_access_service -#> 5 chemistry_cdi_distribution_observations_per_category_and_region -#> 6 chemistry_contaminants -#> 7 chemistry_marine_litter -#> 8 geology_coastal_behavior -#> 9 geology_events_and_probabilities -#> 10 geology_marine_minerals -#> 11 geology_sea_floor_bedrock -#> 12 geology_seabed_substrate_maps -#> 13 geology_submerged_landscapes -#> 14 human_activities -#> 15 physics -#> 16 seabed_habitats_general_datasets_and_products -#> 17 seabed_habitats_individual_habitat_map_and_model_datasets -#> service_url -#> 1 https://ows.emodnet-bathymetry.eu/wfs -#> 2 https://geo.vliz.be/geoserver/Emodnetbio/wfs -#> 3 https://geo.vliz.be/geoserver/Dataportal/wfs -#> 4 https://geo-service.maris.nl/emodnet_chemistry/wfs -#> 5 https://geo-service.maris.nl/emodnet_chemistry_p36/wfs -#> 6 https://geoserver.hcmr.gr/geoserver/EMODNET_SHARED/wfs -#> 7 https://www.ifremer.fr/services/wfs/emodnet_chemistry2 -#> 8 https://drive.emodnet-geology.eu/geoserver/tno/wfs -#> 9 https://drive.emodnet-geology.eu/geoserver/ispra/wfs -#> 10 https://drive.emodnet-geology.eu/geoserver/gsi/wfs -#> 11 https://drive.emodnet-geology.eu/geoserver/bgr/wfs -#> 12 https://drive.emodnet-geology.eu/geoserver/gtk/wfs -#> 13 https://drive.emodnet-geology.eu/geoserver/bgs/wfs -#> 14 https://ows.emodnet-humanactivities.eu/wfs -#> 15 https://prod-geoserver.emodnet-physics.eu/geoserver/ows -#> 16 https://ows.emodnet-seabedhabitats.eu/geoserver/emodnet_open/wfs -#> 17 https://ows.emodnet-seabedhabitats.eu/geoserver/emodnet_open_maplibrary/wfs +#> Error in value[[3L]](cond): Package 'sf' version 1.0.18 cannot be unloaded: +#> Error in unloadNamespace(package) : namespace 'sf' is imported by 'ows4R', 'mapview', 'leafem', 'leafpop' so cannot be unloaded + +services <- emodnet_wfs() +services$service_name +#> [1] "bathymetry" +#> [2] "biology" +#> [3] "biology_occurrence_data" +#> [4] "chemistry_cdi_data_discovery_and_access_service" +#> [5] "chemistry_cdi_distribution_observations_per_category_and_region" +#> [6] "chemistry_contaminants" +#> [7] "chemistry_marine_litter" +#> [8] "geology_coastal_behavior" +#> [9] "geology_events_and_probabilities" +#> [10] "geology_marine_minerals" +#> [11] "geology_sea_floor_bedrock" +#> [12] "geology_seabed_substrate_maps" +#> [13] "geology_submerged_landscapes" +#> [14] "human_activities" +#> [15] "physics" +#> [16] "seabed_habitats_general_datasets_and_products" +#> [17] "seabed_habitats_individual_habitat_map_and_model_datasets" ``` @@ -100,18 +87,18 @@ seabed_wfs_client <- emodnet_init_wfs_client(service = "seabed_habitats_general_ emodnet_get_wfs_info(wfs = seabed_wfs_client) #> # A tibble: 72 × 9 #> # Rowwise: -#> data_source service_name service_url layer_name title abstract class format -#> -#> 1 emodnet_wfs seabed_habitat… https://ow… art17_hab… 2013… "Gridde… WFSF… sf -#> 2 emodnet_wfs seabed_habitat… https://ow… art17_hab… 2013… "Gridde… WFSF… sf -#> 3 emodnet_wfs seabed_habitat… https://ow… art17_hab… 2013… "Gridde… WFSF… sf -#> 4 emodnet_wfs seabed_habitat… https://ow… art17_hab… 2013… "Gridde… WFSF… sf -#> 5 emodnet_wfs seabed_habitat… https://ow… art17_hab… 2013… "Gridde… WFSF… sf -#> 6 emodnet_wfs seabed_habitat… https://ow… art17_hab… 2013… "Gridde… WFSF… sf -#> 7 emodnet_wfs seabed_habitat… https://ow… art17_hab… 2013… "Gridde… WFSF… sf -#> 8 emodnet_wfs seabed_habitat… https://ow… art17_hab… 2013… "Gridde… WFSF… sf -#> 9 emodnet_wfs seabed_habitat… https://ow… carib_eus… 2023… "Output… WFSF… sf -#> 10 emodnet_wfs seabed_habitat… https://ow… biogenic_… Biog… "This l… WFSF… sf +#> data_source service_name service_url layer_name title abstract class format +#> +#> 1 emodnet_wfs seabed_habitats_gene… https://ow… art17_hab… 2013… "Gridde… WFSF… sf +#> 2 emodnet_wfs seabed_habitats_gene… https://ow… art17_hab… 2013… "Gridde… WFSF… sf +#> 3 emodnet_wfs seabed_habitats_gene… https://ow… art17_hab… 2013… "Gridde… WFSF… sf +#> 4 emodnet_wfs seabed_habitats_gene… https://ow… art17_hab… 2013… "Gridde… WFSF… sf +#> 5 emodnet_wfs seabed_habitats_gene… https://ow… art17_hab… 2013… "Gridde… WFSF… sf +#> 6 emodnet_wfs seabed_habitats_gene… https://ow… art17_hab… 2013… "Gridde… WFSF… sf +#> 7 emodnet_wfs seabed_habitats_gene… https://ow… art17_hab… 2013… "Gridde… WFSF… sf +#> 8 emodnet_wfs seabed_habitats_gene… https://ow… art17_hab… 2013… "Gridde… WFSF… sf +#> 9 emodnet_wfs seabed_habitats_gene… https://ow… carib_eus… 2023… "Output… WFSF… sf +#> 10 emodnet_wfs seabed_habitats_gene… https://ow… biogenic_… Biog… "This l… WFSF… sf #> # ℹ 62 more rows #> # ℹ 1 more variable: layer_namespace ``` @@ -130,11 +117,11 @@ emodnet_get_layer_info( ) #> # A tibble: 3 × 9 #> # Rowwise: -#> data_source service_name service_url layer_name title abstract class format -#> -#> 1 emodnet_wfs https://ows.emo… seabed_hab… art17_hab… 2013… "Gridde… WFSF… sf -#> 2 emodnet_wfs https://ows.emo… seabed_hab… art17_hab… 2013… "Gridde… WFSF… sf -#> 3 emodnet_wfs https://ows.emo… seabed_hab… art17_hab… 2013… "Gridde… WFSF… sf +#> data_source service_name service_url layer_name title abstract class format +#> +#> 1 emodnet_wfs https://ows.emodnet-s… seabed_hab… art17_hab… 2013… "Gridde… WFSF… sf +#> 2 emodnet_wfs https://ows.emodnet-s… seabed_hab… art17_hab… 2013… "Gridde… WFSF… sf +#> 3 emodnet_wfs https://ows.emodnet-s… seabed_hab… art17_hab… 2013… "Gridde… WFSF… sf #> # ℹ 1 more variable: layer_namespace ``` @@ -147,51 +134,102 @@ We are now ready to read the layers into R with `emodnet_get_layers()`. emodnet. habitats_directive_layers <- emodnet_get_layers( wfs = seabed_wfs_client, layers = habitats_directive_layer_names, - reduce_layers = TRUE + reduce_layers = TRUE, + outputFormat = "application/json" ) - -class(habitats_directive_layers) -#> [1] "sf" "data.frame" - -glimpse(habitats_directive_layers) -#> Rows: 221 -#> Columns: 9 -#> $ gml_id "art17_hab_1110.13", "art17_hab_1110.22", "art17_ha… -#> $ habitat_code "1110", "1110", "1110", "1110", "1110", "1110", "11… -#> $ ms "DK", "ES", "ES", "PT", "PT", "PL", "DK", "FR", "UK… -#> $ region "ATL", "MAC", "MMAC", "MMAC", "MATL", "MBAL", "MBAL… -#> $ cs_ms "U2+", "U1+", "U1+", "XX", "U1-", "U1-", "U1-", "U1… -#> $ country_code "Denmark", "Spain", "Spain", "Portugal", "Portugal"… -#> $ habitat_code_uri "http://dd.eionet.europa.eu/vocabulary/art17_2018/h… -#> $ habitat_description "Sandbanks which are slightly covered by sea water … -#> $ geom MULTISURFACE (POLYGON ((420..., MULTIS… +#> Start tag expected, '<' not found +#> Start tag expected, '<' not found +#> Start tag expected, '<' not found + +habitats_directive_layers +#> Simple feature collection with 221 features and 8 fields +#> Geometry type: MULTIPOLYGON +#> Dimension: XY +#> Bounding box: xmin: 950000 ymin: 940000 xmax: 6510000 ymax: 4820000 +#> Projected CRS: ETRS89-extended / LAEA Europe +#> First 10 features: +#> id habitat_code ms region cs_ms country_code +#> 1 art17_hab_1110.13 1110 DK ATL U2+ Denmark +#> 2 art17_hab_1110.22 1110 ES MAC U1+ Spain +#> 3 art17_hab_1110.25 1110 ES MMAC U1+ Spain +#> 4 art17_hab_1110.59 1110 PT MMAC XX Portugal +#> 5 art17_hab_1110.56 1110 PT MATL U1- Portugal +#> 6 art17_hab_1110.53 1110 PL MBAL U1- Poland +#> 7 art17_hab_1110.17 1110 DK MBAL U1- Denmark +#> 8 art17_hab_1110.31 1110 FR MATL U1x France +#> 9 art17_hab_1110.75 1110 UK MATL U1x United Kingdom +#> 10 art17_hab_1110.1 1110 BE ATL U1x Belgium +#> habitat_code_uri +#> 1 http://dd.eionet.europa.eu/vocabulary/art17_2018/habitats/1110 +#> 2 http://dd.eionet.europa.eu/vocabulary/art17_2018/habitats/1110 +#> 3 http://dd.eionet.europa.eu/vocabulary/art17_2018/habitats/1110 +#> 4 http://dd.eionet.europa.eu/vocabulary/art17_2018/habitats/1110 +#> 5 http://dd.eionet.europa.eu/vocabulary/art17_2018/habitats/1110 +#> 6 http://dd.eionet.europa.eu/vocabulary/art17_2018/habitats/1110 +#> 7 http://dd.eionet.europa.eu/vocabulary/art17_2018/habitats/1110 +#> 8 http://dd.eionet.europa.eu/vocabulary/art17_2018/habitats/1110 +#> 9 http://dd.eionet.europa.eu/vocabulary/art17_2018/habitats/1110 +#> 10 http://dd.eionet.europa.eu/vocabulary/art17_2018/habitats/1110 +#> habitat_description +#> 1 Sandbanks which are slightly covered by sea water all the time +#> 2 Sandbanks which are slightly covered by sea water all the time +#> 3 Sandbanks which are slightly covered by sea water all the time +#> 4 Sandbanks which are slightly covered by sea water all the time +#> 5 Sandbanks which are slightly covered by sea water all the time +#> 6 Sandbanks which are slightly covered by sea water all the time +#> 7 Sandbanks which are slightly covered by sea water all the time +#> 8 Sandbanks which are slightly covered by sea water all the time +#> 9 Sandbanks which are slightly covered by sea water all the time +#> 10 Sandbanks which are slightly covered by sea water all the time +#> geometry +#> 1 MULTIPOLYGON (((4200000 360... +#> 2 MULTIPOLYGON (((1950000 950... +#> 3 MULTIPOLYGON (((1960000 950... +#> 4 MULTIPOLYGON (((1810000 120... +#> 5 MULTIPOLYGON (((2730000 173... +#> 6 MULTIPOLYGON (((4610000 346... +#> 7 MULTIPOLYGON (((4310000 352... +#> 8 MULTIPOLYGON (((3790000 314... +#> 9 MULTIPOLYGON (((3780000 319... +#> 10 MULTIPOLYGON (((3800000 313... ``` +Note the use of the `outputFormat` argument in this example. This specifies the file type to request from the service, which can influence how the data is loaded into R. By default, the data is provided in the `GML` format with a geometry type of "MULTISURFACE." However, this geometry type is not widely supported by many software tools, including the `mapview` package. To address this, you can request a different file type, such as GeoJSON, which delivers the geometry as "MULTIPOLYGON"—a format that is more universally compatible. This has been raised before in the [sf community](https://github.com/r-spatial/sf/issues/748). -Run the following code to have a quick look at the layers geometries - -``` r -# Transform to Polygon geometry type from Multisurface -if (unique(st_geometry_type(habitats_directive_layers)) == "MULTISURFACE") { - habitats_directive_layers <- habitats_directive_layers %>% - st_cast(to = "GEOMETRYCOLLECTION") %>% - st_collection_extract(type = "POLYGON") -} +Run the following code to have a quick look at the layers geometries. -# Visualize -map <- mapview(habitats_directive_layers, zcol = "habitat_description", burst = TRUE) -map +``` r +mapview(habitats_directive_layers, zcol = "habitat_description", burst = TRUE) ``` -![plot of chunk unnamed-chunk-6](emodnet.wfs-unnamed-chunk-6-1.png) +
+Interactive map of layers in the habitat directive +

plot of chunk unnamed-chunk-6

+
-EMODnet provides also physics, chemistry, biological or bathymetry data. Explore all the layers available with. +EMODnet provides also physics, chemistry, biological or bathymetry data. Explore all the layers available with: ``` r emodnet_get_all_wfs_info() +#> # A tibble: 1,713 × 9 +#> # Rowwise: +#> data_source service_name service_url layer_name title abstract class format +#> +#> 1 emodnet_wfs bathymetry https://ows.emodnet… download_… Bath… "Downlo… WFSF… sf +#> 2 emodnet_wfs bathymetry https://ows.emodnet… contours Dept… "Genera… WFSF… sf +#> 3 emodnet_wfs bathymetry https://ows.emodnet… hr_bathym… High… "Layer … WFSF… sf +#> 4 emodnet_wfs bathymetry https://ows.emodnet… quality_i… Qual… "Repres… WFSF… sf +#> 5 emodnet_wfs bathymetry https://ows.emodnet… sea_names Sea … "Mainta… WFSF… sf +#> 6 emodnet_wfs bathymetry https://ows.emodnet… source_re… Sour… "Covera… WFSF… sf +#> 7 emodnet_wfs bathymetry https://ows.emodnet… undersea_… unde… "" WFSF… sf +#> 8 emodnet_wfs biology https://geo.vliz.be… mediseh_c… EMOD… "Coral … WFSF… sf +#> 9 emodnet_wfs biology https://geo.vliz.be… mediseh_c… EMOD… "Coral … WFSF… sf +#> 10 emodnet_wfs biology https://geo.vliz.be… mediseh_c… EMOD… "Cymodo… WFSF… sf +#> # ℹ 1,703 more rows +#> # ℹ 1 more variable: layer_namespace ``` ## More information @@ -212,6 +250,29 @@ Tim Appelhans, Florian Detsch, Christoph Reudenbach and Stefan Woellauer (2020). ### Code -Please cite this package as: +To cite emodnet.wfs, please use the output from `citation(package = "emodnet.wfs")`. -Anna Krystalli (2020). emodnet.wfs: Access EMODnet Web Feature Service data through R. R package version 0.0.2. https://github.com/EMODnet/emodnet.wfs. Integrated data products created under the European Marine Observation Data Network (EMODnet) Biology project (EASME/EMFF/2017/1.3.1.2/02/SI2.789013), funded by the by the European Union under Regulation (EU) No 508/2014 of the European Parliament and of the Council of 15 May 2014 on the European Maritime and Fisheries Fund. + +``` r +citation(package = "emodnet.wfs") +#> To cite package 'emodnet.wfs' in publications use: +#> +#> Krystalli A, Fernández-Bejarano S, Salmon M (????). _emodnet.wfs: Access +#> EMODnet Web Feature Service data through R_. doi:10.14284/679 +#> , R package version 2.0.2.9000. Integrated +#> data products created under the European Marine Observation Data Network +#> (EMODnet) Biology project (EASME/EMFF/2017/1.3.1.2/02/SI2.789013), funded +#> by the by the European Union under Regulation (EU) No 508/2014 of the +#> European Parliament and of the Council of 15 May 2014 on the European +#> Maritime and Fisheries Fund, . +#> +#> A BibTeX entry for LaTeX users is +#> +#> @Manual{, +#> title = {{emodnet.wfs}: Access EMODnet Web Feature Service data through R}, +#> author = {Anna Krystalli and Salvador Fernández-Bejarano and Maëlle Salmon}, +#> note = {R package version 2.0.2.9000. Integrated data products created under the European Marine Observation Data Network (EMODnet) Biology project (EASME/EMFF/2017/1.3.1.2/02/SI2.789013), funded by the by the European Union under Regulation (EU) No 508/2014 of the European Parliament and of the Council of 15 May 2014 on the European Maritime and Fisheries Fund}, +#> url = {https://github.com/EMODnet/emodnet.wfs}, +#> doi = {10.14284/679}, +#> } +``` diff --git a/vignettes/emodnet.wfs.Rmd.orig b/vignettes/emodnet.wfs.Rmd.orig index 857b1d4..8fecfa5 100644 --- a/vignettes/emodnet.wfs.Rmd.orig +++ b/vignettes/emodnet.wfs.Rmd.orig @@ -1,6 +1,7 @@ --- title: "Accessing and mapping EMODnet data" output: rmarkdown::html_vignette +df_print: "tibble" vignette: > %\VignetteIndexEntry{API details} %\VignetteEngine{knitr::rmarkdown} @@ -31,27 +32,30 @@ pak::pak("EMODnet/emodnet.wfs") ## Explore the EMODnet WFS services with R -For this tutorial we will make use of the `sf`, `dplyr` and `mapview` packages. The simple features `sf` package is a well known standard for dealing with geospatial vector data. The package `dplyr` is a strong library for data manipulation. This package also loads `magrittr`'s pipe operator `%>%` (you could also use the [base pipe](https://r4ds.hadley.nz/workflow-style.html#sec-pipes)), which allows to write pipelines in R. To visualize geometries, `mapview` will create quick interactive maps. +For this tutorial we will make use of the [`sf`](https://r-spatial.github.io/sf/) and [`mapview`](https://r-spatial.github.io/mapview/) packages. +The simple features `sf` package is a well known standard for dealing with geospatial vector data. +To visualize geometries, `mapview` will create quick interactive maps. Run this line to install these packages: ```{r install.packages, eval = FALSE} -install.packages(c("sf", "dplyr", "mapview")) +install.packages(c("sf", "mapview")) ``` +EMODnet is organized into [seven thematic lots](https://emodnet.ec.europa.eu/en/emodnet-themes): Bathymetry, Geology, Seabed Habitats, Chemistry, Biology, Physics, and Human Activities, each focusing on a specific aspect of marine data. +With the emodnet.wfs package, we can explore and combine the data served by the EMODnet thematic lots through [OGC Web Feature Services](https://en.wikipedia.org/wiki/Web_Feature_Service) or WFS. +Imagine we are interested in seabed substrates. +The first step is to choose what EMODnet thematic lot can provide with these data. +For that, we can check the services available with the `emodnet_wfs()` function. -With the emodnet.wfs package, we can explore and combine the data served by the [EMODnet lots ](https://emodnet.ec.europa.eu/en/emodnet-themes) through [OGC Web Feature Services](https://en.wikipedia.org/wiki/Web_Feature_Service) or WFS. - -Imagine we are interested in seabed substrates. The first step is to choose what EMODnet lot can provide with these data. For that, we can check the services available with the `emodnet_wfs()` function. - -```{r error = FALSE, warning = FALSE, message = FALSE} +```{r, warning=FALSE, message=FALSE} library(emodnet.wfs) library(mapview) -library(dplyr) library(sf) -emodnet_wfs() +services <- emodnet_wfs() +services$service_name ``` @@ -85,34 +89,25 @@ We are now ready to read the layers into R with `emodnet_get_layers()`. emodnet. habitats_directive_layers <- emodnet_get_layers( wfs = seabed_wfs_client, layers = habitats_directive_layer_names, - reduce_layers = TRUE + reduce_layers = TRUE, + outputFormat = "application/json" ) -class(habitats_directive_layers) - -glimpse(habitats_directive_layers) +habitats_directive_layers ``` +Note the use of the `outputFormat` argument in this example. This specifies the file type to request from the service, which can influence how the data is loaded into R. By default, the data is provided in the `GML` format with a geometry type of "MULTISURFACE." However, this geometry type is not widely supported by many software tools, including the `mapview` package. To address this, you can request a different file type, such as GeoJSON, which delivers the geometry as "MULTIPOLYGON"—a format that is more universally compatible. This has been raised before in the [sf community](https://github.com/r-spatial/sf/issues/748). -Run the following code to have a quick look at the layers geometries -```{r, eval = TRUE} -# Transform to Polygon geometry type from Multisurface -if (unique(st_geometry_type(habitats_directive_layers)) == "MULTISURFACE") { - habitats_directive_layers <- habitats_directive_layers %>% - st_cast(to = "GEOMETRYCOLLECTION") %>% - st_collection_extract(type = "POLYGON") -} - -# Visualize -map <- mapview(habitats_directive_layers, zcol = "habitat_description", burst = TRUE) +Run the following code to have a quick look at the layers geometries. -map +```{r, fig.alt="Interactive map of layers in the habitat directive"} +mapview(habitats_directive_layers, zcol = "habitat_description", burst = TRUE) ``` -EMODnet provides also physics, chemistry, biological or bathymetry data. Explore all the layers available with. +EMODnet provides also physics, chemistry, biological or bathymetry data. Explore all the layers available with: -```{r, eval = FALSE} +```{r, eval = TRUE} emodnet_get_all_wfs_info() ``` @@ -134,6 +129,8 @@ Tim Appelhans, Florian Detsch, Christoph Reudenbach and Stefan Woellauer (2020). ### Code -Please cite this package as: +To cite emodnet.wfs, please use the output from `citation(package = "emodnet.wfs")`. -Anna Krystalli (2020). emodnet.wfs: Access EMODnet Web Feature Service data through R. R package version 0.0.2. https://github.com/EMODnet/emodnet.wfs. Integrated data products created under the European Marine Observation Data Network (EMODnet) Biology project (EASME/EMFF/2017/1.3.1.2/02/SI2.789013), funded by the by the European Union under Regulation (EU) No 508/2014 of the European Parliament and of the Council of 15 May 2014 on the European Maritime and Fisheries Fund. +```{r} +citation(package = "emodnet.wfs") +```