How to retrieve occurrence records by exploiting the {`ReLTER`} get_site_speciesOccurrences() function
Alessandro Oggioni, Paolo Tagliolato, Martina Zilioli
Source:vignettes/occurrences_into_site.Rmd
occurrences_into_site.Rmd
__ get_site_speciesOccurrences(), map_occ_gbif2elter and save_occ_eLTER_reporting_Archive() are delivered only with dev__withImprovements branch __
Starting from the eLTER site id (DEIMS.iD), by ReLTER
get_site_speciesOccurrences function, anyone can retrieve occurrence
records from GBIF (via rgbif
R
package), iNaturalist and
OBIS carried out within the boundaries
of the site.
What the output of the ReLTER
get_site_speciesOccurrences() is?
The user sets the parameters of the function and, through these choose, defines the output.
The parameters of the function are:
user sets parameter ‘deimsid’ to select the area of interest from which data are to be harvested (i.e., paste DEIMS.ID of the site of interest; e.g., Gulf Of Venice - GOV https://deims.org/758087d7-231f-4f07-bd7e-6922e0c283fd)
user sets parameter ‘list_DS’ to select the external data service to be queried (i.e., ‘gbif’ or ‘obis’ or ‘inaturalist’)
user sets parameter ‘show_map’ to get data in map format in addition to tabular format (i.e., show_map = TRUE)
user sets parameter ‘limit’ to select the records number (i.e., species presence record) to be extracted
The output are two type: a map and a table(s), for each external data service selected.
# DEIMS.iD of eLTER site Gulf Of Venice (GOV)
GOVid <- "https://deims.org/758087d7-231f-4f07-bd7e-6922e0c283fd"
# Compose the function with choosen parameters
resGOV <- ReLTER::get_site_speciesOccurrences(
deimsid = GOVid,
list_DS = c("gbif", "inat", "obis"),
show_map = TRUE,
limit = 20
)
# iNat table
knitr::kable(
resGOV$inat[c(1:10)],
caption = "The first 10 occurrence records of iNaturalist on the selected eLTER site."
)
quality_grade | time_observed_at | taxon_geoprivacy | annotations | uuid | id | cached_votes_total | identifications_most_agree | species_guess | identifications_most_disagree | geometry |
---|---|---|---|---|---|---|---|---|---|---|
research | 2023-01-26T15:57:42+01:00 | open | NULL | f78e6891-0d2e-49d3-b094-6f0f9803dea0 | 147401571 | 0 | TRUE | Garzetta | FALSE | POINT (12.32297 45.42598) |
research | 2023-01-22T11:45:00+01:00 | open | NULL | 28849588-9470-40d0-aa50-2c7baa546ace | 147399210 | 0 | TRUE | Black-crowned Night-Heron | FALSE | POINT (12.33927 44.97993) |
needs_id | 2023-01-22T15:25:31+01:00 | NA | NULL | e9903445-2d69-4ca1-af21-2b3b76484fd0 | 147370680 | 0 | TRUE | Common Sow-thistle | FALSE | POINT (12.34571 45.44041) |
needs_id | 2023-01-22T16:00:17+01:00 | NA | NULL | 8aabd079-9dc2-4a1b-aec2-abb007af8de4 | 147370605 | 0 | FALSE | Japanischer Beerentang | FALSE | POINT (12.34552 45.44033) |
needs_id | 2023-01-22T15:21:34+01:00 | NA | NULL | 619b68af-d448-4da9-ab30-d9b3e59a8262 | 147370498 | 0 | TRUE | Laitues de mer | FALSE | POINT (12.34326 45.44163) |
needs_id | 2023-01-22T16:41:44+01:00 | NA | NULL | f8f52241-1307-4ddf-8015-01ec3646313d | 147370343 | 0 | FALSE | NA | FALSE | POINT (12.3476 45.43323) |
needs_id | 2023-01-22T16:41:35+01:00 | NA | NULL | c722150d-c304-49ad-9d04-ff3db163c96a | 147370269 | 0 | TRUE | Wakame | FALSE | POINT (12.34236 45.4337) |
research | 2019-09-01T18:54:00+02:00 | open | NULL | 32f63e89-939f-42fa-bb16-1bea49a5408b | 147339662 | 0 | TRUE | Yellow-legged Gull | FALSE | POINT (12.34002 45.43335) |
research | 2019-09-01T18:55:00+02:00 | open | NULL | cae316c7-94c2-485c-9a85-237e52cd18ce | 147339660 | 0 | TRUE | Yellow-legged Gull | FALSE | POINT (12.34002 45.43335) |
research | 2019-09-01T14:12:00+02:00 | open | NULL | 5add7880-a5a5-4c83-9f4e-48166143efae | 147339586 | 0 | TRUE | Yellow-legged Gull | FALSE | POINT (12.34044 45.43327) |
research | 2023-01-24T12:06:36+01:00 | open | 5666872 , 5666872 , 1|2 , 22|24 , 1 , 22 , 2c27160c-dbe3-43f2-a81f-b901f04a42d6 , 4b2f6119-8054-4422-a64b-d4c0b0f35a39 , 0 , 0 , 2 , 24 , 5666872 , 5666872 , alessandro802 , alessandro802 , FALSE , FALSE , FALSE , FALSE , 2022-05-12T15:31:33+00:00 , 2022-05-12T15:31:33+00:00 , alessandro802 , alessandro802 , alessandro802 , alessandro802 , Alessandro , Alessandro , Alessandro , Alessandro , NA , NA , https://static.inaturalist.org/attachments/users/icons/5666872/thumb.jpeg?1673363590 , https://static.inaturalist.org/attachments/users/icons/5666872/thumb.jpeg?1673363590 , 328 , 328 , 296 , 296 , 0 , 0 , 624 , 624 , 229 , 229 , 328 , 328 , NA , NA , https://static.inaturalist.org/attachments/users/icons/5666872/medium.jpeg?1673363590, https://static.inaturalist.org/attachments/users/icons/5666872/medium.jpeg?1673363590 | b2788453-e308-422c-b69d-8b143fb52089 | 147283228 | 0 | TRUE | Red Admiral | FALSE | POINT (12.64574 45.50629) |
research | 2023-01-24T16:00:00+01:00 | open | NULL | 36043fc5-8177-4dff-b1fe-4d16fa4dde81 | 147279791 | 0 | TRUE | Capriolo | FALSE | POINT (12.9187 45.61604) |
needs_id | 2023-01-24T16:19:54+01:00 | open | NULL | 94aec762-d332-48b6-9077-c326a14c85a1 | 147269225 | 0 | TRUE | Gabbiano reale mediterraneo | FALSE | POINT (12.33558 45.43798) |
research | 2023-01-24T16:21:08+01:00 | open | NULL | 6718b861-5f0f-419e-b170-5f1526e65cc0 | 147269027 | 0 | TRUE | Geelpootmeeuw | FALSE | POINT (12.3357 45.43815) |
research | 2023-01-22T16:04:00+01:00 | open | NULL | 9c6f0a3f-7aab-4e76-927a-cc48dda760cd | 147204127 | 0 | TRUE | Pied Avocet | FALSE | POINT (12.41794 45.0308) |
research | 2023-01-22T12:35:00+01:00 | NA | 2922988 , 17|18 , 17 , edb85cf7-e574-4636-ac3c-54beb3be0e0e , 0 , 18 , 2922988 , dario124 , FALSE , FALSE , 2020-05-07T19:07:12+00:00 , dario124 , dario124 , Dario Michieletto , Dario Michieletto , NA , https://static.inaturalist.org/attachments/users/icons/2922988/thumb.jpeg?1588878432 , 105 , 1008 , 0 , 1113 , 53 , 105 , NA , https://static.inaturalist.org/attachments/users/icons/2922988/medium.jpeg?1588878432 | 2860796b-569e-4e57-a2fd-fdf9bdd44dcf | 147204126 | 0 | TRUE | Saltimpalo | FALSE | POINT (12.38132 44.99527) |
research | 2023-01-22T16:16:00+01:00 | open | NULL | b8a9bc55-59b6-4608-85d7-a2942db256ff | 147204125 | 0 | TRUE | Volpoca | FALSE | POINT (12.39728 45.03556) |
research | 2023-01-22T16:10:00+01:00 | open | NULL | f4daeaa4-c8f7-49d6-a32a-150d0fce759b | 147204124 | 0 | TRUE | Piro piro piccolo | FALSE | POINT (12.4191 45.03021) |
research | 2023-01-22T16:20:00+01:00 | open | NULL | 6b46ced2-2ca8-453f-b272-cb09cd48cdf3 | 147204123 | 0 | TRUE | Pivieressa | FALSE | POINT (12.41794 45.0308) |
research | 2012-11-17T07:35:00+01:00 | open | NULL | ec809142-b0d3-4787-8abf-1b4c8d91cab6 | 147186739 | 0 | TRUE | Gaivota-de-patas-amarelas | FALSE | POINT (12.33358 45.4307) |
# OBIS table
knitr::kable(
resGOV$obis[c(1:10)],
caption = "The first 10 occurrence records of OBIS on the selected eLTER site."
)
infraphylum | date_year | scientificNameID | year | scientificName | dropped | gigaclassid | aphiaID | language | subclassid | geometry |
---|---|---|---|---|---|---|---|---|---|---|
Gnathostomata | 1978 | urn:lsid:marinespecies.org:taxname:126977 | 1978 | Chelon labrosus | FALSE | 10194 | 126977 | en | 293496 | POINT (12.3774 45.3867) |
Gnathostomata | 2011 | urn:lsid:marinespecies.org:taxname:126285 | 2011 | Conger conger | FALSE | 10194 | 126285 | en | 293496 | POINT (12.45888 45.18583) |
NA | 2003 | urn:lsid:marinespecies.org:taxname:101055 | 2003 | Parazoanthus axinellae | FALSE | NA | 101055 | en | 1340 | POINT (12.42125 45.20315) |
Gnathostomata | 1925 | urn:lsid:marinespecies.org:taxname:151523 | 1925 | Sparus aurata | FALSE | 10194 | 151523 | en | 293496 | POINT (12.9377 45.0629) |
Gnathostomata | NA | urn:lsid:marinespecies.org:taxname:126968 | NA | Labrus viridis | FALSE | 10194 | 126968 | NA | 293496 | POINT (12.33195 45.4414) |
NA | NA | urn:lsid:marinespecies.org:taxname:130294 | NA | Euclymene oerstedii | FALSE | NA | 130294 | NA | 754175 | POINT (12.34 45.16) |
NA | NA | urn:lsid:marinespecies.org:taxname:124405 | NA | Ova canalifera | FALSE | NA | 569394 | NA | 149854 | POINT (12.35 45.3) |
Gnathostomata | 1922 | urn:lsid:marinespecies.org:taxname:125570 | 1922 | Trachinidae | FALSE | 10194 | 125570 | en | 293496 | POINT (12.9377 45.0629) |
NA | 1934 | urn:lsid:marinespecies.org:taxname:124670 | 1934 | Thyone fusus | FALSE | NA | 124670 | en | 1393249 | POINT (13.171 45.468) |
Gnathostomata | 1988 | urn:lsid:marinespecies.org:taxname:127060 | 1988 | Pagellus erythrinus | FALSE | 10194 | 127060 | NA | 293496 | POINT (12.88 45.33) |
NA | 2008 | urn:lsid:marinespecies.org:taxname:149126 | 2008 | Chaetoceros decipiens | FALSE | NA | 149126 | NA | 148971 | POINT (12.9203 45.401) |
NA | 1990 | urn:lsid:marinespecies.org:taxname:149045 | 1990 | Nitzschia | FALSE | NA | 149045 | NA | 148902 | POINT (13.19617 45.436) |
NA | 2006 | urn:lsid:marinespecies.org:taxname:131774 | 2006 | Axinella | FALSE | NA | 131774 | en | 607950 | POINT (12.48941 45.23041) |
NA | 1988 | urn:lsid:marinespecies.org:taxname:107239 | 1988 | Pagurus prideaux | FALSE | NA | 107239 | NA | 1086 | POINT (12.6 45.31) |
Gnathostomata | NA | NA | NA | Blennius ocellaris | FALSE | 10194 | 126761 | en | 293496 | POINT (12.33195 45.4414) |
Gnathostomata | 1927 | urn:lsid:marinespecies.org:taxname:127021 | 1927 | Sarda sarda | FALSE | 10194 | 127021 | en | 293496 | POINT (12.9377 45.0629) |
NA | 2008 | urn:lsid:marinespecies.org:taxname:213 | 2008 | Pectinidae | FALSE | NA | 213 | en | 1424948 | POINT (12.40591 45.20458) |
NA | 1988 | urn:lsid:marinespecies.org:taxname:137111 | NA | Tursiops truncatus | FALSE | NA | 137111 | NA | 380416 | POINT (13.25167 45.58333) |
NA | 1988 | urn:lsid:marinespecies.org:taxname:137111 | NA | Tursiops truncatus | FALSE | NA | 137111 | NA | 380416 | POINT (13.035 45.13333) |
Gnathostomata | 2012 | urn:lsid:marinespecies.org:taxname:105923 | 2012 | Squalus acanthias | FALSE | NA | 105923 | en | 368407 | POINT (12.77119 45.33256) |
How to trasform external service data schemas into eLTER data-reporting template?
The structure of species occurrence records reflects the exporting schema of the original data publisher. Fields mapping among the three data source schemas (i.e., GBIF, iNaturalist, OBIS) and the eLTER data-reporting template (Peterseil J. (2020)) was carried out so as to design functions to structure fetched data in three simplified output data formats. These output data formats result i) harmonised to eLTER data-reporting requirements/template and ii) more readable since only essential attributes are maintained.
Using 2 other R functions, developed for solve this issue, data from external data service can be exported into eLTER data-reporting template.
Below an example for the eLTER Saldur River Catchment site, where the external data service to be queried are GBIF and iNaturalist.
saldurid <- "https://deims.org/97ff6180-e5d1-45f2-a559-8a7872eb26b1"
resSaldur <- ReLTER::get_site_speciesOccurrences(
deimsid = saldurid,
list_DS = c("gbif", "inat"),
show_map = FALSE,
limit = 20,
exclude_inat_from_gbif = TRUE
)
# GBIF
tblSaldur_gbif <- tibble::as_tibble(resSaldur$gbif)
if (nrow(tblSaldur_gbif) > 0) {
outGbif <- tblSaldur_gbif %>%
ReLTER::map_occ_gbif2elter(deimsid = saldurid)
ReLTER::save_occ_eLTER_reporting_Archive(outGbif)
}
## [1] "/var/folders/p1/110rx8q101z0wn0bwh4njrcw0000gn/T//RtmpRXszXS/biodiv_occurrence_site_97ff6180-e5d1-45f2-a559-8a7872eb26b1_gbif.zip"
# iNaturalist
tblSaldur_inat <- tibble::as_tibble(resSaldur$inat)
outInat <- tblSaldur_inat %>%
ReLTER::map_occ_inat2elter(deimsid = saldurid)
ReLTER::save_occ_eLTER_reporting_Archive(outInat)
## [1] "/var/folders/p1/110rx8q101z0wn0bwh4njrcw0000gn/T//RtmpRXszXS/biodiv_occurrence_site_97ff6180-e5d1-45f2-a559-8a7872eb26b1_inat.zip"
The eLTER useful archive created are:
biodiv_occurrence_site_97ff6180-e5d1-45f2-a559-8a7872eb26b1_gbif.zip
biodiv_occurrence_site_97ff6180-e5d1-45f2-a559-8a7872eb26b1_inat.zip