Automate the Delineation of Urban River Spaces
Overview
Provides tools to automate the morphological delineation of riverside urban areas based on a method introduced in Forgaci (2018) doi:10.7480/abe.2018.31. Delineation entails the identification of corridor boundaries, segmentation of the corridor, and delineation of the river space using two-dimensional spatial information from street network data and digital elevation data in a projected CRS. The resulting delineation can be used to characterise spatial phenomena that can be related to the river as a central element.
Added
- A definition of "riverside urban areas" was added in the README.
- The practical usefulness of the morphological approach was explained in the README.
- Test coverage of the
osmandaoimodules was increased. - The "Getting started" vignette was updated with a "Why is consistent delineation important?" section clarifying the problem
rcrispis meant to solve in contrast with alternative approaches. - A note was added in the "Getting started" vignette stating that the workflow can be replicated for any city and river where sufficient data are available.
- Added an algorithm performance test to verify that the full pipeline completes successfully on real-world example data and performs within reasonable bounds.
- Added a test demonstrating that
reproject()yields equivalent results regardless of whether input data are curvilinear (WGS84) or rectilinear (projected). - Distance input preprocessing is now handled by the
preprocess_distance()function. This function returns a plain numeric in meters, regardless of whether the input is provided as aunitsobject, a plain numeric or another vector-like class with numericstorage.mode. geom_delineation()was added as aggplot2-based alternative to theplot()method, returning a list ofgeom_sf()layers that can be added to aggplotobject with+.print()andsummary()methods were added fordelineationobjects.print()gives a compact overview of present layers and their feature counts.summary()additionally reports areas (sqkm) for delineation layers and lengths (km) forriver_centerline.- A
plot()method was created for objects of classdelineation.
Show all changes in 1.0.0Hide the rest of the changes in 1.0.0
- Context-specific messages are now issued in
get_river_aoi(),delineate_corridor(), anddelineate()when lat/lon input is reprojected for buffering, and indelineate()when no CRS is provided and a UTM zone is auto-selected. - Tests were added to
delineate_corridor(),delineate_segments(), anddelineate_riverspace()to verify that geographic (lat/lon) CRS input raises an informative error. - The Rbanism community badge was added in the README.
delineate()now errors early when fewer than two river crossings are found.- rOpenSci reviewers were acknowledged in the package metadata.
- Package logo was added.
- A JOSS paper describing the package was added in
inst/joss/, along with a GitHub Actions workflow to build a draft PDF.
Fixed
- Assertion on CRS input was removed from
get_osm_streets(). CRS input is now checked inas_crs()as in the otherget_osm_*()functions. - Incorrect CRS was fixed in osmdata tests.
- Missing parenthesis was added in warning text in
check_cache(). - Vignette pre-compilation was updated so that srr tags dropped by
knitr::knit()are reinserted into the vignettes. Affected vignettes were also recompiled. - The input
dem_sourceinget_dem()was made case insensitive. - Fixed typos in test statements.
- Corrected documentation for
reproject(): thecrsparameter no longer (incorrectly) listslogicalas an accepted type.crsaccepts numeric/integer, character (e.g. "EPSG:4326") or ansf::crsobject; passingTRUE/FALSEwill fail. - Vignette pre-compilation was updated so that srr tags dropped by
knitr::knit()are reinserted into the vignettes. Affected vignettes were also recompiled. - Documentation of return values in
clear_cache()anddelineate()were made factually consistent with the code.
Changed
- The getting started vignette was updated to use
delineate_city_river()instead of the olddelineate(city_name, river_name, ...)call. - The corridor delineation vignette was updated to use
delineate_city_river()instead of the olddelineate(city_name, river_name, ...)call, and to reflect the currentcorridor_initparameter (replacing the oldmethodargument). The description of the return value was updated to mention thedelineationS3 class and its full set of layers. - The corridor segmentation vignette was updated to accurately describe the default behaviour of
delineate(), to referencedelineate_city_river(), and to remove an unusedget_dem_example_data()call from the setup chunk. - All user-facing
stop(),warning(), andmessage()calls have been migrated tocliequivalents (cli_abort(),cli_warn(),cli_inform()) for consistent output. - The
aoi_buildingsavailability check indelineate()was moved earlier to fail before any computation begins. - The workflow section of the getting started vignette was updated to reflect the latest package design with the five-step workflow: define parameters, acquire data, run delineation, visualize and validate, and export results.
- The README was updated with a link to the getting started vignette when discussing the problem of consistent delineation.
- The OSM retrieval vignette was updated to use the redesigned main functions. UTM CRS is retrieved now implicitly as part of
define_aoi(). - Attach-time
check_cache()was moved behindinteractive(). get_osmdata()was renamed toget_osm()and all other uses ofosmdataandosm_datain object and function names have been consistently renamed toosmthroughout the package to avoid confusions with theosmdatapackage.- The workflow of
delineate()was refactored into four composable functions to reduce parameter complexity and improve step-by-step control: define_aoi()(new): defines the area of interest and all delineation parameters (CRS, buffer sizes, corridor initialisation method) from a city and river name.get_osmdata()andget_dem()was adapted to accept anaoiobject returned bydefine_aoi()instead of individual parameters.delineate(): now accepts theaoiobject, OSM data, and DEM as separate inputs, with a reduced parameter signature.delineate_city_river()(new): convenience wrapper that runs the full workflow from city and river name with default parameters.delineate()returns now an S3 object of classdelineation.as_network()now checks for NAs in non-geometry columns and issues an error, proceeds with a warning, imputes NA values, or ignores them, as specified by the user with a newna_actionparameter.
Removed
- TODOs were moved from released code to GitHub issues.
From NEWS.md in the release
Install
Health
- OK13 OK2026-09-30
- WARNING7 OK, 6 WARNING2026-09-17
- ERROR12 OK, 1 ERROR2026-09-08
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
Show 6 earlier changesHide 6 earlier changes
- OK13 OK2026-06-19
- WARNING12 OK, 1 WARNING2026-06-17
- OK13 OK2026-06-09
- ERROR12 OK, 1 ERROR2026-06-07
- OK13 OK2026-05-12
- ERROR13 OK, 1 ERROR2026-03-10
Documentation
- Help pages
- 87 (47 internal)includes a package overview page
- Examples that run
- 100%38 run in a plain check (33 of them under a condition)
- Exported functions with examples
- 100%
- Documented parameters
- 100%
- Return-value docs
- 100%
- Help pages citing references
- 0%
- 1. The method of delineation HTML
- 2. Getting OSM data for delineation HTML
- 3. Preparing the network for delineation HTML
- 4. Valley delineation HTML
- 5. Corridor delineation HTML
- 6. Corridor segmentation HTML
- 7. Riverspace delineation HTML
- Benchmarking across city-river cases HTML
- Getting started with rcrisp HTML
Downloads
Repository
- PRs merged (all time)
- 97%
- Median days to close, 50 most recently updated closed issues
- 40
- Median days to close, 50 most recently updated closed PRs
- 3
Stars over time
Releases over time
Issues over time
PRs over time
Commits over time
17 development-tooling and community-health practices detected across 8 families in the upstream repository
Checks run against github.com/cityriverspaces/rcrisp on 2026-10-21.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-10-20 · The repository has a site deploy workflow
pkgdown site last built 2026-10-20
Show all practicesHide 4 practices
Dependencies
Code & Tests
Datasets
People & History
Pick two releases to compare their code metrics.
- 1.0.0Latest2026-10-20 · current release · diff ↗ ·
removed 1 export
get_osmdataadded 4 exports
define_aoi, delineate_city_river, geom_delineation, get_osm - 0.3.22026-09-22 · diff ↗
- RR 4.6.0 released · 2026-04-24
- 0.3.12025-11-24 · diff ↗
- 0.3.02025-10-14 · diff ↗ ·
removed 1 export
get_osm_riveradded 2 exports
get_osm_river_centerline, get_osm_river_surface - 0.2.0
- 0.1.42025-07-04 · diff ↗
- 0.1.32025-07-02
- RR 4.5.0 released · 2025-04-11
Package metadata
- First published
- 2025-07-02
- Total releases
- 7 / 1 yrs
- License
- Apache License (>= 2)
- Minimum R
- ≥ 4.1.0
- Bundled data
- 133 KB / 1 file
- Download size
- 5.9 MB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("rcrisp")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
The repository also keeps a CITATION.cff.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-23, which the citation names so these numbers can be found later. More on citing and the projects behind them.