rename osem_as_sf to st_as_sf.sensebox

for consistency and better integration with sf
pull/17/head
noerw 7 years ago
parent 2092976f86
commit 2b8762d52c

@ -20,11 +20,12 @@ export(mutate_.osem_measurements)
export(mutate_.sensebox)
export(osem_as_measurements)
export(osem_as_sensebox)
export(osem_as_sf)
export(osem_box)
export(osem_boxes)
export(osem_counts)
export(osem_measurements)
export(osem_phenomena)
export(st_as_sf.osem_measurements)
export(st_as_sf.sensebox)
importFrom(graphics,plot)
importFrom(magrittr,"%>%")

@ -1,16 +1,3 @@
# ==============================================================================
#
#' Convert a \code{sensebox} or \code{osem_measurements} dataframe to an
#' \code{\link[sf]{st_sf}} object.
#'
#' @param x The object to convert
#' @param ... maybe more objects to convert
#' @return The object with an st_geometry column attached.
#' @export
osem_as_sf = function (x, ...) {
sf::st_as_sf(x, ..., coords = c('lon', 'lat'), crs = 4326)
}
# parses from/to params for get_measurements_ and get_boxes_
parse_dateparams = function (from, to) {
from = utc_date(from)

@ -10,7 +10,7 @@ plot.sensebox = function (x, ...) {
}
geom = x %>%
osem_as_sf() %>%
sf::st_as_sf() %>%
sf::st_geometry()
bbox = sf::st_bbox(geom)
@ -74,6 +74,8 @@ summary.sensebox = function(object, ...) {
invisible(object)
}
# ==============================================================================
#
#' Converts a foreign object to an sensebox data.frame.
#' @param x A data.frame to attach the class to
#' @export
@ -92,6 +94,8 @@ mutate_.sensebox = dplyr_class_wrapper(osem_as_sensebox)
#' @export
mutate.sensebox = dplyr_class_wrapper(osem_as_sensebox)
# ==============================================================================
#
#' maintains class / attributes after subsetting
#' @noRd
#' @export
@ -100,3 +104,16 @@ mutate.sensebox = dplyr_class_wrapper(osem_as_sensebox)
mostattributes(s) = attributes(x)
s
}
# ==============================================================================
#
#' Convert a \code{sensebox} dataframe to an \code{\link[sf]{st_sf}} object.
#'
#' @param x The object to convert
#' @param ... maybe more objects to convert
#' @return The object with an st_geometry column attached.
#' @export
st_as_sf.sensebox = function (x, ...) {
sf:::st_as_sf.data.frame(x, ..., coords = c('lon', 'lat'), crs = 4326)
}

@ -34,3 +34,15 @@ mutate.osem_measurements = dplyr_class_wrapper(osem_as_measurements)
s
}
# ==============================================================================
#
#' Convert a \code{osem_measurements} dataframe to an \code{\link[sf]{st_sf}} object.
#'
#' @param x The object to convert
#' @param ... maybe more objects to convert
#' @return The object with an st_geometry column attached.
#' @export
st_as_sf.osem_measurements = function (x, ...) {
sf:::st_as_sf.data.frame(x, ..., coords = c('lon', 'lat'), crs = 4326)
}

@ -1,21 +0,0 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/00utils.R
\name{osem_as_sf}
\alias{osem_as_sf}
\title{Convert a \code{sensebox} or \code{osem_measurements} dataframe to an
\code{\link[sf]{st_sf}} object.}
\usage{
osem_as_sf(x, ...)
}
\arguments{
\item{x}{The object to convert}
\item{...}{maybe more objects to convert}
}
\value{
The object with an st_geometry column attached.
}
\description{
Convert a \code{sensebox} or \code{osem_measurements} dataframe to an
\code{\link[sf]{st_sf}} object.
}

@ -0,0 +1,19 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/measurement_utils.R
\name{st_as_sf.osem_measurements}
\alias{st_as_sf.osem_measurements}
\title{Convert a \code{osem_measurements} dataframe to an \code{\link[sf]{st_sf}} object.}
\usage{
st_as_sf.osem_measurements(x, ...)
}
\arguments{
\item{x}{The object to convert}
\item{...}{maybe more objects to convert}
}
\value{
The object with an st_geometry column attached.
}
\description{
Convert a \code{osem_measurements} dataframe to an \code{\link[sf]{st_sf}} object.
}

@ -0,0 +1,19 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/box_utils.R
\name{st_as_sf.sensebox}
\alias{st_as_sf.sensebox}
\title{Convert a \code{sensebox} dataframe to an \code{\link[sf]{st_sf}} object.}
\usage{
st_as_sf.sensebox(x, ...)
}
\arguments{
\item{x}{The object to convert}
\item{...}{maybe more objects to convert}
}
\value{
The object with an st_geometry column attached.
}
\description{
Convert a \code{sensebox} dataframe to an \code{\link[sf]{st_sf}} object.
}

@ -15,7 +15,7 @@ neverActive = b[is.na(b$lastMeasurement), ] %>% nrow()
b_agg = data.frame(time = Sys.time(), boxcount = nrow(b))
b_agg$model = b$model %>% table() %>% as.list() %>% list()
b_agg$exposure = b$exposure %>% table() %>% as.list() %>% list()
b_agg$geometry = b %>% osem_as_sf() %>% st_geometry() %>% list()
b_agg$geometry = b %>% st_as_sf() %>% st_geometry() %>% list()
b_agg$phenomena = b %>% osem_phenomena() %>% list()
b_agg$active = list(

@ -141,8 +141,7 @@ pm25 = mutate(pm25, invalid = sensorId %in% bad_sensors)
Then plot the measuring locations, flagging the outliers:
```{r}
pm25_sf = osem_as_sf(pm25)
st_geometry(pm25_sf) %>% plot(col = factor(pm25$invalid), axes = T)
st_as_sf(pm25) %>% st_geometry() %>% plot(col = factor(pm25$invalid), axes = T)
```
Removing these sensors yields a nicer time series plot:

Loading…
Cancel
Save