-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpaper.Rmd
1584 lines (1140 loc) · 110 KB
/
paper.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---
title: "The Gravettian-Solutrean transition in westernmost Iberia: new data from the sites of Vale Boi and Lapa do Picareiro"
author:
- Joana Belmiro:
email: [email protected]
institute: [ICArEHB]
correspondence: true
- João Cascalheira:
email: [email protected]
institute: [ICArEHB]
correspondence: false
- Nuno Bicho:
email:
institute: [ICArEHB]
- Jonathan Haws:
email:
institute: [UL, ICArEHB]
institute:
- ICArEHB: ICArEHB, Universidade do Algarve
- UL: University of Louisville
date: "`r format(Sys.time(), '%d %B, %Y')`"
output:
bookdown::word_document2:
fig_caption: yes
reference_docx: "../templates/template.docx" # Insert path for the DOCX file
pandoc_args:
- --lua-filter=../templates/scholarly-metadata.lua
- --lua-filter=../templates/author-info-blocks.lua
- --lua-filter=../templates/pagebreak.lua
bibliography: bibliography.bib
csl: "../templates/journal-of-archaeological-science.csl" # Insert path for the bib-style
abstract: |
This study presents the analysis of the lithic assemblages from Layers 5 and 4E (Terrace) of the site of Vale Boi (southern Portugal) and Levels U and T from Lapa do Picareiro (central Portugal). We aimed to understand the technological patterns and raw material exploitation during the Gravettian-Solutrean transition in westernmost Iberia and test the traditional models with assemblages from recently excavated sites, while expanding the geographic range. Results show the existence of two discrete phases in each site. The first, with high frequency of quartz use for bladelet production, seems to reflect the presence of a Terminal Gravettian horizon, as defined by Almeida (2000).The second, with some significant differences between sites, attests the presence of Vale Comprido technology and lower quartz frequencies at Vale Boi, representing a Proto-Solutrean occupation; and the presence of a blade component in Lapa do Picareiro that, together with the respective absolute chronology, may be attributed to a Proto-Solutrean or an Early Solutrean horizon. In general terms, this study allowed to confirm that the Terminal Gravettian and the Proto-Solutrean are discrete phases across the transition, in agreement with the Three-Phase model presented by Zilhão [-@zilhao1997]. It further consolidates the expansion of similar techno-cultural patterns to southern Portugal, which may be explained by the significant changes in the dynamic of social networks [@cascalheiraandbicho2013].
keywords: |
Upper Paleolithic; Lithic technology; Environmental change; Portugal
---
```{r setup, echo = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
warning = FALSE,
message = FALSE,
echo = FALSE,
comment = "#>",
fig.path = "../figures/",
dpi = 300,
fig.ext = "tiff"
)
options(kableExtra.auto_format = FALSE)
```
```{r packages}
# Call packages
library(readr)
library(dplyr)
library(stringr)
library(tidyr)
library(knitr)
library(tab)
library(ggplot2)
library(FactoMineR)
library(factoextra)
library(RcmdrMisc)
library(IDPmisc)
library(forcats)
library(kableExtra)
library(float)
library(janitor)
library(ggpubr)
library(ggExtra)
library(ggsci)
library(ggalluvial)
```
# Introduction
The transition from the Gravettian to the Solutrean and its correlation with the environmental changes occurred during the Heinrich Event 2 (HE2) at the onset of the Last Glacial Maximum (LGM – ca. 26.5-19 ka cal BP), continues to be a critical topic to understand Upper Paleolithic human ecodynamics in westernmost Europe.
However, most of what is known for this timeframe is geographically constricted and/or lacking good chronological markers (Cascalheira and Bicho, 2013). In southern France and the western edge of Iberia, for example, this period is marked by the presence of the so-called Proto-Solutrean (Renard, 2011; Zilhão 1997). This has been described as a transitional technocomplex to the Solutrean technologies, through a process of local development, but synchronous across southwestern Europe (Zilhão et al., 1999). Although present in and southern Iberia (Alcaraz-Castaño et al., 2013; Aura et al., 2009), evidence of typical Proto-Solutrean industries is yet to be found in different regions of Iberia, such as the case of Cantabria, where the transition is poorly characterized (Cascalheira et al., in press).
In Portugal, the Proto-Solutrean was recognized as a result of the study of materials from old excavations by Manuel Heleno in the Rio Maior region (central Portugal) in the 1930s and 1940s, and from new archaeological work in the same region beginning in the late 1980s. From both phases, several open-air and cave sites are now known, and only one other site in southern Portugal (Vale Boi) has revealed typical Proto-Solutrean assemblages (Figure \@ref(fig:protomap)).
```{r protomap, fig.cap="Location of Proto-Solutrean sites in Portugal or with Proto-Solutrean finds, including the two sites analysed in this study. Sites with a star correspond to the sites analysed in this study. Legend: 1-Buraca Escura; 2-Alecrim e Lagar Velho; 3-Caldeirão; 4-Lapa do Anecrial; 5-Lapa do Picareiro; 6-Terra do José Pereira; 7-Terra do Manuel; 8-Vales de Senhora da Luz; 9-Vale Comprido - encosta; 10-CPM III; 11-Gato Preto; 12-Gruta das Salemas; 13-Vale Boi"}
knitr::include_graphics(here::here("analysis/figures/map_proto_solutrean.png"))
```
There, the Proto-Solutrean has been integrated into the Gravettian-Solutrean transition as part of a sequence of techno-typological modifications that could have occurred across two or three different stages (Zilhão, 1997, 1994; Zilhão et al., 1999).
The Two-stage model starts with a Final Gravettian phase, characterized by moderate use of quartz (~15%), production of truncated backed bladelets, and proto-magdalenian retouched blades (Zilhão, 1997). The second phase is the Proto-Solutrean, frequently characterized by a high percentage of quartz use (~30%), rare presence of backed bladelets, and the production of Vale Comprido points, the technocomplex’s index fossil (Almeida, 2000; Zilhão, 1997; Zilhão and Aubry, 1995). For the production of these tools, the Proto-Solutrean shows two different operative sequences: one for the production of Vale Comprido points, through the removal of elongated blanks with convergent profiles and thick platforms; another for the production of blades, of Gravettian tradition; and another for the production of bladelets, probably obtained through the exploitation of thick endscrapers or carinated elements (Zilhão, 1997). Vale Comprido points are described as robust pieces, often characterized by convergent shapes, triangular cross-sections, and plain platforms, often having a high elongation ratio, although not necessarily falling into the blade category (Zilhão and Aubry, 1995). These points are seen as an element of discontinuity with the previous technocomplex, where the organic points armed with microliths from the Gravettian are replaced by lithic points, with enough similarities to the pointes à face plane of the Middle Solutrean to be understood as a technological development (Zilhão, 2013).
The Three-stage model, on the other hand, maintains the Final Gravettian phase and its defining characteristics but subdivides the following Proto-Solutrean stage in two. As such, there is an intermediate stage characterized by the intensive use of quartz (~30%), which corresponds to Laugerie-Haute’s Aurignacian V, and named Terminal Gravettian. The third stage is the Proto-Solutrean, where quartz use diminishes. In this model, the Vale Comprido points and associated reduction sequence may appear in either of the last two stages (Zilhão, 1997). Alternatively, in the Two-phase model, the Terminal Gravettian is understood as a functional facies of the Proto-Solutrean phase, related to specialized occupations and production activities within the technocomplex.
Regardless of which model is accepted, a high degree of lithic technological variability seems to be present across the transition (Almeida, 2000; Zilhão, 1997; Zilhão et al., 1999). This variability has been interpreted by Cascalheira and Bicho (2013) as a technological race in response to the environmental modifications taking course during the HE2. In this framework, the authors suggest that, in order to correspond to the external pressures, there may have been the need to diversify the economic strategies in use until that moment. The high exploitation of quartz, for example, formerly a secondary raw material, and the use of similar reduction strategies between quartz and chert, might represent one such economic response. The same possibly applies to the use of new raw materials, as is the case of the Proto-Solutrean levels in Vale Boi, where dolerite starts to be used mainly for the manufacture of Vale Comprido points (see below and Belmiro et al., 2017; Marreiros, 2009).
However, despite the existence of a rather comprehensive set of literature about the technocomplex in central Portugal, which has allowed for a better understanding of the transition between the Gravettian and the Solutrean, further studies are needed to fill the existing gaps. One of these gaps is the concentration of data regarding this technocomplex in the Portuguese Estremadura, whereas the Proto-Solutrean is still relatively unknown in other areas throughout southwestern Europe. In the case of Portugal, only one other site in the south (Figure 1) has so far revealed the presence of this techno-complex. Another issue is the small number of absolute dates available for the transition, which limits the chronological definition of the technocomplexes, and thus the testing of which of the abovementioned models (if any) applies best (Cascalheira and Bicho, 2013).
Addressing these issues, through the study of lithic assemblages from sites with good stratigraphic preservation, allowing accurate absolute dating and spatial tracking, will undoubtedly help further understand the Gravettian-Solutrean transition, its patterns, stages, and possible regional variations.
This study presents the results of the analysis of stone tool assemblages coming from levels attributed to the transition timeframe, from two recently excavated sites - Vale Boi (southern Portugal) and Lapa do Picareiro (central Portugal).
By combining techno-typological information with stratigraphic data and absolute chronology, we present new data on: 1) the technological organization of levels 5 and 4E of Vale Boi, and levels U and T from Lapa do Picareiro; and 2) a stratigraphical and chronological separation between Terminal Gravettian horizons and more recent occupations at both sites, revealing the application of the same general set of patterns to geographic areas outside of the Portuguese Estremadura.
# Materials and methods
For the lithic analysis we adopted an attribute-based methodology, which aims to describe morphological and metrical attributes of technological classes. The attributes analyzed followed those present in specialized literature, such as Brézillon (1968), and Tixier and Inizan (1980), paired with other Paleolithic lithic attribute analyses (see e.g., Bicho, 1992; Zilhão, 1997; Cascalheira, 2019; Almeida, 2000; Scerri et al., 2014; Tostevin, 2013).
A complete data dictionary with all variables, attributes, and descriptions, with reference to the consulted literature, is available in our research compendium at https://www.doi.org/10.17605/OSF.IO/456EG, and can be also consulted in the Supplementary Materials (Table S1).
After data collection, the databases were imported into R Programming Environment, where the information was processed through the creation of descriptive statistical analysis and writing of this article. We include the entire R code used for all the analyses and visualizations contained in this paper in our online research compendium. To produce those files, we followed the procedures described by Marwick et al. (2017) for the creation of research compendiums to enhance the reproducibility of research. To enable maximum re-use, our code is released under the MIT license, our data as CC-0, and our figures as CC-BY (for more information, see Marwick et al. 2018).
```{r VB_analysis_setup, include=FALSE}
# Read db
context <- read_csv(here::here("analysis/data/raw_data/context.csv")) #Field DB
xyz <- read_csv(here::here("analysis/data/raw_data/xyz.csv")) #Field DB
lithics <- read_csv(here::here("analysis/data/raw_data/Basedados_VB.csv")) #Analysis DB
# Df cleaning and uniformizing
cols_to_concat <- c("Unit", "ID")
context$ID <- str_squish(context$ID) #remove empty spaces from ID field
xyz$ID <- str_squish(xyz$ID) #remove empty spaces from UNIT field
# Concatenate ID and UNIT variables in one single variable (e.g. A6-100)
context <- context %>%
unite_(col='id', cols_to_concat, sep="-", remove=FALSE) %>%
select(id, Spit, Level, Code) %>%
distinct(id, .keep_all = TRUE)
xyz <- xyz %>%
dplyr::rename(Unit = UNIT) %>%
unite_(col='id', cols_to_concat, sep="-", remove=FALSE) %>%
filter(Suffix == 0) %>%
select(id, X, Y, Z) %>%
distinct(id, .keep_all = TRUE)
# Classify complete blanks (into flake or elongated) according to W and L ratio
lithics <- lithics %>%
dplyr::rename(Unit = UNIT) %>%
unite_(col='id', cols_to_concat, sep="-", remove=FALSE) %>%
mutate(elong = MaxWidth*2-Length) %>%
mutate(BlankType = case_when(
Class == "Blank" & elong > 0 ~ "Flake",
Class == "Blank" & elong <= 0 ~ "ElongatedProd")) %>%
as.data.frame()
# Join both tables and (optionally) write csv with final result
field_data <- full_join(xyz, context, by = "id")
# Join field and lithic tables
dataset <- left_join(lithics, field_data, by = "id")
# Force transform 'dataset' into a data.frame
dataset <- as.data.frame(dataset)
# Attribute phase based on depth (Z)
dataset <- dataset %>%
mutate(Phase = case_when(
Z > 24.1 ~ "Upper 5/4E",
Z < 24.1 ~ "Lower 5"))
```
```{r lp_analysis_setup, include=FALSE}
lithicslp <- read_csv(here::here("analysis/data/raw_data/Basedados_LP.csv"))
xyzlp <- read_csv(here::here("analysis/data/raw_data/xyzlp.csv"))
cols_to_concat <- c("UNIT", "ID")
xyzlp$ID <- str_squish(xyzlp$ID)
lithicslp <- lithicslp %>%
dplyr::rename("UNIT" = "X5") %>%
unite_(col='ID', cols_to_concat, sep="-", remove=FALSE)
xyzlp <- xyzlp %>%
unite_(col='ID', cols_to_concat, sep="-", remove=FALSE) %>%
filter(SUFFIX == 0) %>%
select(ID, X, Y, Z) %>%
distinct(ID, .keep_all = TRUE)
# Classify complete blanks (into flake or elongated) according to W and L ratio
lithicslp <- lithicslp %>%
mutate(elong = MaxWidth*2-Length) %>%
mutate(BlankType = case_when(
Class == "Blank" & elong > 0 ~ "Flake",
Class == "Blank" & elong <= 0 ~ "ElongatedProd")) %>%
select(-elong)
datasetlp <- left_join(lithicslp, xyzlp, by = "ID")
datasetlp <- as.data.frame(datasetlp)
# Attribute phase based on depth (Z)
datasetlp <- datasetlp %>%
mutate(Phase = case_when(
Z >= 566.9 | Level == "T1" | Level == "T2" | Level == "T3" | Level == "T4" | Level == "T5" ~ "Middle T",
Z < 566.9 | Level == "T6" | Level == "T7" | Level == "T8" | Level == "U" | Level == "U1" ~ "U/Lower T"))
```
# Vale Boi
## Stratigraphy and chronology
Vale Boi is an open-air site and rockshelter, located on the western coast of Algarve (southern Portugal), near a small homonymous village, within the municipality of Vila do Bispo (Figure \@ref(fig:protomap)). The site is situated in a small valley that runs south to the Atlantic coast, about 2 km distance, relatively open, bordered, to the east, by a limestone hill. This hill is marked, at specific points, by limestone exposures that form rock shelters with faces facing west or southwest (Bicho et al., 2003; Cascalheira, 2010; Cascalheira et al., 2008).
Human occupation extends for more than 10 000 sq. meters on the slope of this valley, which is marked by a series of steps that run parallel to the river, possibly as a result of Middle Pleistocene fluviatile erosion (Bicho et al., 2003).
The geological context of Vale Boi is marked by heterogeneity. In the north, there are schist and greywacke formations from the Carboniferous. In the south, Triassic and Jurassic dolomite and limestone formations, which are gradually covered by Holocene dunes further into the coastal area, until near St. Vincent’s cape where they appear uncovered once again, along with small occurrences of chert (Veríssimo, 2004).
Vale Boi shows a variety of human occupations, distributed across the three main excavation areas: Slope, Shelter, and Terrace (Bicho et al., 2012).
Although excavated since 2000, in 2012 a new 8 sq. meters area was open in the Terrace (rows H and I), to understand the stratigraphic sequence in more detail and assess the existence of older cultural horizons, attributable to an early Upper Paleolithic occupation.
From 2012 to 2016, six litho-stratigraphic layers have been identified (Table S2). In some of these layers, lateral sediment variations were detected, which were coded in the field through the concatenation of a letter to the layer number (e.g., 4E). In many of these cases, the isolation of this variation did not show any patterns in terms of spatial concentration of materials, although in others, like the 4E facies, the subdivision of the layer correlated with the spatial distribution of Vale Comprido technology.
In the new area, layers 1 and 2 represent Holocene levels, with the first being disturbed by recent agricultural processes. Layer 2, with a thickness of 25-30 cm, shows a Neolithic occupation.
Layer 3 has a silt and clay matrix sediment, with some inclusions and showing interruptions of limestone clast depositional episodes, although there is the constant presence of fauna and lithic artifacts. As mentioned above, the different material and cultural characteristics within the same geologic package led to the subdivision of the layer in layer 3A, attributed to an Epipaleolithic occupation, and 3B, assigned to the Solutrean.
Layer 4 is very similar to layer 3. However, it is separated from it by a gravel horizon. Similarly, layer 4 have been subdivided regarding different degrees of sediment compaction and/or concentration of organic materials, showing two differing cultural horizons: Solutrean and Proto-Solutrean (limited to layer 4E).
Layer 5 has a dark coloration and a silt and clay matrix characterized by an intense presence of organic elements, frequently calcinated. A Proto-Solutrean horizon was detected within the top levels, and occupation intensity seems to diminish with depth.
Finally, layer 6 is very similar to the previous layer, although it shows the presence of a larger quantity of small and medium-sized limestone clasts. A Gravettian horizon has been attributed to this layer, but the analysis of the materials is currently in progress.
Regarding layers 4E and 5, although they are indeed layers with different sedimentary characteristics, they partially show similar technological and archaeological patterns, which led to the conclusion they in part represent similar cultural horizons. The most evident of all is the presence of Vale Comprido points and blanks in Layer 4E e the top of Layer 5. This context was dated using a charcoal sample to c. 24.7-25.3 ka cal BP, and a shell sample to c. 23.7-24.1 ka cal BP (Figure 3 and Table S3).
That both layers are representative of the same cultural horizon is also seen in the vertical constraint in the distribution of dolerite pieces, mostly concentrated on Layer 4E and upper levels of Layer 5, coinciding also with an higher concentration of lithic materials (Figure \@ref(fig:spatialvbfig)).
The bottom spits of Layer 5, on the other hand, show a relatively dense concentration of **Littorina littorea**, an unprecedented shell species at the site, and often associated with colder waters, having a high freezing tolerance (Clarke et al., 2000; Murphy, 1979). This context was dated through a shell sample to c. 26.2-25.7 ka cal BP and thus within the time interval estimated for the HE2 in westernmost Iberia (Sánchez-Goñi et al. 2008).
```{r spatialvbfig, fig.cap="East profile stratigraphy in the Terrace area (above) and distribution of all tridimensionally coordenated lithics in the new excavation area until 2017 (under). Lithics from layers 4E and 5 are coloured in black. Blue crosses represent dolerite artefacts and stars mark the provenance of each radiocarbon date: A - WK-42830; B - WK-42831; C - WK-44416."}
knitr::include_graphics(here::here("analysis/figures/SpatialanalysisVB.png"))
```
```{r c14VB, echo = FALSE, fig.cap = "Vale Boi. Radiocarbon results for layers 5 and 4. The results presented are modeled dates based on a Bayesian model (Ramsey et al. 2009) using all dates available for the stratigraphic sequence of the Terrace area. All dates were calibrated using the IntCal13 and Marine13 curves (Reimer et al. 2013), using a regional Delta value of 265+/- 107 in the case of marine shells. The Oxcal script bayesian model is provided as online supplementary materials.", fig.align= 'center', out.width = '60%', fig.pos="H"}
knitr::include_graphics(here::here("/analysis/figures/c14_VB.png"))
```
## Lithic assemblages
Taking into consideration the models available for the Gravettian-Solutrean transition in westernmost Europe, particularly the differences proposed for raw material exploitation (i.e., high vs. low use of quartz) our first approach was to check for the existence of raw material differences across the layers just defined. For this, we calculated the percentages of the three most important raw materials by cubic meter of excavated sediment (Figure 4) and plotted them by elevation. There seems to exist significant differences in raw material distribution over time. From around 24.1 m upwards, there is an important shift in quartz and chert frequencies, the latter increasing more than 10%, and quartz dropping from c. 50% to nearly 30%.
This shift seems to be associated with other abovementioned changes in the Terrace sequence, such as an increase in the amount of lithic materials in the top of Layer 5 and Layer 4E, but also the appearance of Vale Comprido technology. Additionally, these two moments are stratigraphically correlated with the two different chronological horizons defined above: the first, dated to c. 26 ka cal BP, at c. 23.9 m in elevation, and associated with higher frequencies of quartz, and the second, dated to c. 24.7 ka cal BP, after around 24.1 m, associated with higher frequencies of chert and a reduction in quartz presence.
```{r rmdispersion, fig.cap = "Vale Boi. Raw material discard rates over time. Each point is an excavation unit (spit). The lines are locally weighted regression lines (span ¼ 0.4) to aid in visualising the trend of increased discard in the upper part of the deposit.", echo = FALSE, message=FALSE, warning=FALSE}
# Calulate spit volumes
cols_to_concat <- c("Level", "Spit")
buckets_by_spit <- context %>%
filter(Level %in% c("4E", "5", "5B", "5C") & Code == "BUCKET" & !Spit %in% c("limp_corte", "profile", " ", NA)) %>%
unite_(col='depth', cols_to_concat, sep=".", remove=FALSE)
buckets_by_spit$depth <- str_replace(buckets_by_spit$depth, "B", "")
buckets_by_spit$depth <- str_replace(buckets_by_spit$depth, "C", "")
spit_vol <- buckets_by_spit %>%
dplyr::group_by(depth) %>%
dplyr::count(Code) %>%
mutate(spit_vol = (n*10)/1000)
# Calculate average depth of spits
spit_depths <- field_data %>%
filter(Level %in% c("4E", "5", "5B", "5C") & !Spit %in% c("limp_corte", "LIMP_CORTE", "profile", " ", NA, "0")) %>%
unite_(col='depth', cols_to_concat, sep=".", remove=FALSE)
spit_depths$depth <- str_replace(spit_depths$depth, "B", "")
spit_depths$depth <- str_replace(spit_depths$depth, "C", "")
spit_aver_depths <- spit_depths %>%
dplyr::group_by(depth) %>%
dplyr::summarise(avg = mean(Z)) %>%
mutate_if(is.numeric, format, 3)
## Data classes per spit
cols_to_concat <- c("Level.y", "Spit")
lithics_by_spit <- dataset %>%
filter(Level.y %in% c("4E", "5", "5B", "5C") & !Spit %in% c("limp_corte", "profile", " ", NA)) %>%
select(id, Z, Spit, Level.y, Code, Class, ChipQuantity, RetouchedPieceTypology, PieceCompleteness, RawMaterial) %>%
unite_(col='depth', cols_to_concat, sep=".", remove=FALSE)
lithics_by_spit$depth <- str_replace(lithics_by_spit$depth, "B", "")
lithics_by_spit$depth <- str_replace(lithics_by_spit$depth, "C", "")
#Debitage by spit
cols_to_concat <- c("Level.y", "Spit")
rm_by_spit <- dataset %>%
filter(Level.y %in% c("4E", "5", "5B", "5C") & !Spit %in% c("limp_corte", "profile", " ", NA)) %>%
select(id, Z, Spit, Level.y, Code, RawMaterial, QuartzQuality, Class) %>%
unite_(col='depth', cols_to_concat, sep=".", remove=FALSE) %>%
filter(Class %in% c("Blank","Core","RetouchedPiece"))
rm_by_spit$depth <- str_replace(rm_by_spit$depth, "B", "")
rm_by_spit$depth <- str_replace(rm_by_spit$depth, "C", "")
rm_by_spit <- rm_by_spit %>%
dplyr::group_by(depth) %>%
dplyr::count(RawMaterial) %>%
mutate(freq = n / sum(n)*100)
quartz_by_spit <- rm_by_spit %>%
filter(RawMaterial == "Quartz")
chert_by_spit <- rm_by_spit %>%
filter(RawMaterial == "Chert")
grey_by_spit <- rm_by_spit %>%
filter(RawMaterial == "Greywacke")
quartz_by_spit$spit_vol <- spit_vol$spit_vol[match(quartz_by_spit$depth, spit_vol$depth)]
quartz_by_spit <- quartz_by_spit %>%
mutate(artifacts_by_cubic_meter = n/spit_vol)
quartz_by_spit$spit_aver_depth <- spit_aver_depths$avg[match(quartz_by_spit$depth, spit_aver_depths$depth)]
quartz_by_spit$spit_aver_depth <- as.numeric(as.character(quartz_by_spit$spit_aver_depth))
chert_by_spit$spit_vol <- spit_vol$spit_vol[match(chert_by_spit$depth, spit_vol$depth)]
chert_by_spit <- chert_by_spit %>%
mutate(artifacts_by_cubic_meter = n/spit_vol)
chert_by_spit$spit_aver_depth <- spit_aver_depths$avg[match(chert_by_spit$depth, spit_aver_depths$depth)]
chert_by_spit$spit_aver_depth <- as.numeric(as.character(chert_by_spit$spit_aver_depth))
grey_by_spit$spit_vol <- spit_vol$spit_vol[match(grey_by_spit$depth, spit_vol$depth)]
grey_by_spit <- grey_by_spit %>%
mutate(artifacts_by_cubic_meter = n/spit_vol)
grey_by_spit$spit_aver_depth <- spit_aver_depths$avg[match(grey_by_spit$depth, spit_aver_depths$depth)]
grey_by_spit$spit_aver_depth <- as.numeric(as.character(grey_by_spit$spit_aver_depth))
rm_by_cubic_meter <- bind_rows(quartz_by_spit, chert_by_spit, grey_by_spit)
rm_by_cubic_meter <- filter(rm_by_cubic_meter, spit_vol > 0.10) # removes low volumetric levels
# Plot
rm_cubic_meter <- ggplot(rm_by_cubic_meter, (aes(spit_aver_depth, freq, colour = RawMaterial))) +
geom_point() +
stat_smooth(span = 0.5, se = FALSE) +
xlab("Elevation (m)") +
ylab("Artefact relative frequency by cubic meter of sediment (log10)") +
theme(axis.text=element_text(size=12),
axis.title.x = element_text(size = 10),
axis.title.y = element_text(size = 14),
legend.text = element_text(size = 12),
legend.title = element_text(size = 14)) +
scale_y_log10()+
coord_flip() +
scale_color_jco()
rm_cubic_meter
```
Given the chronological data, density of artifacts, and raw material preference patterns, it was decided that for this study the materials would be subdivided into two analytical units, to better understand any possible technological differences: Lower 5, including all artifacts with elevation values under 24.1; Upper 5/4E, including all artifacts with elevation values of 24.1 and above. The value 24.1 is arbitrary and was chosen for the aforementioned reasons.
A total of 26,703 pieces were analyzed for both groups, 11,094 from the Lower 5 group and 15,609 for the Upper 5/4E (Tables 1 and 2). For both groups, more than 70% of the artifacts are debitage waste, which is mostly the result of quartz use and can be explained by on-site knapping and breakage patterns.
```{r general1, echo=FALSE}
### General table Lower 5
db_phase1 <- dataset %>%
filter(Phase=="Lower 5")
table1 <- db_phase1 %>%
select(RawMaterial, Class) %>%
filter(Class != "Chip") %>%
dplyr::group_by(RawMaterial)
chip_table1 <- db_phase1 %>%
filter(Class == "Chip") %>%
select(RawMaterial, ChipQuantity) %>%
na.omit() %>%
dplyr::group_by(RawMaterial) %>%
dplyr::summarise(ChipQuantity = sum(ChipQuantity)) %>%
tidyr::spread(RawMaterial, ChipQuantity) %>%
mutate(Class = "Chip") %>%
select(Class, Quartz, Chert, Greywacke,
Dolerite, Chalcedony, Other)
general_table1 <- table(table1$Class, table1$RawMaterial)
general_table1 <- as.data.frame.matrix(general_table1)
general_table1 <- general_table1 %>%
select(Quartz, Chert, Greywacke,
Dolerite, Chalcedony, Other) %>%
tibble::rownames_to_column()
general_table1 <- dplyr::rename(general_table1, "Class" = "rowname")
general_table1 <- union(general_table1, chip_table1)
general_table1 <- general_table1 %>%
mutate("Quartz (%)" = paste0(round(100 * Quartz/sum(Quartz), 2), "%")) %>%
mutate("Chert (%)" = paste0(round(100 * Chert/sum(Chert), 2), "%")) %>%
mutate("Greywacke (%)" = paste0(round(100 * Greywacke/sum(Greywacke), 2), "%")) %>%
mutate("Dolerite (%)" = paste0(round(100 * Dolerite/sum(Dolerite), 2), "%")) %>%
mutate("Chalcedony (%)" = paste0(round(100 * Chalcedony/sum(Chalcedony), 2), "%")) %>%
mutate("Other (%)" = paste0(round(100 * Other/sum(Other), 2), "%")) %>%
select("Class", "Quartz", "Quartz (%)", "Chert", "Chert (%)", "Greywacke", "Greywacke (%)", "Dolerite",
"Dolerite (%)", "Chalcedony", "Chalcedony (%)", "Other", "Other (%)") %>%
dplyr::rename("Quartz (n)" = "Quartz", "Chert (n)" = "Chert", "Greywacke (n)" = "Greywacke", "Dolerite (n)" = "Dolerite",
"Chalcedony (n)" = "Chalcedony", "Other (n)" = "Other") %>%
adorn_totals(where = "col", name = "Total") %>%
mutate("Total (%)" = paste0(round(100 * Total/sum(Total), 2), "%")) %>%
adorn_totals(where = "row", name = "Total")
knitr::kable(head(general_table1[1:15], 12), booktabs=TRUE,caption="Vale Boi - Lower 5. Technological class by raw material.")
```
```{r general2, fig.cap="General table Upper 5/4E.", echo=FALSE}
### General table for Upper 5/4E
db_phase2 <- dataset %>%
filter(Phase=="Upper 5/4E")
table2 <- db_phase2 %>%
select(RawMaterial, Class) %>%
filter(Class != "Chip") %>%
dplyr::group_by(RawMaterial)
chip_table2 <- db_phase2 %>%
filter(Class == "Chip") %>%
select(RawMaterial, ChipQuantity) %>%
na.omit() %>%
dplyr::group_by(RawMaterial) %>%
dplyr::summarise(ChipQuantity = sum(ChipQuantity)) %>%
tidyr::spread(RawMaterial, ChipQuantity) %>%
mutate(Class = "Chip")
chip_table2$Dolerite=0
chip_table2$Other=0
chip_table2 <- chip_table2 %>%
select(Class,Quartz, Chert, Greywacke,
Dolerite, Chalcedony, Other)
general_table2 <- table(table2$Class, table2$RawMaterial)
general_table2 <- as.data.frame.matrix(general_table2)
general_table2 <- general_table2 %>%
select(Quartz, Chert, Greywacke,
Dolerite, Chalcedony, Other) %>%
tibble::rownames_to_column()
general_table2 <- dplyr::rename(general_table2, "Class" = "rowname")
general_table2 <- union(general_table2, chip_table2)
general_table2 <- general_table2 %>%
mutate("Quartz (%)" = paste0(round(100 * Quartz/sum(Quartz), 2), "%")) %>%
mutate("Chert (%)" = paste0(round(100 * Chert/sum(Chert), 2), "%")) %>%
mutate("Greywacke (%)" = paste0(round(100 * Greywacke/sum(Greywacke), 2), "%")) %>%
mutate("Dolerite (%)" = paste0(round(100 * Dolerite/sum(Dolerite), 2), "%")) %>%
mutate("Chalcedony (%)" = paste0(round(100 * Chalcedony/sum(Chalcedony), 2), "%")) %>%
mutate("Other (%)" = paste0(round(100 * Other/sum(Other), 2), "%")) %>%
select("Class", "Quartz", "Quartz (%)", "Chert", "Chert (%)", "Greywacke", "Greywacke (%)", "Dolerite",
"Dolerite (%)", "Chalcedony", "Chalcedony (%)", "Other", "Other (%)") %>%
dplyr::rename("Quartz (n)" = "Quartz", "Chert (n)" = "Chert", "Greywacke (n)" = "Greywacke", "Dolerite (n)" = "Dolerite",
"Chalcedony (n)" = "Chalcedony", "Other (n)" = "Other") %>%
adorn_totals(where = "col", name = "Total") %>%
mutate("Total (%)" = paste0(round(100 * Total/sum(Total), 2), "%")) %>%
adorn_totals(where = "row", name = "Total")
knitr::kable(head(general_table2[1:15], 12), booktabs=TRUE,caption="Vale Boi - Upper 5/4E. Technological class by raw material.")
```
Debitage products represent nearly 10% of both assemblages. Complete blanks are the most represented class, with 4.59% for Lower 5 and 6.18% for Upper 5/4E. Cores are also relatively frequent within these assemblages, with an absolute count of 123 cores, 46 for Lower 5, and 77 for Upper 5/4E. A total of 167 complete retouched pieces were identified, 55 on Lower 5 and 112 on Upper 5/4E.
The most relevant raw materials in both Vale Boi’s analytical units for this study are quartz (c. 43% of the total assemblage for the Upper 5/4E group, and c. 51% for Lower 5) and chert (c. 46% of the Upper 5/4E phase and 38% of the Lower 5; Figure 5).
```{r rmvb, fig.cap="Vale Boi. Frequencies of raw materials by phase. Chips and shatters not included.", echo=FALSE}
dfRM_vb <- dataset %>%
filter(Class!="Chip") %>%
filter(Class!="Shatter") %>%
drop_na(Phase)
dfRM_vb %>%
mutate(RawMaterial = factor(RawMaterial, levels = c("Quartz","Chert","Greywacke","Dolerite","Chalcedony","Other"))) %>%
dplyr::group_by(Phase, RawMaterial) %>%
dplyr::summarise(n = n()) %>%
mutate(percent = n/sum(n)) %>%
ggplot(aes(x=Phase, y = percent, fill = RawMaterial)) +
geom_bar(stat = "identity", width = 0.5) +
scale_y_continuous(labels = scales::percent_format()) +
theme_minimal() + #type of theme
labs(x = "Phases", y = NULL) +# change labels
guides(fill=guide_legend(title=NULL)) + # remove legend title
geom_text(aes(label=ifelse(percent >= 0.07, paste0(sprintf("%.0f", percent*100),"%"),"")),
position=position_stack(vjust=0.5), colour="white") +
theme(axis.title.x = element_text(size = 10, vjust = -1)) +
scale_fill_jco()
```
The number of chips and shatter in quartz is extremely high, both in its representativity within the raw material, with c. 94% for both Lower 5 and Upper 5/4E, and when compared to the relative frequencies of other raw materials. These are followed by blanks, cores, and retouched pieces, although in smaller numbers. Chert shows high frequencies of blanks (15.8% for Lower 5 and 19.6% for Upper 5/4E) when compared to every other class, excluding chips. The latter represents more than 50% of the chert assemblages. Cores represent in both groups around 2% of the total assemblage.
Retouched pieces represent more than 3% of chert for both phases, a number far higher than those in other raw materials. This shows that chert was preferentially used for formal tool production.
Dolerite is only present in layers 4E and 5 of the Terrace (Figure S1), but also in other Proto-Solutrean levels of the Slope area. The most striking characteristic of this raw material in the assemblages under study is the low presence of chips and shatter (n=1 each), but high frequencies of blanks (Table 1). Unlike Lower 5, in Upper 5/4E, dolerite is represented by five retouched tools, some of which are Vale Comprido technology (Figure 6).
```{r vct, fig.cap="Vale Boi - Vale Comprido points in dolerite, chert and chalcedony.", out.width = '70%', fig.align='center', echo=FALSE}
knitr::include_graphics("figure/prancha_vct.jpg")
```
The almost complete absence of dolerite cores, with only one core fragment identified in the Lower 5 group, and low quantity of debitage waste may be explained by the importation of finished pieces or blanks to the site, suggesting that, most likely, no knapping activities occurred with this raw material at the site.
## Techno-typological analysis
Excluding informal cores, there is a clear dominance of single platform cores, for most raw materials and in both phases (Tables S4 and S5). Chert presents the highest variability of core types (Figure 7), with high frequencies for single platform (50% for Lower 5 and 33.3% in Upper 5/4E), but also unidirectional prismatic on Lower 5.
Most cores were used for the extraction of flakes, although blade and bladelet scars also show relatively high frequencies associated with the exploitation of unidirectional prismatic cores (Figure S2).
Most of the analyzed core platforms are plain or cortical. On Upper 5/4E there is a small frequency of faceted platforms on chert (18.5%). Platform width and thickness means show smaller platforms for chert on both phases, while greywacke shows the highest means for platform measurements. This pattern is similar for other measurements, for which chert and quartz exhibit the smaller means (Tables S6 and S7).
Regarding elongation, Figure 8 shows wider range and higher elongation values for chert cores in both phases. Upper 5/4E seems to have less elongated cores in both chert and quartz, but the T-test results indicate no significant difference between sets (Chert t(41) = -0.68, p = 0.5; Quartz t(21)=1.03, p = 0.32).
Core flattening (Figure 8), calculated by dividing maximum width by thickness, reveals that greywacke and other raw materials show higher values, while quartz and chert cores have statistically similar values for both phases (Chert t(41) = -0.20, p = 0.85; Quartz t(19) = 1.15, p = 0.27).
```{r coreupper, echo = FALSE, fig.cap = "Vale Boi - Upper 5/4E. Chert cores with vectorized scar negatives and scar directionality.", fig.align= 'center', out.width = '80%', fig.pos="H"}
knitr::include_graphics("figure/coreU.jpg")
```
```{r ttestcoresVB, include = FALSE}
# CORE ELONGATION TESTING
cores_chert <- dataset %>%
filter(Class == "Core" & RawMaterial == "Chert" & CoreType != "Inform") %>%
mutate(CoreElongation=Length/MaxWidth) %>%
mutate(CoreFlattening=MaxWidth/Thickness) %>%
mutate(CoreConvergence=MedWidth/DistWidth)
var.test(CoreElongation ~ Phase, data = cores_chert)
ttest_elong_cores_chert <- t.test(CoreElongation ~ Phase, var.equal = TRUE, data = cores_chert)
cores_quartz <- dataset %>%
filter(Class == "Core" & RawMaterial == "Quartz" & CoreType != "Inform") %>%
mutate(CoreElongation=Length/MaxWidth) %>%
mutate(CoreFlattening=MaxWidth/Thickness) %>%
mutate(CoreConvergence=MedWidth/DistWidth)
var.test(CoreElongation ~ Phase, data = cores_quartz)
ttest_elong_cores_quartz <- t.test(CoreElongation ~ Phase, var.equal = FALSE, data = cores_quartz)
# CORE FLATTENING TESTING
var.test(CoreFlattening ~ Phase, data = cores_chert)
ttest_flat_cores_chert <- t.test(CoreFlattening ~ Phase, var.equal = TRUE, data = cores_chert)
var.test(CoreFlattening ~ Phase, data = cores_quartz)
ttest_flat_cores_quartz <- t.test(CoreFlattening ~ Phase, var.equal = FALSE, data = cores_quartz)
```
```{r corebloxplotVB, fig.cap="Vale Boi. Boxplots of core elongation and flattening by raw material and phase.", out.width='80%', fig.align='center', echo=FALSE}
coreB <- dataset %>%
filter(Class=="Core") %>%
mutate(CoreElongation=Length/MaxWidth) %>%
mutate(CoreFlattening=MaxWidth/Thickness) %>%
mutate(CoreConvergence=MedWidth/DistWidth) %>%
filter(RawMaterial!="Chalcedony") %>% ##filter out low representitivity
filter(RawMaterial!="Greywacke" | Phase!="Upper 5/4E") %>%
filter(RawMaterial!="Other" | Phase!="Lower 5")
core_elongation <- coreB %>%
mutate(RawMaterial = factor(RawMaterial, levels = c("Quartz", "Chert","Chalcedony",
"Greywacke", "Other"))) %>%
ggplot(aes(x=RawMaterial, y=CoreElongation, fill = Phase)) +
geom_boxplot(outlier.shape = NA) +
theme_minimal() + #type of theme
theme(legend.title = element_blank()) +
labs(x = " ", y = "Elongation") +
theme(axis.title = element_text(size = 10, vjust = -1)) + # x axis size
scale_fill_jco()+
geom_point(pch = 21, position = position_jitterdodge(jitter.width = 0.2))
core_flattening <- coreB %>%
mutate(RawMaterial = factor(RawMaterial, levels = c("Quartz", "Chert","Chalcedony",
"Greywacke", "Other"))) %>%
ggplot(aes(x=RawMaterial, y=CoreFlattening, fill = Phase)) +
geom_boxplot(outlier.shape = NA) +
theme_minimal() + #type of theme
theme(legend.title = element_blank()) +
labs(x = " ", y = "Flattening") +
theme(axis.title = element_text(size = 10, vjust = -1)) + # x axis size
scale_fill_jco()+
geom_point(pch = 21, position = position_jitterdodge(jitter.width = 0.2))
ggarrange(core_elongation, core_flattening,
widths = c(8, 8),
heights = c(10, 10),
nrow = 2,
common.legend = TRUE,
legend = "right")
```
```{r ttestflakesVB, include = FALSE}
# flake ELONGATION TESTING
flake_chert <- dataset %>%
filter(BlankType == "Flake" & RawMaterial == "Chert") %>%
mutate(FlakeElongation=Length/MaxWidth) %>%
mutate(FlakeFlattening=MaxWidth/Thickness) %>%
mutate(FlakeConvergence=MedWidth/DistWidth)
var.test(FlakeElongation ~ Phase, data = flake_chert)
ttest_elong_flake_chert <- t.test(FlakeElongation ~ Phase, var.equal = TRUE, data = flake_chert)
flake_quartz <- dataset %>%
filter(BlankType == "Flake" & RawMaterial == "Quartz") %>%
mutate(FlakeElongation=Length/MaxWidth) %>%
mutate(FlakeFlattening=MaxWidth/Thickness) %>%
mutate(FlakeConvergence=MedWidth/DistWidth)
var.test(FlakeElongation ~ Phase, data = flake_quartz)
ttest_elong_flake_quartz <- t.test(FlakeElongation ~ Phase, var.equal = FALSE, data = flake_quartz)
# CORE FLATTENING TESTING
var.test(FlakeFlattening ~ Phase, data = flake_chert)
ttest_flat_flake_chert <- t.test(FlakeFlattening ~ Phase, var.equal = TRUE, data = flake_chert)
var.test(FlakeFlattening ~ Phase, data = flake_quartz)
ttest_flat_flake_quartz <- t.test(FlakeFlattening ~ Phase, var.equal = FALSE, data = flake_quartz)
```
Both groups show similar patterns for flakes, with little variance between raw materials (Tables S8 and S9). These are mostly composed of irregular, convergent, and parallel shapes, irregular and triangular cross-sections, and straight and curved profiles (quartz showing higher frequencies of straight profiles).
Unidirectional scar patterns on blanks’ dorsal faces are dominant in both phases and all raw materials (Tables S8 and S9). Bidirectional patterns are slightly more relevant in chert (9.3%), and also in dolerite and chalcedony during Upper 5/4E. Dorsal patterns also show on both phases a dominance of 1, 2, and 3 scars for most raw materials, although chert shows higher scar counts. For both phases, and in all raw materials, flakes show high frequencies for 0% cortex on the dorsal face.
Flakes have mostly plain platforms. Faceted platforms are present in both phases but in rather low frequencies only in chert: Lower 5 (1.4%) and Upper 5/4E (2.4%). Platforms are also mostly non-cortical (between 80% and 100% depending on raw material) in both phases.
Regarding elongation (Figure 9), quartz, chert, and chalcedony show the highest values. Despite having similar elongation ranges in both groups, quartz shows relatively different medians in Lower 5. In comparison, Upper 5/4E shows a larger number of elongated quartz flakes in Upper 5/4E (Chert t(470) = -2.42, p = 0.02; Quartz t(522) = -1.68, p = 0.09). For chert, Upper 5/4E also seems to show higher elongation values for flakes, though once again, there is a wide range of variability regarding elongation in the assemblage.
As for flattening (Figure 9), quartz shows very low values for flake flattening, compared to other raw materials. The data, however, also shows that for all raw materials, except for quartz, flake flattening is extremely variable within assemblages. With the exception of dolerite, there does not seem to be much difference in elongation ratios between phases (Chert t(470) = -0.08, p = 0.94; Quartz t(568) = -0.51, p = 0.61).
```{r flakeboxplot, fig.cap="Vale Boi. Boxplots of flake elongation and flattening by raw material and phase.", echo=FALSE, fig.align= 'center', out.width = '80%', fig.pos="H"}
flakeB <- dataset %>%
filter(BlankType=="Flake") %>%
mutate(FlakeElongation=Length/MaxWidth) %>%
mutate(FlakeFlattening=MaxWidth/Thickness) %>%
select(Phase, RawMaterial, FlakeFlattening, FlakeElongation) %>%
filter(FlakeFlattening < 15) %>% # removing 3 outliers which pull the tails up distorting the graph
na.omit()
flake_elongation <- flakeB %>%
mutate(RawMaterial = factor(RawMaterial, levels = c("Quartz", "Chert",
"Greywacke","Dolerite","Chalcedony", "Other"))) %>%
ggplot(aes(x=RawMaterial, y=FlakeElongation, fill = Phase)) +
geom_boxplot() +
theme_minimal() + #type of theme
theme(legend.title = element_blank()) +
labs(x = " ", y = "Elongation") +
theme(axis.title = element_text(size = 10, vjust = -1)) + # x axis size
scale_fill_jco() +
scale_color_jco()
# geom_point(pch = 21, position = position_jitterdodge(jitter.width = 0.3))
flake_flattening <- flakeB %>%
mutate(RawMaterial = factor(RawMaterial, levels = c("Quartz", "Chert", "Greywacke","Dolerite","Chalcedony", "Other"))) %>%
ggplot(aes(x=RawMaterial, y=FlakeFlattening, fill = Phase)) +
geom_boxplot() +
theme_minimal() + #type of theme
theme(legend.title = element_blank()) +
labs(x = " ", y = "Flattening") +
theme(axis.title = element_text(size = 10, vjust = -1)) + # x axis size
scale_fill_jco()+
scale_color_jco()
# geom_point(pch = 21, position = position_jitterdodge(jitter.width = 0.3))
ggarrange(flake_elongation, flake_flattening,
widths = c(8, 8),
heights = c(10, 10),
nrow = 2,
common.legend = TRUE,
legend = "right")
```
A total of 219 elongated products (i.e., blanks with length at least twice the width) were recorded. 82 of these blanks are from Lower 5, while 137 are from the Upper 5/4E group. Comparatively to the whole group of blanks, there is a more significant number of chert pieces (n=106), this number only changing in Lower 5, where quartz elongated blank numbers (n=44) supersede chert ones (n=31). Figures 10 and 11 show the scatterplots for width and length of elongated blanks of the two main raw materials present at both phases identified at Vale Boi. Following the traditional subdivision between blade and bladelet (Tixier, 1963), both charts clearly show that the main goal of the reduction sequences for elongated products were bladelets. Only in the Upper 5/4E group, there seems to be a bimodal distribution in the width variable for chert artifacts.
Testing this apparent division (artifacts wider than 12.5 mm and those with less than 12.5 mm in width) against all other relevant morphological variables revealed, however, no significant difference between the two groups for almost all variables, except for cortex, scar count and scar patterns (Table 3).
```{r fishertestelongVB, include=FALSE}
elongAT <- dataset %>%
filter(BlankType=="ElongatedProd")
elong_groups_AT2 <- elongAT %>%
mutate(elong_group = case_when(MedWidth < 12.5 ~ "Bladelet",
MedWidth >= 12.5 ~ "Blade")) %>%
filter(RawMaterial == "Chert" & Phase == "Upper 5/4E")
plat <- fisher.test(table(elong_groups_AT2$PlatformType, elong_groups_AT2$elong_group))
prof <- fisher.test(table(elong_groups_AT2$Profile, elong_groups_AT2$elong_group))
cross <- fisher.test(table(elong_groups_AT2$CrossSection, elong_groups_AT2$elong_group))
shape <- fisher.test(table(elong_groups_AT2$BlankShape, elong_groups_AT2$elong_group))
```
```{r fisherelongVB2, echo = FALSE, warning=FALSE, message=FALSE}
elongAT <- dataset %>%
filter(BlankType=="ElongatedProd")
elong_groups_AT2 <- elongAT %>%
mutate(elong_group = case_when(MedWidth < 12.5 ~ "Bladelet",
MedWidth >= 12.5 ~ "Blade")) %>%
filter(RawMaterial == "Chert" & Phase == "Upper 5/4E")
elong_test_AT2 <- tabmulti(elong_groups_AT2, "elong_group", c("CrossSection",
"BlankShape", "Profile",
"BlankTip",
"PlatformType",
"PlatformCortex", "Cortex",
"ScarCount", "ScarPattern"),
ymeasures = c("freq", "freq", "freq",
"freq","freq","freq","freq","freq", "freq"),
p.include = TRUE,
freq.tests = 'fisher',
n.headings = FALSE,
bold.varnames = TRUE,
bold.colnames = TRUE,
overall.column = FALSE,
variable.colname = "Attributes")
elong_test_AT2 <- as.data.frame(elong_test_AT2)
elong_test_AT2 <- elong_test_AT2 %>%
filter(Attributes %in% c("CrossSection, n (%)", "BlankShape, n (%)", "2 Profile, n (%)", "BlankTip, n (%)", "PlatformType, n (%)",
"PlatformCortex, n (%)", "Cortex, n (%)", "ScarCount, n (%)", "ScarPattern, n (%)"))
elong_test_AT2 <- elong_test_AT2 %>%
select(1,4)
knitr::kable(elong_test_AT2,booktabs=TRUE, caption = "Vale Boi - Upper5/4E. Results of Fisher exact tests to evaluate whether the distribution of technological variables differed across metric groups (blades and bladelets) of chert elongated artifacts.") %>%
kable_styling(font_size = 9, latex_options = "hold_position")
```
The results seem to indicate that the difference between the two classes is likely not related with the existence of two distinct reduction sequences but of a single reduction sequence with cortical or partially cortical elongated products at the beginning of core exploitation, when bidirectional strategies were used to perform decortication and core configuration. Together with the reasonably linear positive correlation showed by the chert tendency line displayed in Figure 11, the results seem enough to do the technological description of all elongated products as a single category.
```{r elongVBsetup, include=FALSE}
elongAT <- dataset %>%
filter(BlankType=="ElongatedProd")
elong_groups_AT2 <- elongAT %>%
mutate(elong_group = case_when(MedWidth < 12.5 ~ "Bladelet",
MedWidth >= 12.5 ~ "Blade")) %>%
filter(RawMaterial == "Chert" & Phase == "Upper 5/4E")
```
```{r elongdisp1, fig.cap="Vale Boi - Lower 5. Elongated products width and length dispersion by raw material.", echo=FALSE}
elongAT1 <- elongAT %>%
filter(Phase=="Lower 5")
elong_disp1 <- elongAT1 %>%
filter(RawMaterial %in% c("Chert","Quartz")) %>%
mutate(RawMaterial = factor(RawMaterial, levels = c("Quartz",
"Chert", "Greywacke")))
disp_1 <- ggplot(elong_disp1, aes(MedWidth, Length, color = RawMaterial)) +
geom_point() +
theme_minimal() + #type of theme
labs(x = "Width (mm)", y = "Length (mm)") + # change labels
theme(axis.title = element_text(size = 10, vjust = -1), legend.position="bottom") +
labs(color = "Raw Material") + # x axis size
scale_color_jco() + # set colours
geom_smooth(method = "lm", se = FALSE)
ggMarginal(disp_1, type = "density", groupColour = TRUE, groupFill = TRUE)
```
```{r elongdisp2,fig.cap="Vale Boi - Upper 5/4E. Elongated product width and length dispersion by raw material.", echo=FALSE}
elongAT2 <- elongAT %>%
filter(Phase=="Upper 5/4E")
elong_disp2 <- elongAT2 %>%
filter(RawMaterial %in% c("Chert","Quartz")) %>%
mutate(RawMaterial = factor(RawMaterial, levels = c("Quartz",
"Chert", "Greywacke")))
disp_2 <- ggplot(elong_disp2, aes(MedWidth, Length, color = RawMaterial)) +
geom_point() +
theme_minimal() + #type of theme
labs(x = "Width (mm)", y = "Length (mm)") + # change labels
theme(axis.title = element_text(size = 10, vjust = -1), legend.position="bottom") +
labs(color = "Raw Material") + # x axis size
scale_color_jco() + # set colours
geom_smooth(method = "lm", se = FALSE)
ggMarginal(disp_2, type = "density", groupColour = TRUE, groupFill = TRUE)
```
Elongated blanks have mostly parallel and convergent shapes, on both phases. Cross-sections are mostly triangular, with straight and curved profiles (Tables S12 and S13). Differences in profile types are rather significant between both phases, but only for quartz artifacts. While in Lower 5, quartz elongated blanks present a percentage of curved profiles of c. 23%, in Upper 5/4E, this percentage drops to c. 12%. Curved and twisted profiles in bladelets are usually associated with the exploitation of carinated cores, particularly in the Gravettian-Solutrean transition, as presented by Almeida (2000) for the Terminal Gravettian of the Portuguese Estremadura. Although no carinated cores were identified in the Lower 5 assemblage, the presence of a significant number of bladelets with curved profiles might suggest the use of such reduction strategy.
Scar patterns show an evident tendency for unidirectional knapping strategies on all raw materials. Once again, there is little cortex on the dorsal face of the pieces, although chert shows, for both groups, the highest variability of cortex percentage frequencies.
Elongated blanks in both phases seem to be obtained without platform preparation. The general tendency for both phases is for the absence of cortical platforms.
Regarding retouched tools, Lower 5 is comprised of several types, from which a few stand out by their high numbers, such as retouched flakes, splintered pieces, and notches (Table 4 and 5).
For Upper 5/4E, splintered pieces are still common (c. 24%), in both chert and quartz, followed by endscrapers and notches. Every other retouched tool type has frequencies under 10%.
Upper 5/4E shows not only a more significant number of retouched tools, which might be the result of a more intensive occupation, but also a wider variety of types, probably as a result of a more diverse set of activities occurring at the site.
One of these newly introduced retouched types is the Vale Comprido point (Figure 6). Vale Comprido points have been identified in chert (n=1), greywacke (n=1), dolerite (n=3) and chalcedony (n=1). In fact, dolerite had already been identified as a preferred blank for producing these types of tools (Marreiros, 2009). Comparatively, dolerite was not used for the production of any retouched pieces in Lower 5.
```{r retouchVB1, echo=FALSE}
retouch1 <- dataset %>%
filter(Class == "RetouchedPiece") %>%
filter(Phase=="Lower 5") %>%
select(RawMaterial, RetouchedPieceTypology) %>%
dplyr::group_by(RawMaterial)
retouch_table1 <- table(retouch1$RetouchedPieceTypology, retouch1$RawMaterial)
retouch_table1 <- as.data.frame.matrix(retouch_table1)
retouch_table1 <- retouch_table1 %>%
select(Quartz, Chert, Greywacke,
Chalcedony) %>%
tibble::rownames_to_column()
retouch_table1 <- dplyr::rename(retouch_table1, "Typology" = "rowname")
retouched_order <- c("Typology","Endscraper", "Dihedral Burin", "Burin on truncation", "Truncation", "Notch", "Denticulate", "Splintered piece", "Double backed bladelet", "Retouched blade", "Retouched bladelet", "Retouched flake", "Total")
retouch_table1 <- retouch_table1 %>%
mutate("Quartz (%)" = paste0(round(100 * Quartz/sum(Quartz), 2), "%")) %>%
mutate("Chert (%)" = paste0(round(100 * Chert/sum(Chert), 2), "%")) %>%
mutate("Greywacke (%)" = paste0(round(100 * Greywacke/sum(Greywacke), 2), "%")) %>%
mutate("Chalcedony (%)" = paste0(round(100 * Chalcedony/sum(Chalcedony), 2), "%")) %>%
select("Typology", "Quartz", "Quartz (%)", "Chert", "Chert (%)", "Greywacke", "Greywacke (%)",
"Chalcedony", "Chalcedony (%)") %>%
dplyr::rename("Quartz (n)" = "Quartz", "Chert (n)" = "Chert", "Greywacke (n)" = "Greywacke",
"Chalcedony (n)" = "Chalcedony") %>%
adorn_totals(where = "col", name = "Total") %>%
mutate("Total (%)" = paste0(round(100 * Total/sum(Total), 2), "%")) %>%
adorn_totals(where = "row", name = "Total", fill = "100%") %>%
as_tibble() %>%
slice(match(retouched_order, Typology))
knitr::kable(head(retouch_table1[1:11], 13), booktabs=TRUE, caption = "Vale Boi - Lower 5. Retouched piece typology by raw material.")
```
```{r retouchVB2, echo=FALSE}
retouch2 <- dataset %>%
filter(Class == "RetouchedPiece") %>%
filter(Phase=="Upper 5/4E") %>%
select(RawMaterial, RetouchedPieceTypology) %>%
dplyr::group_by(RawMaterial)
retouch_table2 <- table(retouch2$RetouchedPieceTypology, retouch2$RawMaterial)
retouch_table2 <- as.data.frame.matrix(retouch_table2)
retouch_table2 <- retouch_table2 %>%
select(Quartz, Chert, Greywacke, Dolerite,
Chalcedony) %>%
tibble::rownames_to_column()
retouch_table2 <- dplyr::rename(retouch_table2, "Typology" = "rowname")
retouched_order2 <- c("Typology","Endscraper","Carinated endscraper","Perforator-endscraper","Perforator", "Dihedral Burin", "Burin on truncation", "Truncation", "Vale Comprido Point", "Notch", "Denticulate", "Splintered piece","Backed bladelet","Backed bladelet parcial", "Retouched blade", "Retouched bladelet", "Retouched flake", "Total")
retouch_table2 <- retouch_table2 %>%
mutate("Quartz (%)" = paste0(round(100 * Quartz/sum(Quartz), 2), "%")) %>%
mutate("Chert (%)" = paste0(round(100 * Chert/sum(Chert), 2), "%")) %>%
mutate("Greywacke (%)" = paste0(round(100 * Greywacke/sum(Greywacke), 2), "%")) %>%
mutate("Dolerite (%)" = paste0(round(100 * Dolerite/sum(Dolerite), 2), "%")) %>%
mutate("Chalcedony (%)" = paste0(round(100 * Chalcedony/sum(Chalcedony), 2), "%")) %>%
select("Typology", "Quartz", "Quartz (%)", "Chert", "Chert (%)", "Greywacke", "Greywacke (%)", "Dolerite", "Dolerite (%)",
"Chalcedony", "Chalcedony (%)") %>%
dplyr::rename("Quartz (n)" = "Quartz", "Chert (n)" = "Chert", "Greywacke (n)" = "Greywacke", "Dolerite (n)" = "Dolerite",
"Chalcedony (n)" = "Chalcedony") %>%
adorn_totals(where = "col", name = "Total") %>%
mutate("Total (%)" = paste0(round(100 * Total/sum(Total), 2), "%")) %>%
adorn_totals(where = "row", name = "Total", fill = "100%") %>%
as_tibble() %>%
slice(match(retouched_order2, Typology))
knitr::kable(retouch_table2, booktabs=TRUE, caption = "Vale Boi - Upper 5/4E. Retouched piece typology by raw material.")
```
# Lapa do Picareiro
## Stratigraphy and chronology
Lapa do Picareiro is a cave site on the west-facing slope of Serra d’Aire, a limestone massif north of the Tagus River valley and Lisbon (Figure 1) (Benedetti et al., 2019; Bicho et al., 2006). The massif is underlain by the Serra d’Aire formation, a thick-bedded limestone of the Middle Jurassic age (Carvalho, 2018). Serra d’Aire is part of a large limestone region (Maciço Calcário Estremenho), with several Paleolithic sites (Almeida, 2000; Benedetti et al., 2019).
The interior of the chamber is about 11 x 14 m, and has more than 10 m of coarse sedimentary infill in inclined beds, derived from roof collapse, gravity flows and fine sediment infiltration (Benedetti et al., 2019). The cave opening is marked by the existence of a large limestone cone of stone blocks (Bicho et al., 2006), while the sediment inside the cave consists of smaller and angular limestone clasts in a matrix of fine sediment (Benedetti et al., 2019).
Lapa do Picareiro shows a long sequence of occupations, from the Middle Paleolithic, Upper Paleolithic, Epipaleolithic, Neolithic and Bronze Age, the latter two mostly in the front of the cave, and adjacent outside areas (Benedetti et al., 2019; Bicho et al., 2006).
The Paleolithic finds were, so far, recovered from two main areas: the main chamber and a niche in the rear wall. A plan with excavation units may be found in the Supplementary Materials (Figure S3). The main chamber shows a sequence of Middle to Upper Paleolithic occupations, centered on units E7 to F8 (Benedetti et al., 2019). The main feature in this area is a large Magdalenian hearth in level F/G with associated lithics and a large quantity of fauna, which was interpreted as a particular purpose occupation for processing animal carcasses (Bicho et al., 2006). The niche finds, concentrated in units XX9 to ZZ11, present a series of smaller, stacked hearths, radiocarbon dated to the Magdalenian, Solutrean, Proto-Solutrean and Terminal Gravettian (Benedetti et al., 2019).
The large hearth and associated features are the only areas where human activity largely disturbed the sedimentary sequence. In all other areas, human activity is limited to thin hearths in association with sporadic lithic concentrations and modified bones. These periods of occupation appear in the sedimentary sequences as alternated with moments of culturally sterile faunal occupation (Benedetti et al., 2019). Thus, human activity at the site might be understood as several discontinuous occupations inside the cave throughout the late Middle and Upper Paleolithic, which intensified through the latter with a significant peak during the Magdalenian.
A complete description of all currently identified levels in the site and, whenever existent, associated lithic assemblages, may be found in Benedetti et al. (2019) and Table S16. From the 34 levels described, 23 show human occupations or association with lithic assemblages, and 20 of these can be attributed to the Upper Paleolithic.
Magdalenian occupations are divided into Late Magdalenian (levels E-J) and Early Magdalenian (levels K-L). Solutrean occupations occur in levels O, R, and S (level P showing neither bone fragments nor a lithic assemblage).
Level T, approximately 50 cm thick, is comprised of several lithic assemblages which have been attributed to differing technocomplexes: Solutrean in the upper level; Proto-Solutrean in the middle portion of T; and Terminal Gravettian in the lower portion of the level T, the latter technocomplex also identified in level U, with a ~15 cm thick layer (Benedetti et al., 2019).
Levels V, W, and X were associated with Gravettian occupations while levels BB, DD, and FF (each intercalated with culturally sterile levels), have early Upper Paleolithic lithic assemblages. Finally, an Aurignacian occupation is present in level GG.
Regarding the layers identified as Terminal Gravettian/Proto-Solutrean, the physical distinction between level U and the lower portion of T is hard to make near the back of the cave. In this area, both levels show similar reddish muddy sediment and clast, with the presence of abundant animal bones in level T. Level U/lower T is about 30 cm thick, incorporating the entire 15 cm of level U and the lower 15 cm of level T, with the presence of possible combustion features and distinct activity areas.
The lithic assemblage from U/ lower T derives from back left side of the cave. There is an apparent concentration of lithics, comprised mostly of quartz and rock crystal, and some chert, all raw materials appearing mostly in the shape of bladelets (Figure 12). A few bone tools were also found. Other recovered artifacts also include perforated marine shells and perforated red deer canine teeth. The recovered artifacts show a rich faunal assemblage, with a high presence of red deer, though ibex presence is also important, and a superabundance of rabbit bones.
```{r quartzbladelet, fig.cap="Lapa do Picareiro - U/Lower T - Fine quartz and rock crystal blanks and blank fragments.", out.width = '60%', fig.align='center', echo=FALSE, fig.pos="H"}
knitr::include_graphics("figure/prancha_bladelets.jpg")
```
For U and lower T, radiocarbon dates (Table S3), all obtained from charcoal samples, show results of c. 27-26 cal ka BP, except for one of lower T dates which presents a result of c. 25-24 cal ka BP.
The middle part of T shows the presence of circular concentrations of charcoals, about 10-15 cm thick, which have been interpreted as hearths in and around the wall niche on the right side. The lithic assemblage in this portion of level T is found in two areas: an accumulation of lithics surrounding the hearths and other scattered pieces in the same spits as the hearths but in different units. This assemblage is mostly comprised of chert, with rare presence of quartz and rock crystal bladelets and flakes. Although the presence of traditionally-defined Vale Comprido points is not completely attested, there are several blanks which seem to resemble this type of technology, in the form of convergent elongated blanks (Figure 13).
```{r lpblades, fig.cap="Lapa do Picareiro - Middle T - Chert blades with similarities to Vale Comprido technology.", out.width = '60%', fig.align='center', echo=FALSE}
knitr::include_graphics("figure/prancha_blades.jpg")
```
Artifacts also include bone points as in the U/lower T assemblage. There is also a high frequency of animal bones, following the same species patterns as lower T and level U (although these results are preliminary).
The dates for middle T (Figure 15), obtained from charcoal and bone samples, provided results of c. 25-24 ka cal BP, with one date presenting a range of c. 23.4-23.6 ka cal BP.
There is a clear separation between the two groups, one composed of levels U and lower T, and the other of middle T. This is also visible on the spatial dispersion of lithics and other artifacts (Figure 14), with an accumulation on the bottom left, correspondent to the U/lower T, and another aggregation in the middle portion, to the right, ranging from 20-40 cm of depth difference between the groups.
```{r spatialut, fig.cap="Lapa do Picareiro. Spatial distribution of all plotted artefacts from levels T-U (in grey), lithic artefacts in colours and shapes referring to raw material and class. After Haws et al. (2019).", echo=FALSE}
knitr::include_graphics(here::here("analysis/figures/LPspatial.jpg"))
```
The patterns in the lithic assemblages also indicate a clear difference between the groups: the high frequency of quartz/rock crystal bladelets of U/lower T shows a marked difference from the middle T, where chert frequencies are higher, and there is a more balanced frequency of bladelets and flakes.
Finally, the dates for both U/lower T and middle T further strengthen the separation between the occupations, showing a gap of c. 2 ka years between the assemblages, and placing the U/lower T occupation somewhere around 27-26 cal ka BP and the middle T occupation at c. 25-24 cal ka BP.
```{r c14LP, echo = FALSE, fig.cap = "Lapa do Picareiro. Radiocarbon results for layers U and T. The results presented are modeled dates based on a Bayesian model (Ramsey et al. 2009) using all dates available for the stratigraphic sequence of the cave. All dates were calibrated using the IntCal13 curve (Reimer et al. 2013). The Oxcal script bayesian model is provided as online supplementary materials.", fig.align= 'center', out.width = '60%', fig.pos="H"}
knitr::include_graphics(here::here("analysis/figures/c14_LP.png"))
```
## Lithic assemblages
The materials from Lapa do Picareiro selected for this study come exclusively from Levels U and T. Given the aforementioned geo-archaeological background, for the present analysis the materials were separated into two assemblages: *U/Lower T*, which included all artifacts with depths inferior to 566.9 m or, in case of artifacts lacking 3D coordinates, from all spits from Level U and spits 6 through 8 from Level T (Haws et al., 2019); *Middle T*, including all artifacts with depths equal or superior to 566.9 m, or from the top five spits of Level T. Any other artifact in the assemblage which did not have a depth value or level/spit was not considered in these results since it lacked the required information to contextualize its technological attributes. Also excluded from this study are the materials found on top of Level T, undoubtedly attributable to the Solutrean (Benedetti et al., 2019; Haws et al., 2019).
A total of 376 pieces were analyzed, 196 coming from the U/Lower T phase and 180 from the Middle T group (Tables 6 and 7). In both groups, debitage waste is mostly composed of chips (more than 35% in both groups). As in Vale Boi, these values for chippage can be mostly explained by quartz breakage patterns.
```{r general1lp, echo=FALSE}
## General table for U/Lower T
db_phaseTG <- datasetlp %>%
filter(Phase == "U/Lower T")