| items_functions {rstac} | R Documentation |
Items functions
Description
These functions provide support to work with
doc_items and doc_item objects.
-
items_length(): shows how many items there are in thedoc_itemsobject. -
items_matched(): shows how many items matched the search criteria. It supportssearch:metadata(v0.8.0),context(v0.9.0), andnumberMatched(OGC WFS3 core spec). -
items_fetch(): request all STAC Items through pagination. -
items_next(): fetches a new page from STAC service. -
items_datetime(): retrieves thedatetimefield inpropertiesfromdoc_itemsanddoc_itemobjects. -
items_bbox(): retrieves thebboxfield of adoc_itemsor adoc_itemobject. -
item_assets(): returns the assets name fromdoc_itemsanddoc_itemobjects. -
items_filter(): selects only items that match some criteria (see details section). -
items_reap(): traverses all items in adoc_itemsobject and extracts values based on the specified field path. It is useful for retrieving nested elements from STAC items. -
items_fields(): lists field names inside an item. -
items_sign(): allow access assets by preparing its url. -
items_intersects():indicates which items intersects a given geometry.
-
items_properties(): lists properties names inside an item.
Usage
items_length(items)
## S3 method for class 'doc_items'
items_length(items)
items_matched(items, matched_field = NULL)
## S3 method for class 'doc_items'
items_matched(items, matched_field = NULL)
items_fetch(items, ...)
## S3 method for class 'doc_items'
items_fetch(items, ..., progress = TRUE, matched_field = NULL)
items_next(items, ...)
## S3 method for class 'doc_items'
items_next(items, ...)
items_datetime(items)
## S3 method for class 'doc_item'
items_datetime(items)
## S3 method for class 'doc_items'
items_datetime(items)
items_bbox(items)
## S3 method for class 'doc_item'
items_bbox(items)
## S3 method for class 'doc_items'
items_bbox(items)
items_assets(items)
## S3 method for class 'doc_item'
items_assets(items)
## S3 method for class 'doc_items'
items_assets(items)
## Default S3 method:
items_assets(items)
items_filter(items, ..., filter_fn = NULL)
## S3 method for class 'doc_items'
items_filter(items, ..., filter_fn = NULL)
items_compact(items)
## S3 method for class 'doc_items'
items_compact(items)
items_reap(items, field, pick_fn = identity)
## S3 method for class 'doc_item'
items_reap(items, field, pick_fn = identity)
## S3 method for class 'doc_items'
items_reap(items, field, pick_fn = identity)
## Default S3 method:
items_reap(items, field, pick_fn = identity)
items_fields(items, field = NULL)
## S3 method for class 'doc_item'
items_fields(items, field = NULL)
## S3 method for class 'doc_items'
items_fields(items, field = NULL)
items_sign(items, sign_fn)
## S3 method for class 'doc_item'
items_sign(items, sign_fn)
## S3 method for class 'doc_items'
items_sign(items, sign_fn)
## Default S3 method:
items_sign(items, sign_fn)
items_as_sf(items, ..., crs = 4326)
## S3 method for class 'doc_item'
items_as_sf(items, ..., crs = 4326)
## S3 method for class 'doc_items'
items_as_sf(items, ..., crs = 4326)
items_as_sfc(items, crs = 4326)
## S3 method for class 'doc_item'
items_as_sfc(items, crs = 4326)
## S3 method for class 'doc_items'
items_as_sfc(items, crs = 4326)
items_as_tibble(items)
## S3 method for class 'doc_item'
items_as_tibble(items)
## S3 method for class 'doc_items'
items_as_tibble(items)
items_intersects(items, geom, ..., crs = 4326)
## S3 method for class 'doc_item'
items_intersects(items, geom, ..., crs = 4326)
## S3 method for class 'doc_items'
items_intersects(items, geom, ..., crs = 4326)
items_properties(items)
## S3 method for class 'doc_item'
items_properties(items)
## S3 method for class 'doc_items'
items_properties(items)
items_select(items, selection)
## S3 method for class 'doc_items'
items_select(items, selection)
Arguments
items |
a |
matched_field |
a |
... |
additional arguments. See details. |
progress |
a |
filter_fn |
a |
field |
A |
pick_fn |
a |
sign_fn |
a |
crs |
a |
geom |
a |
selection |
an |
Details
Ellipsis argument (...) appears in different items functions and
has distinct purposes:
-
items_matched()anditems_assets(): ellipsis is not used. -
items_fetch()anditems_next(): ellipsis is used to pass additionalhttroptions to GET or POST methods, such as add_headers or set_cookies. -
items_filter(): ellipsis is used to pass logical expressions to be evaluated against adoc_itemfield as filter criteria. Expressions must be evaluated as a logical value whereTRUEselects the item andFALSEdiscards it. Multiple expressions are combine withANDoperator.items_filter()uses non-standard evaluation to evaluate its expressions. That means users must escape any variable or call to be able to use them in the expressions. The escape is done by usingdouble-curly-braces, i.e.,{{variable}}.WARNING: the evaluation of filter expressions changed in
rstac0.9.2. Older versions ofrstacusedpropertiesfield to evaluate filter expressions. Below, there is an example of how to write expressions in newrstacversion:# expression in older version items_filter(stac_obj, `eo:cloud_cover` < 10) # now expressions must refer to properties explicitly items_filter(stac_obj, properties$`eo:cloud_cover` < 10) items_filter(stac_obj, properties[["eo:cloud_cover"]] < 10)
-
items_sign(): in the near future, ellipsis will be used to append key-value pairs to the url query string of an asset.
items_sign() has sign_fn parameter that must be a function that
receives as argument an item and returns a signed item. rstac provides
sign_bdc() and sign_planetary_computer() functions to access Brazil
Data Cube products and Microsoft Planetary Computer catalogs, respectively.
Value
-
items_length(): anintegervalue. -
items_matched(): returns anintegervalue if the STAC web server does support this extension. Otherwise returnsNULL. -
items_fetch(): adoc_itemswith all matched items. -
items_next(): fetches a new page from STAC service. -
items_datetime(): alistof all items' datetime. -
items_bbox(): returns alistwith all items' bounding boxes. -
item_assets(): returns acharactervalue with all assets names of all items. -
items_filter(): adoc_itemsobject. -
items_reap(): avectorif the supplied field is atomic, otherwise or alist. -
items_fields(): acharactervector. -
items_sign(): adoc_itemsobject with signed assets url. -
items_as_sf(): asfobject. -
items_as_sfc(): asfcobject. -
items_as_tibble(): atibbleobject. -
items_intersects(): alogicalvector. -
items_properties(): returns acharactervalue with all properties of all items. -
items_select(): select features from an items object.
Examples
## Not run:
x <- stac("https://brazildatacube.dpi.inpe.br/stac") %>%
stac_search(collections = "CB4-16D-2") %>%
stac_search(datetime = "2020-01-01/2021-01-01", limit = 500) %>%
get_request()
x %>% items_length()
x %>% items_matched()
x %>% items_datetime()
x %>% items_bbox()
x %>% items_fetch()
## End(Not run)
## Not run:
# Defining BDC token
Sys.setenv("BDC_ACCESS_KEY" = "token-123")
# doc_item object
stac("https://brazildatacube.dpi.inpe.br/stac/") %>%
stac_search(collections = "CB4-16D-2", limit = 100,
datetime = "2017-08-01/2018-03-01",
bbox = c(-48.206, -14.195, -45.067, -12.272)) %>%
get_request() %>% items_sign(sign_fn = sign_bdc())
## End(Not run)
## Not run:
# doc_items object
stac("https://brazildatacube.dpi.inpe.br/stac/") %>%
stac_search(collections = "CB4-16D-2", limit = 100,
datetime = "2017-08-01/2018-03-01",
bbox = c(-48.206, -14.195, -45.067, -12.272)) %>%
get_request() %>%
items_filter(properties$`eo:cloud_cover` < 10)
# Example with AWS STAC
stac("https://earth-search.aws.element84.com/v0") %>%
stac_search(collections = "sentinel-s2-l2a-cogs",
bbox = c(-48.206, -14.195, -45.067, -12.272),
datetime = "2018-06-01/2018-06-30",
limit = 500) %>%
post_request() %>%
items_filter(filter_fn = function(x) {x$properties$`eo:cloud_cover` < 10})
## End(Not run)
## Not run:
# doc_items object
stac_item <- stac("https://brazildatacube.dpi.inpe.br/stac/") %>%
stac_search(collections = "CB4-16D-2", limit = 100,
datetime = "2017-08-01/2018-03-01",
bbox = c(-48.206, -14.195, -45.067, -12.272)) %>%
get_request() %>%
items_fetch(progress = FALSE)
stac_item %>% items_reap(c("properties", "datetime"))
# Extract all asset URLs from each item
stac_item %>% items_reap(c("assets", "*"), \(x) x$href)
stac_item %>% items_as_sf()
stac_item %>% items_as_tibble()
stac_item %>% items_select(c(1, 4, 10, 20))
## End(Not run)