Minimal roman

R-bloggers 2025-11-13

[This article was first published on r.iresmi.net, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

A photo of Jerash’s superb colonnaded cardo maximus is straight in the way that only a Roman road can be

Cardo Maximus, Jerash, Jordan – Public domain by Mustang Joe

Day 11 of 30DayMapChallenge: « Minimal » (previously).

A recent dataset of Roman Empire’s road system has just been published (de Soto et al. 2025) and is updated on Itiner-e where we can download the current GeoJSON. Let’s update an old post.

library(dplyr)library(ggplot2)library(glue)library(sf)library(rnaturalearth)library(rnaturalearthhires)

Data

if (!file.exists("itiner.geojson")) {  download.file("https://itiner-e.org/route-segments/download",                "itiner.geojson")}roads <- read_sf("itiner.geojson") |>   mutate(type = factor(type, levels = c("Main Road",                                        "Secondary Road",                                        "River",                                        "Sea Lane"))) |>   st_transform("EPSG:3035")# map backgroundworld <- ne_countries(scale = 50) 

Map

bb <- st_bbox(roads)ggplot() +  geom_sf(data = world, fill = "snow2", color = "snow2") +  geom_sf(data = roads, aes(color = type, linetype = type, linewidth = type)) +  scale_color_manual(    values = c("Main Road" = "chocolate4",               "Secondary Road" = "chocolate2",               "River" = "steelblue1",               "Sea Lane" = "slategray1")) +  scale_linetype_manual(    values = c("Main Road" = 1,               "Secondary Road" = 1,               "River" = 1,               "Sea Lane" = 2)) +  scale_linewidth_manual(    values = c("Main Road" = .5,               "Secondary Road" = .2,               "River" = .2,               "Sea Lane" = .2)) +  coord_sf(crs = "EPSG:3035",            xlim = bb[c(1, 3)], ylim = bb[c(2, 4)]) +  labs(title = "Roman roads",       caption = glue("https://r.iresmi.net/ - {Sys.Date()}                      {st_crs(roads)$Name}                      data: Itiner-e doi:10.1038/s41597-025-06140-z / Natural Earth")) +  theme_minimal() +  theme(plot.caption = element_text(size = 6,                                     color = "darkgrey"),        legend.position = "bottom")
Map of roman roads
Figure 1: Roman Empire’s road system

References

de Soto, Pau, Adam Pažout, Tom Brughmans, Peter Bjerregaard Vahlstrup, Álvaro Auir, Toon Bongers, Jens Emil Bødstrup Christoffersen, et al. 2025. “Itiner-e: A High-Resolution Dataset of Roads of the Roman Empire.” Scientific Data 12 (1): 1731. https://doi.org/10.1038/s41597-025-06140-z.
To leave a comment for the author, please follow the link and comment on their blog: r.iresmi.net.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Continue reading: Minimal roman