rcrisp provides tools to automate the morphological delineation of riverside urban areas following a method developed in Forgaci (2018, pp. 88–89). The method is based on the premise that analyses of riverside urban phenomena are often done without a clear and consistent spatial definition of the area of interest and that a morphological delineation can provide a more objective and comparable approach.
Accordingly, the method proposes a hierarchical delineation of four spatial units: the river valley, the river corridor, the corridor segments and the river space. These units are defined based on the combined morphologies of the river valley and urban form. The resulting delineations can be used in any downstream analysis of riverside urban areas that can benefit from consistent and comparable spatial units, including land use, accessibility, and ecosystem services assessments.
The package includes functions to delineate the river valley, the river corridor, the corridor segments, and the river space (i.e., the area between the riverbanks and the first line of buildings) as well as an all-in-one function that runs all desired delineations. The package also includes functions to download and preprocess OpenStreetMap (OSM) and global Digital Elevation Model (DEM) data, which are required as input data for the delineation process.
Workflow at a glance
- (Optionally) get OSM and DEM base layers
- Run the all-in-one
delineate()
or delineation-specificdelineate_*()
functions to compute valley, corridor, segments, and/or river space - Visualize/export results for downstream analysis
See the Getting started vignette for further details about the purpose of the package, an end-to-end example, data requirements, and indication of use cases.
Installation
You can install the released version of rcrisp from CRAN with:
install.packages("rcrisp")
You can install the development version of rcrisp from GitHub with:
# install.packages("pak")
pak::pak("CityRiverSpaces/rcrisp")
Example
This is a basic example which shows you how to solve a common problem:
library(rcrisp)
# Set location parameters
city_name <- "Bucharest"
river_name <- "Dâmbovița"
epsg_code <- 32635
# Delineate river corridor
bd <- delineate(city_name, river_name, segments = TRUE)
# Get base layers for plotting
bb <- get_osm_bb(city_name)
streets <- get_osm_streets(bb, epsg_code)$geometry
railways <- get_osm_railways(bb, epsg_code)$geometry
# Plot results
plot(bd$corridor)
plot(railways, col = "darkgrey", add = TRUE, lwd = 0.5)
plot(streets, add = TRUE)
plot(bd$segments, border = "orange", add = TRUE, lwd = 3)
plot(bd$corridor, border = "red", add = TRUE, lwd = 3)
Contributing
rcrisp is in a stable state of development, with some degree of active subsequent development as envisioned by the primary authors.
We also look very much forward to contributions. See the Contributing Guide for further details.
This package is released with a Contributor Code of Conduct. By contributing to this project you agree to abide by its terms.