-
Notifications
You must be signed in to change notification settings - Fork 4
/
README.Rmd
198 lines (132 loc) · 6.01 KB
/
README.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
---
output: github_document
---
<!-- README.md is generated from README.Rmd. Please edit that file -->
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
options(timeout = 2000)
```
# emodnet.wfs: Access EMODnet Web Feature Service data through R
<!-- badges: start -->
[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
[![R-CMD-check](https://github.com/EMODnet/emodnet.wfs/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/EMODnet/emodnet.wfs/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/EMODnet/emodnet.wfs/branch/main/graph/badge.svg)](https://app.codecov.io/gh/EMODnet/emodnet.wfs/tree/main)
[![DOI](https://zenodo.org/badge/DOI/10.14284/679.svg)](https://doi.org/10.14284/679)
[![Status at rOpenSci Software Peer Review](https://badges.ropensci.org/653_status.svg)](https://github.com/ropensci/software-review/issues/653)
<!-- badges: end -->
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.
emodnet.wfs aims at offering an user-friendly interface to this rich data.
## Installation and setup
You can install the development version of emodnet.wfs from GitHub with:
``` r
# install.packages("pak")
pak::pak("EMODnet/emodnet.wfs")
```
If you want to avoid reading messages from emodnet.wfs such as "WFS client created successfully",
set the `"emodnet.wfs.quiet"` option to `TRUE`.
```r
options("emodnet.wfs.quiet" = TRUE)
```
## Available services
All available services are contained in the tibble returned by `emodnet_wfs()`.
```{r, echo=FALSE}
library(emodnet.wfs)
services <- emodnet_wfs()
class(services)
names(services)
services$service_name
```
To explore available services you can use `View()` or your usual way to explore `data.frames`.
## Create Service Client
Specify the service using the `service` argument.
```{r}
wfs_bio <- emodnet_init_wfs_client(service = "biology")
wfs_bio
```
## Get WFS Layer info
You can get metadata about the layers available from a service.
```{r}
emodnet_get_wfs_info(service = "biology")
```
or you can pass a wfs client object.
```{r}
emodnet_get_wfs_info(wfs_bio)
```
You can also get info for specific layers from wfs object:
```{r}
layers <- c("mediseh_zostera_m_pnt", "mediseh_posidonia_nodata")
emodnet_get_layer_info(wfs = wfs_bio, layers = layers)
```
Finally, you can get details on all available services and layers from the server
```{r eval=FALSE}
emodnet_get_all_wfs_info()
```
## Get WFS 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.
```{r}
emodnet_get_layers(wfs = wfs_bio, layers = layers)
```
You can change the output `crs` through the argument `crs`.
```{r}
emodnet_get_layers(wfs = wfs_bio, layers = layers, crs = 3857)
```
You can also extract layers using a WFS service name.
```{r}
emodnet_get_layers(
service = "biology",
layers = c("mediseh_zostera_m_pnt", "mediseh_posidonia_nodata")
)
```
Layers can also be returned to a single `sf` object through argument `reduce_layers`.
If `TRUE` the function will try to reduce all layers into a single `sf`.
If attempting to reduce fails, it will error:
```{r, error=TRUE}
emodnet_get_layers(
wfs = wfs_bio,
layers = layers,
reduce_layers = TRUE
)
```
Using `reduce_layers = TRUE` is also useful for returning an `sf` object rather than a list in single layer request.
```{r}
emodnet_get_layers(
service = "biology",
layers = c("mediseh_posidonia_nodata"),
reduce_layers = TRUE
)
```
## Help needed?
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
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/):
```{r rerddap}
# install.packages("rerrdap")
library(rerddap)
erddap_url <- "https://erddap.emodnet.eu/erddap/"
rerddap::ed_datasets(url = erddap_url)
rerddap::ed_search(query = "vessel density", url = erddap_url)
human_activities_data_info <- rerddap::info(datasetid = "humanactivities_9f8a_3389_f08a", url = erddap_url)
human_activities_data_info
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.
## Citation
To cite emodnet.wfs, please use the output from `citation(package = "emodnet.wfs")`.
```{r}
citation(package = "emodnet.wfs")
```
## Acknowledgements
This package was started by the Sheffield University during the EMODnet Biology WP4 data products workshop in June 2020.