inst/doc/stplanr.R

## ----include=FALSE------------------------------------------------------------
library(stplanr)
knitr::opts_chunk$set(eval = curl::has_internet())

## ----eval=FALSE---------------------------------------------------------------
#  install.packages("stplanr")

## ----eval=FALSE---------------------------------------------------------------
#  remotes::install_github("ropensci/stplanr")

## -----------------------------------------------------------------------------
library(stplanr)

## -----------------------------------------------------------------------------
data(package = "stplanr")$result[, "Item"]

## -----------------------------------------------------------------------------
od_eg <- read.csv(
  text =
  "origin, destination, V1, V2
  1, 2, 100, 3
  1, 3, 50, 5"
)
knitr::kable(od_eg)

## -----------------------------------------------------------------------------
head(flow[c(1:3, 12)])

## -----------------------------------------------------------------------------
head(cents_sf)

## -----------------------------------------------------------------------------
library(sf)
class(cents_sf)
plot(cents_sf)

## -----------------------------------------------------------------------------
flow_single_line <- od_data_sample[2:3, ] # select only the first line
desire_line_single <- od2line(flow = flow_single_line, zones = cents_sf)

## -----------------------------------------------------------------------------
plot(desire_line_single$geometry, lwd = 5)
plot(cents_sf, add = TRUE, cex = 5)

## -----------------------------------------------------------------------------
l <- od2line(flow = flow, zones = cents_sf)
# identify 'intrazone flows'
sel_intra <- l$Area.of.residence == l$Area.of.workplace
# find distances
l_distances <- geo_length(l)
summary(l_distances)
sel_dist <- l_distances > 2000
sel <- !sel_intra & sel_dist
l <- l[sel, ]

## ----eval=FALSE---------------------------------------------------------------
#  plot(l)

## ----echo=FALSE---------------------------------------------------------------
l_bb <- sf::st_bbox(l)
# l_bb[1] <- NA
no_na_in_bb <- !any(is.na(as.numeric(l_bb)))
knitr::opts_chunk$set(eval = no_na_in_bb)

## -----------------------------------------------------------------------------
lwd <- l$All / mean(l$All)
plot(st_geometry(l), lwd = lwd)

## -----------------------------------------------------------------------------
plot(l["Bicycle"], lwd = lwd)

## ----eval=FALSE---------------------------------------------------------------
#  # if the next line returns FALSE the code will not run
#  r <- route(l = l, route_fun = cyclestreets::journey)

## ----out.width="500", out.height="500", eval=FALSE----------------------------
#  r <- stplanr::routes_fast_sf
#  plot(r$geometry, lwd = lwd * 3, reset = FALSE)

## ----out.width="500", out.height="500", echo=FALSE, eval=FALSE----------------
#  # alternative showing buildings:
#  r_sf <- st_sf(l, geometry = st_as_sfc(r))
#  if (require(osmdata)) {
#    buildings <- opq(st_bbox(l)) %>%
#      add_osm_feature(key = "building", value = "industrial") %>%
#      osmdata_sf()
#  }
#  plot(r_sf["Bicycle"], lwd = lwd * 3, reset = FALSE)
#  plot(st_geometry(buildings$osm_polygons), col = "grey", add = TRUE)

Try the stplanr package in your browser

Any scripts or data that you put into this service are public.

stplanr documentation built on Sept. 11, 2024, 5:22 p.m.