diff --git a/reprexes/test-rnet_merge_rsgeo_issue_552.R b/reprexes/test-rnet_merge_rsgeo_issue_552.R index 39e8cdec..2232bf05 100644 --- a/reprexes/test-rnet_merge_rsgeo_issue_552.R +++ b/reprexes/test-rnet_merge_rsgeo_issue_552.R @@ -8,14 +8,18 @@ # l <- sf::read_sf("test_line.geojson") # n_segments <- jsonlite::read_json("n_segments.json", simplifyVector = TRUE) + l <- sf::read_sf("https://github.com/ropensci/stplanr/releases/download/v1.1.2/test_line.geojson") -n_segments <- jsonlite::read_json("https://github.com/ropensci/stplanr/releases/download/v1.1.2/n_segments.json") +n_segments <- jsonlite::read_json("https://github.com/ropensci/stplanr/releases/download/v1.1.2/n_segments.json", simplifyVector = TRUE) + -res_rsgeo <- rsgeo::line_segmentize(l$geometry, n_segments) -length(res_rsgeo) +# extract geometry and convert to rsgeo +geo <- rsgeo::as_rsgeo(sf::st_geometry(l)) + +# segmentize the line strings +res_rsgeo <- rsgeo::line_segmentize(geo, n_segments) # make them into sfc_LINESTRING res <- sf::st_cast(sf::st_as_sfc(res_rsgeo), "LINESTRING") - length(res) sum(n_segments) diff --git a/vignettes/merging-route-networks.Rmd b/vignettes/merging-route-networks.Rmd index 5b1d7f9c..353f766b 100644 --- a/vignettes/merging-route-networks.Rmd +++ b/vignettes/merging-route-networks.Rmd @@ -46,6 +46,9 @@ We pre-processed the input simple geometry to make it even simpler as shown belo # summary(sf::st_length(rnet_x)) plot(sf::st_geometry(rnet_x)) rnet_x = rnet_subset(rnet_x, rnet_y, dist = 20) +names(rnet_x) +# Keep only the id column for x: +rnet_x = rnet_x %>% select(identifier) # nrow(rnet_x) # plot(sf::st_geometry(rnet_x)) rnet_x = rnet_subset(rnet_x, rnet_y, dist = 20, min_length = 5) @@ -141,6 +144,19 @@ sum(rnet_merged$value * sf::st_length(rnet_merged), na.rm = TRUE) sum(rnet_y$value * sf::st_length(rnet_y), na.rm = TRUE) ``` +Let's try joining with a character column: + +```{r} +rnet_y$road_type = sample(c("A", "B", "C"), nrow(rnet_y), replace = TRUE) +funs = list(value = sum, road_type = function(x) { table(x)[[1]] }) +rnet_merged = rnet_merge(sum_flows = FALSE, + rnet_x, + rnet_y, + dist = 20, segment_length = 10, funs = funs, max_angle_diff = 20) +``` + +# 3 km dataset + Now let's testing on 3km dataset ```{r}