Analysis of Prehistoric Iconography with the R package iconr

Digital Archaeology seminar
28th November 2022, University of Durham

Thomas Huet, Jose Pozo, Craig Alexander

This presentation is an introduction to computational archaeology


software 💿 semantic 🖼 📜 🔢
logic >_ print(‘hello’)
hardware 💻

It is also about ancient iconography

Tanum outcrop, Scandinavia (credits: Wikipedia)

It introduces the R package iconr and gives example of study with this package

Magacela stelae, Spain (credits: Wikipedia)

Computational archaeology

R is a scripting language for data science. It is the 1️⃣st used by archaeologists, and the 18th worldwide

- Tiobe index 2022 + Batist and Roe, 2022

RStudio is THE graphical interface for R, Rstudio is also in the cloud (RStudio.cloud), VS Code is a standalone source code editor multi-platforms and multi-languages

R markdown is a notebook interface for report generation, Shiny allows the development of web interactive applications, Quarto to create Powerpoint-like web interactive documents

The CRAN features 18,890 available packages. The package iconr uses 18 packages. The most distinctives are:

package description
magick for image manipulation
igraph for graph theory and network analysis
sf makes R a GIS
Momocs for geometric morphometric methods

sthda.com has good tutorials, stackoverflow is probably the place where you will find the answer you need, if you need some open software for archaeology go to open-archaeo

Computer stack

The 🔝 popular web-platform for source code management and software development (with over 128 million public repositories)

Ancient iconography

Nature of iconographic data

Aspectivity & Analogism

Aspectivity consists in representing all aspects and attributes of the subject simultaneously in order to establish a definition


Francfort, H.-P., Huth, C., Olmos, R., Szabó, M., & Verger, S. (2010). “Qu’est-ce que l’art protohistorique ?” Perspective. Actualité en histoire de l’art, (2), 195–214

The figurative purpose of the analogist ontology is to make present networks of correspondence between discontinuous elements


Descola, P. (2021). Les formes du visible. Une anthropologie de la figuration. Seuil.

Some figures of warrior chariots and characters from the Late Bronze Age (credits: https://www.adiantegalicia.es)

Statement of need

  • Spatial proximities between the graphic units (GUs) are not precisely quantified. GUs are attached to sub-areas of the support

Statement of need

  • Groupings are not self-explanatory and introduce a tedious number of groups and hinder their systematic analysis
  • Spatial proximities between the graphic units (GUs) are not precisely quantified. GUs are attached to sub-areas of the support

Statement of need

  • Relationships and similarities between these groups are often not self-explanatory and unquantified
  • Groupings are not self-explanatory and introduce a tedious number of groups and hinder their systematic analysis
  • Spatial proximities between the graphic units (GUs) are not precisely quantified. GUs are attached to sub-areas of the support

Statement of need

  • Descriptive vocabularies and methods of analysis are site-dependent or period dependent
  • Relationships and similarities between these groups are often not self-explanatory and unquantified
  • Groupings are not self-explanatory and introduce a tedious number of groups and hinder their systematic analysis
  • Spatial proximities between the graphic units (GUs) are not precisely quantified. GUs are attached to sub-areas of the support

Conceptual model

  • Some objects have a decoration

Conceptual model

  • A decoration is composed of GUs
  • Some objects have a decoration

Conceptual model

  • GUs can be modeled as POINTS or drawn as LINES or POLYGONS (2D)
  • A decoration is composed of GUs
  • Some objects have a decoration

Conceptual model

  • Nodes have neighbourhood relations one with another depending on their spatial proximities (Voronoi Diagram)
  • GUs are considered as nodes
  • GUs can be modeled as POINTS or drawn as LINES or POLYGONS (2D)
  • A decoration is composed of GUs
  • Some objects have a decoration

Conceptual model

  • Shape analysis and hierachical thesaurus can measure the similarities between two GUs (eg. Procrustes distance);
  • A decoration is considered as a spatial graph, modeled with graph theory and analysed with network and spatial analysis
  • Nodes have neighbourhood relations one with another depending on their spatial proximities (Voronoi Diagram)
  • GUs are considered as nodes
  • GUs can be modeled as POINTS or drawn as LINES or POLYGONS (2D)
  • A decoration is composed of GUs
  • Some objects have a decoration

Nodes

Main nodes

Separated GUs showing different graphical contents (anthropomorphic figure, spear, shield, comb and ingot)

Nodes

Shapes

Shape analysis allows GUs of a given type to be compared and classified

Nodes

Typology

Nodes

Typology

By generalisation (⬆️ the tree) or by specification (⬇️ the tree), this hierarchical structure allows comparison between GUs:

  • of different types (ex: a sword with a spear)
  • of different states of preservation (ex: a clearly identified horse with an unspecified quadrupede)

Nodes

Attribute nodes

Additional GUs characterising the main node (helmet, phalus)

Edges

—— = —— normal undirected edges between contiguous and contemporaneous main nodes a and b

site decor a b type xa ya xb yb
24 Brozas Brozas 1 2 = 354.1114 -123.3621 346.3455 -151.8371
25 Brozas Brozas 3 1 = 279.0411 -162.1916 354.1114 -123.3621
26 Brozas Brozas 3 2 = 279.0411 -162.1916 346.3455 -151.8371
27 Brozas Brozas 4 1 = 211.7366 -206.1984 354.1114 -123.3621
28 Brozas Brozas 4 3 = 211.7366 -206.1984 279.0411 -162.1916
29 Brozas Brozas 1 5 = 354.1114 -123.3621 392.9409 -343.3959
30 Brozas Brozas 2 5 = 346.3455 -151.8371 392.9409 -343.3959
31 Brozas Brozas 3 5 = 279.0411 -162.1916 392.9409 -343.3959
32 Brozas Brozas 4 5 = 211.7366 -206.1984 392.9409 -343.3959
33 Brozas Brozas 5 6 = 392.9409 -343.3959 387.7636 -564.7240

edges list:
 [1] "bouclier-=-epee"   "bouclier-=-fibule" "bouclier-=-lance" 
 [4] "bouclier-=-miroir" "bouclier-=-peigne" "fibule-=-lance"   
 [7] "fibule-=-miroir"   "fibule-=-peigne"   "lance-=-miroir"   
[10] "lance-=-peigne"   

- - - + - - - attribute directed edges between contemporaneous nodes where the attribute node b is an attribute of main node a

site decor a b type xa ya xb yb
Zarza de Montanchez Zarza De Montanchez 1 3 = 350.7279 -141.3279 289.7853 -183.1172
Zarza de Montanchez Zarza De Montanchez 1 2 = 350.7279 -141.3279 428.2122 -172.6699
Zarza de Montanchez Zarza De Montanchez 3 4 = 289.7853 -183.1172 285.4322 -207.4942
Zarza de Montanchez Zarza De Montanchez 3 2 = 289.7853 -183.1172 428.2122 -172.6699
Zarza de Montanchez Zarza De Montanchez 4 5 = 285.4322 -207.4942 290.6559 -310.2261
Zarza de Montanchez Zarza De Montanchez 6 4 = 418.6354 -305.0025 285.4322 -207.4942
Zarza de Montanchez Zarza De Montanchez 5 6 = 290.6559 -310.2261 418.6354 -305.0025
Zarza de Montanchez Zarza De Montanchez 7 8 + 343.7630 -466.9358 261.9258 -433.8527
Zarza de Montanchez Zarza De Montanchez 7 9 + 343.7630 -466.9358 258.4433 -486.0892
Zarza de Montanchez Zarza De Montanchez 7 10 + 343.7630 -466.9358 342.9527 -434.1614
Zarza de Montanchez Zarza De Montanchez 7 11 + 343.7630 -466.9358 344.2134 -510.2253
Zarza de Montanchez Zarza De Montanchez 5 7 = 290.6559 -310.2261 343.7630 -466.9358
Zarza de Montanchez Zarza De Montanchez 6 7 = 418.6354 -305.0025 343.7630 -466.9358
Zarza de Montanchez Zarza De Montanchez 1 12 + 350.7279 -141.3279 377.1414 -163.5179

edges list:
 [1] "bouclier-=-chariot_char"   "bouclier-=-lance"         
 [3] "bouclier-=-personnage"     "casque-+-rivet"           
 [5] "casque-=-epee"             "casque-=-miroir"          
 [7] "chariot_char-+-cheval"     "chariot_char-+-cheval#"   
 [9] "chariot_char-+-roue"       "chariot_char-+-roue#"     
[11] "chariot_char-=-personnage" "epee-=-lance"             
[13] "epee-=-miroir"             "lance-=-personnage"       

—— > —— diachronic directed edges between non-contemporaneous nodes where the node a overlaps/is more recent than node b

site decor a b type xa ya xb yb
Ibahernando Ibahernando 1 2 > 284.1056 -131.2344 351.6009 -191.5644
Ibahernando Ibahernando 1 3 > 284.1056 -131.2344 345.0360 -296.6023
Ibahernando Ibahernando 2 3 = 351.6009 -191.5644 345.0360 -296.6023
Ibahernando Ibahernando 3 4 = 345.0360 -296.6023 367.3566 -420.6782

edges list:
[1] "bouclier-=-epee"     "bouclier-=-lance"    "ecriture->-bouclier"
[4] "ecriture->-lance"   

GIS entry

GIS entry

One GIS project = One decoration

  1. Open a decoration image

  1. Create a spatialized graph

Run R

Install and load packages

# install.packages("iconr")
# install.packages("sf")
# install.packages("dplyr")
# install.packages("knitr")
# install.packages("kableExtra")

library(iconr)
library(igraph)
library(sf)
library(dplyr)
library(knitr)
library(kableExtra)

Default data - images

dataDir <- system.file("extdata", package = "iconr")
imgs_path <- paste0(dataDir, "/imgs.csv")
imgs <- read.table(imgs_path, sep = ";", stringsAsFactors = FALSE)
kable(imgs, "html") %>% 
  kable_styling(full_width = FALSE, position = "center", font_size = 20)
idf site decor img
1 Cerro Muriano Cerro Muriano 1 Cerro_Muriano.Cerro_Muriano_1.jpg
2 Torrejon Rubio Torrejon Rubio 1 Torrejon_Rubio.Torrejon_Rubio_1.jpg
3 Brozas Brozas Brozas.Brozas.jpg
4 Zarza de Montanchez Zarza De Montanchez Zarza_de_Montanchez.Zarza_De_Montanchez.jpg
5 Ibahernando Ibahernando Ibahernando.Ibahernando.jpg

1. 2. 3. 4. 5.

Default data - nodes

nodes_path <- paste0(dataDir, "/nodes.shp")
nodes.shp <- st_read(nodes_path, quiet = T)
nodes <- as.data.frame(nodes.shp)
kable(nodes, "html") %>% 
  kable_styling(full_width = FALSE, position = "center", font_size = 20)
site decor id type x y geometry
Cerro Muriano Cerro Muriano 1 1 personnage 349.8148 -298.3244 POINT (349.8148 -298.3244)
Cerro Muriano Cerro Muriano 1 2 casque 349.8148 -243.9851 POINT (349.8148 -243.9851)
Cerro Muriano Cerro Muriano 1 3 lance 238.4637 -298.3244 POINT (238.4637 -298.3244)
Cerro Muriano Cerro Muriano 1 4 bouclier 446.0222 -381.1697 POINT (446.0222 -381.1697)
Cerro Muriano Cerro Muriano 1 5 peigne 283.0041 -358.0086 POINT (283.0041 -358.0086)
Cerro Muriano Cerro Muriano 1 7 sexe_masculin 342.6884 -427.4917 POINT (342.6884 -427.4917)
Cerro Muriano Cerro Muriano 1 8 lingot_pdb 451.1489 -237.4782 POINT (451.1489 -237.4782)
Torrejon Rubio Torrejon Rubio 1 1 chariot_char 306.3033 -177.1217 POINT (306.3033 -177.1217)
Torrejon Rubio Torrejon Rubio 1 2 bouclier 374.5779 -347.8082 POINT (374.5779 -347.8082)
Torrejon Rubio Torrejon Rubio 1 3 arc 221.6166 -303.8236 POINT (221.6166 -303.8236)
Torrejon Rubio Torrejon Rubio 1 4 miroir 211.7693 -458.0980 POINT (211.7693 -458.098)
Torrejon Rubio Torrejon Rubio 1 5 fibule 490.1195 -513.2428 POINT (490.1195 -513.2428)
Torrejon Rubio Torrejon Rubio 1 6 epee 366.7001 -563.1358 POINT (366.7001 -563.1358)
Torrejon Rubio Torrejon Rubio 1 7 lance 298.4255 -607.7769 POINT (298.4255 -607.7769)
Torrejon Rubio Torrejon Rubio 1 8 cheval 251.1585 -141.6715 POINT (251.1585 -141.6715)
Torrejon Rubio Torrejon Rubio 1 9 cheval 256.4103 -209.9461 POINT (256.4103 -209.9461)
Torrejon Rubio Torrejon Rubio 1 10 roue 364.5141 -138.7608 POINT (364.5141 -138.7608)
Torrejon Rubio Torrejon Rubio 1 11 roue 363.6435 -209.2802 POINT (363.6435 -209.2802)
Torrejon Rubio Torrejon Rubio 1 12 fleche 185.5875 -312.4591 POINT (185.5875 -312.4591)
Brozas Brozas 1 lance 354.1114 -123.3621 POINT (354.1114 -123.3621)
Brozas Brozas 2 peigne 346.3455 -151.8371 POINT (346.3455 -151.8371)
Brozas Brozas 3 fibule 279.0411 -162.1916 POINT (279.0411 -162.1916)
Brozas Brozas 4 miroir 211.7366 -206.1984 POINT (211.7366 -206.1984)
Brozas Brozas 5 bouclier 392.9409 -343.3959 POINT (392.9409 -343.3959)
Brozas Brozas 6 epee 387.7636 -564.7240 POINT (387.7636 -564.724)
Zarza de Montanchez Zarza De Montanchez 1 casque 350.7279 -141.3279 POINT (350.7279 -141.3279)
Zarza de Montanchez Zarza De Montanchez 2 miroir 428.2122 -172.6699 POINT (428.2122 -172.6699)
Zarza de Montanchez Zarza De Montanchez 3 epee 289.7853 -183.1172 POINT (289.7853 -183.1172)
Zarza de Montanchez Zarza De Montanchez 4 lance 285.4322 -207.4942 POINT (285.4322 -207.4942)
Zarza de Montanchez Zarza De Montanchez 5 bouclier 290.6559 -310.2261 POINT (290.6559 -310.2261)
Zarza de Montanchez Zarza De Montanchez 6 personnage 418.6354 -305.0025 POINT (418.6354 -305.0025)
Zarza de Montanchez Zarza De Montanchez 7 chariot_char 343.7630 -466.9358 POINT (343.763 -466.9358)
Zarza de Montanchez Zarza De Montanchez 8 cheval 261.9258 -433.8527 POINT (261.9258 -433.8527)
Zarza de Montanchez Zarza De Montanchez 9 cheval 258.4433 -486.0892 POINT (258.4433 -486.0892)
Zarza de Montanchez Zarza De Montanchez 10 roue 342.9527 -434.1614 POINT (342.9527 -434.1614)
Zarza de Montanchez Zarza De Montanchez 11 roue 344.2134 -510.2253 POINT (344.2134 -510.2253)
Zarza de Montanchez Zarza De Montanchez 12 rivet 377.1414 -163.5179 POINT (377.1414 -163.5179)
Ibahernando Ibahernando 1 ecriture 284.1056 -131.2344 POINT (284.1056 -131.2344)
Ibahernando Ibahernando 2 lance 351.6009 -191.5644 POINT (351.6009 -191.5644)
Ibahernando Ibahernando 3 bouclier 345.0360 -296.6023 POINT (345.036 -296.6023)
Ibahernando Ibahernando 4 epee 367.3566 -420.6782 POINT (367.3566 -420.6782)

Default data - edges

edges_path <- paste0(dataDir, "/edges.shp")
edges.shp <- st_read(edges_path, quiet = T)
edges <- as.data.frame(edges.shp)
kable(edges, "html") %>% 
  kable_styling(full_width = FALSE, position = "center", font_size = 20)
site decor a b type geometry
Cerro Muriano Cerro Muriano 1 1 4 = LINESTRING (349.8148 -298.3...
Cerro Muriano Cerro Muriano 1 1 5 = LINESTRING (283.0041 -358.0...
Cerro Muriano Cerro Muriano 1 3 5 = LINESTRING (283.0041 -358.0...
Cerro Muriano Cerro Muriano 1 1 2 + LINESTRING (349.8148 -298.3...
Cerro Muriano Cerro Muriano 1 1 7 + LINESTRING (349.8148 -298.3...
Cerro Muriano Cerro Muriano 1 3 1 = LINESTRING (238.4637 -298.3...
Cerro Muriano Cerro Muriano 1 1 8 = LINESTRING (349.8148 -298.3...
Cerro Muriano Cerro Muriano 1 4 8 = LINESTRING (451.1489 -237.4...
Torrejon Rubio Torrejon Rubio 1 6 5 = LINESTRING (366 -563, 490 -...
Torrejon Rubio Torrejon Rubio 1 4 2 = LINESTRING (211 -458, 374 -...
Torrejon Rubio Torrejon Rubio 1 6 7 = LINESTRING (366 -563, 298 -...
Torrejon Rubio Torrejon Rubio 1 1 2 = LINESTRING (306 -177, 374 -...
Torrejon Rubio Torrejon Rubio 1 1 8 + LINESTRING (306 -177, 251 -...
Torrejon Rubio Torrejon Rubio 1 1 9 + LINESTRING (256 -209, 306 -...
Torrejon Rubio Torrejon Rubio 1 2 3 = LINESTRING (374 -347, 221 -...
Torrejon Rubio Torrejon Rubio 1 3 1 = LINESTRING (221 -303, 306 -...
Torrejon Rubio Torrejon Rubio 1 3 4 = LINESTRING (221 -303, 211 -...
Torrejon Rubio Torrejon Rubio 1 2 5 = LINESTRING (374 -347, 490 -...
Torrejon Rubio Torrejon Rubio 1 2 6 = LINESTRING (374 -347, 366 -...
Torrejon Rubio Torrejon Rubio 1 6 4 = LINESTRING (366 -563, 211 -...
Torrejon Rubio Torrejon Rubio 1 3 12 + LINESTRING (221 -303, 185 -...
Torrejon Rubio Torrejon Rubio 1 1 10 + LINESTRING (306 -177, 364 -...
Torrejon Rubio Torrejon Rubio 1 1 11 + LINESTRING (306 -177, 363 -...
Brozas Brozas 1 2 = LINESTRING (354.1114 -123.3...
Brozas Brozas 3 1 = LINESTRING (279.0411 -162.1...
Brozas Brozas 3 2 = LINESTRING (279.0411 -162.1...
Brozas Brozas 4 1 = LINESTRING (211.7366 -206.1...
Brozas Brozas 4 3 = LINESTRING (211.7366 -206.1...
Brozas Brozas 1 5 = LINESTRING (354.1114 -123.3...
Brozas Brozas 2 5 = LINESTRING (346.3455 -151.8...
Brozas Brozas 3 5 = LINESTRING (279.0411 -162.1...
Brozas Brozas 4 5 = LINESTRING (211.7366 -206.1...
Brozas Brozas 5 6 = LINESTRING (392.9409 -343.3...
Zarza de Montanchez Zarza De Montanchez 1 3 = LINESTRING (350.7279 -141.3...
Zarza de Montanchez Zarza De Montanchez 1 2 = LINESTRING (350.7279 -141.3...
Zarza de Montanchez Zarza De Montanchez 3 4 = LINESTRING (289.7853 -183.1...
Zarza de Montanchez Zarza De Montanchez 3 2 = LINESTRING (289.7853 -183.1...
Zarza de Montanchez Zarza De Montanchez 4 5 = LINESTRING (285.4322 -207.4...
Zarza de Montanchez Zarza De Montanchez 6 4 = LINESTRING (418.6354 -305.0...
Zarza de Montanchez Zarza De Montanchez 5 6 = LINESTRING (290.6559 -310.2...
Zarza de Montanchez Zarza De Montanchez 7 8 + LINESTRING (343.763 -466.93...
Zarza de Montanchez Zarza De Montanchez 7 9 + LINESTRING (343.763 -466.93...
Zarza de Montanchez Zarza De Montanchez 7 10 + LINESTRING (343.763 -466.93...
Zarza de Montanchez Zarza De Montanchez 7 11 + LINESTRING (343.763 -466.93...
Zarza de Montanchez Zarza De Montanchez 5 7 = LINESTRING (290.6559 -310.2...
Zarza de Montanchez Zarza De Montanchez 6 7 = LINESTRING (418.6354 -305.0...
Zarza de Montanchez Zarza De Montanchez 1 12 + LINESTRING (350.7279 -141.3...
Ibahernando Ibahernando 1 2 > LINESTRING (284.1056 -131.2...
Ibahernando Ibahernando 1 3 > LINESTRING (284.1056 -131.2...
Ibahernando Ibahernando 2 3 = LINESTRING (351.6009 -191.5...
Ibahernando Ibahernando 3 4 = LINESTRING (345.036 -296.60...

Functions

Plot the first graph of the iconr default dataset

dataDir <- system.file("extdata", package = "iconr")
imgs <- read.table(paste0(dataDir, "/imgs.csv"), sep = ";", stringsAsFactors = FALSE)
nodes.shp <- st_read(paste0(dataDir, "/nodes.shp"), quiet = T)
nodes <- as.data.frame(nodes.shp)
edges.shp <- st_read(paste0(dataDir, "/edges.shp"), quiet = T)
edges <- as.data.frame(edges.shp)
lgrph <- list_dec(imgs, nodes, edges)
g <- lgrph[[1]]
plot(g)

Functions

Plot the first graph of the iconr default dataset

dataDir <- system.file("extdata", package = "iconr")
imgs <- read.table(paste0(dataDir, "/imgs.csv"), sep = ";", stringsAsFactors = FALSE)
nodes.shp <- st_read(paste0(dataDir, "/nodes.shp"), quiet = T)
nodes <- as.data.frame(nodes.shp)
edges.shp <- st_read(paste0(dataDir, "/edges.shp"), quiet = T)
edges <- as.data.frame(edges.shp)
lgrph <- list_dec(imgs, nodes, edges)
g <- lgrph[[1]]
plot(g)

Functions

class(g)
[1] "igraph"

Functions

g$site
[1] "Cerro Muriano"

Functions

g$decor
[1] "Cerro Muriano 1"

Functions

named_elements(g, focus = "edges", nd.var = "type")
[1] "bouclier-=-personnage"      "peigne-=-personnage"       
[3] "lance-=-peigne"             "personnage-+-casque"       
[5] "personnage-+-sexe_masculin" "lance-=-personnage"        
[7] "lingot_pdb-=-personnage"    "bouclier-=-lingot_pdb"     

Functions

nodes <- read_nds(g$site, g$decor, dataDir)
edges <- read_eds(g$site, g$decor, dataDir)
plot_dec_grph(nodes = nodes,
              edges = edges,
              imgs = imgs,
              site = g$site, 
              decor = g$decor, 
              dir = dataDir,
              nd.var = "type")

Functions

nodes <- read_nds(g$site, g$decor, dataDir)
edges <- read_eds(g$site, g$decor, dataDir)
plot_dec_grph(nodes = nodes,
              edges = edges,
              imgs = imgs,
              site = g$site, 
              decor = g$decor, 
              dir = dataDir,
              nd.var = "type",
              nd.size = degree(g)/2,
              lbl.size = 0.1)

Functions

dec.to.compare <- c(3, 4)
g.compar <- list_compar(lgrph, nd.var = "type")
plot_compar(listg = g.compar, 
            dec2comp = dec.to.compare,
            focus = "nodes",
            nd.size = c(0.5, 1.5),
            dir = dataDir) 

Functions

dec.to.compare <- c(3, 4)
g.compar <- list_compar(lgrph, nd.var = "type")
plot_compar(listg = g.compar, 
            dec2comp = dec.to.compare,
            focus = "edges",
            nd.size = c(0.5, 1.5),
            dir = dataDir) 

Functions

df.same_edges <- same_elements(lgrph, nd.var = "type", focus = "edges")
knitr::kable(df.same_edges, row.names = TRUE, escape = F, table.attr = "style='width:40%;'",
             caption = "Count of common edges between decorations") %>%
  column_spec(1, bold=TRUE) %>%
  kableExtra::kable_styling(position = "center", font_size = 24)
Count of common edges between decorations
1 2 3 4 5
1 8 0 1 2 0
2 0 15 3 7 1
3 1 3 10 1 2
4 2 7 1 14 1
5 0 1 2 1 4

Functions

Plot the Ibahernando stelae, GUs id

site <- decor <- "Ibahernando"
nds.df <- read_nds(site, decor, dataDir)
eds.df <- read_eds(site, decor, dataDir)
plot_dec_grph(nds.df, eds.df, imgs,
              site, decor, dataDir)

Functions

Plot the Ibahernando stelae, GUs type

site <- decor <- "Ibahernando"
nds.df <- read_nds(site, decor, dataDir)
eds.df <- read_eds(site, decor, dataDir)
plot_dec_grph(nds.df, eds.df, imgs,
              site, decor, dataDir,
              nd.var = "type")

Functions

Plot the Ibahernando stelae and remove the Latin writing GU (ecriture, id = 1) from the studied graph by selecting GUs contemporaneous to the sword (id = 4)

site <- decor <- "Ibahernando"
nds.df <- read_nds(site, decor, dataDir)
eds.df <- read_eds(site, decor, dataDir)
selected.nd <- 4
l_dec_df <- contemp_nds(nds.df, eds.df, selected.nd)
plot_dec_grph(l_dec_df$nodes, l_dec_df$edges, imgs,
              site, decor, dataDir,
              nd.var = "type")

Study

Dataset

Díaz-Guardamino Uribe, M. (2010). Las estelas decoradas en la Prehistoria de la Península Ibérica (Universidad Complutense de Madrid, Servicio de Publicaciones)
url: https://eprints.ucm.es/11070/1/T32200.pdf

Variables (local)

Spatialized graph

Variables (local)

Types

Variables (local)

Maximum length (cm)

Variables (local)

Orientation (see thesaurus)

Variables (local)

Technology (pecked, incised, painted, etc.)

Variables (local)

Completness

Variables (local)

Betweenness centrality

Variables (local)

Closeness centrality

Variables (local)

Domination

Variables (local)

Cultural attribution

Variables (local)

Chronological attribution

Descriptive statistics - domination

Descriptive statistics - lengths

Descriptive statistics - orientations

Variables (global)

Variables (global)

Variables (global)

Exploratory statistics

Thank
you!