Install Required Libraries

R Markdown

Map 4: Vietnam’s road infrastructure by road type

Figure 3 in the paper byBalboni, C.A., 2021 titled “In harm’s way? infrastructure investments and the persistence of coastal cities” shows a comparison of Vietnam’s road infrastructure in 2000 and 2010. Unfortunately, OpenStreetMap has historical data from 2018 so for the basis of this comparison, we will use 2018 and 2026 data from OSM.

  1. Load Road Network Data and check underlying data
roads_2018 <- st_read("~/Desktop/vietnam-140101-free.shp/gis_osm_roads_free_1.shp")
## Reading layer `gis_osm_roads_free_1' from data source 
##   `/Users/fy/Desktop/vietnam-140101-free.shp/gis_osm_roads_free_1.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 89637 features and 10 fields
## Geometry type: LINESTRING
## Dimension:     XY
## Bounding box:  xmin: 102.1562 ymin: 8.759285 xmax: 109.4536 ymax: 23.47336
## Geodetic CRS:  WGS 84
roads_2026 <- st_read("~/Desktop/vietnam-260124-free.shp/gis_osm_roads_free_1.shp")
## Reading layer `gis_osm_roads_free_1' from data source 
##   `/Users/fy/Desktop/vietnam-260124-free.shp/gis_osm_roads_free_1.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 3086981 features and 10 fields
## Geometry type: LINESTRING
## Dimension:     XY
## Bounding box:  xmin: 102.1097 ymin: 8.42197 xmax: 114.3563 ymax: 23.39969
## Geodetic CRS:  WGS 84
print(paste("2018 roads:", nrow(roads_2018)))
## [1] "2018 roads: 89637"
print(paste("2026 roads:", nrow(roads_2026)))
## [1] "2026 roads: 3086981"
# Check 2018 road types
print("=== 2018 Road Types ===")
## [1] "=== 2018 Road Types ==="
table(roads_2018$fclass)
## 
##      bridleway       cycleway        footway  living_street       motorway 
##             11             54           1620            526            162 
##  motorway_link           path     pedestrian        primary   primary_link 
##            145           1083            189           3642            598 
##    residential      secondary secondary_link        service          steps 
##          32774           4387            493          16421            148 
##       tertiary  tertiary_link          track   track_grade1   track_grade2 
##           4137            260           5870            133             45 
##   track_grade3   track_grade4   track_grade5          trunk     trunk_link 
##             20              6              3           1213            327 
##   unclassified        unknown 
##           9121           6249
# Check 2026 road types
print("=== 2026 Road Types ===")
## [1] "=== 2026 Road Types ==="
table(roads_2026$fclass)
## 
##      bridleway         busway       cycleway        footway  living_street 
##              4             21            856         137646           5151 
##       motorway  motorway_link           path     pedestrian        primary 
##           5951           2688          64006           2630          19967 
##   primary_link    residential      secondary secondary_link        service 
##           5119        1655357          29065           3821         846371 
##          steps       tertiary  tertiary_link          track   track_grade1 
##           2419          50505           2523         145046           1270 
##   track_grade2   track_grade3   track_grade4   track_grade5          trunk 
##            509            801           1096           2938          20413 
##     trunk_link   unclassified        unknown 
##           4908          75453            447

Data Categorizing and Filtering

Based on the paper’s methodology focusing on inter-regional trade and migration, we include:

  1. Motorways (Freeways): National expressways with controlled access
  2. Trunk roads (Dual carriageways): Major trunk roads connecting cities
  3. Primary roads (Major roads): Provincial roads
  4. Secondary & Tertiary roads (Minor roads): District-level roads
  5. Unclassified roads, Track_grade, Unknown, Living Street (Other roads): Minor public roads connecting communities

We exclude the following road types as they do not facilitate inter-regional trade:

Rationale: The paper states roads should cover “the entire national and provincial road networks, and a sizable share of the district network” for analyzing “trade and migration between spatial units.” Residential streets represent intra-neighborhood connectivity, not inter-regional movement.

## [1] "=== 2018 Main Roads ==="
## 
## Dual carriageway          Freeway      Major roads      Minor roads 
##             1540              307             4240             9277 
##      Other roads 
##            16103
## [1] "=== 2026 Main Roads ==="
## 
## Dual carriageway          Freeway      Major roads      Minor roads 
##            25321             8639            25086            85914 
##      Other roads 
##            87686

Plotting of graphs

‘Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.’’’