To download data from the selected atlas, one must construct a query. This
query tells the atlas API what data to download and return, as well as how it
should be filtered. Using galah_call()
allows you to build a piped query to
download data, in the same way that you would wrangle data with dplyr
and
the tidyverse
.
Usage
galah_call(method = c("data", "metadata", "files"), type, ...)
request_data(
type = c("occurrences", "occurrences-count", "occurrences-doi", "species",
"species-count"),
...
)
request_metadata(
type = c("fields", "apis", "assertions", "atlases", "collections", "datasets",
"licences", "lists", "media", "profiles", "providers", "ranks", "reasons", "taxa",
"identifiers")
)
request_files(type = "media")
Arguments
- method
string: what
request
function should be called. Should be one of"data"
(default),"metadata"
or"files"
- type
string: what form of data should be returned? Acceptable values are specified by the corresponding
request
function- ...
Zero or more arguments passed to
collapse()
to alter a query. Currently onlymint.doi
(for occurrences) andthumbnail
(for media downloads) are supported. Both are logical.
Value
Each sub-function returns a different object class: request_data()
returns data_request
. request_metadata
returns metadata_request
,
request_files()
returns files_request
. These objects are list-like and
contain the following slots:
filter
: edit by pipingfilter()
orgalah_filter()
.select
: edit by pipingselect
orgalah_select()
.group_by
: edit by pipinggroup_by()
orgalah_group_by()
.identify
: edit by pipingidentify()
orgalah_identify()
.geolocate
: edit by pipingst_crop()
,galah_geolocate()
,galah_polygon()
orgalah_bbox()
.limit
: edit by pipingslice_head()
.doi
: edit by pipingfilter(doi == "my-doi-here")
.
Details
In practice, galah_call()
is a wrapper to a group of underlying
request_
functions, selected using the method
argument.
Each of these functions can begin a piped query and end with collapse()
,
compute()
or collect()
, or optionally one of the atlas_
family of
functions. For more details see the object-oriented programming vignette:
vignette("object_oriented_programming", package = "galah")
Accepted values of the type
argument are set by the underlying request_
functions. While all accepted types can be set directly, some are affected
by later functions. The most common example is that adding
count()
to a pipe updates type
,
converting type = "occurrences"
to type = "occurrences-count"
(and ditto
for type = "species"
).
The underlying request_
functions are useful because they allow galah
to separate different types of requests to perform better. For example,
filter.data_request
translates filters in R to solr
, whereas
filter.metadata_request
searches using a search term.
Examples
if (FALSE) { # \dontrun{
# Begin your query with `galah_call()`, then pipe using `%>%` or `|>`
# Get number of records of *Aves* from 2001 to 2004 by year
galah_call() |>
identify("Aves") |>
filter(year > 2000 & year < 2005) |>
group_by(year) |>
atlas_counts()
# Get information for all species in *Cacatuidae* family
galah_call() |>
identify("Cacatuidae") |>
atlas_species()
# Download records of genus *Eolophus* from 2001 to 2004
galah_config(email = "your-email@email.com")
galah_call() |>
identify("Eolophus") |>
filter(year > 2000 & year < 2005) |>
atlas_occurrences() # synonymous with `collect()`
# galah_call() is a wrapper to various `request_` functions.
# These can be called directly for greater specificity.
# Get number of records of *Aves* from 2001 to 2004 by year
request_data() |>
identify("Aves") |>
filter(year > 2000 & year < 2005) |>
group_by(year) |>
count() |>
collect()
# Get information for all species in *Cacatuidae* family
request_data(type = "species") |>
identify("Cacatuidae") |>
collect()
# Get metadata information about supported atlases in galah
request_metadata(type = "atlases") |>
collect()
} # }