【R】最短ドライブ距離の計算

こちらを参考に表題を実施。

library(dodgr)

class (hampi)
#> [1] "sf"         "data.frame"
dim (hampi)
#> [1] 203  15
graph <- weight_streetnet (hampi, wt_profile = "foot")
class (graph)
#> [1] "data.frame"      "dodgr_streetnet"
dim (graph)
#> [1] 5973   15

head(graph)

  

library(tidyverse, quietly=T) # data processing
library(osmdata, quietly=T) # load osm data
library(sf, quietly=T) # use spatial vector data 
library(dodgr, quietly=T) # driving distance
library(geosphere, quietly=T) # aerial distance
library(classInt, quietly=T) # legend
library(extrafont, quietly=T) # font

set.seed(20210618)

#download official 2021 Serbian census circles
u <- "https://github.com/justinelliotmeyers/Official_Serbia_2021_Administrative_Boundaries/raw/main/popisni_krug-gpkg.zip"
download.file(u, basename(u), mode="wb")
unzip("popisni_krug-gpkg.zip")

#load census circles
pk <- st_read(paste0(getwd(), "/tmp/data/ready/pk/", "popisni_krug.gpkg"), stringsAsFactors = FALSE) %>% 
  st_transform(4326) %>% 
  st_as_sf()

# define Belgrade's bounding box based on ggmap's bounding box
bg_map <- ggmap::get_map(getbb("Belgrade"), 
                         maptype = "toner-lite", 
                         source = "stamen", 
                         color="bw", 
                         force=T)

bg_bbox <- attr(bg_map, 'bb')

bbox <- c(xmin=bg_bbox[,2], 
          ymin= bg_bbox[,1], 
          xmax= bg_bbox[,4],
          ymax=bg_bbox[,3])

#filter Belgrade
pkb <- st_crop(pk, bbox)
plot(pkb["objectid"])

Add a Comment

メールアドレスが公開されることはありません。