Phoenician colonization R-Bloggers

Phoenician colonization R-Bloggers

[This article was first published on r.iresmi.net, and kindly contributed to R-bloggers]. (You can report problems here about the content on this page)


Do you want to share your content on R-bloggers? Click here if you have a blog, or here If you don’t.

Astaré Figure – Archaeological Museum of Seviilla, Public Domain, via Wikimediaum Commons

I was reading Phoenician colonization from its origins until the 7th century BC (Manzano-Agugliaro et al. 2025) And thought it was an interesting dataset, but unfortunately: it is divided into four tables, behind a JavaScript disposal (WTF Taylor & Francis?) And with DMS coordinates (including typos and special characters) … so not easily reusable.

Let us start building an accessible data set.

Configuration

library(readr)
library(purrr)
library(dplyr)
library(stringr)
library(ggplot2)
library(forcats)
library(janitor)
library(sf)
library(rnaturalearth)
library(glue)
library(parzer)
library(leaflet)

sf_use_s2(FALSE)
knitr::knit_hooks$set(crop = knitr::hook_pdfcrop)

We must download the CSVs manually (parts 1″ 2″ 3 And 4) Because there is an antisciplical mechanism … then a little cleaning and coordinating parsing with the very nice {Parzer} Package we have a spatial object built with {SF}.

sources = list(
  c_10_bce = "data_raw/T0001-10.1080_17445647.2025.2528876.csv",
  c_09_bce = "data_raw/T0002-10.1080_17445647.2025.2528876.csv",
  c_08_bce = "data_raw/T0003-10.1080_17445647.2025.2528876.csv",
  c_07_bce = "data_raw/T0004-10.1080_17445647.2025.2528876.csv"
)

phoenician <- sources |> 
  imap(\(f, c) { read_csv(f) |>
         mutate(century_start_bce = parse_number(c))}) |> 
  list_rbind() |> 
  clean_names() |> 
  mutate(lon = parse_lon(str_replace(longitude_e, "−", "-")),
         lat = parse_lat(str_replace(latitude_n, ",", "."))) |> 
  st_as_sf(coords = c("lon", "lat"), crs = "EPSG:4326")

The resulting layer, mapped on one Natural Background, seems good.

world <- ne_countries() |> 
  st_intersection(phoenician |> 
                    st_bbox() |> 
                    st_as_sfc() |> 
                    st_buffer(4, joinStyle = "MITRE", mitreLimit = 10))

phoenician |> 
  ggplot() +
  geom_sf(data = world) +
  geom_sf(aes(color = fct_rev(as_factor(century_start_bce)))) +
  theme_void() +
  labs(title = "Phoenician colonies",
       subtitle = "10th c. BCE - 7th c. BCE",
       color = "from\n(century BCE)",
       caption = glue("data doi:10.1080/17445647.2025.2528876
                      https://r.iresmi.net/ {Sys.Date()}")) +
  theme_minimal() +
  theme(plot.caption = element_text(size = 6),
        plot.background = element_rect(fill = "white"))
A map of Phoenician colonies between 10 BC. And 7 BC. From the Levantine area to the Atlantic Ocean

Figure 1: Phoenician colonies

Do you want more interactivity?
With {folder} …

phoenician |> 
  leaflet() |> 
  addTiles(attribution = r"(
           r.iresmi.net.
           data: Manzano-Agugliaro et al. 2025. doi:10.1080/17445647.2025.2528876;
           map: OpenStreetMap)") |> 
  addCircleMarkers(popup = ~ glue("{settlement}
from {century_start_bce}th c. BCE \\ {if_else(!is.na(centuries_of_subsequent_permanence), paste0('
to ', centuries_of_subsequent_permanence), '')}"), clusterOptions = markerClusterOptions())

Figure 2: Phoenician colonies (interactive)

We can build a clean geopackage (and a CSV in case that):

phoenician |> 
  st_write(
    "data/phoenician_settlements.gpkg",
    layer = "phoenician_settlements",
    layer_options = c(
      "IDENTIFIER=Phoenician colonization from its origin to the 7th century BC",
      glue("DESCRIPTION=Data from: 
            Manzano-Agugliaro, F., Marín-Buzón, C., Carpintero-Lozano, S., & López-Castro, J. L. (2025). \\
            Phoenician colonization from its origin to the 7th century BC. Journal of Maps, 21(1). \\
            https://doi.org/10.1080/17445647.2025.2528876
           
            Available on https://doi.org/10.5281/zenodo.17141060
           
            Extracted on {Sys.Date()} – https://r.iresmi.net/posts/2025/phoenician")),
    delete_layer = TRUE, 
    quiet = TRUE)

phoenician |> 
  select(-c(latitude_n, longitude_e)) |> 
  bind_cols(st_coordinates(phoenician)) |> 
  rename(lon_wgs84 = X,
         lat_wgs84 = Y) |> 
  st_drop_geometry() |> 
  write_csv("data/phoenician_settlements.csv")

And finally we store them in a public repository; They are now available on Zenodo And therefore even one DOI: 10,5281 / Zenodo.17141060

References

Manzano-aguliaro, Francisco, Carmen Marín-Buzón, Susana Carpintero-Lazano and José Luis López-Castro. 2025. “Phoenician colonization from its origin to the 7th century BC. “ Journal of Maps 21 (1): 2528876. https://doi.org/10.1080/17445647.2025.2528876.


#Phoenician #colonization #RBloggers

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *