Skip to contents

Using the dataset ID, site object or dataset object, return all records associated with the data as a download_list.


get_download(x, verbose = TRUE)



A single numeric dataset ID or a vector of numeric dataset IDs as returned by get_datasets, or a site, dataset, or dataset_list.


logical; should messages on API call be printed?


This command returns either object of class "try-error"' (see try) defined by the error returned from the Neotoma API call, or an object of class download_list, containing a set of download objects, each with relevant assemblage information and metadata: The download object is a list of lists and data frames that describe an assemblage, the constituent taxa, the chronology, site and PIs who contributed the data. The following are important components:


A table describing the collection, including dataset information, PI data compatible with get_contact and site data compatable with get_site.


Dataset information for the core, primarily the age-depth model and chronology. In cases where multiple age models exist for a single record the most recent chronology is provided here.


The list of taxa contained within the dataset, unordered, including information that can be used in get_taxa


The assemblage data for the dataset, arranged with each successive depth in rows and the taxa as columns. All taxa are described in taxon.list, the chronology is in

A data frame of laboratory data, such as exotic pollen spike, amount of sample counted, charcoal counts, etc.


A list of existing chronologies. If only a single chronology exists for a record then this is the same as the age-model in sample.meta.


The function returns a warning in cases where single taxa are defined by multiple taphonomic characteristics, for example grains that are identified separately as crumpled and torn in the same sample and sums these values within a sample. In the case that a geochronology dataset is passed to get_download the function returns a message and a NULL object (that is later excised). Use get_geochron for these objects. The chronologies can be augmented using the function get_chroncontrol, where the individual chronology objects in chronologies will consist of a table equivalent to sample.meta and a chroncontrol object.


Neotoma Project Website: API Reference:


Simon J. Goring [email protected]


if (FALSE) {
#  Search for sites with "Pseudotsuga" pollen that are older than 8kyr BP and
#  that are roughly within western British Columbia:
t8kyr.datasets <- get_dataset(taxonname='*Picea*', loc=c(-90, 41, -89, 44),
                              ageold = 20000, ageyoung=10000)

#  Returns 20 records (as of 04/04/2013), get the dataset for all records:
pollen.records <- get_download(t8kyr.datasets)

#  Standardize the taxonomies for the different records using the WS64 taxonomy.
compiled.sites <- compile_taxa(pollen.records,'WS64')

#  Extract the Pseudotsuga curves for the sites:
get.curve <- function(x, taxa) {
               if (taxa %in% colnames(x$counts)) {
                 count <- x$counts[,taxa]/rowSums(x$counts, na.rm=TRUE)
               } else {
                 count <- rep(0, nrow(x$count))
               data.frame(site = x$dataset$$,
               age = x$sample.meta$age,
               count = count)

curves <-,
                  lapply(compiled.sites, get.curve, taxa = 'Larix/Pseudotsuga'))

#  For illustration, remove the sites with no Pseudotsuga occurance:
curves <- curves[curves$count > 0, ]

smooth.curve <- predict(loess(sqrt(count)~age, data=curves),
                        data.frame(age=seq(20000, 0, by = -100)))

plot(sqrt(count) ~ age, data = curves,
     ylab = '% Pseudotsuga/Larix', xlab='Calibrated Years BP', pch=19,
     col=rgb(0.1, 0.1, 0.1, 0.1), xlim=c(0, 20000))
lines(seq(20000, 0, by = -100), smooth.curve, lwd=2, lty=2, col=2)

#  This figure shows us an apparent peak in Larix/Pseudotsuga pollen in the
#  early-Holocene that lends support to a warmer, drier early-Holocene in
#  western North America.