diff --git a/404.html b/404.html index d144d40..99ad16b 100644 --- a/404.html +++ b/404.html @@ -1,77 +1,37 @@ - - -
- + + + + -vignettes/intchron_api.Rmd
+ Source: vignettes/intchron_api.Rmd
intchron_api.Rmd
This vignette introduces low-level functions for interacting with IntChron’s API directly. In most cases, the high-level interface provided by intchron()
should be sufficient; see vignette("intchron")
.
library("rintchron")
This vignette introduces low-level functions for interacting with
+IntChron’s API directly. In most cases, the high-level interface
+provided by intchron()
should be sufficient; see
+vignette("intchron")
.
IntChron’s records are organised into a hierarchical tree by data source (‘host’), country, and individual data series (typically a site). For example, the canonical URLs for records from the site of Kharaneh IV (<https://intchron.org/record/oxa/Jordan/Kharaneh IV> and <https://intchron.org/record/nrcf/Jordan/Kharaneh IV>) encode their position in the tree:
-#> Loading required package: ggplot2
+IntChron’s records are organised into a hierarchical tree by data +source (‘host’), country, and individual data series (typically a site). +For example, the canonical URLs for records from the site of Kharaneh IV +(<https://intchron.org/record/oxa/Jordan/Kharaneh IV> +and <https://intchron.org/record/nrcf/Jordan/Kharaneh IV>) +encode their position in the tree:
+#> Loading required package: ggplot2
+#> Warning: Using the `size` aesthetic in this geom was deprecated in ggplot2 3.4.0.
+#> ℹ Please use `linewidth` in the `default_aes` field and elsewhere instead.
+#> This warning is displayed once every 8 hours.
+#> Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
+#> generated.
-Here we can distinguish between ‘data’ records and ‘index’ records. Data records include a data series (such as a list of radiocarbon dates) and are found at the terminal nodes of the tree. Index records are the intermediate nodes in the tree and do not contain a data series, only a list of links to other records. For example, the index record at record/oxa/Jordan
(https://intchron.org/record/oxa/Jordan) has a list of all the sites from Jordan in the ORAU database.
There are other index records, such as host/oxa
and record/Jordan
, but these are aliases that eventually redirect to the canonical hierarchy described above.
What this means is that if you want to aggregate multiple records, whether a specific subset (e.g. records from Kharaneh IV, records from Jordan), or the whole database, you cannot rely on a single request. Instead, you need to ‘crawl’ the tree from an index node to the data nodes you’re interested in.
-The intchron_crawl()
function provides this functionality. Starting from a given index record, it will recursively follow all the links it finds until it reaches the ends of the tree, and return all the data records it finds there. For example, you can retrieve the entire IntChron database by crawling the whole tree from the record
entry point:
Here we can distinguish between ‘data’ records and ‘index’ records.
+Data records include a data series (such as a list of radiocarbon dates)
+and are found at the terminal nodes of the tree. Index records are the
+intermediate nodes in the tree and do not contain a data series, only a
+list of links to other records. For example, the index record at
+record/oxa/Jordan
(https://intchron.org/record/oxa/Jordan) has a list of
+all the sites from Jordan in the ORAU database.
There are other index records, such as host/oxa
and
+record/Jordan
, but these are aliases that eventually
+redirect to the canonical hierarchy described above.
What this means is that if you want to aggregate multiple records, +whether a specific subset (e.g. records from Kharaneh IV, records from +Jordan), or the whole database, you cannot rely on a single request. +Instead, you need to ‘crawl’ the tree from an index node to the data +nodes you’re interested in.
+The intchron_crawl()
function provides this
+functionality. Starting from a given index record, it will recursively
+follow all the links it finds until it reaches the ends of the tree, and
+return all the data records it finds there. For example, you can
+retrieve the entire IntChron database by crawling the whole tree from
+the record
entry point:
-# Takes a long time!
-everything <- intchron_crawl(intchron_url("record"))
The remaining arguments to intchron_crawl()
give options for refining this search with two common objectives in mind:
# Takes a long time!
+everything <- intchron_crawl(intchron_url("record"))
The remaining arguments to intchron_crawl()
give options
+for refining this search with two common objectives in mind:
IntChron is an indexing service for chronological data such as radiocarbon dates (Bronk Ramsey et al. 2019). It specifies a standard exchange format and provides a consistent API for querying databases that use its schema. The rintchron package provides a simple interface for querying these databases with intchron()
, explained in this vignette.
The package also includes low level functions for interacting with the IntChron API directly, described in vignette("intchron-api")
.
IntChron is an indexing service
+for chronological data such as radiocarbon dates (Bronk Ramsey et al. 2019). It specifies a
+standard exchange format and provides a consistent API for querying
+databases that use its schema. The rintchron package provides a simple
+interface for querying these databases with intchron()
,
+explained in this vignette.
The package also includes low level functions for interacting with
+the IntChron API directly, described in
+vignette("intchron-api")
.
Use intchron()
to query databases indexed by IntChron. At a minimum, you will need to specify which databases or ‘hosts’ you want to query.1 Use intchron_hosts()
to see a list of currently available databases:
library("rintchron")
Use intchron()
to query databases indexed by IntChron.
+At a minimum, you will need to specify which databases or ‘hosts’ you
+want to query.1 Use intchron_hosts()
to see a
+list of currently available databases:
-intchron_hosts()
-#> # A tibble: 5 x 2
-#> host database
-#> <chr> <chr>
-#> 1 egyptdb Egyptian Radiocarbon Database
-#> 2 intimate INTIMATE Database
-#> 3 nrcf NERC Radiocarbon Facility (Oxford)
-#> 4 oxa Oxford Radiocarbon Accelerator Unit
-#> 5 sadb Southern Africa Radiocarbon Database
The first argument to intchron()
should be a the ‘host’ code of the database you want to query, or a vector of hosts to query more than one (e.g. intchron(hosts = c("oxa", "nrcf"))
). For example, to return the entire South Africa Radiocarbon Database (‘sadb’):
intchron_hosts()
+#> # A tibble: 6 × 2
+#> host database
+#> <chr> <chr>
+#> 1 egyptdb Egyptian Radiocarbon Database
+#> 2 intimate INTIMATE Database
+#> 3 nrcf NERC Radiocarbon Facility (Oxford)
+#> 4 oxa Oxford Radiocarbon Accelerator Unit
+#> 5 sadb Southern Africa Radiocarbon Database
+#> 6 intcal20 IntCal20 archive
The first argument to intchron()
should be a the ‘host’
+code of the database you want to query, or a vector of hosts to query
+more than one (e.g. intchron(hosts = c("oxa", "nrcf"))
).
+For example, to return the entire South Africa Radiocarbon Database
+(‘sadb’):
-intchron("sadb")
-#> # A tibble: 2,575 x 24
-#> record_site record_country record_name record_longitude record_latitude
-#> <chr> <chr> <chr> <dbl> <dbl>
-#> 1 Basinghall Botswana Basinghall 27.1 -23.5
-#> 2 Basinghall Botswana Basinghall 27.1 -23.5
-#> 3 Basinghall Botswana Basinghall 27.1 -23.5
-#> 4 Basinghall Botswana Basinghall 27.1 -23.5
-#> 5 Basinghall Botswana Basinghall 27.1 -23.5
-#> 6 Basinghall Botswana Basinghall 27.1 -23.5
-#> 7 Bisoli Botswana Bisoli 27.6 -21.0
-#> 8 Bisoli Botswana Bisoli 27.6 -21.0
-#> 9 Bobonong R… Botswana Bobonong R… 28.8 -22.2
-#> 10 Bosutswe Botswana Bosutswe 26.6 -22.0
-#> # … with 2,565 more rows, and 19 more variables: series_type <chr>,
-#> # labcode <chr>, country <chr>, region <chr>, longitude <dbl>,
-#> # latitude <dbl>, site <chr>, sample <chr>, material <chr>, species <chr>,
-#> # d13C <dbl>, r_date <int>, r_date_sigma <int>, qual <chr>,
-#> # environment <chr>, context <chr>, period <chr>, subperiod <chr>, refs <chr>
You can further refine your query by specifying the locations you are interested in with the countries
and sites
parameters. Like hosts
, these can also accept a vector of locations. For example, to download records from Jordan in the ORAU (oxa
) and NERC-RF (nrcf
) databases:
intchron("sadb")
+#> # A tibble: 2,565 × 36
+#> record_environment record_site_context record_z_type record_z_basis
+#> <chr> <chr> <lgl> <lgl>
+#> 1 Savanna Biome settlement NA NA
+#> 2 Savanna Biome settlement NA NA
+#> 3 Savanna Biome settlement NA NA
+#> 4 Savanna Biome settlement NA NA
+#> 5 Savanna Biome settlement NA NA
+#> 6 Savanna Biome settlement NA NA
+#> 7 NA settlement NA NA
+#> 8 NA settlement NA NA
+#> 9 Savanna Biome settlement NA NA
+#> 10 Desert Biome settlement NA NA
+#> # ℹ 2,555 more rows
+#> # ℹ 32 more variables: record_z_units <lgl>, record_t_source <lgl>,
+#> # record_suppress_t <lgl>, record_suppress_z <lgl>,
+#> # record_record_comment <chr>, record_site <chr>, record_country <chr>,
+#> # record_region <chr>, record_latitude <dbl>, record_longitude <dbl>,
+#> # record_elevation <lgl>, record_name <chr>, record_site_type <chr>,
+#> # record_color <chr>, series_type <chr>, t <dbl>, t_sigma <dbl>, …
You can further refine your query by specifying the locations you are
+interested in with the countries
and sites
+parameters. Like hosts
, these can also accept a vector of
+locations. For example, to download records from Jordan in the ORAU
+(oxa
) and NERC-RF (nrcf
) databases:
-jordan <- intchron(c("oxa", "nrcf"), countries = "Jordan")
-jordan
-#> # A tibble: 156 x 19
-#> record_site record_country record_name record_longitude record_latitude
-#> <chr> <chr> <chr> <dbl> <dbl>
-#> 1 Araq ed-Du… Jordan Araq ed-Du… 32.3 35.7
-#> 2 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
-#> 3 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
-#> 4 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
-#> 5 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
-#> 6 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
-#> 7 Azraq 31 Jordan Azraq 31 36.8 31.8
-#> 8 Azraq 31 Jordan Azraq 31 36.8 31.8
-#> 9 Azraq 31 Jordan Azraq 31 36.8 31.8
-#> 10 Burqu' 02 Jordan Burqu' 02 37.8 32.7
-#> # … with 146 more rows, and 14 more variables: series_type <chr>,
-#> # labcode <chr>, longitude <dbl>, latitude <dbl>, sample <chr>,
-#> # material <chr>, species <chr>, d13C <dbl>, r_date <int>,
-#> # r_date_sigma <int>, qual <chr>, F14C <dbl>, F14C_sigma <dbl>, refs <chr>
Use intchron_countries()
to get a list of available countries on IntChron:
jordan <- intchron(c("oxa", "nrcf"), countries = "Jordan")
+jordan
+#> # A tibble: 156 × 19
+#> record_site record_country record_name record_longitude record_latitude
+#> <chr> <chr> <chr> <dbl> <dbl>
+#> 1 Araq ed-Dubb Jordan Araq ed-Dubb 32.3 35.7
+#> 2 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
+#> 3 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
+#> 4 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
+#> 5 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
+#> 6 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
+#> 7 Azraq 31 Jordan Azraq 31 36.8 31.8
+#> 8 Azraq 31 Jordan Azraq 31 36.8 31.8
+#> 9 Azraq 31 Jordan Azraq 31 36.8 31.8
+#> 10 Burqu' 02 Jordan Burqu' 02 37.8 32.7
+#> # ℹ 146 more rows
+#> # ℹ 14 more variables: series_type <chr>, labcode <chr>, longitude <dbl>,
+#> # latitude <dbl>, sample <chr>, material <chr>, species <chr>, d13C <dbl>,
+#> # r_date <int>, r_date_sigma <int>, qual <chr>, F14C <dbl>, F14C_sigma <dbl>,
+#> # refs <chr>
Use intchron_countries()
to get a list of available
+countries on IntChron:
-intchron_countries()
-#> # A tibble: 109 x 1
-#> country
-#> <chr>
-#> 1 Albania
-#> 2 Algeria
-#> 3 Andorra
-#> 4 Angola
-#> 5 Antarctica
-#> 6 Argentina
-#> 7 Armenia
-#> 8 Australia
-#> 9 Austria
-#> 10 Bahrain
-#> # … with 99 more rows
intchron_countries()
+#> # A tibble: 117 × 1
+#> country
+#> <chr>
+#> 1 Albania
+#> 2 Algeria
+#> 3 Andorra
+#> 4 Angola
+#> 5 Antarctica
+#> 6 Argentina
+#> 7 Armenia
+#> 8 Australia
+#> 9 Austria
+#> 10 Bahamas
+#> # ℹ 107 more rows
Or in specific databases:
-intchron_countries(c("intimate", "egyptdb"))
-#> # A tibble: 13 x 2
-#> host country
-#> <chr> <chr>
-#> 1 intimate ""
-#> 2 intimate "France"
-#> 3 intimate "Greenland"
-#> 4 intimate "Ireland"
-#> 5 intimate "Italy"
-#> 6 intimate "Norway"
-#> 7 intimate "Romania"
-#> 8 intimate "Slovenia"
-#> 9 intimate "Switzerland"
-#> 10 intimate "UK"
-#> 11 egyptdb "Egypt"
-#> 12 egyptdb "Palestinian Territory"
-#> 13 egyptdb "Sudan"
intchron_countries(c("intimate", "egyptdb"))
+#> # A tibble: 13 × 2
+#> host country
+#> <chr> <chr>
+#> 1 intimate ""
+#> 2 intimate "France"
+#> 3 intimate "Greenland"
+#> 4 intimate "Ireland"
+#> 5 intimate "Italy"
+#> 6 intimate "Norway"
+#> 7 intimate "Romania"
+#> 8 intimate "Slovenia"
+#> 9 intimate "Switzerland"
+#> 10 intimate "UK"
+#> 11 egyptdb "Egypt"
+#> 12 egyptdb "Palestinian Territory"
+#> 13 egyptdb "Sudan"
With the default setting tabulate = TRUE
, intchron()
returns a table of records, ready for you to use in your analysis:
With the default setting tabulate = TRUE
,
+intchron()
returns a table of records, ready for you to use
+in your analysis:
-library("dplyr", warn.conflicts = FALSE)
-
-# Summarise radiocarbon dates available from sites in Jordan
-jordan %>%
- distinct(labcode, .keep_all = TRUE) %>%
- group_by(record_site) %>%
- summarise(n_dates = n(), .groups = "drop_last")
-#> # A tibble: 20 x 2
-#> record_site n_dates
-#> * <chr> <int>
-#> 1 Araq ed-Dubb 1
-#> 2 Ayn Qasiyah 5
-#> 3 Azraq 31 3
-#> 4 Burqu' 02 1
-#> 5 Burqu' 03 1
-#> 6 Burqu' 27 3
-#> 7 Burqu' 35 3
-#> 8 Dahikiya, Badia Region 2
-#> 9 Dhuweila 4
-#> 10 Kharaneh IV 7
-#> 11 Shuna Project 22
-#> 12 Tell Abu Al-Kharaz 18
-#> 13 Tell Abu en-Niaj 3
-#> 14 Tell el-Hayyat 4
-#> 15 Tell el-Hibr 1
-#> 16 Tell Hesban 1
-#> 17 Wadi Jilat 11
-#> 18 Wadi Jilat 13 1
-#> 19 Wadi Jilat 22 2
-#> 20 Wadi Jilat 25 1
Note the use of distinct(labcode)
above. The data from IntChron usually requires some cleaning; for example, the ORAU and NERC-RF databases contain many duplicate radiocarbon dates. The c14bazAAR package (Schmid, Seidensticker, and Hinz 2019) includes many useful functions for tidying radiocarbon data.
You may find the stratigraphr and rcarbon (Crema and Bevan 2020) packages useful for further analysis of radiocarbon dates in R.
-In some situations you might want to access the full records returned by IntChron. Setting tabulate = FALSE
will return the raw JSON responses as a named list. See vignette("intchron-api")
for some tips on how to work with these objects.
library("dplyr", warn.conflicts = FALSE)
+
+# Summarise radiocarbon dates available from sites in Jordan
+jordan %>%
+ distinct(labcode, .keep_all = TRUE) %>%
+ group_by(record_site) %>%
+ summarise(n_dates = n(), .groups = "drop_last")
+#> # A tibble: 20 × 2
+#> record_site n_dates
+#> <chr> <int>
+#> 1 Araq ed-Dubb 1
+#> 2 Ayn Qasiyah 5
+#> 3 Azraq 31 3
+#> 4 Burqu' 02 1
+#> 5 Burqu' 03 1
+#> 6 Burqu' 27 3
+#> 7 Burqu' 35 3
+#> 8 Dahikiya, Badia Region 2
+#> 9 Dhuweila 4
+#> 10 Kharaneh IV 7
+#> 11 Shuna Project 22
+#> 12 Tell Abu Al-Kharaz 18
+#> 13 Tell Abu en-Niaj 3
+#> 14 Tell Hesban 1
+#> 15 Tell el-Hayyat 4
+#> 16 Tell el-Hibr 1
+#> 17 Wadi Jilat 11
+#> 18 Wadi Jilat 13 1
+#> 19 Wadi Jilat 22 2
+#> 20 Wadi Jilat 25 1
Note the use of distinct(labcode)
above. The data from
+IntChron usually requires some cleaning; for example, the ORAU and
+NERC-RF databases contain many duplicate radiocarbon dates. The c14bazAAR package (Schmid, Seidensticker, and Hinz 2019) includes
+many useful functions for tidying radiocarbon data.
You may find the stratigraphr and rcarbon (Crema and Bevan 2020) packages useful for +further analysis of radiocarbon dates in R.
+In some situations you might want to access the full records returned
+by IntChron. Setting tabulate = FALSE
will return the raw
+JSON responses as a named list. See
+vignette("intchron-api")
for some tips on how to work with
+these objects.
Bronk Ramsey, Christopher, Maarten Blaauw, Rebecca Kearney, and Staff, Richard A Staff. 2019. “The Importance of Open Access to Chronological Information: The IntChron Initiative.” Radiocarbon 61 (5): 1–11. https://doi.org/10.1017/RDC.2019.21.
+Crema, Enrico R, and Andrew Bevan. 2020. “Inference from Large Sets of Radiocarbon Dates: Software and Methods.” Radiocarbon, 1–17. https://doi.org/10.1017/RDC.2020.95.
+Schmid, Clemens, Dirk Seidensticker, and Martin Hinz. 2019. “c14bazAAR: An R Package for Downloading and Preparing C14 Dates from Different Source Databases.” Journal of Open Source Software 4 (43): 1914. https://doi.org/10.21105/joss.01914.
+There are several reasons for this. First and foremost, it reduces the number of requests a given query has to make to the IntChron API. Querying all hosts isn’t usually necessary because IntChron indexes different types of database (e.g. radiocarbon dates from ORAU, palaeoclimate records from INTIMATE) which are rarely combined in a single analysis. Also, since IntChron is an indexing service, it is designed to include more databases over time, meaning analysis code that is not explicit about which hosts it needs is likely to break or at least become much less efficient in the future. But if you do need to, you can query all hosts by setting host = "all"
.↩︎
There are several reasons for this. First and foremost,
+it reduces the number of requests a given query has to make to the
+IntChron API. Querying all hosts isn’t usually necessary because
+IntChron indexes different types of database (e.g. radiocarbon dates
+from ORAU, palaeoclimate records from INTIMATE) which are rarely
+combined in a single analysis. Also, since IntChron is an indexing
+service, it is designed to include more databases over time, meaning
+analysis code that is not explicit about which hosts it needs is likely
+to break or at least become much less efficient in the future. But if
+you do need to, you can query all hosts by setting
+host = "all"
.↩︎
Joe Roe. Author, maintainer. +
+DESCRIPTION
+ Joe Roe. Author, maintainer. -
-Roe J (2023). +rintchron: Interface to IntChron. +https://rintchron.joeroe.io, https://github.com/joeroe/rintchron. +
+@Manual{, + title = {rintchron: Interface to IntChron}, + author = {Joe Roe}, + year = {2023}, + note = {https://rintchron.joeroe.io, https://github.com/joeroe/rintchron}, +}
rintchron provides an R interface to IntChron, an indexing service and exchange format for radiocarbon dates and other chronological data (Bronk Ramsey et al. 2019). It includes a user friendly interface for querying databases indexed by IntChron, as well as lower level functions for interacting directly with the IntChron API.
+rintchron provides an R interface to IntChron, an indexing service and exchange format for radiocarbon dates and other chronological data (Bronk Ramsey et al. 2019). It includes a user friendly interface for querying databases indexed by IntChron, as well as lower level functions for interacting directly with the IntChron API.
For an introduction to querying IntChron’s databases see the basic usage vignette. For advanced users, low level functions for interacting with the IntChron API directly are described in the IntChron API vignette.
-rintchron has not yet been released on CRAN. You can install the development version from GitHub using the remotes package:
+rintchron has not yet been released on CRAN. You can install the development version from GitHub using the remotes package:
-# install.package("remotes")
-remotes::install_github("joeroe/rintchron")
# install.package("remotes")
+remotes::install_github("joeroe/rintchron")
Use intchron()
to query databases indexed by IntChron. You can refine the query by database (use intchron_hosts()
to see what’s available) and optionally by country and site. For example, to download records from Jordan in the ORAU and NERC Radiocarbon Facility databases:
-library("rintchron")
-
-# List available databases
-intchron_hosts()
-#> # A tibble: 5 x 2
-#> host database
-#> <chr> <chr>
-#> 1 egyptdb Egyptian Radiocarbon Database
-#> 2 intimate INTIMATE Database
-#> 3 nrcf NERC Radiocarbon Facility (Oxford)
-#> 4 oxa Oxford Radiocarbon Accelerator Unit
-#> 5 sadb Southern Africa Radiocarbon Database
-
-# Query IntChron
-intchron(c("oxa", "nrcf"), countries = "Jordan")
-#> # A tibble: 156 x 19
-#> record_site record_country record_name record_longitude record_latitude
-#> <chr> <chr> <chr> <dbl> <dbl>
-#> 1 Araq ed-Du… Jordan Araq ed-Du… 32.3 35.7
-#> 2 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
-#> 3 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
-#> 4 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
-#> 5 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
-#> 6 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
-#> 7 Azraq 31 Jordan Azraq 31 36.8 31.8
-#> 8 Azraq 31 Jordan Azraq 31 36.8 31.8
-#> 9 Azraq 31 Jordan Azraq 31 36.8 31.8
-#> 10 Burqu' 02 Jordan Burqu' 02 37.8 32.7
-#> # … with 146 more rows, and 14 more variables: series_type <chr>,
-#> # labcode <chr>, longitude <dbl>, latitude <dbl>, sample <chr>,
-#> # material <chr>, species <chr>, d13C <dbl>, r_date <int>,
-#> # r_date_sigma <int>, qual <chr>, F14C <dbl>, F14C_sigma <dbl>, refs <chr>
library("rintchron")
+
+# List available databases
+intchron_hosts()
+#> # A tibble: 5 x 2
+#> host database
+#> <chr> <chr>
+#> 1 egyptdb Egyptian Radiocarbon Database
+#> 2 intimate INTIMATE Database
+#> 3 nrcf NERC Radiocarbon Facility (Oxford)
+#> 4 oxa Oxford Radiocarbon Accelerator Unit
+#> 5 sadb Southern Africa Radiocarbon Database
+
+# Query IntChron
+intchron(c("oxa", "nrcf"), countries = "Jordan")
+#> # A tibble: 156 x 19
+#> record_site record_country record_name record_longitude record_latitude
+#> <chr> <chr> <chr> <dbl> <dbl>
+#> 1 Araq ed-Du… Jordan Araq ed-Du… 32.3 35.7
+#> 2 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
+#> 3 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
+#> 4 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
+#> 5 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
+#> 6 Ayn Qasiyah Jordan Ayn Qasiyah 36.8 31.8
+#> 7 Azraq 31 Jordan Azraq 31 36.8 31.8
+#> 8 Azraq 31 Jordan Azraq 31 36.8 31.8
+#> 9 Azraq 31 Jordan Azraq 31 36.8 31.8
+#> 10 Burqu' 02 Jordan Burqu' 02 37.8 32.7
+#> # … with 146 more rows, and 14 more variables: series_type <chr>,
+#> # labcode <chr>, longitude <dbl>, latitude <dbl>, sample <chr>,
+#> # material <chr>, species <chr>, d13C <dbl>, r_date <int>,
+#> # r_date_sigma <int>, qual <chr>, F14C <dbl>, F14C_sigma <dbl>, refs <chr>