osem_measurements | R Documentation |
Measurements can be retrieved either for a set of boxes, or through a spatial
bounding box filter. To get all measurements, the default
function applies
a bounding box spanning the whole world.
osem_measurements(x, ...)
## Default S3 method:
osem_measurements(x, ...)
## S3 method for class 'bbox'
osem_measurements(
x,
phenomenon,
exposure = NA,
from = NA,
to = NA,
columns = NA,
...,
endpoint = osem_endpoint(),
progress = TRUE,
cache = NA
)
## S3 method for class 'sensebox'
osem_measurements(
x,
phenomenon,
exposure = NA,
from = NA,
to = NA,
columns = NA,
...,
endpoint = osem_endpoint(),
progress = TRUE,
cache = NA
)
x |
Depending on the method, either
|
... |
see parameters below |
phenomenon |
The phenomenon to retrieve measurements for |
exposure |
Filter sensors by their exposure ('indoor', 'outdoor', 'mobile') |
from |
A |
to |
A |
columns |
Select specific column in the output (see openSenseMap API documentation) |
endpoint |
The URL of the openSenseMap API |
progress |
Whether to print download progress information |
cache |
Whether to cache the result, defaults to false. If a valid path to a directory is given, the response will be cached there. Subsequent identical requests will return the cached data instead. |
An osem_measurements data.frame
containing the
requested measurements
osem_measurements(default)
: Get measurements from all senseBoxes.
osem_measurements(bbox)
: Get measurements by a spatial filter.
osem_measurements(sensebox)
: Get measurements from a set of senseBoxes.
openSenseMap API documentation (web)
osem_box
osem_boxes
osem_clear_cache
## Not run:
# get measurements from all boxes on the phenomenon 'PM10' from the last 48h
m = osem_measurements('PM10')
# get measurements from all mobile boxes on the phenomenon 'PM10' from the last 48h
m = osem_measurements('PM10', exposure = 'mobile')
# get measurements and cache them locally in the working directory.
# subsequent identical requests will load from the cache instead, ensuring
# reproducibility and saving time and bandwidth!
m = osem_measurements('PM10', exposure = 'mobile', cache = getwd())
m = osem_measurements('PM10', exposure = 'mobile', cache = getwd())
# get measurements returning a custom selection of columns
m = osem_measurements('PM10', exposure = 'mobile', columns = c(
'value',
'boxId',
'sensorType',
'lat',
'lon',
'height'
))
## End(Not run)
## Not run:
# get measurements from sensors within a custom WGS84 bounding box
bbox = structure(c(7, 51, 8, 52), class = 'bbox')
m = osem_measurements(bbox, 'Temperatur')
# construct a bounding box 12km around berlin using the sf package,
# and get measurements from stations within that box
library(sf)
library(units)
bbox2 = st_point(c(13.4034, 52.5120)) %>%
st_sfc(crs = 4326) %>%
st_transform(3857) %>% # allow setting a buffer in meters
st_buffer(set_units(12, km)) %>%
st_transform(4326) %>% # the opensensemap expects WGS 84
st_bbox()
m = osem_measurements(bbox2, 'Temperatur', exposure = 'outdoor')
# construct a bounding box from two points,
# and get measurements from stations within that box
points = st_multipoint(matrix(c(7.5, 7.8, 51.7, 52), 2, 2))
bbox3 = st_bbox(points)
m = osem_measurements(bbox2, 'Temperatur', exposure = 'outdoor')
## End(Not run)
# get measurements from a set of boxes
b = osem_boxes(grouptag = 'ifgi')
m4 = osem_measurements(b, phenomenon = 'Temperatur')
# ...or a single box
b = osem_box('57000b8745fd40c8196ad04c')
m5 = osem_measurements(b, phenomenon = 'Temperatur')
# get measurements from a single box on the from the last 40 days.
# requests are paged for long time frames, so the APIs limitation
# does not apply!
library(lubridate)
m1 = osem_measurements(
b,
'Temperatur',
to = now(),
from = now() - days(40)
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.