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-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 , 1003 , 0 , 1108 , 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) |
research | 2012-11-16T10:57:00+01:00 | open | NULL | 73e6464c-2042-4494-b3c0-75b2f7b348a7 | 147186737 | 0 | TRUE | Gabbiano reale mediterraneo | FALSE | POINT (12.32902 45.43551) |
research | 2012-11-16T10:55:00+01:00 | open | NULL | a66017b3-01fe-406c-9484-e70471b164e7 | 147186736 | 0 | TRUE | Mittelmeermöwe | FALSE | POINT (12.32901 45.4354) |
research | 2012-11-16T10:59:00+01:00 | open | NULL | 72247211-741b-4015-b587-29defd2336a2 | 147186734 | 0 | TRUE | Gaivota-de-patas-amarelas | FALSE | POINT (12.329 45.43544) |
research | 2012-11-16T09:18:00+01:00 | open | NULL | 9ae533ce-e831-4dc2-bb31-50c32d3f5776 | 147186733 | 0 | TRUE | Mittelmeermöwe | FALSE | POINT (12.33987 45.43351) |
research | 2012-11-15T09:42:00+01:00 | open | NULL | ccca5f46-209e-4147-a840-121c40f55efa | 147186732 | 0 | TRUE | Guincho-comum | FALSE | POINT (12.33729 45.50086) |
research | 2023-01-22T15:20:52+01:00 | open | 2174549 , 17|18 , 17 , d57cce74-746b-47c7-b21b-7849a4fea625 , 0 , 18 , 2174549 , rijans , FALSE , FALSE , 2019-08-26T05:45:51+00:00 , rijans , rijans , Rita Jansen , Rita Jansen , NA , https://static.inaturalist.org/attachments/users/icons/2174549/thumb.jpg?1583306995 , 3540 , 2152 , 0 , 5692 , 1426 , 3540 , 1 , https://static.inaturalist.org/attachments/users/icons/2174549/medium.jpg?1583306995 | e28745f8-44a5-484b-b0da-6d1a9f2c9f84 | 147110652 | 0 | TRUE | Black-headed Gull | FALSE | POINT (12.34345 45.44149) |
research | 2023-01-22T11:34:45+01:00 | open | NULL | 1c655bdc-f37c-4172-988d-50101f680dc4 | 147100146 | 0 | TRUE | Gabbiano reale mediterraneo | FALSE | POINT (12.33875 45.4342) |
research | 2023-01-22T11:31:45+01:00 | open | 2174549 , 17|18 , 17 , 46fdf28d-630a-448d-836d-2c134d077dd7 , 0 , 18 , 2174549 , rijans , FALSE , FALSE , 2019-08-26T05:45:51+00:00 , rijans , rijans , Rita Jansen , Rita Jansen , NA , https://static.inaturalist.org/attachments/users/icons/2174549/thumb.jpg?1583306995 , 3540 , 2152 , 0 , 5692 , 1426 , 3540 , 1 , https://static.inaturalist.org/attachments/users/icons/2174549/medium.jpg?1583306995 | 4a8b5958-1396-406a-8fc1-188592ecb523 | 147100044 | 0 | TRUE | Colombo domestico | FALSE | POINT (12.33879 45.43428) |
casual | 2023-01-21T16:17:42+01:00 | NA | NULL | f81c4ce6-22a6-46f2-a83a-275b4e5342ac | 147097241 | 0 | FALSE | Granchio Corridore | FALSE | POINT (12.64574 45.50629) |
research | 2023-01-22T10:26:05+01:00 | NA | NULL | 6385ed45-5ed7-4b25-bed4-c580595c3ee3 | 147097060 | 0 | TRUE | caper spurge | FALSE | POINT (12.3258 45.63141) |
needs_id | 2023-01-21T10:51:28+01:00 | NA | NULL | 98564929-ca38-43eb-96fd-aff8369e16f5 | 147096981 | 0 | FALSE | Bardane | FALSE | POINT (12.3211 45.63215) |
research | 2023-01-21T15:22:00+01:00 | open | NULL | 5e609fa8-9f16-49e3-888c-126e1faf7fad | 147094781 | 0 | TRUE | Pantana | FALSE | POINT (12.3764 45.03672) |
research | 2023-01-21T15:24:00+01:00 | open | NULL | 5ec4d059-66b4-4912-9018-b1362a25b2e1 | 147094741 | 0 | TRUE | Pantana | FALSE | POINT (12.37586 45.03503) |
research | 2023-01-21T15:32:00+01:00 | open | NULL | 6b30b04c-c66d-447c-a312-d2ccee4deae0 | 147094715 | 0 | TRUE | Black-headed Gull | FALSE | POINT (12.37568 45.03388) |
# 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 | 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) |
NA | 2006 | urn:lsid:marinespecies.org:taxname:366651 | 2006 | Keratosa | FALSE | NA | 366651 | en | 366651 | POINT (12.38396 45.21108) |
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] "/tmp/RtmpZ5wCUE/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] "/tmp/RtmpZ5wCUE/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