Skip to content

Commit

Permalink
incorporate clean of unecessaty nodes in targets
Browse files Browse the repository at this point in the history
#1
added option to re_clean osm if needed
  • Loading branch information
temospena committed Feb 22, 2024
1 parent 3a621ba commit d6753d9
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 22 deletions.
15 changes: 13 additions & 2 deletions R/functions.R
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,10 @@ get_osm = function(CITYlimit, CITY) {

# clean_osm ---------------------------------------------------------------

clean_osm = function(road_network, CITY) {
clean_osm = function(road_network, CITY, build_osm) {

if(file.exists(paste0("outputdata/", CITY, "/road_network_clean.shp"))){
if(build_osm == FALSE &
file.exists(paste0("outputdata/", CITY, "/road_network_clean.shp"))){

road_network_clean = sf::st_read(paste0("outputdata/", CITY, "/road_network_clean.shp"), quiet = TRUE)

Expand Down Expand Up @@ -165,6 +166,16 @@ clean_osm = function(road_network, CITY) {

road_network_clean = sf::st_read(output[["output"]][1])
# %>% select(-fid_2)

# cleaning the unnecessary nodes, using tidygraph and sfnetworks
road_network_clean = as_sfnetwork(road_network_clean)

road_network_clean = convert(road_network_clean, to_spatial_smooth) |>
activate(edges) |>
as_tibble() |>
select(cat, osm_id, highway, geometry) |>
mutate(edgeID = c(1:n())) |>
st_as_sf()

st_write(road_network_clean, output_path, delete_dsn = TRUE)

Expand Down
10 changes: 5 additions & 5 deletions _targets.R
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@


# Set defaults HERE ######################
CITY_input = "Lisboa"
cellsize_input = c(500, 500)
square_input = FALSE #TRUE = squares, FALSE = hexagons

CITY_input = "Almada"
cellsize_input = c(200, 200)
square_input = TRUE #TRUE = squares, FALSE = hexagons
build_osm = TRUE #clean osm road network again?

#########################################

Expand Down Expand Up @@ -62,7 +62,7 @@ list(
command = get_osm(CITYlimit, CITY)),
tar_target(
name = road_network_clean,
command = clean_osm(road_network, CITY)),
command = clean_osm(road_network, CITY, build_osm)),
tar_target(
name = centrality_nodes,
command = get_centrality(road_network_clean, CITY)),
Expand Down
42 changes: 27 additions & 15 deletions code/centrality.R
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,6 @@ road_network = st_read("database/lisbon_network_vclean.gpkg") #or https://github
# road_network = st_read("database/old_network/RedeViariaLisboa_osm_Setores/RedeViariaLisboa_osm_Setores.shp")
# road_network = st_transform(road_network, 3857) # Project

# TESTE rede limpa osm targets
road_network = st_read("outputdata/Lisboa/road_network_clean.shp")



net = as_sfnetwork(road_network)
smoothed = convert(net, to_spatial_smooth)

nodes_smoothed = smoothed %>%
activate(nodes) %>%
as_tibble() |>
st_as_sf(coords = c('X', 'Y')) %>%
st_set_crs(st_crs(edges))




# create a road network graph ------------------------------------------------------------
Expand Down Expand Up @@ -172,3 +157,30 @@ summary(centrality_grid$closeness)
# 0.0000000 0.0000016 0.0000025 0.0014170 0.0000033 1.0000000 gabriel

saveRDS(centrality_grid, "database/centrality_grid.Rds")




# clean unnecessary nodes -------------------------------------------------

# TESTE rede limpa osm targets
road_network = st_read("outputdata/Lisboa/road_network_clean.shp")

net = as_sfnetwork(road_network)

nodes_smoothed = convert(net, to_spatial_smooth) |>
activate(nodes) |>
as_tibble() |>
st_as_sf() |>
rename(nodeID = .tidygraph_node_index)

edges_smoothed = convert(net, to_spatial_smooth) |>
activate(edges) |>
as_tibble() |>
select(cat, osm_id, highway, geometry) |>
mutate(edgeID = c(1:n())) |>
st_as_sf()

mapview::mapview(edges_smoothed, zcol="edgeID")

st_write(edges_smoothed, "outputdata/edges_smoothed.shp", delete_dsn = TRUE)

0 comments on commit d6753d9

Please sign in to comment.