From 127c8c2bf9773b58d50e1fc45a3ae8e11000b1ed Mon Sep 17 00:00:00 2001 From: RFlx Date: Tue, 16 Jun 2026 12:15:12 +0100 Subject: [PATCH 1/4] migrate package from raster to terra and rename dem_lisbon dataset --- DESCRIPTION | 7 ++-- NAMESPACE | 1 + NEWS.md | 17 +++++++- R/data.R | 4 -- R/slope_get.R | 73 +++++++++++++++++++--------------- R/slopes.R | 53 +++++++++++++++--------- R/zzz.R | 14 +++++++ README.Rmd | 4 +- cran-comments.md | 29 +++++++++----- data-raw/dem_lisbon.R | 52 ++++++++++-------------- data/dem_lisbon_raster.rda | Bin 54192 -> 0 bytes inst/dem_lisbon.tif | Bin 0 -> 76574 bytes man/dem_lisbon.Rd | 18 +++++++++ man/dem_lisbon_raster.Rd | 16 -------- man/elevation_add.Rd | 13 ++---- man/elevation_extract.Rd | 13 +++--- man/elevation_get.Rd | 7 ++-- man/slope_matrix_to_raster.Rd | 9 +++-- man/slope_raster.Rd | 6 +-- man/slope_xyz_simple.Rd | 5 ++- tests/testthat/Rplots.pdf | Bin 0 -> 3611 bytes tests/testthat/test-get.R | 2 +- tests/testthat/test-slopes.R | 6 +-- vignettes/benchmark.Rmd | 29 +++++--------- vignettes/slopes.Rmd | 9 ++--- 25 files changed, 211 insertions(+), 176 deletions(-) create mode 100644 R/zzz.R delete mode 100644 data/dem_lisbon_raster.rda create mode 100644 inst/dem_lisbon.tif create mode 100644 man/dem_lisbon.Rd delete mode 100644 man/dem_lisbon_raster.Rd create mode 100644 tests/testthat/Rplots.pdf diff --git a/DESCRIPTION b/DESCRIPTION index 6450119..f66ed67 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: slopes Title: Calculate Slopes of Roads, Rivers and Trajectories -Version: 1.0.1.9000 +Version: 1.0.2 Authors@R: c( person("Robin", "Lovelace", email = "rob00x@gmail.com", role = c("aut", "cre", "cph"), comment = c(ORCID = "0000-0001-5679-6536")), @@ -25,10 +25,9 @@ BugReports: https://github.com/ropensci/slopes/issues Encoding: UTF-8 LazyData: true Roxygen: list(markdown = TRUE) -RoxygenNote: 7.3.2 Imports: sf, - raster, + terra, methods, pbapply, geodist, @@ -36,7 +35,6 @@ Imports: Depends: R (>= 2.10) Suggests: - terra, knitr, rmarkdown, ceramic, @@ -53,3 +51,4 @@ Suggests: Config/Needs/website: generics VignetteBuilder: knitr Config/testthat/edition: 3 +Config/roxygen2/version: 8.0.0 diff --git a/NAMESPACE b/NAMESPACE index 7d16078..415d49f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,5 +1,6 @@ # Generated by roxygen2: do not edit by hand +export(dem_lisbon) export(elevation_add) export(elevation_extract) export(elevation_get) diff --git a/NEWS.md b/NEWS.md index 50d7962..27f6f0a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,7 +1,22 @@ -# slopes (development version) +# slopes 1.0.2 + +* Migrated from the deprecated `raster` package to `terra` (closes #60). + `terra` is now a hard dependency (`Imports`); `raster` is no longer required. +* `elevation_extract()`, `slope_raster()`, and `elevation_add()` now always use + `terra`. The `terra =` argument is deprecated (with a message) and ignored. +* `elevation_get()` now always returns a `SpatRaster`. The `output_format =` + argument is deprecated and ignored. +* `slope_matrix_to_raster()` and `slope_xyz_simple()` now work with `SpatRaster` + objects. Legacy `Raster*` objects are accepted with an automatic conversion + message for backwards compatibility. +* The bundled dataset has been renamed from `dem_lisbon_raster` to `dem_lisbon` + and is now a `SpatRaster` object (was a `RasterLayer`). +* Fixed CRAN `--run-donttest` failure: the `ceramic`/Mapbox-dependent example in + `elevation_add()` is now wrapped in `\dontrun{}` instead of `\donttest{}` (closes #72). # slopes 1.0.1 + * Package source code now hosted at https://github.com/ropensci/slopes * New documentation section showing how directed routes work: https://docs.ropensci.org/slopes/articles/slopes.html#splitting-the-network diff --git a/R/data.R b/R/data.R index 350177c..d94b1c7 100644 --- a/R/data.R +++ b/R/data.R @@ -3,10 +3,6 @@ #' @format An sf object "cyclestreets_route" -#' Lisbon elevation raster -#' @format A raster object -"dem_lisbon_raster" - #' Lisbon road network #' @format An sf object "lisbon_road_network" diff --git a/R/slope_get.R b/R/slope_get.R index ac62757..3243f27 100644 --- a/R/slope_get.R +++ b/R/slope_get.R @@ -1,31 +1,27 @@ #' Get elevation data for routes #' #' Downloads elevation data using the ceramic package for given routes. +#' Returns a `SpatRaster` object (terra package). #' #' @param routes An sf object containing linestring geometries #' @param ... Additional arguments passed to ceramic::cc_elevation -#' @param output_format Character string specifying output format ("raster" or "terra") -#' @return Elevation raster data covering the routes +#' @param output_format Deprecated. Ignored; always returns a SpatRaster. +#' @return A SpatRaster covering the routes #' @export -elevation_get = function(routes, ..., output_format = "raster") { - if(requireNamespace("ceramic")) { - mid_ext = sf_mid_ext_lonlat(routes) - bw = max(c(mid_ext$width, mid_ext$height)) / 1 # buffer width - suppressWarnings({ - e = ceramic::cc_elevation(loc = mid_ext$midpoint, buffer = bw, ...) - }) - } else { - message("Install the package ceramic") +elevation_get = function(routes, ..., output_format = NULL) { + if (!is.null(output_format)) { + .Deprecated(msg = "The 'output_format' argument is deprecated. elevation_get() now always returns a SpatRaster.") } - crs_routes = sf::st_crs(routes) - if(!requireNamespace("terra", quietly = TRUE)) { - message('install.packages("terra") # for this to work') - } - res = terra::project(e, y = crs_routes$wkt) - if(output_format == "raster") { - res = raster::raster(res) + if (!requireNamespace("ceramic", quietly = TRUE)) { + stop("Install the package ceramic to use elevation_get().") } - res + mid_ext = sf_mid_ext_lonlat(routes) + bw = max(c(mid_ext$width, mid_ext$height)) / 1 # buffer width + suppressWarnings({ + e = ceramic::cc_elevation(loc = mid_ext$midpoint, buffer = bw, ...) + }) + crs_routes = sf::st_crs(routes) + terra::project(e, y = crs_routes$wkt) } #' Extract midpoint and extent from routes in lonlat @@ -49,39 +45,50 @@ sf_mid_ext_lonlat = function(routes) { res } -#' Convert slope matrix to raster +#' Convert slope matrix to SpatRaster #' -#' Converts a slope matrix or checks if input is already a raster. +#' Converts a slope matrix or a legacy RasterLayer to a SpatRaster (terra). +#' Accepts `SpatRaster`, legacy `Raster*`, or a plain matrix. #' -#' @param x A matrix or RasterLayer object -#' @return A RasterLayer object +#' @param x A matrix, SpatRaster, or legacy RasterLayer object +#' @return A SpatRaster object #' @export -slope_matrix_to_raster <- function(x) { # <-- Changed name - if (inherits(x, "Raster")) { +slope_matrix_to_raster <- function(x) { + if (methods::is(x, "SpatRaster")) { return(x) } + if (methods::is(x, "Raster")) { + message("Converting legacy Raster* object to SpatRaster. Consider using terra::rast() directly.") + return(terra::rast(x)) + } if (is.matrix(x)) { - return(raster::raster(x)) + return(terra::rast(x)) } - stop("Input must be a matrix or RasterLayer") + stop("Input must be a matrix, SpatRaster, or legacy RasterLayer") } -#' Extract XYZ coordinates from raster or matrix +#' Extract XYZ coordinates from SpatRaster or matrix #' #' Simplifies raster or matrix data to XYZ coordinate format. +#' Accepts `SpatRaster` (terra), legacy `Raster*` objects, or a plain matrix. #' -#' @param x A RasterLayer or matrix object +#' @param x A SpatRaster, legacy RasterLayer, or matrix object #' @return A data frame with x, y, z coordinates #' @export slope_xyz_simple <- function(x) { - if (inherits(x, "Raster")) { - xy <- raster::xyFromCell(x, 1:raster::ncell(x)) - return(data.frame(x = xy[, 1], y = xy[, 2], z = raster::getValues(x))) + if (methods::is(x, "Raster")) { + message("Converting legacy Raster* object to SpatRaster. Consider using terra::rast() directly.") + x <- terra::rast(x) + } + if (methods::is(x, "SpatRaster")) { + df <- terra::as.data.frame(x, xy = TRUE) + names(df) <- c("x", "y", "z") + return(df) } if (is.matrix(x)) { df <- as.data.frame(as.table(x)) names(df) <- c("y", "x", "z") return(df) } - stop("Input must be a RasterLayer or matrix") + stop("Input must be a SpatRaster, legacy RasterLayer, or matrix") } diff --git a/R/slopes.R b/R/slopes.R index 2921d66..d8ee76a 100644 --- a/R/slopes.R +++ b/R/slopes.R @@ -154,23 +154,26 @@ slope_matrices <- function(m_xyz_split, fun = slope_matrix_weighted, ...) { #' Calculates slope gradients for routes using digital elevation model (DEM) raster data. #' #' @param routes An sf object containing linestring geometries -#' @param dem A raster object containing elevation data +#' @param dem A SpatRaster object (terra package) containing elevation data #' @param lonlat Logical, whether coordinates are longitude/latitude (default: auto-detected) #' @param method Method for raster extraction (default: "bilinear") #' @param fun Function for slope calculation (default: slope_matrix_weighted) -#' @param terra Logical, whether to use terra package (default: auto-detected) +#' @param terra Deprecated. Ignored; terra is always used. #' @param directed Logical, whether to calculate directed slopes (default: FALSE) #' @return Numeric vector of slope values #' @export slope_raster <- function(routes, dem, lonlat = sf::st_is_longlat(routes), method = "bilinear", fun = slope_matrix_weighted, - terra = has_terra() && methods::is(dem, "SpatRaster"), + terra = NULL, directed = FALSE) { + if (!is.null(terra)) { + .Deprecated(msg = "The 'terra' argument is deprecated and ignored. terra is always used.") + } if (is.na(lonlat)) stop("CRS of routes not known. Set CRS with sf::st_crs(routes) = 4326") stop_is_not_linestring(routes) routes <- sf::st_geometry(routes) m <- sf::st_coordinates(routes) - z <- elevation_extract(m, dem, method = method, terra = terra) + z <- elevation_extract(m, dem, method = method) m_xyz_df <- data.frame(x = m[, "X"], y = m[, "Y"], z = z, L1 = m[, "L1"]) slope_xyz(m_xyz_df, fun = fun, lonlat = lonlat, directed = directed) } @@ -202,20 +205,29 @@ slope_xyz <- function(route_xyz, fun = slope_matrix_weighted, lonlat = TRUE, dir #' Extract elevation values from coordinates #' #' Extracts elevation values from a DEM raster at specified coordinate locations. +#' Accepts both `SpatRaster` (terra) and legacy `Raster*` (raster) objects; +#' legacy objects are automatically converted to `SpatRaster`. #' #' @param m Matrix or sf object with coordinates -#' @param dem A raster object containing elevation data +#' @param dem A SpatRaster (or legacy RasterLayer) containing elevation data #' @param method Method for raster extraction (default: "bilinear") -#' @param terra Logical, whether to use terra package (default: auto-detected) +#' @param terra Deprecated. Ignored; terra is always used. #' @return Numeric vector of elevation values #' @export -elevation_extract <- function(m, dem, method = "bilinear", terra = has_terra() && methods::is(dem, "SpatRaster")) { +elevation_extract <- function(m, dem, method = "bilinear", terra = NULL) { + if (!is.null(terra)) { + .Deprecated(msg = "The 'terra' argument is deprecated and ignored. terra is always used.") + } if (any(grepl(pattern = "sf", class(m)))) m <- sf::st_coordinates(m) - if (terra) { - terra::extract(dem, m[, 1:2], method = method)[[1]] - } else { - raster::extract(dem, m[, 1:2], method = method) + if (!methods::is(dem, "SpatRaster")) { + if (requireNamespace("terra", quietly = TRUE)) { + message("Converting legacy Raster* object to SpatRaster. Consider using terra::rast() directly.") + dem <- terra::rast(dem) + } else { + stop("terra package is required. Install it with: install.packages('terra')") + } } + terra::extract(dem, m[, 1:2], method = method)[[1]] } #' Add elevation data to route linestrings @@ -223,15 +235,15 @@ elevation_extract <- function(m, dem, method = "bilinear", terra = has_terra() & #' Adds elevation (Z) coordinates to linestring geometries using DEM data. #' #' @param routes An sf object containing linestring geometries -#' @param dem A raster object containing elevation data (default: NULL for automatic download) +#' @param dem A SpatRaster object containing elevation data (default: NULL for automatic download) #' @param method Method for raster extraction (default: "bilinear") -#' @param terra Logical, whether to use terra package (default: auto-detected) +#' @param terra Deprecated. Ignored; terra is always used. #' @return An sf object with XYZ linestring geometries #' @export #' @examples #' library(sf) #' routes = lisbon_road_network[204, ] -#' dem = dem_lisbon_raster +#' dem = dem_lisbon() #' (r3d = elevation_add(routes, dem)) #' st_z_range(routes) #' st_z_range(r3d) @@ -244,20 +256,23 @@ elevation_extract <- function(m, dem, method = "bilinear", terra = has_terra() & #' plot_slope(r3d_get) #' } #' } -elevation_add <- function(routes, dem = NULL, method = "bilinear", terra = has_terra() && methods::is(dem, "SpatRaster")) { +elevation_add <- function(routes, dem = NULL, method = "bilinear", terra = NULL) { + if (!is.null(terra)) { + .Deprecated(msg = "The 'terra' argument is deprecated and ignored. terra is always used.") + } stopifnotsf(routes) if (is.null(dem)) { - dem <- elevation_get(routes) # Example will be \donttest{} in Rd + dem <- elevation_get(routes) # returns SpatRaster r_original <- routes - routes <- sf::st_transform(routes, raster::crs(dem)) + routes <- sf::st_transform(routes, terra::crs(dem)) suppressWarnings({sf::st_crs(routes) <- sf::st_crs(r_original)}) m <- sf::st_coordinates(routes) mo <- sf::st_coordinates(r_original) - z <- as.numeric(elevation_extract(m, dem, method = method, terra = terra)) + z <- as.numeric(elevation_extract(m, dem, method = method)) m_xyz <- cbind(mo[, 1:2], z) } else { m <- sf::st_coordinates(routes) - z <- as.numeric(elevation_extract(m, dem, method = method, terra = terra)) + z <- as.numeric(elevation_extract(m, dem, method = method)) m_xyz <- cbind(m[, 1:2], z) } n <- nrow(routes) diff --git a/R/zzz.R b/R/zzz.R new file mode 100644 index 0000000..09462cf --- /dev/null +++ b/R/zzz.R @@ -0,0 +1,14 @@ +#' Read the bundled Lisbon DEM as a SpatRaster +#' +#' Returns a `SpatRaster` (terra package) of the Digital Elevation Model +#' for central Lisbon, Portugal, bundled with the slopes package. +#' +#' @return A `SpatRaster` object with 133 rows, 200 columns, and 1 elevation layer. +#' @export +#' @examples +#' dem_lisbon() +dem_lisbon <- function() { + tif <- system.file("dem_lisbon.tif", package = "slopes") + if (!nzchar(tif)) stop("dem_lisbon.tif not found in slopes package installation.") + terra::rast(tif) +} diff --git a/README.Rmd b/README.Rmd index 5be5733..fa93432 100644 --- a/README.Rmd +++ b/README.Rmd @@ -25,7 +25,7 @@ knitr::opts_chunk$set( The **slopes** R package calculates the slope (longitudinal steepness, also known as gradient) of roads, rivers and other linear (simple) features, based on two main inputs: - [vector](https://r.geocompx.org/spatial-class.html) linestring geometries defined by classes in the [`sf`](https://r-spatial.github.io/sf/) package -- [raster](https://r.geocompx.org/spatial-class.html) objects with pixel values reporting average height, commonly known as digital elevation model (**DEM**) datasets, defined by classes in the [`raster`](https://cran.r-project.org/package=raster) or more recent [`terra`](https://rspatial.org/terra) packages +- [raster](https://r.geocompx.org/spatial-class.html) objects with pixel values reporting average height, commonly known as digital elevation model (**DEM**) datasets, defined by classes in the [`terra`](https://rspatial.org/terra) package (`SpatRaster`) Data on slopes are useful in many fields of research, including [hydrology](https://en.wikipedia.org/wiki/Stream_gradient), natural hazards (including [flooding](https://response.reliefweb.int/afghanistan) and [landslide risk management](https://assets.publishing.service.gov.uk/media/57a08d0740f0b652dd0016f4/R7815-ADD017_col.pdf)), recreational and competitive sports such as [cycling](https://theclimbingcyclist.com/gradients-and-cycling-an-introduction/), [hiking](https://trailism.com/trail-grades/), and [skiing](https://www.snowplaza.co.uk/blog/16682-skiing-steeps-what-does-gradient-mean-ski-piste/). Slopes are also also important in some branches of [transport and emissions modelling](https://doi.org/10.1016/j.trpro.2016.05.258) and [ecology](https://doi.org/10.1016/j.ncon.2016.10.001). @@ -119,7 +119,7 @@ With the default argument `dem = NULL`, the function downloads the necessary ele You can also this use a local DEM (`dem = ...`), as shown in the example below: ```{r} -sf_linestring_xyz_local = elevation_add(sf_linestring, dem = dem_lisbon_raster) +sf_linestring_xyz_local = elevation_add(sf_linestring, dem = dem_lisbon()) ``` In both cases you can obtain the average gradient of the linestring with `slope_xyz()` and plot the elevation profile with `plot_slope()` as follows: diff --git a/cran-comments.md b/cran-comments.md index 1094946..a4c47b1 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,15 +1,26 @@ -Updated with DOI not journal's URL. +# slopes 1.0.2 — CRAN resubmission after archival -Removed the CRAN-SUBMISSIONS file. +## Summary of changes -Updated references based on feedback from manual CRAN checks. +The package was archived on 2026-05-24 due to a CRAN check failure (#72). +This submission fixes that issue and also resolves the long-standing issue #60 +(migrate from the deprecated `raster` package to `terra`). -We have updated the URLs to comply with CRAN feedback +### Key changes: +- **Migrated from `raster` to `terra`** (closes #60): `raster` is no longer + developed and was removed from `Imports`. `terra` is now the sole raster + dependency. +- **Fixed CRAN `--run-donttest` failure** (closes #72): The + `elevation_add()` example that triggered `ceramic`/Mapbox downloads is now + wrapped in `\dontrun{}` instead of `\donttest{}`. +- The bundled DEM dataset has been renamed from `dem_lisbon_raster` (a + `RasterLayer`) to `dem_lisbon()` (a function returning a `SpatRaster`). + terra rasters cannot be serialised to `.rda`; shipping as a `.tif` in + `inst/` and exposing via an accessor function is the recommended pattern. -Exported `plot_dz()` to avoid using ::: in examples +## R CMD check results (local, --as-cran) -## R CMD check results +0 errors | 0 warnings | 0 notes -0 errors | 0 warnings | 1 note - -* This is a new release. +Tested on: +- Linux (Ubuntu 24.04), R 4.6.x diff --git a/data-raw/dem_lisbon.R b/data-raw/dem_lisbon.R index 1cca81a..6833b76 100644 --- a/data-raw/dem_lisbon.R +++ b/data-raw/dem_lisbon.R @@ -1,41 +1,29 @@ ## code to prepare `dem_lisbon` dataset goes here +## This script requires internet access and a local copy of the Lisbon road network. +## Run this script manually to regenerate the data object. -remotes::install_github("zonebuilders/zonebuilder") -lisbon_centrepoint = tmaptools::geocode_OSM("lisbon", as.sf = TRUE) -lisbon_1km = stplanr::geo_buffer(shp = lisbon_centrepoint, dist = 1000) -mapview::mapview(lisbon_1km) +# remotes::install_github("zonebuilders/zonebuilder") +# lisbon_centrepoint = tmaptools::geocode_OSM("lisbon", as.sf = TRUE) +# lisbon_1km = stplanr::geo_buffer(shp = lisbon_centrepoint, dist = 1000) +# mapview::mapview(lisbon_1km) + +# Load existing road network to get the bounding box / CRS lisbon_road_network_esri = sf::read_sf("~/wip/pctLisbon-data/Shapefiles/route_segments_gradient2_Zelevation.gpkg") lisbon_1km_projected = sf::st_transform(lisbon_1km, sf::st_crs(lisbon_road_network_esri)) -lisbon_road_network = sf::st_intersection(lisbon_road_network_esri, lisbon_1km_projected) -plot(lisbon_road_network["Avg_Slope"]) -library(dplyr) -lisbon_road_network = lisbon_road_network %>% - dplyr::select(matches("OB|Z|Slope", ignore.case = FALSE)) -usethis::use_data(lisbon_road_network, overwrite = TRUE) -lisbon_road_segment = lisbon_road_network %>% - filter(OBJECTID == 2997) -usethis::use_data(lisbon_road_segment, overwrite = TRUE) -lisbon_road_segment_3d = +# Download and crop DEM with terra download.file("https://github.com/geocompr/d/releases/download/1/r1.zip", "r1.zip") -unzip("r1.zip")dem_lisbon_raster = raster::raster("r1") -dem_lisbon_raster = raster::crop(dem_lisbon_raster, lisbon_1km_projected) -dem_lisbon_raster = raster::trim(dem_lisbon_raster) -raster::crs(dem_lisbon_raster) # no CRS -raster::plot(dem_lisbon_raster) -usethis::use_data(dem_lisbon_raster, overwrite = TRUE) -file.size("data/dem_lisbon_raster.rda") / 1e6 # tiny dataset -unlink("r1", recursive = TRUE) -unlink("r1.zip") +unzip("r1.zip") -# saving alternative formats -dir.create("inst") -# raster::writeRaster(dem_lisbon_raster, filename = "dem_lisbon_raster.tif", options("COMPRESS=DEFLATE"), overwrite = TRUE, format = ".tif") -raster::writeRaster(dem_lisbon_raster, "inst/dem_lisbon_raster.asc", overwrite = TRUE) -file.size("inst/dem_lisbon_raster.asc") / 1e6 # large, so deleted +dem_lisbon = terra::rast("r1/hdr.adf") +dem_lisbon = terra::crop(dem_lisbon, terra::ext(terra::vect(lisbon_1km_projected))) +dem_lisbon = terra::trim(dem_lisbon) +terra::crs(dem_lisbon) # check CRS +terra::plot(dem_lisbon) -# With terra -lisbon_road_network_terra = terra::vect("~/wip/pctLisbon-data/Shapefiles/route_segments_gradient2_Zelevation.gpkg") -dem_lisbon_terra = terra::rast("r1/hdr.adf") -dem_lisbon_terra = terra::crop(dem_lisbon_terra, terra::ext(lisbon_road_network_terra)) +usethis::use_data(dem_lisbon, overwrite = TRUE) +file.size("data/dem_lisbon.rda") / 1e6 # tiny dataset +# Clean up +unlink("r1", recursive = TRUE) +unlink("r1.zip") diff --git a/data/dem_lisbon_raster.rda b/data/dem_lisbon_raster.rda deleted file mode 100644 index 5de7cf971751598cf040d64c49e4f9b57d83fb5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54192 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≷vRZFt#pd3cpgK#4xD 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
UuOV9+=0a7T9RTwHG%?6~UH%2IhW#k*Kp% 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 FEdOQg=uZFu diff --git a/inst/dem_lisbon.tif b/inst/dem_lisbon.tif new file mode 100644 index 0000000000000000000000000000000000000000..dd4516b3d14a909abb93ffd6bee41d9d818c4c09 GIT binary patch literal 76574 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

Y5z)W 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 Yk_ZzfGT 0.9975) diff --git a/vignettes/benchmark.Rmd b/vignettes/benchmark.Rmd index eb911cd..57b0fb4 100644 --- a/vignettes/benchmark.Rmd +++ b/vignettes/benchmark.Rmd @@ -17,20 +17,19 @@ knitr::opts_chunk$set( ```{r setup} library(slopes) library(bench) -library(raster) ``` # Performance -A benchmark can reveal how many route gradients can be calculated per second: +A benchmark can reveal how many route gradients can be calculated per second +using different interpolation methods: ```{r, results='hide'} -e = dem_lisbon_raster +e = dem_lisbon() r = lisbon_road_network -et = terra::rast(e) res = bench::mark(check = FALSE, - slope_raster = slope_raster(r, e), - slope_terra = slope_raster(r, et) + bilinear = slope_raster(r, e), + simple = slope_raster(r, e, method = "simple") ) ``` @@ -45,27 +44,21 @@ That is approximately round(res$`itr/sec` * nrow(r)) ``` -routes per second using the `raster` and `terra` (the default if installed, using `RasterLayer` and native `SpatRaster` objects) packages to extract elevation estimates from the raster datasets, respectively. - -The message: use the `terra` package to read-in DEM data for slope extraction if speed is important. +routes per second using `bilinear` and `simple` interpolation methods, respectively. To go faster, you can chose the `simple` method to gain some speed at the expense of accuracy: ```{r, results='hide'} -e = dem_lisbon_raster -r = lisbon_road_network -res = bench::mark(check = FALSE, - bilinear1 = slope_raster(r, e), - bilinear2 = slope_raster(r, et), - simple1 = slope_raster(r, e, method = "simple"), - simple2 = slope_raster(r, et, method = "simple") +res2 = bench::mark(check = FALSE, + bilinear = slope_raster(r, e, method = "bilinear"), + simple = slope_raster(r, e, method = "simple") ) ``` ```{r} -res +res2 ``` ```{r} -round(res$`itr/sec` * nrow(r)) +round(res2$`itr/sec` * nrow(r)) ``` diff --git a/vignettes/slopes.Rmd b/vignettes/slopes.Rmd index 7e26fbe..e0ee341 100644 --- a/vignettes/slopes.Rmd +++ b/vignettes/slopes.Rmd @@ -54,7 +54,7 @@ usethis::edit_r_environ() ## Elevation - `elevation_add()` Take a linestring and add a third dimension (z) to its coordinates -- `elevation_get()` Get elevation data from hosted maptile services (returns a raster) +- `elevation_get()` Get elevation data from hosted maptile services (returns a `SpatRaster`) - `elevation_extract()` Extract elevations from coordinates ## Slope calculation @@ -95,11 +95,10 @@ First, load the necessary packages and data: ```{r} library(slopes) library(sf) -library(raster) # Load example data data(lisbon_route) -data(dem_lisbon_raster) +dem_lisbon = dem_lisbon() ``` ## Add elevation to a linestring @@ -107,7 +106,7 @@ data(dem_lisbon_raster) If you have a 2D linestring and a DEM, you can add elevation data to the linestring using `elevation_add()`: ```{r} -sf_linestring_xyz_local = elevation_add(lisbon_route, dem = dem_lisbon_raster) +sf_linestring_xyz_local = elevation_add(lisbon_route, dem = dem_lisbon) head(sf::st_coordinates(sf_linestring_xyz_local)) ``` @@ -149,7 +148,7 @@ First, let's segment the `lisbon_route`: lisbon_route_segments = sf::st_segmentize(lisbon_route, dfMaxLength = 100) # Arbitrary length lisbon_route_segments = sf::st_cast(lisbon_route_segments, "LINESTRING") # Add elevation to segments -lisbon_route_segments_xyz = elevation_add(lisbon_route_segments, dem = dem_lisbon_raster) +lisbon_route_segments_xyz = elevation_add(lisbon_route_segments, dem = dem_lisbon) ``` Now calculate the slope for each segment: From ffb8f198a6aa0d2ce3863908a3ac0259dac68a5d Mon Sep 17 00:00:00 2001 From: RFlx Date: Tue, 16 Jun 2026 12:27:10 +0100 Subject: [PATCH 2/4] migrate dem_lisbon function from zzz.R to data.R #60 --- R/data.R | 15 +++++++++++++++ R/zzz.R | 14 -------------- 2 files changed, 15 insertions(+), 14 deletions(-) delete mode 100644 R/zzz.R diff --git a/R/data.R b/R/data.R index d94b1c7..da65f2a 100644 --- a/R/data.R +++ b/R/data.R @@ -1,4 +1,19 @@ +#' Read the bundled Lisbon DEM as a SpatRaster +#' +#' Returns a `SpatRaster` (terra package) of the Digital Elevation Model +#' for central Lisbon, Portugal, bundled with the slopes package. +#' +#' @return A `SpatRaster` object with 133 rows, 200 columns, and 1 elevation layer. +#' @export +#' @examples +#' dem_lisbon() +dem_lisbon <- function() { + tif <- system.file("dem_lisbon.tif", package = "slopes") + if (!nzchar(tif)) stop("dem_lisbon.tif not found in slopes package installation.") + terra::rast(tif) +} + #' Cycle route data #' @format An sf object "cyclestreets_route" diff --git a/R/zzz.R b/R/zzz.R deleted file mode 100644 index 09462cf..0000000 --- a/R/zzz.R +++ /dev/null @@ -1,14 +0,0 @@ -#' Read the bundled Lisbon DEM as a SpatRaster -#' -#' Returns a `SpatRaster` (terra package) of the Digital Elevation Model -#' for central Lisbon, Portugal, bundled with the slopes package. -#' -#' @return A `SpatRaster` object with 133 rows, 200 columns, and 1 elevation layer. -#' @export -#' @examples -#' dem_lisbon() -dem_lisbon <- function() { - tif <- system.file("dem_lisbon.tif", package = "slopes") - if (!nzchar(tif)) stop("dem_lisbon.tif not found in slopes package installation.") - terra::rast(tif) -} From 8232b7f1e0ce13e61b92090316c204aba4e9d0a4 Mon Sep 17 00:00:00 2001 From: RFlx Date: Tue, 16 Jun 2026 17:29:45 +0100 Subject: [PATCH 3/4] remove deprecated output_format argument from elevation_get --- R/slope_get.R | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/R/slope_get.R b/R/slope_get.R index 3243f27..7b7d57e 100644 --- a/R/slope_get.R +++ b/R/slope_get.R @@ -5,13 +5,9 @@ #' #' @param routes An sf object containing linestring geometries #' @param ... Additional arguments passed to ceramic::cc_elevation -#' @param output_format Deprecated. Ignored; always returns a SpatRaster. #' @return A SpatRaster covering the routes #' @export -elevation_get = function(routes, ..., output_format = NULL) { - if (!is.null(output_format)) { - .Deprecated(msg = "The 'output_format' argument is deprecated. elevation_get() now always returns a SpatRaster.") - } +elevation_get = function(routes, ...) { if (!requireNamespace("ceramic", quietly = TRUE)) { stop("Install the package ceramic to use elevation_get().") } From 153d6ae2f8612160f0dfd9ad6582e71d55c8d4ef Mon Sep 17 00:00:00 2001 From: RFlx Date: Tue, 16 Jun 2026 17:32:15 +0100 Subject: [PATCH 4/4] update data documentation source and remove deprecated output_format parameter from elevation_get --- man/dem_lisbon.Rd | 2 +- man/elevation_get.Rd | 4 +--- tests/testthat/Rplots.pdf | Bin 3611 -> 3611 bytes 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/man/dem_lisbon.Rd b/man/dem_lisbon.Rd index 02a36d8..2d05393 100644 --- a/man/dem_lisbon.Rd +++ b/man/dem_lisbon.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/zzz.R +% Please edit documentation in R/data.R \name{dem_lisbon} \alias{dem_lisbon} \title{Read the bundled Lisbon DEM as a SpatRaster} diff --git a/man/elevation_get.Rd b/man/elevation_get.Rd index c478276..072fb58 100644 --- a/man/elevation_get.Rd +++ b/man/elevation_get.Rd @@ -4,14 +4,12 @@ \alias{elevation_get} \title{Get elevation data for routes} \usage{ -elevation_get(routes, ..., output_format = NULL) +elevation_get(routes, ...) } \arguments{ \item{routes}{An sf object containing linestring geometries} \item{...}{Additional arguments passed to ceramic::cc_elevation} - -\item{output_format}{Deprecated. Ignored; always returns a SpatRaster.} } \value{ A SpatRaster covering the routes diff --git a/tests/testthat/Rplots.pdf b/tests/testthat/Rplots.pdf index ea358485676d2500b0acaf0b504161a9136c3e30..2835fe94d255fe17c60cb395fe98a73d1778ff8d 100644 GIT binary patch delta 25 ccmbO&Gh1eY6|1?ifsxTfdvOS3WAp)D09vvJ{{R30 delta 25 ccmbO&Gh1eY6|0efrK!P0dvOS3WAp)D09wcg0{{R3