From dbcb155cbfc9b7d1688a2ca1b73b0c1e88efd3c3 Mon Sep 17 00:00:00 2001 From: salvafern Date: Tue, 25 Jun 2024 17:21:54 +0200 Subject: [PATCH 1/2] fix: switch example layer maritimebnds to pipelines #160 --- vignettes/articles/request-params.Rmd | 31 ++++++++++++++------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/vignettes/articles/request-params.Rmd b/vignettes/articles/request-params.Rmd index e2721c4..5991819 100644 --- a/vignettes/articles/request-params.Rmd +++ b/vignettes/articles/request-params.Rmd @@ -34,8 +34,8 @@ We can restrict the query to a single feature using `featureID` and providing th ```{r} emodnet_get_layers( wfs = wfs, - layers = "maritimebnds", - featureID = "maritimebnds.861", + layers = "pipelines", + featureID = "pipelines.1", reduce_layers = TRUE ) ``` @@ -47,7 +47,7 @@ If the ID of the feature is unknown but we still want to limit the number of fea ```{r} emodnet_get_layers( wfs = wfs, - layers = "maritimebnds", + layers = "pipelines", count = 1L, reduce_layers = TRUE ) @@ -57,35 +57,36 @@ emodnet_get_layers( Exactly which features will be returned depends in the internal structure of the data. However, we can sort the returned selection based on an attribute value using the `sortBy` parameter. -Say we wanted to return 5 of the earliest maritime boundaries. In the following example, we sort by the `"legalfound"` attribute (which contains the date the boundary was legally founded) and combine it with the `count` parameter to restrict the number of features returned. This returns the first 5 features after the data has been ordered by `"legalfound"`. +Say we wanted to return 5 of the longest marine pipelines. In the following example, we sort by the `"length_m"` attribute and combine it with the `count` parameter to restrict the number of features returned. This returns the first 5 features after the data has been ordered by `"length_m"`. Some pipelines do not have their lengths recorded, we will skip them with a CQL Filter. ```{r} emodnet_get_layers( wfs = wfs, - layers = "maritimebnds", - sortBy = "legalfound", + layers = "pipelines", + sortBy = "length_m+D", count = 5L, - reduce_layers = TRUE + reduce_layers = TRUE, + cql_filter = "length_m IS NOT NULL" ) ``` -The default sort operation is to sort in ascending order. Some WFS servers require the sort order to be specified. In this case, append a `+A` to the attribute character string passed to `sortBy`. Conversely, add a `+D` to sort in descending order. +The default sort operation is to sort in ascending order. Some WFS servers require the sort order to be specified. In this case, append a `+A` to the attribute character string passed to `sortBy`. Conversely, here we add a `+D` to sort in descending order. ## Return blocks of features from specific starting point Finally in WFS version 2.0.0 (and also available in earlier versions on GeoServer) a `startIndex` parameter was introduced, allowing users to specify the starting index of features to be returned. ```{r, echo=FALSE} -n_features <- layer_attributes_tbl(wfs = wfs, layer = "maritimebnds") %>% nrow() +n_features <- layer_attributes_tbl(wfs = wfs, layer = "pipelines") %>% nrow() n_features ``` -For example, the full `"maritimebnds"` layer contains `r n_features` features. +For example, the full `"pipelines"` layer contains `r n_features` features. ```{r, eval=FALSE} -n_features <- layer_attributes_tbl(wfs = wfs, layer = "maritimebnds") %>% nrow() +n_features <- layer_attributes_tbl(wfs = wfs, layer = "pipelines") %>% nrow() n_features ``` @@ -99,7 +100,7 @@ startIndex emodnet_get_layers( wfs = wfs, - layers = "maritimebnds", + layers = "pipelines", startIndex = startIndex, reduce_layers = TRUE ) @@ -113,7 +114,7 @@ Note that `startIndex` uses `0` as a starting index (0 indicates the first featu ```{r} emodnet_get_layers( wfs = wfs, - layers = "maritimebnds", + layers = "pipelines", startIndex = 4L, count = 6L, reduce_layers = TRUE @@ -134,7 +135,7 @@ Note that when limiting data to specific attributes, all other columns are retur ```{r} emodnet_get_layers( wfs = wfs, - layers = "maritimebnds", + layers = "pipelines", propertyName = "country", count = 3L, reduce_layers = TRUE @@ -146,7 +147,7 @@ To limit to multiple attributes, separate each attribute name in the character s ```{r} emodnet_get_layers( wfs = wfs, - layers = "maritimebnds", + layers = "pipelines", propertyName = "country,the_geom", count = 3L, reduce_layers = TRUE From cb40619a190d0fb4f3f5d59f7680687314aa75dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABlle=20Salmon?= Date: Mon, 1 Jul 2024 12:44:01 +0200 Subject: [PATCH 2/2] docs: remove outdate example --- vignettes/EMODnetWFS.Rmd | 179 +++++++++++----------------------- vignettes/EMODnetWFS.Rmd.orig | 49 +--------- 2 files changed, 60 insertions(+), 168 deletions(-) diff --git a/vignettes/EMODnetWFS.Rmd b/vignettes/EMODnetWFS.Rmd index 9cccd8f..29bb5db 100644 --- a/vignettes/EMODnetWFS.Rmd +++ b/vignettes/EMODnetWFS.Rmd @@ -20,7 +20,7 @@ The package was designed to make EMODnet vector data layers easily accessible in You can install the development version of `EMODnetWFS` from GitHub with: -```r +``` r remotes::install_github("EMODnet/EMODnetWFS") ``` @@ -31,18 +31,18 @@ For this tutorial we will make use of the `sf`, `dplyr` and `mapview` packages Run this line to install these packages: -```r +``` r install.packages(c("sf", "dplyr", "mapview")) ``` -With the `EMODnetWFS` package, we can explore and combine the data served by the [EMODnet lots ](https://www.emodnet.eu/en/portals) through [OGC Web Feature Services](https://en.wikipedia.org/wiki/Web_Feature_Service) or WFS. +With the `EMODnetWFS` package, we can explore and combine the data served by the [EMODnet lots ](https://www.emodnet.eu/en/portals) 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 lot can provide with these data. For that, we can check the services available with the `emodnet_wfs()` function. -```r +``` r library(EMODnetWFS) library(mapview) library(dplyr) @@ -73,7 +73,7 @@ emodnet_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://nodc.ogs.trieste.it/geoserver/Contaminants/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 @@ -92,29 +92,35 @@ emodnet_wfs() The column `service_name` shows services available, while `service_url` has the corresponding base url to perform a WFS request. The Seabed portal should have the data we are looking for. A WFS client can be created by passing the corresponding `service_name` to the function `emodnet_init_wfs_client()`. The layers available to this WFS client are consulted with `emodnet_get_wfs_info()`. -```r +``` r seabed_wfs_client <- emodnet_init_wfs_client(service = "seabed_habitats_general_datasets_and_products") +#> Loading ISO 19139 XML schemas... +#> Loading ISO 19115 codelists... #> ✔ WFS client created successfully #> ℹ Service: "https://ows.emodnet-seabedhabitats.eu/geoserver/emodnet_open/wfs" #> ℹ Version: "2.0.0" +``` + +``` r emodnet_get_wfs_info(wfs = seabed_wfs_client) -#> # A tibble: 36 × 9 +#> # A tibble: 71 × 9 #> # Rowwise: -#> data_source service_name service_url layer_name title abstract class -#> -#> 1 emodnet_wfs seabed_habita… https://ow… art17_hab… 2013… "Gridde… WFSF… -#> 2 emodnet_wfs seabed_habita… https://ow… art17_hab… 2013… "Gridde… WFSF… -#> 3 emodnet_wfs seabed_habita… https://ow… art17_hab… 2013… "Gridde… WFSF… -#> 4 emodnet_wfs seabed_habita… https://ow… art17_hab… 2013… "Gridde… WFSF… -#> 5 emodnet_wfs seabed_habita… https://ow… art17_hab… 2013… "Gridde… WFSF… -#> 6 emodnet_wfs seabed_habita… https://ow… art17_hab… 2013… "Gridde… WFSF… -#> 7 emodnet_wfs seabed_habita… https://ow… art17_hab… 2013… "Gridde… WFSF… -#> 8 emodnet_wfs seabed_habita… https://ow… art17_hab… 2013… "Gridde… WFSF… -#> 9 emodnet_wfs seabed_habita… https://ow… art17_hab… 2018… "Gridde… WFSF… -#> 10 emodnet_wfs seabed_habita… https://ow… biogenic_… Biog… "This l… WFSF… -#> # ℹ 26 more rows -#> # ℹ 2 more variables: format , layer_namespace +#> data_source service_name service_url layer_name title +#> +#> 1 emodnet_wfs seabed_habitats_ge… https://ow… art17_hab… 2013… +#> 2 emodnet_wfs seabed_habitats_ge… https://ow… art17_hab… 2013… +#> 3 emodnet_wfs seabed_habitats_ge… https://ow… art17_hab… 2013… +#> 4 emodnet_wfs seabed_habitats_ge… https://ow… art17_hab… 2013… +#> 5 emodnet_wfs seabed_habitats_ge… https://ow… art17_hab… 2013… +#> 6 emodnet_wfs seabed_habitats_ge… https://ow… art17_hab… 2013… +#> 7 emodnet_wfs seabed_habitats_ge… https://ow… art17_hab… 2013… +#> 8 emodnet_wfs seabed_habitats_ge… https://ow… art17_hab… 2013… +#> 9 emodnet_wfs seabed_habitats_ge… https://ow… carib_eus… 2023… +#> 10 emodnet_wfs seabed_habitats_ge… https://ow… biogenic_… Biog… +#> # ℹ 61 more rows +#> # ℹ 4 more variables: abstract , class , +#> # format , layer_namespace ``` @@ -122,7 +128,7 @@ emodnet_get_wfs_info(wfs = seabed_wfs_client) Each layer is explained in the `abstract` column. We can see several layers with the information provided by the EU member states for the [Habitats Directive 92/43/EEC reporting](https://www.eea.europa.eu/data-and-maps/data/article-17-database-habitats-directive-92-43-eec-2). We will select the layers about coastal lagoons, mudflats and sandbanks with their respective `layer_name`. -```r +``` r habitats_directive_layer_names <- c("art17_hab_1110", "art17_hab_1140", "art17_hab_1150") emodnet_get_layer_info( @@ -131,12 +137,13 @@ emodnet_get_layer_info( ) #> # A tibble: 3 × 9 #> # Rowwise: -#> data_source service_name service_url layer_name title abstract class -#> -#> 1 emodnet_wfs https://ows.em… seabed_hab… art17_hab… 2013… "Gridde… WFSF… -#> 2 emodnet_wfs https://ows.em… seabed_hab… art17_hab… 2013… "Gridde… WFSF… -#> 3 emodnet_wfs https://ows.em… seabed_hab… art17_hab… 2013… "Gridde… WFSF… -#> # ℹ 2 more variables: format , layer_namespace +#> data_source service_name service_url layer_name title +#> +#> 1 emodnet_wfs https://ows.emodnet… seabed_hab… art17_hab… 2013… +#> 2 emodnet_wfs https://ows.emodnet… seabed_hab… art17_hab… 2013… +#> 3 emodnet_wfs https://ows.emodnet… seabed_hab… art17_hab… 2013… +#> # ℹ 4 more variables: abstract , class , +#> # format , layer_namespace ``` @@ -144,7 +151,7 @@ emodnet_get_layer_info( We are now ready to read the layers into R with `emodnet_get_layers()`. EMODnetWFS reads the geometries as simple features (See `sf` package) transformed to [4326](https://epsg.io/4326) by default. Specifying another map projection is possible by passing a EPGS code or projection string with `emodnet_get_layers(crs = "your projection")`. The argument `reduce_layers = TRUE` stack all the layers in one single tibble. Default is FALSE and returns a list of sf objects, one per layer. -```r +``` r habitats_directive_layers <- emodnet_get_layers( wfs = seabed_wfs_client, layers = habitats_directive_layer_names, @@ -153,26 +160,29 @@ habitats_directive_layers <- emodnet_get_layers( class(habitats_directive_layers) #> [1] "sf" "data.frame" +``` + +``` r glimpse(habitats_directive_layers) #> Rows: 221 #> Columns: 9 -#> $ gml_id "art17_hab_1110.13", "art17_hab_1110.22", "… -#> $ habitat_code "1110", "1110", "1110", "1110", "1110", "11… -#> $ ms "DK", "ES", "ES", "PT", "PT", "PL", "DK", "… -#> $ region "ATL", "MAC", "MMAC", "MMAC", "MATL", "MBAL… -#> $ cs_ms "U2+", "U1+", "U1+", "XX", "U1-", "U1-", "U… -#> $ country_code "Denmark", "Spain", "Spain", "Portugal", "P… -#> $ habitat_code_uri "http://dd.eionet.europa.eu/vocabulary/art1… -#> $ habitat_description "Sandbanks which are slightly covered by se… -#> $ geom MULTISURFACE (POLYGON ((420...… +#> $ gml_id "art17_hab_1110.13", "art17_hab_1110.22", "art17_hab_1110.25", "ar… +#> $ habitat_code "1110", "1110", "1110", "1110", "1110", "1110", "1110", "1110", "1… +#> $ ms "DK", "ES", "ES", "PT", "PT", "PL", "DK", "FR", "UK", "BE", "BE", … +#> $ region "ATL", "MAC", "MMAC", "MMAC", "MATL", "MBAL", "MBAL", "MATL", "MAT… +#> $ cs_ms "U2+", "U1+", "U1+", "XX", "U1-", "U1-", "U1-", "U1x", "U1x", "U1x… +#> $ country_code "Denmark", "Spain", "Spain", "Portugal", "Portugal", "Poland", "De… +#> $ habitat_code_uri "http://dd.eionet.europa.eu/vocabulary/art17_2018/habitats/1110", … +#> $ habitat_description "Sandbanks which are slightly covered by sea water all the time", … +#> $ geom MULTISURFACE (POLYGON ((420..., MULTISURFACE (POLYGON… ``` Run the following code to have a quick look at the layers geometries -```r +``` r # Transform to Polygon geometry type from Multisurface if (unique(st_geometry_type(habitats_directive_layers)) == "MULTISURFACE") { habitats_directive_layers <- habitats_directive_layers %>% @@ -184,92 +194,13 @@ if (unique(st_geometry_type(habitats_directive_layers)) == "MULTISURFACE") { map <- mapview(habitats_directive_layers, zcol = "habitat_description", burst = TRUE) map +#> Error in loadNamespace(name): there is no package called 'webshot' ``` -![plot of chunk unnamed-chunk-6](EMODnetWFS-unnamed-chunk-6-1.png) - - -Furthermore, we can get data from other EMODnet lots and combine them. The Human Activities portal provides the maritime boundaries of the European Union state members. This time we will not initiate a WFS client, but we will use the service name. The WFS client will be generated on the fly. - -Same as before, we have a look at the layers available first. - - -```r -emodnet_get_wfs_info(service = "human_activities") -#> # A tibble: 99 × 9 -#> # Rowwise: -#> data_source service_name service_url layer_name title abstract class -#> -#> 1 emodnet_wfs human_activit… https://ow… activelic… Acti… The dat… WFSF… -#> 2 emodnet_wfs human_activit… https://ow… advisoryc… Advi… This sh… WFSF… -#> 3 emodnet_wfs human_activit… https://ow… aquacultu… Advi… This sh… WFSF… -#> 4 emodnet_wfs human_activit… https://ow… baltic Advi… This sh… WFSF… -#> 5 emodnet_wfs human_activit… https://ow… blacksea Advi… This sh… WFSF… -#> 6 emodnet_wfs human_activit… https://ow… longdista… Advi… This sh… WFSF… -#> 7 emodnet_wfs human_activit… https://ow… market Advi… This sh… WFSF… -#> 8 emodnet_wfs human_activit… https://ow… mediterra… Advi… This sh… WFSF… -#> 9 emodnet_wfs human_activit… https://ow… northsea Advi… This sh… WFSF… -#> 10 emodnet_wfs human_activit… https://ow… northwest… Advi… This sh… WFSF… -#> # ℹ 89 more rows -#> # ℹ 2 more variables: format , layer_namespace -``` - -The `layer_name` for the [maritime boundaries](https://www.eea.europa.eu/data-and-maps/data/maritime-boundaries) seems to be `maritimebnds`. This dataset was developed based on the official [data provided by the European Environmental Agency](https://www.eea.europa.eu/data-and-maps/data/maritime-boundaries) and the [Maritime Boundaries Database](https://marineregions.org/eez.php) compiled by MarineRegions.org (Flanders Marine Institute, 2019). - -The `sitename` variable specifies the type of boundary each feature represents. For illustration purposes, we will filter our request to return only [Territorial Seas](https://www.un.org/depts/los/convention_agreements/texts/unclos/part2.htm). - - -```r -maritime_boundaries <- emodnet_get_layers( - service = "human_activities", - layers = "maritimebnds", - reduce_layers = TRUE, - cql_filter = "sitename='Territory sea (12 nm)'" -) -#> ✔ WFS client created successfully -#> ℹ Service: "https://ows.emodnet-humanactivities.eu/wfs" -#> ℹ Version: "2.0.0" - -glimpse(maritime_boundaries) -#> Rows: 64 -#> Columns: 13 -#> $ gml_id "maritimebnds.54", "maritimebnds.55", "maritimebnds.… -#> $ objectid 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, … -#> $ mblszotpid 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1… -#> $ localid 49036, 49042, 49063, 49064, 49065, 49066, 49087, 490… -#> $ sitename "Territory sea (12 nm)", "Territory sea (12 nm)", "T… -#> $ legalfound NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,… -#> $ legalfou_1 NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, … -#> $ country "United Kingdom", "France", "France", "France", "Fra… -#> $ nationalle NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, … -#> $ nutscode "UK", "FR", "FR", "FR", "FR", "FR", "ES", "CY", "UK"… -#> $ mblsds_mbl "In www.marineregions.org", "In www.marineregions.or… -#> $ shape_leng 141.545470, 70.017156, 5.116398, 1.949563, 2.072975,… -#> $ the_geom MULTICURVE (LINESTRING (-13..., MULTICURV… -``` - - - -Add the maritime boundaries to the previous map with this line. To do so, cats to `MULTILINESTRING` geometry type, transform to the same crs as the habitats directive `sf` (only required because of the next step), and crop using the bounding box of the habitats directive `sf`. - - -```r - -maritime_boundaries <- maritime_boundaries %>% - st_cast(to = "MULTILINESTRING") %>% - st_transform(st_crs(habitats_directive_layers)) %>% - st_crop(st_bbox(habitats_directive_layers)) - -map + mapview(maritime_boundaries) -``` - -![plot of chunk unnamed-chunk-9](EMODnetWFS-unnamed-chunk-9-1.png) - - -We have now combined data from the Seabed Habitats and Human Activities portals. However, there is more! 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 +``` r emodnet_get_all_wfs_info() ``` @@ -283,7 +214,7 @@ Flanders Marine Institute (2019). Maritime Boundaries Geodatabase, version 11. A Hadley Wickham, Romain François, Lionel Henry and Kirill Müller (2020). dplyr: A Grammar of Data Manipulation. R package version 1.0.2.https://CRAN.R-project.org/package=dplyr -Pebesma E (2018). “Simple Features for R: Standardized Support for Spatial Vector Data.” The R Journal, 10(1), 439–446. doi: 10.32614/RJ-2018-009, https://doi.org/10.32614/RJ-2018-009. +Pebesma E (2018). “Simple Features for R: Standardized Support for Spatial Vector Data.” The R Journal, 10(1), 439–446. doi: 10.32614/RJ-2018-009, https://doi.org/10.32614/RJ-2018-009. R Core Team (2020). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/. @@ -291,6 +222,6 @@ Tim Appelhans, Florian Detsch, Christoph Reudenbach and Stefan Woellauer (2020). ### Code -Please cite this package as: +Please cite this package as: Anna Krystalli (2020). EMODnetWFS: Access EMODnet Web Feature Service data through R. R package version 0.0.2. https://github.com/EMODnet/EMODnetWFS. 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. diff --git a/vignettes/EMODnetWFS.Rmd.orig b/vignettes/EMODnetWFS.Rmd.orig index 815a2c3..f154d50 100644 --- a/vignettes/EMODnetWFS.Rmd.orig +++ b/vignettes/EMODnetWFS.Rmd.orig @@ -42,9 +42,9 @@ install.packages(c("sf", "dplyr", "mapview")) -With the `EMODnetWFS` package, we can explore and combine the data served by the [EMODnet lots ](https://www.emodnet.eu/en/portals) through [OGC Web Feature Services](https://en.wikipedia.org/wiki/Web_Feature_Service) or WFS. +With the `EMODnetWFS` package, we can explore and combine the data served by the [EMODnet lots ](https://www.emodnet.eu/en/portals) 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 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} library(EMODnetWFS) @@ -111,46 +111,7 @@ map <- mapview(habitats_directive_layers, zcol = "habitat_description", burst = map ``` - -Furthermore, we can get data from other EMODnet lots and combine them. The Human Activities portal provides the maritime boundaries of the European Union state members. This time we will not initiate a WFS client, but we will use the service name. The WFS client will be generated on the fly. - -Same as before, we have a look at the layers available first. - -```{r} -emodnet_get_wfs_info(service = "human_activities") -``` - -The `layer_name` for the [maritime boundaries](https://www.eea.europa.eu/data-and-maps/data/maritime-boundaries) seems to be `maritimebnds`. This dataset was developed based on the official [data provided by the European Environmental Agency](https://www.eea.europa.eu/data-and-maps/data/maritime-boundaries) and the [Maritime Boundaries Database](https://marineregions.org/eez.php) compiled by MarineRegions.org (Flanders Marine Institute, 2019). - -The `sitename` variable specifies the type of boundary each feature represents. For illustration purposes, we will filter our request to return only [Territorial Seas](https://www.un.org/depts/los/convention_agreements/texts/unclos/part2.htm). - -```{r} -maritime_boundaries <- emodnet_get_layers( - service = "human_activities", - layers = "maritimebnds", - reduce_layers = TRUE, - cql_filter = "sitename='Territory sea (12 nm)'" -) - -glimpse(maritime_boundaries) -``` - - - -Add the maritime boundaries to the previous map with this line. To do so, cats to `MULTILINESTRING` geometry type, transform to the same crs as the habitats directive `sf` (only required because of the next step), and crop using the bounding box of the habitats directive `sf`. - -```{r, eval = TRUE} - -maritime_boundaries <- maritime_boundaries %>% - st_cast(to = "MULTILINESTRING") %>% - st_transform(st_crs(habitats_directive_layers)) %>% - st_crop(st_bbox(habitats_directive_layers)) - -map + mapview(maritime_boundaries) -``` - - -We have now combined data from the Seabed Habitats and Human Activities portals. However, there is more! 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} emodnet_get_all_wfs_info() @@ -166,7 +127,7 @@ Flanders Marine Institute (2019). Maritime Boundaries Geodatabase, version 11. A Hadley Wickham, Romain François, Lionel Henry and Kirill Müller (2020). dplyr: A Grammar of Data Manipulation. R package version 1.0.2.https://CRAN.R-project.org/package=dplyr -Pebesma E (2018). “Simple Features for R: Standardized Support for Spatial Vector Data.” The R Journal, 10(1), 439–446. doi: 10.32614/RJ-2018-009, https://doi.org/10.32614/RJ-2018-009. +Pebesma E (2018). “Simple Features for R: Standardized Support for Spatial Vector Data.” The R Journal, 10(1), 439–446. doi: 10.32614/RJ-2018-009, https://doi.org/10.32614/RJ-2018-009. R Core Team (2020). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/. @@ -174,6 +135,6 @@ Tim Appelhans, Florian Detsch, Christoph Reudenbach and Stefan Woellauer (2020). ### Code -Please cite this package as: +Please cite this package as: Anna Krystalli (2020). EMODnetWFS: Access EMODnet Web Feature Service data through R. R package version 0.0.2. https://github.com/EMODnet/EMODnetWFS. 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.