diff --git a/2023_INQUA_pollen_vertebrates/.gitignore b/2023_INQUA_pollen_vertebrates/.gitignore
new file mode 100644
index 0000000..1dd8589
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/.gitignore
@@ -0,0 +1,16 @@
+EPD_binder.Rproj
+.Rproj.user
+.Rhistory
+.RData
+.Ruserdata
+*.DS_Store
+*/slides/.DS_Store
+.ipynb_checkpoints/
+slides/.ipynb_checkpoints/slides1-checkpoint.ipynb
+slides/.DS_Store
+slides/.ipynb_checkpoints/slides1-checkpoint.ipynb
+
+wc10/
+complex_workflow_files/
+simple_workflow_files/
+Current_Workshop.Rproj
\ No newline at end of file
diff --git a/2023_INQUA_pollen_vertebrates/Dockerfile b/2023_INQUA_pollen_vertebrates/Dockerfile
new file mode 100644
index 0000000..eb25bc6
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/Dockerfile
@@ -0,0 +1,21 @@
+FROM rocker/binder:4.2.0
+
+## Declares build arguments
+ARG NB_USER
+ARG NB_UID
+
+COPY --chown=${NB_USER} . ${HOME}
+
+ENV DEBIAN_FRONTEND=noninteractive
+USER root
+RUN echo "Checking for 'apt.txt'..." \
+ ; if test -f "apt.txt" ; then \
+ apt-get update --fix-missing > /dev/null\
+ && xargs -a apt.txt apt-get install --yes \
+ && apt-get clean > /dev/null \
+ && rm -rf /var/lib/apt/lists/* \
+ ; fi
+USER ${NB_USER}
+
+## Run an install.R script, if it exists.
+RUN if [ -f install.R ]; then R --quiet -f install.R; fi
diff --git a/2023_INQUA_pollen_vertebrates/LICENSE b/2023_INQUA_pollen_vertebrates/LICENSE
new file mode 100644
index 0000000..f9616e2
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 Socorro Dominguez Vidana
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/2023_INQUA_pollen_vertebrates/README.es.md b/2023_INQUA_pollen_vertebrates/README.es.md
new file mode 100644
index 0000000..f089c11
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/README.es.md
@@ -0,0 +1,38 @@
+[![language-EN](https://img.shields.io/badge/language-EN-red)](README.md) [![language](https://img.shields.io/badge/language-ES-red)](README.es.md) [![language-RU](https://img.shields.io/badge/language-RU-red)](README.ru.md)
+[![language-JP](https://img.shields.io/badge/language-JP-red)](README.jp.md)
+
+[![lifecycle](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental)
+[![NSF-1948926](https://img.shields.io/badge/NSF-1948926-blue.svg)](https://nsf.gov/awardsearch/showAward?AWD_ID=1948926)
+
+# Neotoma Current R Workshop
+
+Es un repositorio que albergar talleres interactivos de R. Este repositorio siempre estará configurado para el Neotoma Workshop más reciente/actual. Todos los talleras anteriores estarán almacenados en el repositorio[Neotoma Workshops](https://github.com/NeotomaDB/Workshops).
+
+Este repositorio está construido de tal forma que permite que se trabaje en línea a través de la estructura necesaria para mostrar el contenido a través de RStudio usando Binder (y Docker). Cuando se haga click en el enlace Binder, RStudio se abrirá en el navegador del usuario.
+
+**Actualmente, este repositorio contiene un taller que se llevará acabo en línea: UQAM GEOTOP.**
+
+[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/NeotomaDB/Current_Workshop/main?urlpath=rstudio)
+
+## Colaboradores
+
+Es un proyecto abierto y, la o las contribuciones de cualquier persona son bienvenidas. Todos los colaboradores en este proyecto están sujetos a un código de conducta (CODE_OF_CONDUCT.md). Por favor, revise y siga este código de conducta como parte de su contribución.
+
+* [![orcid](https://img.shields.io/badge/orcid-0000--0002--7926--4935-brightgreen.svg)](https://orcid.org/0000-0002-7926-4935) [Socorro Dominguez Vidana](https://sedv8808.github.io/)
+
+* [![orcid](https://img.shields.io/badge/orcid-0000--0002--2700--4605-brightgreen.svg)](https://orcid.org/0000-0002-2700-4605) [Simon Goring](http://goring.org)
+
+### Traducciones
+
+* Ruso: [Arsenii Galimov](https://ipae.uran.ru/Galimov_AT)
+* Español: [Deborah V. Espinosa-Martínez](https://orcid.org/0000-0002-3848-8094)
+* Japonés: [Socorro Dominguez Vidana](https://ht-data.com/about.html)
+
+## Como usar este repositorio
+
+El repositorio contiene dos tipos diferentes de flujos de trabajo en R, un flujo de trabajo complejo que muestra cómo gestionar y modificar cronologías con el paquete en R, y un flujo de trabajo simple que muestra como acceder a los datos y realizar análisis relativamente simple. Estos flujos de trabajo pueden ser modificados para adaptar su contenido (por ejemplo, centrándose en los diferentes conjuntos de datos o contextos geoespaciales).
+
+Los usuarios pueden clonar este taller y modificar el contenido, aunque se debe tener en cuenta que los enlaces Binder son específicos para este repositorio, por lo que tienen que ser modificados desde la configuración Binder de cada usuario.
+
+* `runtime.txt` se utiliza para definir el ambiente R que se utilizará por Docker/Binder
+* `apt.txt` define un conjunto de paquetes que son requeridos por Binder/Docker para habilitar las herramientas espaciales del paquete 'neotoma2' en R.
diff --git a/2023_INQUA_pollen_vertebrates/README.jp.md b/2023_INQUA_pollen_vertebrates/README.jp.md
new file mode 100644
index 0000000..a396616
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/README.jp.md
@@ -0,0 +1,42 @@
+[![language-EN](https://img.shields.io/badge/language-EN-red)](README.md) [![language](https://img.shields.io/badge/language-ES-red)](README.es.md) [![language-RU](https://img.shields.io/badge/language-RU-red)](README.ru.md)
+[![language-JP](https://img.shields.io/badge/language-JP-red)](README.jp.md)
+
+[![lifecycle](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental)
+[![NSF-1948926](https://img.shields.io/badge/NSF-1948926-blue.svg)](https://nsf.gov/awardsearch/showAward?AWD_ID=1948926)
+
+# 二オトマのワークショップ
+
+交流的なRワークショップをホストするためのリポジトリです。このリポジトリは最新のワークショップ用にセットアップされています。前のワークショップは[Neotoma Workshops](https://github.com/NeotomaDB/Workshops)のリポジトリにアーカイブされています。
+
+このリポジトリは、BinderとDockerの技術を使って、ブラウザでRStudioを使うことができます。ワークショプのための必要なパッケージもすべて使えます。 [Binder]のリンクをクリックすると、ユーザーのブラウザでRStudioが開きます。
+
+**今、このリポジトリはUQAM GEOTOPのワークショップのコンテンツを上げています。**
+
+[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/NeotomaDB/Current_Workshop/main?urlpath=rstudio)
+
+## 貢献者
+
+これはオープンなプロジェクトであり、どの人からの貢献も歓迎しています。 プロジェクトに参加するために、貢献者は[行動規範](CODE_OF_CONDUCT.md)を確認して従ってください。
+
+* [![orcid](https://img.shields.io/badge/orcid-0000--0002--7926--4935-brightgreen.svg)](https://orcid.org/0000-0002-7926-4935) [Socorro Dominguez Vidana](https://sedv8808.github.io/)
+
+* [![orcid](https://img.shields.io/badge/orcid-0000--0002--2700--4605-brightgreen.svg)](https://orcid.org/0000-0002-2700-4605) [Simon Goring](http://goring.org)
+
+### 翻訳
+
+* ロシア語 ー [Arsenii Galimov](https://ipae.uran.ru/Galimov_AT)
+* スペイン語 ー [Deborah V. Espinosa-Martínez](https://orcid.org/0000-0002-3848-8094)
+* 日本語 ー [Socorro Dominguez Vidana](https://ht-data.com/about.html)
+
+## リポジトリの使い方
+
+このリポジトリには 2 つのR ワークフローをが含まれています。
+Simple Workflowとはニオトマ2パッケージを使って、簡単な分析を行う方法を示すワークフローです。
+Complex Workflowとはパッケージを使用して暦を管理および変更する方法を示すワークフローです。
+
+ワークフローはコンテンツに合わせて変更ができます。 (例:さまざまなデータセット類や違う地理空間情報に焦点を当てる)
+
+ユーザーはこのワークショップを複製してコンテンツを変更することができますが、Binderリンクはこのリポジトリに固有であり、ユーザーは自分の Binder セットアップをする必要があります。
+
+* `runtime.txt` は、Docker/BinderのR環境を定義するために使っています。
+* `apt.txt` は空間情報を使うためのパッケージをロードします。
diff --git a/2023_INQUA_pollen_vertebrates/README.md b/2023_INQUA_pollen_vertebrates/README.md
new file mode 100644
index 0000000..6cec396
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/README.md
@@ -0,0 +1,40 @@
+[![language-EN](https://img.shields.io/badge/language-EN-red)](README.md) [![language](https://img.shields.io/badge/language-ES-red)](README.es.md) [![language-RU](https://img.shields.io/badge/language-RU-red)](README.ru.md)
+[![language-JP](https://img.shields.io/badge/language-JP-red)](README.jp.md)
+
+[![lifecycle](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental)
+[![NSF-1948926](https://img.shields.io/badge/NSF-1948926-blue.svg)](https://nsf.gov/awardsearch/showAward?AWD_ID=1948926)
+
+# Neotoma Current R Workshop
+
+A repository to host interactive R workshops. This repository will always be set up for the most recent/current Neotoma Workshop. All past workshops will be archived in the [Neotoma Workshops](https://github.com/NeotomaDB/Workshops) repository.
+
+This repository is built with the structure required to serve the content through an interactive, online RStudio session using Binder (and Docker). Clicking the Binder link will open RStudio in the user's browser.
+
+**Currently, this repo hosts the Workshop to be delivered for the INQUA Rome 2023 workshop.**
+
+To access the content for this Workshop, click the badge below:
+
+[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/NeotomaDB/Current_Workshop/main?urlpath=rstudio)
+
+## Contributors
+
+This is an open project and contributions are welcome from any individual. All contributors to this project are bound by a [code of conduct](CODE_OF_CONDUCT.md). Please review and follow this code of conduct as part of your contribution.
+
+* [![orcid](https://img.shields.io/badge/orcid-0000--0002--7926--4935-brightgreen.svg)](https://orcid.org/0000-0002-7926-4935) [Socorro Dominguez Vidana](https://sedv8808.github.io/)
+
+* [![orcid](https://img.shields.io/badge/orcid-0000--0002--2700--4605-brightgreen.svg)](https://orcid.org/0000-0002-2700-4605) [Simon Goring](http://goring.org)
+
+### Translations
+
+* Russian: [Arsenii Galimov](https://ipae.uran.ru/Galimov_AT)
+* Spanish: [Deborah V. Espinosa-Martínez](https://orcid.org/0000-0002-3848-8094)
+* Japanese: [Socorro Dominguez Vidana](https://ht-data.com/about.html)
+
+## How to use this repository
+
+This repository contains two different R workflows, a complex workflow that shows how to manage and modify chronologies with the R package, and a simple workflow that shows how to access data and perform relatively simple analysis. These workflows may be modified for content (e.g., focusing on different dataset types or geospatial contexts).
+
+Users may clone this workshop and modify the content, but be aware that the Binder links are specific to this repository, and must be modified through the users' own Binder setup.
+
+* `runtime.txt` is used to define the R environment to be used by Docker/Binder
+* `apt.txt` defines a set of packages required by Binder/Docker to enable the spatial tools in the `neotoma2` R package.
diff --git a/2023_INQUA_pollen_vertebrates/README.ru.md b/2023_INQUA_pollen_vertebrates/README.ru.md
new file mode 100644
index 0000000..05b3384
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/README.ru.md
@@ -0,0 +1,36 @@
+[![language-EN](https://img.shields.io/badge/language-EN-red)](README.md) [![language](https://img.shields.io/badge/language-ES-red)](README.es.md) [![language-RU](https://img.shields.io/badge/language-RU-red)](README.ru.md)
+[![language-JP](https://img.shields.io/badge/language-JP-red)](README.jp.md)
+
+[![lifecycle](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental)
+[![NSF-1948926](https://img.shields.io/badge/NSF-1948926-blue.svg)](https://nsf.gov/awardsearch/showAward?AWD_ID=1948926)
+
+# Neotoma Current R Workshop
+
+Репозиторий для проведения интерактивных семинаров по R. Этот репозиторий всегда будет содержать самую последнюю/текущую Neotoma Workshop. Все прошедшие семинары будут храниться в архивном репозитории [Neotoma Workshops](https://github.com/NeotomaDB/Workshops).
+
+Этот репозиторий построен таким образом, что позволяет работать в онлайн режиме через RStudio с использованием Binder (и Docker). Щелкнув ссылку Binder, вы откроете RStudio в браузере пользователя.
+
+**В данный момент, в этом репозитории хранится семинар, который будет проведен онлайн и называется: UQAM GEOTOP workshop**
+
+[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/NeotomaDB/Current_Workshop/main?urlpath=rstudio)
+
+## Авторы
+
+Это открытый проект и приветствуется вклад всех желающих. Участники проекта связаны [Правилами поведения](CODE_OF_CONDUCT.md). Пожалуйста, ознакомитесь с правилами и следуйте им, это является обязательным условием для участников проекта.
+
+* [![orcid](https://img.shields.io/badge/orcid-0000--0002--7926--4935-brightgreen.svg)](https://orcid.org/0000-0002-7926-4935) [Socorro Dominguez Vidana](https://sedv8808.github.io/)
+
+* [![orcid](https://img.shields.io/badge/orcid-0000--0002--2700--4605-brightgreen.svg)](https://orcid.org/0000-0002-2700-4605) [Simon Goring](http://goring.org)
+
+* перевод: [Arsenii Galimov](https://ipae.uran.ru/Galimov_AT)
+* испанский: [Deborah V. Espinosa-Martínez](https://orcid.org/0000-0002-3848-8094)
+* Японский: [Socorro Dominguez Vidana](https://ht-data.com/about.html)
+
+## Как использовать репозиторий
+
+В репозитории содержится два разных R workflow (фиксированный пошаговый процесс обработки данных и отчетности): **сложный рабочий процесс** показывает как управлять хронологиями (*наборы данных Neotoma*) и изменять их с помощью пакета R, и **простой рабочий процесс**, который показывает как получить доступ к данным и выполнить относительно простой анализ. Эти рабочие процессы могут быть изменены под ваши задачи (например, сделать акцент на разные типы наборов данных или геопространственные данные).
+
+Пользователи могут клонировать это рабочее пространство и модифицировать содержимое, но важно помнить, что ссылки Binder связаны именно с этим репозиторием и должны быть измененны посредством собственного Binder.
+
+* `runtime.txt` Используется для определения среды R, которая будет использоваться Docker/Binder
+* `apt.txt` Используется для определения набора пакетов необходимых для работы Binder/Docker с досутпом к пространственным данным из пакета R `neotoma2`.
diff --git a/2023_INQUA_pollen_vertebrates/apt.txt b/2023_INQUA_pollen_vertebrates/apt.txt
new file mode 100644
index 0000000..7923f59
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/apt.txt
@@ -0,0 +1 @@
+vim
\ No newline at end of file
diff --git a/2023_INQUA_pollen_vertebrates/bison_example/bison.Rmd b/2023_INQUA_pollen_vertebrates/bison_example/bison.Rmd
new file mode 100644
index 0000000..a739f16
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/bison_example/bison.Rmd
@@ -0,0 +1,159 @@
+---
+title: "Bison"
+author: "Socorro Dominguez"
+date: "`r Sys.Date()`"
+output:
+ html_document:
+ code_folding: show
+ fig_caption: yes
+ keep_md: yes
+ self_contained: yes
+ theme: readable
+ toc: yes
+ toc_float: yes
+ pdf_document:
+ pandoc_args: "-V geometry:vmargin=1in -V geometry:hmargin=1in"
+---
+
+```{r setup, echo=FALSE}
+options(warn = -1)
+pacman::p_load(neotoma2, dplyr, tidyverse, ggplot2, sf, geojsonsf, leaflet, DT, maptools, maps)
+```
+
+## 1. Exercise Using Vertebrate Data
+
+Let's retrieve Bison data and see how they were spread out during the Holocene and Pleistocene.
+
+### 1.a Getting "Bison" Data from Neotoma
+
+1. To get the sites that contain `bison` data, let's use the `get_sites()` function and use the parameter `taxa`. Remember that we can use the wildcard `%` to retrieve "similar" names. To retrieve **all** the data, set the `all_data` parameter to TRUE.
+
+```{r finding bison}
+# Might take a few minutes...
+bison <- get_sites(taxa="%bison%", all_data=TRUE)
+head(bison)
+```
+
+2. Now that we have downloaded the sites metadata, let's use that to see where are `bison` located:
+
+```{r plot bison sites}
+plotLeaflet(bison)
+```
+
+3. Now, let's get all the rows of sample data in Neotoma. Since there are 1258 sites, this operation might take a while, so an .RDS file `bisonDataDL.RDS` has been provided. Let's load that:
+
+```{r obtain records}
+bison_dl <- readRDS('data/BisonDataDL.rds')
+head(bison_dl)
+```
+
+3.a. What if we didn't have the `.RDS` file? The code we would have had to use is:
+```{r download the data from scratch}
+#bison_dl <- get_downloads(bison)
+```
+
+4. Let's take a look at the samples in the `bison_dl`.
+You might notice that there are variable names that do not belong to `bison`, that is because the dataset type is `vertebrate-fauna` and the `get_downloads()` function downloads data at the `datasetid` level. We will filter information and keep only the `bison` data by joining with a translation table that contains the `variablename`s we would be interested in.
+
+```{r getSamples}
+allSamp <- samples(bison_dl)
+```
+```{r view Samples}
+DT::datatable(head(allSamp))
+```
+
+5. Let's load in the "translation" table for bison (`bisontable.csv` in the data folder) and take a look at it:
+
+```{r translationDisplay}
+translation <- readr::read_csv("data/bisontable.csv")
+DT::datatable(translation, rownames = FALSE,
+ options = list(scrollX = "100%", dom = 't'))
+
+```
+
+6. Now, we want to join based on the `variablename` but we just want to keep the `harmonizedname`.
+
+```{r join tables}
+allSampDF <- allSamp %>%
+ inner_join(translation, by = c("variablename" = "variablename")) %>% # Join by `variablename`
+ dplyr::select(!c("variablename")) # Remove `variablename`, we only care about the `harmonizedname` for now.
+DT::datatable(head(allSampDF))
+```
+7. Let's look how many rows we have left:
+```{r}
+nrow(allSampDF)
+```
+7. In order to visualize how many `bison` were at a a particular time period and location, let's group them by `siteid`, `sitename`, `harmonizedname`, `sampleid`, `units`, `ageyounger`, `ageolder`, `agetype`, `depth`, `datasetid`, `long`, `lat`; I will also sum the `value` or number of observations.
+
+It is probably not the best way to group them by, but for purposes of this coding example, that is how I will do it.
+``` {r}
+allSampDF <- allSampDF %>%
+ group_by(siteid, sitename, harmonizedname,
+ sampleid, units, ageyounger, ageolder,
+ agetype, depth, datasetid,
+ long, lat) %>%
+ summarise(value = sum(value), .groups='keep')
+DT::datatable(head(allSampDF))
+```
+```{r nrows II}
+nrow(allSampDF)
+```
+
+8. Let's add a new column where we define if some of the given observations belong to the `Pleistocene` or `Holocene`. We will use `ageyounger` for this purpose. Let's remove the observations that have no era defined.
+
+```{r pleistocene and holocene}
+allSampDF <- allSampDF %>%
+ mutate(era = factor(ifelse(ageyounger >= 11700, "Pleistocene", "Holocene"))) %>% # Assign a new column with the values Pleistocene or Holocene based on ageyounger
+ mutate(era = fct_relevel(era,"Pleistocene", "Holocene")) %>%
+ filter(!is.na(era)) # Remove empty eras
+
+DT::datatable(head(allSampDF))
+```
+
+
+```{r nrows III}
+nrow(allSampDF)
+```
+9. Let's visualize a quick bar plot that counts how many observations belong to each era.
+
+```{r plotting data}
+taxaplots <- allSampDF %>%
+ group_by(era, harmonizedname) %>%
+ summarise(sites = length(unique(siteid)), samples = length(unique(sampleid)), .groups='keep') %>%
+ arrange(era)
+
+DT::datatable(taxaplots)
+```
+
+```{r bison sites in each era}
+ggplot(data = taxaplots, aes(x = era, y=samples)) +
+ geom_bar(stat = 'identity') +
+ ggtitle("Bison Count per Era") +
+ xlab("Age") +
+ ylab("Number of Bison") +
+ theme_bw()
+```
+Let's plot the observations of each era on the map; we will use the `map_data` function from the `maps` library:
+
+```{r}
+world <- map_data("world")
+```
+
+10. Let's show the observations using a facet plot:
+
+```{r facetPlot}
+ggplot(allSampDF, aes(x = long, y = lat)) +
+ geom_map(data = world,
+ map = world,
+ aes(map_id = region),
+ color = "black",
+ fill = "white",
+ show.legend = FALSE,
+ inherit.aes = FALSE) +
+ geom_point(aes(colour=era), show.legend = FALSE) +
+ facet_grid(era ~ .) +
+ theme_bw() +
+ ggtitle("Bisons in each Era") +
+ xlab("Longitude") +
+ ylab("Latitude")
+```
\ No newline at end of file
diff --git a/2023_INQUA_pollen_vertebrates/bison_example/data/BisonDataDL.rds b/2023_INQUA_pollen_vertebrates/bison_example/data/BisonDataDL.rds
new file mode 100644
index 0000000..5927a95
Binary files /dev/null and b/2023_INQUA_pollen_vertebrates/bison_example/data/BisonDataDL.rds differ
diff --git a/2023_INQUA_pollen_vertebrates/bison_example/data/bisontable.csv b/2023_INQUA_pollen_vertebrates/bison_example/data/bisontable.csv
new file mode 100644
index 0000000..1e5501a
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/bison_example/data/bisontable.csv
@@ -0,0 +1,18 @@
+variablename,harmonizedname
+Bison bison,Bison
+Bison sp.,Bison
+Bison,Bison
+cf. Bison bison,Bison
+cf. Bison sp.,Bison
+Bison bison athabascae,Bison
+Bison bison cf. B. b. antiquus,Bison
+Bison bison bison,Bison
+?Bison sp.,Bison
+Bison athabascae,Bison
+Bison ?priscus,Bison
+Bison cf. B. latifrons,Bison
+Bison bison cf. B. b. occidentalis,Bison
+cf. Bison,Bison
+Bison cf. B. alleni,Bison
+Bison cf. B. antiquus,Bison
+Bison cf. B. priscus,Bison
\ No newline at end of file
diff --git a/2023_INQUA_pollen_vertebrates/complex_workflow.Rmd b/2023_INQUA_pollen_vertebrates/complex_workflow.Rmd
new file mode 100644
index 0000000..beaae24
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/complex_workflow.Rmd
@@ -0,0 +1,257 @@
+---
+title: "A Not so Simple Workflow"
+author: "Simon Goring, Socorro Dominguez Vidaña"
+date: "`r Sys.Date()`"
+output:
+ html_document:
+ code_folding: show
+ fig_caption: yes
+ keep_md: yes
+ self_contained: yes
+ theme: readable
+ toc: yes
+ toc_float: yes
+ css: "text.css"
+ pdf_document:
+ pandoc_args: "-V geometry:vmargin=1in -V geometry:hmargin=1in"
+dev: svg
+highlight: tango
+---
+
+## Building New Chronologies
+
+This RMarkdown document will walk you through the process of:
+
+1. Downloading a single record
+2. Examining the chronologies for that record and associated chronological controls
+3. Creating a new chronology for the record
+4. Adding the chronology to the record
+5. Switching between default chronologies
+
+This approach is focused on a single record, but much of what is done here can be extended to multiple records using functions.
+
+## Load Libraries
+
+For this workshop element we only need four packages, `neotoma2`, `dplyr`, `ggplot2` and `Bchron`. We'll be loading a record from Neotoma, building a new chronology for the record, and then adding the chronology back to the record.
+
+We'll be using the R package `pacman` here (so really, we need five packages), to automatically load and install packages:
+
+```{r setup}
+pacman::p_load(neotoma2, dplyr, ggplot2, Bchron)
+```
+
+## Loading Datasets
+
+We worked through the process for finding and downloading records using `neotoma2` in the [previous workshop](https://open.neotomadb.org/Current_Workshop/simple_workflow.html). Assuming we found a record that we were interested in, we can go back and pull a single record using its `datasetid`. In this case, the dataset is for [Lago Grande di Monticchio](https://data.neotomadb.org/4275). Let's start by pulling in the record and using the `chronologies()` helper function to look at the chronologies associated with the record:
+
+```{r getmonticchio, message = FALSE, eval = FALSE}
+# We could also search for Lago Monticchio:
+# monticchio <- get_sites(sitename = "Lago Grande di Monticchio", datasettype = "pollen") %>%
+# get_downloads()
+# But we know the datasetid so we can directly call get_downloads with the datasetid:
+monticchio <- get_downloads(4275)
+monticchio_chron <- chronologies(monticchio)
+monticchio_chron %>% as.data.frame()
+```
+
+```{r getmonticchioShow, eval=TRUE, echo = FALSE}
+monticchio <- get_downloads(4275)
+monticchio_chron <- chronologies(monticchio)
+monticchio_chron %>% as.data.frame() %>%
+ DT::datatable(data = .,
+ options = list(scrollX = "100%"))
+```
+
+Lago Monticchio has three chronologies and we've decided not to use them because we want to standardize our methods. We want to build a new one with the function `Bchronology()` from the [`Bchron` package](https://cran.r-project.org/web/packages/Bchron/vignettes/Bchron.html).
+
+It's worth pointing out the `isdefault` column here. Neotoma provides the opportunity to link multiple chronologies to a single record. This lets researchers add their chronologies when they publish new studies. For example, the **Wang *et al.*** chronology comes from a set of Bayesian chronologies published by Yue Wang ([Wang *et al*., 2019](https://doi.org/10.1038/s41597-019-0182-7)). For each age type (Radiocarbon years BP, Calendar years BP, &cetera) there is a default chronology that defines the model for the date interpolation. There is also a hierarchy for the default chronologies. By default Neotoma assigns the age model using *calendar years* the highest priority, then *calibrated radiocarbon years*, then *radiocarbon years*. You can see the order in practice if we look at the content of `get_table("age types")`.
+
+### Extract `chroncontrols`
+
+We're going to select chronology `25746` as our template. This is a Power interpolation model that _____ generated. To generate a new chronology for this record we want to see which chronological control points were used for the record. We will extract all the chroncontrols, filter by the chronologyid, and then arrange them by depth:
+
+```{r buildChronControl, message = FALSE, eval = FALSE}
+# Extract the chronological controls used in the original chronology:
+controls <- chroncontrols(monticchio) %>%
+ dplyr::filter(chronologyid == 25746) %>%
+ arrange(depth)
+```
+
+```{r buildChronControlShow, eval = TRUE, message = FALSE, echo = FALSE}
+controls <- chroncontrols(monticchio) %>%
+ dplyr::filter(chronologyid == 25746) %>%
+ arrange(depth)
+
+controls %>% DT::datatable(data = .,
+ options = list(scrollX = "100%"))
+```
+
+We can look at other tools to decided how we want to manage the chroncontrols, for example, saving them and editing them using Excel or another spreadsheet program. We could add a new date by adding a new row. In this example we're just going to modify the existing ages to provide better constraints at the core top. We are setting the core top to *-55 calibrated years BP*, and assuming an uncertainty of 2 years, and a thickness of 2cm.
+
+This generally won't change too much, and I have no real basis for doing this explicitly, but this is simply for illustration.
+
+To do these assignments we're just directly modifying cells within the `controls` `data.frame`:
+
+```{r modifyControls, message = FALSE, eval=FALSE}
+# Directly assign the values
+controls$chroncontrolage[1] <- 20000
+controls$agelimityounger[1] <- 15000
+controls$agelimitolder[1] <- 29000
+controls$thickness[1] <- 16
+```
+
+```{r modifyControlsShow, message = FALSE, eval = TRUE, echo=FALSE}
+controls$chroncontrolage[1] <- 20000
+controls$agelimityounger[1] <- 15000
+controls$agelimitolder[1] <- 29000
+controls$thickness[1] <- 16
+controls %>% DT::datatable(data = .,
+ options = list(scrollX = "100%"))
+```
+
+### Extract Depth & Analysis Unit IDs
+
+Once our `chroncontrols` table is updated, we extract the `depth`s and `analysisunitid`s from the dataset `samples()`. Pulling in both `depth`s and `analysisunitid`s is important because a single collection unit may have multiple datasets, which may have non-overlapping depth sequences. So, when adding sample ages back to a record we use the `analysisunitid` to make sure we are providing the correct assignment since depth may be specific to a single dataset.
+
+```{r predictDepths, message = FALSE, results="hide"}
+# Get a two column data.frame with columns depth and analysisunitid.
+# Sort the table by depth from top to bottom for "Bchronology"
+predictDepths <- samples(monticchio) %>%
+ select(depth, analysisunitid) %>%
+ unique() %>%
+ arrange(depth)
+
+# Pass the values from `controls`. We're assuming the difference between
+# chroncontrolage and the agelimityounger is 1 SD.
+# Note that for the parameter 'calCurves' we are using a "normal"
+# distribution for the modern sample (core top) and choosing the
+# IntCal20 curve for the other two radiocarbon dates.
+
+newChron <- Bchron::Bchronology(ages = controls$chroncontrolage,
+ ageSds = abs(controls$agelimityounger -
+ controls$chroncontrolage),
+ calCurves = c("normal", rep("intcal20", 5)),
+ positionThicknesses = controls$thickness,
+ positions = controls$depth,
+ predictPositions = predictDepths$depth,
+ allowOutside = TRUE,
+ ids = controls$chroncontrolid)
+
+# Predict ages at each depth for which we have samples. Returns a matrix.
+newpredictions <- predict(newChron, predictDepths$depth)
+```
+
+```{r chronologyPlot, fig.cap="Age-depth model for Stará Boleslav, with probability distributions superimposed on the figure at each chronology control depth."}
+plot(newChron) +
+ ggplot2::labs(
+ xlab = "Age (cal years BP)",
+ ylab = "Depth (cm)"
+ )
+```
+
+### Creating the New `chronology` and `contact` objects
+
+Given the new chronology, we want to add it to the `sites` object so that it becomes the default for any calls to `samples()`. To create the metadata for the new chronology, we use `set_chronology()` using the properties from the [`chronology` table in Neotoma](https://open.neotomadb.org/dbschema/tables/chronologies.html):
+
+```{r createChronology, message = FALSE}
+# Add information about the people who generated the new chronology:
+creators <- c(set_contact(givennames = "Simon James",
+ familyname = "Goring",
+ ORCID = "0000-0002-2700-4605"),
+ set_contact(givennames = "Socorro",
+ familyname = "Dominguez Vidaña",
+ ORCID = "0000-0002-7926-4935"))
+
+# Add information about the chronology:
+newChronmonticchio <- set_chronology(agemodel = "Bchron model",
+ contact = creators,
+ isdefault = 1,
+ ageboundolder = max(newpredictions),
+ ageboundyounger = min(newpredictions),
+ dateprepared = lubridate::today(),
+ modelagetype = "Calendar years BP",
+ chronologyname = "Simon's example chronology",
+ chroncontrols = controls)
+
+
+newChronmonticchio$notes <- 'newChron <- Bchron::Bchronology(ages = controls$chroncontrolage,
+ ageSds = abs(controls$agelimityounger -
+ controls$chroncontrolage),
+ calCurves = c("normal", rep("intcal20", 2)),
+ positionThicknesses = controls$thickness,
+ positions = controls$depth,
+ allowOutside = TRUE,
+ ids = controls$chroncontrolid,
+ predictPositions = predictDepths)'
+```
+
+### Adding the `chronology` to the `collectionunit`
+
+Once we've created the chronology we need to apply it back to the collectionunit. We also need to add the predicted dates into the samples for each dataset associated with the collectionunit.
+
+So:
+
+1. we have a collectionunit in `monticchio` that is accessible at `monticchio[[1]]$collunits`.
+2. We can use the function `add_chronology()`, which takes the chronology object and a `data.frame()` of sample ages.
+3. The predicted dates associated with the new chronology need to be transferred to each `samples` object within the `collectionunit`.
+
+This is all bound up in the `add_chronology()` function, which takes the `collectionunit`, modifys it, and returns the newly updated `collectionunit`.
+
+```{r addChronology, message = FALSE}
+newSampleAges <- data.frame(predictDepths,
+ age = colMeans(newpredictions),
+ ageolder = colMeans(newpredictions) +
+ apply(newpredictions, 2, sd),
+ ageyounger = colMeans(newpredictions) -
+ apply(newpredictions, 2, sd),
+ agetype = "Calendar years")
+
+monticchio[[1]]$collunits[[1]] <- add_chronology(monticchio[[1]]$collunits[[1]],
+ newChronmonticchio,
+ newSampleAges)
+```
+
+With this, we now have the updated collectionunit. Lets take a look at how this affects the age model overal. To pull the ages from the prior chronologies, we use the `set_default()` function to change the default chronology, and then extract ages, depths & analysisunits:
+
+```{r getAgesfromChronologies}
+# The new chronology is currently the default chronology.
+newages <- samples(monticchio) %>%
+ select(depth, analysisunitid, age) %>%
+ unique() %>%
+ arrange(depth) %>%
+ mutate(agecat = "new")
+
+monticchio[[1]]$collunits[[1]]$chronologies <- set_default(monticchio[[1]]$collunits[[1]]$chronologies,
+ 25746)
+plotforages <- samples(monticchio) %>%
+ select(depth, analysisunitid, age) %>%
+ unique() %>%
+ arrange(depth) %>%
+ mutate(agecat = "old") %>%
+ bind_rows(newages)
+
+```
+
+And we can look at the difference visually:
+
+```{r plotAgeDifferences, fig.cap="Differences in age representation between chronologies between existing chronologies and the new Bchron chronology."}
+ggplot(plotforages, aes(x = depth, y = age)) +
+ geom_path(aes(color = agecat)) +
+ theme_bw() +
+ xlab("Depth (cm)") +
+ ylab("Calibrated Years BP")
+```
+
+So we can see the impact of the new chronology on the age model for the record, and we can make choices as to which model we want to use going forward. We can use this approach to create multiple new chronologies for a single record, tuning parameters within `Bchronology()`, or using Bacon and different parameters. Because the `chronology` is an R object we can save the objects for use in future sessions, and associate them with existin records, or we can re-run the models again.
+
+## Summary
+
+From this notebook we have learned how to:
+
+1. Download a single record (the monticchio record using `get_downloads()`)
+2. Examining the chronologies for the record (using `chronologies()` and associated chronological controls (using `chroncontrols()`)
+3. Creating a new chronology for the record (using `set_chronology()`)
+4. Adding the chronology to the record (using `add_chronology()`)
+5. Switching between default chronologies (using `set_default()`)
+
+This approach is focused on a single record, but much of what is done here can be extended to multiple records using functions. We hope it's been helpful!
diff --git a/2023_INQUA_pollen_vertebrates/complex_workflow.html b/2023_INQUA_pollen_vertebrates/complex_workflow.html
new file mode 100644
index 0000000..4bca5e6
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/complex_workflow.html
@@ -0,0 +1,4659 @@
+
+
+
+
+
This RMarkdown document will walk you through the process of:
+
+
Downloading a single record
+
Examining the chronologies for that record and associated
+chronological controls
+
Creating a new chronology for the record
+
Adding the chronology to the record
+
Switching between default chronologies
+
+
This approach is focused on a single record, but much of what is done
+here can be extended to multiple records using functions.
+
+
+
Load Libraries
+
For this workshop element we only need four packages,
+neotoma2, dplyr, ggplot2 and
+Bchron. We’ll be loading a record from Neotoma, building a
+new chronology for the record, and then adding the chronology back to
+the record.
+
We’ll be using the R package pacman here (so really, we
+need five packages), to automatically load and install packages:
+
pacman::p_load(neotoma2, dplyr, ggplot2, Bchron)
+
+
+
Loading Datasets
+
We worked through the process for finding and downloading records
+using neotoma2 in the previous
+workshop. Assuming we found a record that we were interested in, we
+can go back and pull a single record using its datasetid.
+In this case, the dataset is for Lago Grande di Monticchio.
+Let’s start by pulling in the record and using the
+chronologies() helper function to look at the chronologies
+associated with the record:
+
# We could also search for Lago Monticchio:
+# monticchio <- get_sites(sitename = "Lago Grande di Monticchio", datasettype = "pollen") %>%
+# get_downloads()
+# But we know the datasetid so we can directly call get_downloads with the datasetid:
+monticchio <- get_downloads(4275)
+monticchio_chron <- chronologies(monticchio)
+monticchio_chron %>% as.data.frame()
+
## .
+
+
+
Lago Monticchio has three chronologies and we’ve decided not to use
+them because we want to standardize our methods. We want to build a new
+one with the function Bchronology() from the Bchron
+package.
+
It’s worth pointing out the isdefault column here.
+Neotoma provides the opportunity to link multiple chronologies to a
+single record. This lets researchers add their chronologies when they
+publish new studies. For example, the Wang et
+al. chronology comes from a set of Bayesian chronologies
+published by Yue Wang (Wang et al.,
+2019). For each age type (Radiocarbon years BP, Calendar years BP,
+&cetera) there is a default chronology that defines the model for
+the date interpolation. There is also a hierarchy for the default
+chronologies. By default Neotoma assigns the age model using
+calendar years the highest priority, then calibrated
+radiocarbon years, then radiocarbon years. You can see the
+order in practice if we look at the content of
+get_table("age types").
+
+
Extract chroncontrols
+
We’re going to select chronology 25746 as our template.
+This is a Power interpolation model that _____ generated. To generate a
+new chronology for this record we want to see which chronological
+control points were used for the record. We will extract all the
+chroncontrols, filter by the chronologyid, and then arrange them by
+depth:
+
# Extract the chronological controls used in the original chronology:
+controls <- chroncontrols(monticchio) %>%
+ dplyr::filter(chronologyid == 25746) %>%
+ arrange(depth)
+
+
+
We can look at other tools to decided how we want to manage the
+chroncontrols, for example, saving them and editing them using Excel or
+another spreadsheet program. We could add a new date by adding a new
+row. In this example we’re just going to modify the existing ages to
+provide better constraints at the core top. We are setting the core top
+to -55 calibrated years BP, and assuming an uncertainty of 2
+years, and a thickness of 2cm.
+
This generally won’t change too much, and I have no real basis for
+doing this explicitly, but this is simply for illustration.
+
To do these assignments we’re just directly modifying cells within
+the controlsdata.frame:
Once our chroncontrols table is updated, we extract the
+depths and analysisunitids from the dataset
+samples(). Pulling in both depths and
+analysisunitids is important because a single collection
+unit may have multiple datasets, which may have non-overlapping depth
+sequences. So, when adding sample ages back to a record we use the
+analysisunitid to make sure we are providing the correct
+assignment since depth may be specific to a single dataset.
+
# Get a two column data.frame with columns depth and analysisunitid.
+# Sort the table by depth from top to bottom for "Bchronology"
+predictDepths <- samples(monticchio) %>%
+ select(depth, analysisunitid) %>%
+ unique() %>%
+ arrange(depth)
+
+# Pass the values from `controls`. We're assuming the difference between
+# chroncontrolage and the agelimityounger is 1 SD.
+# Note that for the parameter 'calCurves' we are using a "normal"
+# distribution for the modern sample (core top) and choosing the
+# IntCal20 curve for the other two radiocarbon dates.
+
+newChron <- Bchron::Bchronology(ages = controls$chroncontrolage,
+ ageSds = abs(controls$agelimityounger -
+ controls$chroncontrolage),
+ calCurves = c("normal", rep("intcal20", 5)),
+ positionThicknesses = controls$thickness,
+ positions = controls$depth,
+ predictPositions = predictDepths$depth,
+ allowOutside = TRUE,
+ ids = controls$chroncontrolid)
+
+# Predict ages at each depth for which we have samples. Returns a matrix.
+newpredictions <- predict(newChron, predictDepths$depth)
Age-depth model for Stará Boleslav, with
+probability distributions superimposed on the figure at each chronology
+control depth.
+
+
+
+
Creating the New chronology and contact
+objects
+
Given the new chronology, we want to add it to the sites
+object so that it becomes the default for any calls to
+samples(). To create the metadata for the new chronology,
+we use set_chronology() using the properties from the chronology
+table in Neotoma:
Once we’ve created the chronology we need to apply it back to the
+collectionunit. We also need to add the predicted dates into the samples
+for each dataset associated with the collectionunit.
+
So:
+
+
we have a collectionunit in monticchio that is
+accessible at monticchio[[1]]$collunits.
+
We can use the function add_chronology(), which takes
+the chronology object and a data.frame() of sample
+ages.
+
The predicted dates associated with the new chronology need to be
+transferred to each samples object within the
+collectionunit.
+
+
This is all bound up in the add_chronology() function,
+which takes the collectionunit, modifys it, and returns the
+newly updated collectionunit.
With this, we now have the updated collectionunit. Lets take a look
+at how this affects the age model overal. To pull the ages from the
+prior chronologies, we use the set_default() function to
+change the default chronology, and then extract ages, depths &
+analysisunits:
Differences in age representation between
+chronologies between existing chronologies and the new Bchron
+chronology.
+
+
So we can see the impact of the new chronology on the age model for
+the record, and we can make choices as to which model we want to use
+going forward. We can use this approach to create multiple new
+chronologies for a single record, tuning parameters within
+Bchronology(), or using Bacon and different parameters.
+Because the chronology is an R object we can save the
+objects for use in future sessions, and associate them with existin
+records, or we can re-run the models again.
+
+
+
+
Summary
+
From this notebook we have learned how to:
+
+
Download a single record (the monticchio record using
+get_downloads())
+
Examining the chronologies for the record (using
+chronologies() and associated chronological controls (using
+chroncontrols())
+
Creating a new chronology for the record (using
+set_chronology())
+
Adding the chronology to the record (using
+add_chronology())
+
Switching between default chronologies (using
+set_default())
+
+
This approach is focused on a single record, but much of what is done
+here can be extended to multiple records using functions. We hope it’s
+been helpful!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/2023_INQUA_pollen_vertebrates/data/bisontable.csv b/2023_INQUA_pollen_vertebrates/data/bisontable.csv
new file mode 100644
index 0000000..ef6fbbf
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/data/bisontable.csv
@@ -0,0 +1,20 @@
+taxa,substitution
+Bison bison,Bison
+Bison sp.,Bison
+Bison,Bison
+cf. Bison bison,Bison
+cf. Bison sp.,Bison
+Bison bison athabascae,Bison
+Bison bison cf. B. b. antiquus,Bison
+Bison bison bison,Bison
+Enophrys bison,Bison
+Enophrys cf. E. bison,Bison
+?Bison sp.,Bison
+Bison athabascae,Bison
+Bison ?priscus,Bison
+Bison cf. B. latifrons,Bison
+Bison bison cf. B. b. occidentalis,Bison
+cf. Bison,Bison
+Bison cf. B. alleni,Bison
+Bison cf. B. antiquus,Bison
+Bison cf. B. priscus,Bison
diff --git a/2023_INQUA_pollen_vertebrates/data/itDownload.RDS b/2023_INQUA_pollen_vertebrates/data/itDownload.RDS
new file mode 100644
index 0000000..eaa1e04
Binary files /dev/null and b/2023_INQUA_pollen_vertebrates/data/itDownload.RDS differ
diff --git a/2023_INQUA_pollen_vertebrates/data/mytaxontable.csv b/2023_INQUA_pollen_vertebrates/data/mytaxontable.csv
new file mode 100644
index 0000000..f3faf08
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/data/mytaxontable.csv
@@ -0,0 +1,1395 @@
+units,context,element,taxonid,symmetry,taxongroup,elementtype,variablename,ecologicalgroup,samples,sites
+NISP,NA,50-125 µm,1062,NA,Charcoal,NA,Charcoal,CHAR,91,1
+NISP,NA,>10 µm,1062,NA,Charcoal,>10 µm,Charcoal,CHAR,354,1
+NISP,NA,>125 µm,1062,NA,Charcoal,>125 µm,Charcoal,CHAR,91,1
+NISP,NA,ascospore,1489,NA,Fungi,ascospore,Sporormiella,FUNG,9,2
+NISP,NA,ascospore,2193,NA,Fungi,ascospore,Gelasinospora,FUNG,1,1
+NISP,NA,ascospore,5415,NA,Fungi,ascospore,Diporotheca,FUNG,21,2
+NISP,NA,ascospore,25931,NA,Fungi,ascospore,Ustulina,FUNG,6,1
+NISP,NA,ascospore,27598,NA,Fungi,ascospore,Podospora-type,FUNG,11,1
+NISP,NA,ascospore,27614,NA,Fungi,ascospore,Ustulina deusta,FUNG,2,1
+NISP,NA,cell cluster,35283,NA,Fungi,cell cluster,Asterosporium,FUNG,51,1
+NISP,NA,colony,202,NA,Algae,colony,Pediastrum,ALGA,400,15
+NISP,NA,colony,326,NA,Algae,colony,Botryococcus,ALGA,243,4
+NISP,NA,colony,690,NA,Algae,colony,Pediastrum duplex,ALGA,19,1
+NISP,NA,colony,2950,NA,Algae,colony,Pediastrum longicorne,ALGA,6,1
+NISP,NA,colony,5137,NA,Algae,colony,Coelastrum reticulatum,ALGA,26,1
+NISP,NA,colony,5138,NA,Algae,colony,Scenedesmus,ALGA,9,1
+NISP,NA,colony,5140,NA,Algae,colony,Tetraëdron minimum,ALGA,63,1
+NISP,NA,colony,27693,NA,Algae,colony,Scenedesmus quadricauda,ALGA,15,1
+NISP,NA,colony,32495,NA,Algae,colony,Pediastrum orientale,ALGA,3,1
+NISP,NA,colony,33383,NA,Algae,colony,Pseudopediastrum boryanum,ALGA,39,2
+NISP,NA,colony,33387,NA,Algae,colony,Pseudopediastrum boryanum var. longicorne,ALGA,21,2
+NISP,NA,colony,33392,NA,Algae,colony,Pseudopediastrum boryanum var. boryanum sensu lato,ALGA,10,1
+NISP,NA,colony,33394,NA,Algae,colony,Pseudopediastrum integrum,ALGA,29,2
+NISP,NA,colony,33395,NA,Algae,colony,Pseudopediastrum boryanum var. cornutum,ALGA,4,1
+NISP,NA,colony,33398,NA,Algae,colony,Monactinus simplex,ALGA,13,1
+NISP,NA,colony,33400,NA,Algae,colony,Stauridium tetras,ALGA,2,1
+NISP,NA,concentration,932,NA,Laboratory analyses,concentration,Lycopodium spike,LABO,91,1
+NISP,NA,counted,932,NA,Laboratory analyses,counted,Lycopodium spike,LABO,223,3
+NISP,NA,counted,37831,NA,Laboratory analyses,counted,Exotic,LABO,26,1
+NISP,NA,cyst,778,NA,Dinoflagellates,cyst,Dinoflagellata,DINO,40,5
+NISP,NA,cyst,5469,NA,Acritarchs,cyst,Pseudoschizaea,ACRI,9,1
+NISP,NA,egg,27709,NA,Rotifers,egg,Filinia,ROTI,2,1
+NISP,NA,egg,34124,NA,Rotifers,egg,Trichocerca,ROTI,1,1
+NISP,NA,filament/cell,1488,NA,Algae,filament/cell,Spirogyra,ALGA,5,1
+NISP,NA,filament/cell,3091,NA,Algae,filament/cell,Zygnema,ALGA,8,1
+NISP,NA,filament/cell,29127,NA,Algae,filament/cell,Botryococcaceae,ALGA,19,1
+NISP,NA,fragment,1062,NA,Charcoal,fragment,Charcoal,CHAR,99,2
+NISP,NA,fruit body,3698,NA,Fungi,fruit body,Microthyrium,FUNG,50,1
+NISP,NA,head capsule,18678,NA,Insects,head capsule,Chironomidae,DIPT,8,1
+NISP,NA,hyphae,535,NA,Fungi,hyphae,Fungi,FUNG,6,1
+NISP,NA,leaf,294,NA,Bryophytes,leaf,Sphagnum,AQBR,1,1
+NISP,NA,leaf hair,2677,NA,Vascular plants,leaf hair,Hippophaë,TRSH,3,1
+NISP,NA,lorica,1198,NA,Rotifers,lorica,Habrotrocha angusticollis,ROTI,59,2
+NISP,NA,lorica,30508,NA,Rotifers,lorica,Callidina,ROTI,4,1
+NISP,NA,mandible,18678,NA,Insects,mandible,Chironomidae,DIPT,74,1
+NISP,NA,number,930,NA,Laboratory analyses,number,Lycopodium tablets,LABO,117,2
+NISP,NA,oocyte,5418,NA,Flatworms,oocyte,Rhabdocoela,FLWO,143,1
+NISP,NA,palynomorph,202,NA,Algae,palynomorph,Pediastrum,ALGA,34,1
+NISP,NA,palynomorph,1198,NA,Rotifers,palynomorph,Habrotrocha angusticollis,ROTI,92,1
+NISP,NA,palynomorph,1488,NA,Algae,palynomorph,Spirogyra,ALGA,18,1
+NISP,NA,palynomorph,1704,NA,Algae,palynomorph,Zygnemataceae,ALGA,9,2
+NISP,NA,palynomorph,5123,NA,Algae,palynomorph,Mougeotia,ALGA,12,2
+NISP,NA,palynomorph,5418,NA,Flatworms,palynomorph,Rhabdocoela,FLWO,149,2
+NISP,NA,palynomorph,5469,NA,Acritarchs,palynomorph,Pseudoschizaea,ACRI,42,3
+NISP,NA,palynomorph,5629,NA,Algae,palynomorph,Cosmarium,ALGA,1,1
+NISP,NA,palynomorph,27884,NA,Unidentified palynomorphs,palynomorph,cf. Larix,TRSH,2,2
+NISP,NA,palynomorph,27884,NA,Unidentified palynomorphs,palynomorph,cf. Larix,UNID,2,2
+NISP,NA,palynomorph,32660,NA,Dinoflagellates,palynomorph,Cymatiosphaera,PLNT,9,1
+NISP,NA,palynomorph,33034,NA,Algae,palynomorph,Chrysophyceae,ALGA,5,1
+NISP,NA,palynomorph,33407,NA,Algae,palynomorph,Pseudopediastrum alternans,ALGA,4,1
+NISP,NA,palynomorph,44118,NA,Algae,palynomorph,Volvocaceae,ALGA,16,1
+NISP,NA,particle,34286,NA,Charcoal,particle,Spheroidal carbonaceous particle,CHAR,26,1
+NISP,NA,pollen,1,NA,Vascular plants,pollen,Abies,TRSH,3717,50
+NISP,NA,pollen,11,NA,Vascular plants,pollen,Aesculus,TRSH,11,4
+NISP,NA,pollen,12,NA,Vascular plants,pollen,Allium,UPHE,16,3
+NISP,NA,pollen,14,NA,Vascular plants,pollen,Alnus viridis-type,TRSH,442,7
+NISP,NA,pollen,15,NA,Vascular plants,pollen,Alnus undiff.,TRSH,122,1
+NISP,NA,pollen,16,NA,Vascular plants,pollen,Ambrosia-type,UPHE,15,3
+NISP,NA,pollen,23,NA,Vascular plants,pollen,Arceuthobium,TRSH,5,1
+NISP,NA,pollen,24,NA,Vascular plants,pollen,Armeria,UPHE,52,14
+NISP,NA,pollen,25,NA,Vascular plants,pollen,Artemisia,UPHE,5971,59
+NISP,NA,pollen,29,NA,Vascular plants,pollen,Betula,TRSH,5715,57
+NISP,NA,pollen,31,NA,Vascular plants,pollen,Bidens-type,UPHE,31,1
+NISP,NA,pollen,32,NA,Vascular plants,pollen,Boraginaceae,UPHE,57,17
+NISP,NA,pollen,39,NA,Vascular plants,pollen,Callitriche,AQVP,27,3
+NISP,NA,pollen,40,NA,Vascular plants,pollen,Caltha,AQVP,14,2
+NISP,NA,pollen,44,NA,Vascular plants,pollen,Carya,TRSH,6,1
+NISP,NA,pollen,45,NA,Vascular plants,pollen,Caryophyllaceae,UPHE,2012,41
+NISP,NA,pollen,47,NA,Vascular plants,pollen,Castanea,TRSH,604,23
+NISP,NA,pollen,49,NA,Vascular plants,pollen,Celtis,TRSH,40,5
+NISP,NA,pollen,55,NA,Vascular plants,pollen,Cistaceae,UPHE,24,3
+NISP,NA,pollen,56,NA,Vascular plants,pollen,Citrus,TRSH,3,2
+NISP,NA,pollen,57,NA,Vascular plants,pollen,Cladium,AQVP,43,1
+NISP,NA,pollen,61,NA,Vascular plants,pollen,Asteraceae undiff.,UPHE,142,3
+NISP,NA,pollen,67,NA,Vascular plants,pollen,Corylus,TRSH,3102,30
+NISP,NA,pollen,68,NA,Vascular plants,pollen,Crassulaceae,UPHE,25,5
+NISP,NA,pollen,69,NA,Vascular plants,pollen,Crataegus-type,TRSH,27,10
+NISP,NA,pollen,70,NA,Vascular plants,pollen,Brassicaceae undiff.,UPHE,69,2
+NISP,NA,pollen,72,NA,Vascular plants,pollen,Cupressaceae,TRSH,67,2
+NISP,NA,pollen,73,NA,Vascular plants,pollen,Cuscuta,UPHE,33,13
+NISP,NA,pollen,74,NA,Vascular plants,pollen,Cyperaceae,UPHE,5600,58
+NISP,NA,pollen,81,NA,Vascular plants,pollen,Drosera,AQVP,46,8
+NISP,NA,pollen,90,NA,Vascular plants,pollen,Epilobium,UPHE,169,30
+NISP,NA,pollen,92,NA,Vascular plants,pollen,Ericaceae,TRSH,1751,50
+NISP,NA,pollen,95,NA,Laboratory analyses,pollen,Eucalyptus spike,LABO,219,1
+NISP,NA,pollen,103,NA,Vascular plants,pollen,Euonymus,TRSH,7,5
+NISP,NA,pollen,104,NA,Vascular plants,pollen,Euphorbia,UPHE,135,23
+NISP,NA,pollen,106,NA,Vascular plants,pollen,Fagopyrum,UPHE,31,10
+NISP,NA,pollen,107,NA,Vascular plants,pollen,Fagus,TRSH,4122,50
+NISP,NA,pollen,114,NA,Vascular plants,pollen,Fraxinus undiff.,TRSH,91,3
+NISP,NA,pollen,116,NA,Vascular plants,pollen,Galium,UPHE,226,7
+NISP,NA,pollen,119,NA,Vascular plants,pollen,Gentianaceae,UPHE,94,17
+NISP,NA,pollen,120,NA,Vascular plants,pollen,Geranium,UPHE,151,28
+NISP,NA,pollen,121,NA,Vascular plants,pollen,Geum-type,UPHE,91,13
+NISP,NA,pollen,125,NA,Vascular plants,pollen,Poaceae undiff.,UPHE,924,1
+NISP,NA,pollen,127,NA,Vascular plants,pollen,Angiospermae undiff. (herbs),UPHE,189,1
+NISP,NA,pollen,129,NA,Vascular plants,pollen,Hippuris vulgaris,AQVP,3,1
+NISP,NA,pollen,130,NA,Vascular plants,pollen,Humulus-type,UPHE,402,7
+NISP,NA,pollen,132,NA,Vascular plants,pollen,Hypericum,UPHE,207,15
+NISP,NA,pollen,135,NA,Vascular plants,pollen,Ilex,TRSH,123,8
+NISP,NA,pollen,136,NA,Vascular plants,pollen,Impatiens,UPHE,3,2
+NISP,NA,pollen,147,NA,Vascular plants,pollen,Juncaceae,UPHE,14,3
+NISP,NA,pollen,150,NA,Vascular plants,pollen,Lamiaceae undiff.,UPHE,9,2
+NISP,NA,pollen,153,NA,Vascular plants,pollen,Larix,TRSH,1887,38
+NISP,NA,pollen,157,NA,Vascular plants,pollen,Fabaceae undiff.,UPHE,248,9
+NISP,NA,pollen,159,NA,Vascular plants,pollen,Lemnoideae,AQVP,2,1
+NISP,NA,pollen,160,NA,Vascular plants,pollen,Cichorioideae,UPHE,4190,57
+NISP,NA,pollen,161,NA,Vascular plants,pollen,Liliaceae undiff.,UPHE,64,3
+NISP,NA,pollen,164,NA,Vascular plants,pollen,Lonicera,TRSH,94,17
+NISP,NA,pollen,180,NA,Vascular plants,pollen,Malvaceae,UPHE,17,5
+NISP,NA,pollen,182,NA,Vascular plants,pollen,Menyanthes trifoliata,AQVP,165,22
+NISP,NA,pollen,185,NA,Vascular plants,pollen,Moraceae,TRSH,1,1
+NISP,NA,pollen,186,NA,Vascular plants,pollen,Morus,TRSH,4,1
+NISP,NA,pollen,188,NA,Vascular plants,pollen,Myriophyllum,AQVP,167,13
+NISP,NA,pollen,190,NA,Vascular plants,pollen,Nuphar,AQVP,44,11
+NISP,NA,pollen,192,NA,Vascular plants,pollen,Nymphaea,AQVP,358,18
+NISP,NA,pollen,199,NA,Vascular plants,pollen,Arecaceae,PALM,3,2
+NISP,NA,pollen,200,NA,Vascular plants,pollen,Parnassia,UPHE,16,2
+NISP,NA,pollen,210,NA,Vascular plants,pollen,Picea,TRSH,2761,48
+NISP,NA,pollen,212,NA,Vascular plants,pollen,Pinus subg. Pinus,TRSH,753,12
+NISP,NA,pollen,213,NA,Vascular plants,pollen,Pinus subg. Strobus,TRSH,89,3
+NISP,NA,pollen,216,NA,Vascular plants,pollen,Pinus undiff.,TRSH,1033,2
+NISP,NA,pollen,218,NA,Vascular plants,pollen,Plantago undiff.,UPHE,324,10
+NISP,NA,pollen,219,NA,Vascular plants,pollen,Plantago major,UPHE,389,25
+NISP,NA,pollen,220,NA,Vascular plants,pollen,Plantago lanceolata,UPHE,513,9
+NISP,NA,pollen,221,NA,Vascular plants,pollen,Plantago media,UPHE,400,24
+NISP,NA,pollen,222,NA,Vascular plants,pollen,Platanus,TRSH,274,19
+NISP,NA,pollen,230,NA,Vascular plants,pollen,Persicaria amphibia,UPHE,16,4
+NISP,NA,pollen,231,NA,Vascular plants,pollen,Polygonum aviculare-type,UPHE,83,15
+NISP,NA,pollen,242,NA,Vascular plants,pollen,Potentilla-type,UPHE,1342,37
+NISP,NA,pollen,244,NA,Vascular plants,pollen,Primulaceae,UPHE,55,13
+NISP,NA,pollen,245,NA,Vascular plants,pollen,Prunus-type,TRSH,112,19
+NISP,NA,pollen,250,NA,Vascular plants,pollen,Pyrus-type,TRSH,1,1
+NISP,NA,pollen,251,NA,Vascular plants,pollen,Quercus,TRSH,2084,27
+NISP,NA,pollen,252,NA,Vascular plants,pollen,Ranunculaceae undiff.,UPHE,40,3
+NISP,NA,pollen,256,NA,Vascular plants,pollen,Rhamnaceae,TRSH,43,1
+NISP,NA,pollen,259,NA,Vascular plants,pollen,Rhododendron,TRSH,58,4
+NISP,NA,pollen,260,NA,Vascular plants,pollen,Rhus,TRSH,1,1
+NISP,NA,pollen,262,NA,Vascular plants,pollen,Ribes,TRSH,6,3
+NISP,NA,pollen,263,NA,Vascular plants,pollen,Robinia,TRSH,3,1
+NISP,NA,pollen,265,NA,Vascular plants,pollen,Rosaceae (trees) undiff.,TRSH,26,1
+NISP,NA,pollen,267,NA,Vascular plants,pollen,Rubus,TRSH,73,13
+NISP,NA,pollen,268,NA,Vascular plants,pollen,Rumex,UPHE,1665,21
+NISP,NA,pollen,270,NA,Vascular plants,pollen,Sagittaria,AQVP,14,2
+NISP,NA,pollen,271,NA,Vascular plants,pollen,Salix,TRSH,4018,58
+NISP,NA,pollen,275,NA,Vascular plants,pollen,Sambucus,TRSH,310,9
+NISP,NA,pollen,277,NA,Vascular plants,pollen,Sanguisorba,UPHE,15,5
+NISP,NA,pollen,282,NA,Vascular plants,pollen,Saxifragaceae,UPHE,92,8
+NISP,NA,pollen,283,NA,Vascular plants,pollen,Scheuchzeria palustris,AQVP,18,2
+NISP,NA,pollen,284,NA,Vascular plants,pollen,Scrophulariaceae,UPHE,728,31
+NISP,NA,pollen,285,NA,Vascular plants,pollen,Sedum,UPHE,230,17
+NISP,NA,pollen,293,NA,Vascular plants,pollen,Sparganium-type,AQVP,659,20
+NISP,NA,pollen,299,NA,Vascular plants,pollen,Taxus,TRSH,283,10
+NISP,NA,pollen,300,NA,Vascular plants,pollen,Thalictrum,UPHE,3183,48
+NISP,NA,pollen,302,NA,Vascular plants,pollen,Tilia,TRSH,3325,55
+NISP,NA,pollen,306,NA,Vascular plants,pollen,Tsuga,TRSH,5,2
+NISP,NA,pollen,307,NA,Vascular plants,pollen,Asteroideae undiff.,UPHE,154,4
+NISP,NA,pollen,308,NA,Vascular plants,pollen,Typha/Sparganium,AQVP,124,3
+NISP,NA,pollen,309,NA,Vascular plants,pollen,Typha latifolia,AQVP,288,12
+NISP,NA,pollen,310,NA,Vascular plants,pollen,Ulmus,TRSH,4890,58
+NISP,NA,pollen,311,NA,Vascular plants,pollen,Apiaceae,UPHE,3273,49
+NISP,NA,pollen,312,NA,Unidentified palynomorphs,pollen,Indeterminable,UNID,83,2
+NISP,NA,pollen,314,NA,Vascular plants,pollen,Urtica-type,UPHE,120,1
+NISP,NA,pollen,316,NA,Vascular plants,pollen,Utricularia,AQVP,38,5
+NISP,NA,pollen,317,NA,Vascular plants,pollen,Vaccinium,TRSH,441,11
+NISP,NA,pollen,318,NA,Vascular plants,pollen,Valeriana,UPHE,41,8
+NISP,NA,pollen,319,NA,Vascular plants,pollen,Viburnum undiff.,TRSH,1,1
+NISP,NA,pollen,320,NA,Vascular plants,pollen,Vitis,TRSH,1692,44
+NISP,NA,pollen,322,NA,Vascular plants,pollen,Xanthium,UPHE,44,12
+NISP,NA,pollen,323,NA,Vascular plants,pollen,Zea mays,UPHE,134,20
+NISP,NA,pollen,330,NA,Vascular plants,pollen,Alnus,TRSH,3167,26
+NISP,NA,pollen,332,NA,Vascular plants,pollen,Viola,UPHE,15,6
+NISP,NA,pollen,336,NA,Vascular plants,pollen,Lythrum,UPHE,186,22
+NISP,NA,pollen,338,NA,Vascular plants,pollen,Acer,TRSH,2586,54
+NISP,NA,pollen,341,NA,Vascular plants,pollen,Liliaceae,UPHE,165,21
+NISP,NA,pollen,344,NA,Vascular plants,pollen,Alnus incana,TRSH,63,1
+NISP,NA,pollen,345,NA,Vascular plants,pollen,Ambrosia,UPHE,76,12
+NISP,NA,pollen,346,NA,Vascular plants,pollen,Fabaceae,UPHE,438,23
+NISP,NA,pollen,349,NA,Vascular plants,pollen,Bidens,UPHE,3,1
+NISP,NA,pollen,350,NA,Vascular plants,pollen,Ranunculaceae,UPHE,997,26
+NISP,NA,pollen,351,NA,Vascular plants,pollen,Campanulaceae,UPHE,312,21
+NISP,NA,pollen,353,NA,Vascular plants,pollen,Alnus viridis,TRSH,1399,29
+NISP,NA,pollen,355,NA,Vascular plants,pollen,Rosaceae undiff.,UPHE,335,8
+NISP,NA,pollen,361,NA,Vascular plants,pollen,Cornus,TRSH,16,5
+NISP,NA,pollen,363,NA,Vascular plants,pollen,Juniperus-type,TRSH,728,9
+NISP,NA,pollen,366,NA,Vascular plants,pollen,Ephedra,TRSH,183,9
+NISP,NA,pollen,369,NA,Vascular plants,pollen,Fraxinus,TRSH,264,11
+NISP,NA,pollen,372,NA,Vascular plants,pollen,Juglans,TRSH,963,48
+NISP,NA,pollen,384,NA,Vascular plants,pollen,Ostrya-type,TRSH,1294,34
+NISP,NA,pollen,385,NA,Vascular plants,pollen,Pinus,TRSH,3020,33
+NISP,NA,pollen,388,NA,Vascular plants,pollen,Pistacia,TRSH,691,28
+NISP,NA,pollen,389,NA,Vascular plants,pollen,Populus,TRSH,1066,36
+NISP,NA,pollen,391,NA,Vascular plants,pollen,Amaranthaceae,UPHE,3491,33
+NISP,NA,pollen,394,NA,Vascular plants,pollen,Caprifoliaceae,TRSH,1,1
+NISP,NA,pollen,397,NA,Vascular plants,pollen,Viburnum,TRSH,315,28
+NISP,NA,pollen,409,NA,Vascular plants,pollen,Asteraceae,UPHE,169,5
+NISP,NA,pollen,414,NA,Vascular plants,pollen,Avena-type,UPHE,22,3
+NISP,NA,pollen,416,NA,Vascular plants,pollen,Poaceae (Cerealia),UPHE,1289,33
+NISP,NA,pollen,417,NA,Vascular plants,pollen,Poaceae,UPHE,5920,59
+NISP,NA,pollen,418,NA,Vascular plants,pollen,Asteroideae,UPHE,1507,37
+NISP,NA,pollen,420,NA,Vascular plants,pollen,Brassicaceae,UPHE,2857,54
+NISP,NA,pollen,425,NA,Vascular plants,pollen,Humulus,UPHE,88,4
+NISP,NA,pollen,426,NA,Vascular plants,pollen,Cannabis sativa,UPHE,424,10
+NISP,NA,pollen,427,NA,Vascular plants,pollen,Poaceae (Cerealia) undiff.,UPHE,65,2
+NISP,NA,pollen,430,NA,Vascular plants,pollen,Cyperaceae undiff.,UPHE,679,1
+NISP,NA,pollen,448,NA,Vascular plants,pollen,Gentiana,UPHE,6,4
+NISP,NA,pollen,452,NA,Vascular plants,pollen,Heliotropium,UPHE,1,1
+NISP,NA,pollen,460,NA,Vascular plants,pollen,Lamiaceae,UPHE,489,33
+NISP,NA,pollen,464,NA,Vascular plants,pollen,Urticaceae,UPHE,562,15
+NISP,NA,pollen,475,NA,Vascular plants,pollen,Parietaria,UPHE,3,1
+NISP,NA,pollen,476,NA,Vascular plants,pollen,Pedicularis,UPHE,8,4
+NISP,NA,pollen,480,NA,Vascular plants,pollen,Plantago,UPHE,1603,27
+NISP,NA,pollen,483,NA,Vascular plants,pollen,Rosaceae,UPHE,1763,47
+NISP,NA,pollen,484,NA,Vascular plants,pollen,Primula,UPHE,16,5
+NISP,NA,pollen,487,NA,Vascular plants,pollen,Saxifraga,UPHE,11,5
+NISP,NA,pollen,488,NA,Vascular plants,pollen,Secale-type,UPHE,56,1
+NISP,NA,pollen,491,NA,Vascular plants,pollen,Stachys-type,UPHE,52,11
+NISP,NA,pollen,495,NA,Vascular plants,pollen,Trifolium pratense,UPHE,13,2
+NISP,NA,pollen,496,NA,Vascular plants,pollen,Trifolium repens-type,UPHE,289,22
+NISP,NA,pollen,497,NA,Vascular plants,pollen,Triticum-type,UPHE,63,5
+NISP,NA,pollen,498,NA,Vascular plants,pollen,Urtica,UPHE,1321,34
+NISP,NA,pollen,500,NA,Vascular plants,pollen,Verbena,UPHE,5,2
+NISP,NA,pollen,513,NA,Vascular plants,pollen,Alisma,AQVP,66,10
+NISP,NA,pollen,514,NA,Vascular plants,pollen,Hydrocotyle,AQVP,5,1
+NISP,NA,pollen,515,NA,Vascular plants,pollen,Lemna,AQVP,27,6
+NISP,NA,pollen,516,NA,Vascular plants,pollen,Stuckenia,AQVP,27,1
+NISP,NA,pollen,517,NA,Vascular plants,pollen,Potamogeton,AQVP,805,25
+NISP,NA,pollen,539,NA,Vascular plants,pollen,Lysimachia,UPHE,52,12
+NISP,NA,pollen,540,NA,Vascular plants,pollen,Polygonum,UPHE,39,12
+NISP,NA,pollen,541,NA,Vascular plants,pollen,Prunus/Sorbus,TRSH,45,1
+NISP,NA,pollen,543,NA,Vascular plants,pollen,Solanaceae,UPHE,1,1
+NISP,NA,pollen,549,NA,Vascular plants,pollen,Ranunculus,UPHE,418,6
+NISP,NA,pollen,557,NA,Vascular plants,pollen,Allium-type,UPHE,195,20
+NISP,NA,pollen,564,NA,Vascular plants,pollen,Andromeda polifolia,TRSH,203,1
+NISP,NA,pollen,582,NA,Vascular plants,pollen,Butomus umbellatus,AQVP,34,2
+NISP,NA,pollen,584,NA,Vascular plants,pollen,cf. Callitriche,AQVP,15,2
+NISP,NA,pollen,585,NA,Vascular plants,pollen,Caltha-type,UPHE,161,21
+NISP,NA,pollen,586,NA,Vascular plants,pollen,Campanula-type,UPHE,173,7
+NISP,NA,pollen,592,NA,Vascular plants,pollen,Centaurea,UPHE,76,8
+NISP,NA,pollen,598,NA,Vascular plants,pollen,Lonicera caerulea,TRSH,13,2
+NISP,NA,pollen,635,NA,Vascular plants,pollen,Linnaea borealis,UPHE,1,1
+NISP,NA,pollen,636,NA,Vascular plants,pollen,Linum,UPHE,38,12
+NISP,NA,pollen,639,NA,Vascular plants,pollen,Kalmia procumbens,TRSH,22,3
+NISP,NA,pollen,647,NA,Vascular plants,pollen,cf. Hypericum,UPHE,1,1
+NISP,NA,pollen,655,NA,Vascular plants,pollen,Lythrum salicaria,UPHE,10,1
+NISP,NA,pollen,656,NA,Vascular plants,pollen,Mentha-type,UPHE,709,35
+NISP,NA,pollen,661,NA,Vascular plants,pollen,Monotropa,UPHE,1,1
+NISP,NA,pollen,667,NA,Vascular plants,pollen,Myriophyllum alterniflorum,AQVP,91,7
+NISP,NA,pollen,673,NA,Vascular plants,pollen,Nymphaeaceae,AQVP,23,2
+NISP,NA,pollen,674,NA,Vascular plants,pollen,Oleaceae undiff.,TRSH,8,2
+NISP,NA,pollen,682,NA,Vascular plants,pollen,Oxyria digyna-type,UPHE,3,1
+NISP,NA,pollen,684,NA,Vascular plants,pollen,Papaveraceae,UPHE,30,7
+NISP,NA,pollen,694,NA,Vascular plants,pollen,Euphorbiaceae,UPHE,40,8
+NISP,NA,pollen,699,NA,Vascular plants,pollen,Plantago lanceolata-type,UPHE,1897,37
+NISP,NA,pollen,702,NA,Vascular plants,pollen,Polygonaceae,UPHE,13,3
+NISP,NA,pollen,703,NA,Vascular plants,pollen,Bistorta officinalis-type,UPHE,66,10
+NISP,NA,pollen,705,NA,Vascular plants,pollen,Bistorta vivipara,UPHE,36,9
+NISP,NA,pollen,714,NA,Vascular plants,pollen,Prunella-type,UPHE,18,4
+NISP,NA,pollen,715,NA,Vascular plants,pollen,Prunus,TRSH,48,6
+NISP,NA,pollen,733,NA,Vascular plants,pollen,Rubiaceae,TRSH,1690,39
+NISP,NA,pollen,734,NA,Vascular plants,pollen,Rubus chamaemorus,TRSH,3,1
+NISP,NA,pollen,735,NA,Vascular plants,pollen,Rumex-type,UPHE,997,15
+NISP,NA,pollen,736,NA,Vascular plants,pollen,Rumex acetosa-type,UPHE,1475,24
+NISP,NA,pollen,747,NA,Vascular plants,pollen,Saxifraga oppositifolia-type,UPHE,433,28
+NISP,NA,pollen,748,NA,Vascular plants,pollen,Micranthes stellaris-type,UPHE,139,23
+NISP,NA,pollen,751,NA,Vascular plants,pollen,Typha,AQVP,36,2
+NISP,NA,pollen,752,NA,Vascular plants,pollen,Typha angustifolia,AQVP,551,7
+NISP,NA,pollen,762,NA,Vascular plants,pollen,Trifolium-type,UPHE,150,17
+NISP,NA,pollen,785,NA,Vascular plants,pollen,Rhamnus,TRSH,194,19
+NISP,NA,pollen,794,NA,Vascular plants,pollen,Viburnum opulus,TRSH,6,2
+NISP,NA,pollen,795,NA,Vascular plants,pollen,Viburnum opulus-type,TRSH,100,4
+NISP,NA,pollen,798,NA,Vascular plants,pollen,Polemonium,UPHE,2,1
+NISP,NA,pollen,804,NA,Vascular plants,pollen,Chenopodium-type,UPHE,49,1
+NISP,NA,pollen,806,NA,Vascular plants,pollen,Humulus/Cannabis,UPHE,168,6
+NISP,NA,pollen,808,NA,Vascular plants,pollen,Vicia-type,UPHE,101,25
+NISP,NA,pollen,810,NA,Vascular plants,pollen,Potamogeton-type,AQVP,274,17
+NISP,NA,pollen,813,NA,Vascular plants,pollen,Campanula,UPHE,372,20
+NISP,NA,pollen,815,NA,Vascular plants,pollen,Ranunculus-type,UPHE,695,15
+NISP,NA,pollen,819,NA,Vascular plants,pollen,Smilax,UPHE,3,1
+NISP,NA,pollen,820,NA,Vascular plants,pollen,Achillea-type,UPHE,1163,28
+NISP,NA,pollen,821,NA,Vascular plants,pollen,Circaea,UPHE,2,2
+NISP,NA,pollen,825,NA,Vascular plants,pollen,Potentilla,UPHE,39,6
+NISP,NA,pollen,838,NA,Vascular plants,pollen,Plantago major-type,UPHE,55,6
+NISP,NA,pollen,842,NA,Vascular plants,pollen,Ononis-type,UPHE,60,11
+NISP,NA,pollen,843,NA,Vascular plants,pollen,Rosa,TRSH,27,8
+NISP,NA,pollen,848,NA,Vascular plants,pollen,Ericales,TRSH,53,1
+NISP,NA,pollen,858,NA,Vascular plants,pollen,Ligustrum,TRSH,91,23
+NISP,NA,pollen,879,NA,Vascular plants,pollen,cf. Ribes,TRSH,4,2
+NISP,NA,pollen,883,NA,Vascular plants,pollen,Myrtaceae,TRSH,2,1
+NISP,NA,pollen,884,NA,Vascular plants,pollen,Persicaria maculosa-type,UPHE,60,15
+NISP,NA,pollen,886,NA,Vascular plants,pollen,Senecio,UPHE,130,12
+NISP,NA,pollen,888,NA,Vascular plants,pollen,Persicaria amphibia-type,UPHE,3,2
+NISP,NA,pollen,894,NA,Vascular plants,pollen,Ceratophyllum,AQVP,48,2
+NISP,NA,pollen,902,NA,Vascular plants,pollen,cf. Sambucus,TRSH,4,2
+NISP,NA,pollen,904,NA,Vascular plants,pollen,Rumex undiff.,UPHE,125,4
+NISP,NA,pollen,908,NA,Vascular plants,pollen,Sparganium,AQVP,298,10
+NISP,NA,pollen,909,NA,Vascular plants,pollen,Ericaceae undiff.,TRSH,34,3
+NISP,NA,pollen,912,NA,Vascular plants,pollen,Saxifragaceae undiff.,UPHE,15,1
+NISP,NA,pollen,936,NA,Vascular plants,pollen,Oxalis,UPHE,5,1
+NISP,NA,pollen,940,NA,Vascular plants,pollen,Ilex-type,TRSH,9,2
+NISP,NA,pollen,947,NA,Vascular plants,pollen,Polygonum aviculare,UPHE,148,21
+NISP,NA,pollen,967,NA,Vascular plants,pollen,Secale,UPHE,541,32
+NISP,NA,pollen,968,NA,Vascular plants,pollen,Triglochin,AQVP,2,1
+NISP,NA,pollen,983,NA,Vascular plants,pollen,Juniperus,TRSH,2984,46
+NISP,NA,pollen,988,NA,Vascular plants,pollen,Persicaria maculosa,UPHE,10,2
+NISP,NA,pollen,994,NA,Vascular plants,pollen,Arenaria,UPHE,34,3
+NISP,NA,pollen,996,NA,Vascular plants,pollen,Ranunculus acris-type,UPHE,839,22
+NISP,NA,pollen,997,NA,Vascular plants,pollen,Melampyrum,UPHE,170,19
+NISP,NA,pollen,999,NA,Vascular plants,pollen,Cerastium-type,UPHE,94,10
+NISP,NA,pollen,1012,NA,Vascular plants,pollen,Bupleurum,UPHE,44,9
+NISP,NA,pollen,1013,NA,Vascular plants,pollen,Caryophyllaceae undiff.,UPHE,730,7
+NISP,NA,pollen,1015,NA,Vascular plants,pollen,Nothofagus,TRSH,1,1
+NISP,NA,pollen,1026,NA,Vascular plants,pollen,Empetrum-type,TRSH,216,9
+NISP,NA,pollen,1050,NA,Vascular plants,pollen,Pinguicula,UPHE,24,2
+NISP,NA,pollen,1069,NA,Vascular plants,pollen,Papaver,UPHE,27,3
+NISP,NA,pollen,1072,NA,Vascular plants,pollen,Polygala,UPHE,10,5
+NISP,NA,pollen,1073,NA,Vascular plants,pollen,Jasione,UPHE,68,11
+NISP,NA,pollen,1074,NA,Vascular plants,pollen,Boraginaceae undiff.,UPHE,80,4
+NISP,NA,pollen,1078,NA,Vascular plants,pollen,Trifolium,UPHE,26,6
+NISP,NA,pollen,1086,NA,Vascular plants,pollen,Cardamine-type,UPHE,9,3
+NISP,NA,pollen,1087,NA,Vascular plants,pollen,Rumex obtusifolius-type,UPHE,181,16
+NISP,NA,pollen,1098,NA,Vascular plants,pollen,Juncus,AQVP,1,1
+NISP,NA,pollen,1099,NA,Vascular plants,pollen,Scutellaria-type,UPHE,20,6
+NISP,NA,pollen,1119,NA,Vascular plants,pollen,cf. Myrica,TRSH,1,1
+NISP,NA,pollen,1121,NA,Vascular plants,pollen,Typha angustifolia-type,AQVP,105,2
+NISP,NA,pollen,1142,NA,Vascular plants,pollen,Anemone,UPHE,56,3
+NISP,NA,pollen,1143,NA,Vascular plants,pollen,Aconitum,UPHE,69,11
+NISP,NA,pollen,1154,NA,Vascular plants,pollen,Androsace,UPHE,25,6
+NISP,NA,pollen,1157,NA,Vascular plants,pollen,Saussurea,UPHE,11,7
+NISP,NA,pollen,1159,NA,Vascular plants,pollen,Monotropoideae,UPHE,8,2
+NISP,NA,pollen,1160,NA,Vascular plants,pollen,Scrophulariaceae undiff.,UPHE,63,3
+NISP,NA,pollen,1161,NA,Vascular plants,pollen,Anemone-type,UPHE,10,1
+NISP,NA,pollen,1162,NA,Vascular plants,pollen,Arctostaphylos,TRSH,5,2
+NISP,NA,pollen,1163,NA,Vascular plants,pollen,Astragalus-type,UPHE,1,1
+NISP,NA,pollen,1166,NA,Vascular plants,pollen,Hedysarum-type,UPHE,14,4
+NISP,NA,pollen,1172,NA,Vascular plants,pollen,Apiaceae undiff.,UPHE,1166,10
+NISP,NA,pollen,1173,NA,Vascular plants,pollen,Vaccinium-type,TRSH,26,4
+NISP,NA,pollen,1178,NA,Vascular plants,pollen,Geraniaceae,UPHE,18,6
+NISP,NA,pollen,1184,NA,Vascular plants,pollen,Bistorta officinalis,UPHE,50,10
+NISP,NA,pollen,1203,NA,Vascular plants,pollen,Ulmaceae,TRSH,105,1
+NISP,NA,pollen,1211,NA,Vascular plants,pollen,Myriophyllum undiff.,AQVP,94,1
+NISP,NA,pollen,1222,NA,Vascular plants,pollen,Saxifraga undiff.,UPHE,12,3
+NISP,NA,pollen,1237,NA,Vascular plants,pollen,Ostrya,TRSH,1070,12
+NISP,NA,pollen,1249,NA,Vascular plants,pollen,Eucalyptus,TRSH,17,7
+NISP,NA,pollen,1253,NA,Vascular plants,pollen,Cirsium,UPHE,623,23
+NISP,NA,pollen,1260,NA,Vascular plants,pollen,Helianthemum,UPHE,1314,52
+NISP,NA,pollen,1262,NA,Vascular plants,pollen,Solanum,UPHE,101,4
+NISP,NA,pollen,1266,NA,Vascular plants,pollen,Euphorbia-type,UPHE,3,1
+NISP,NA,pollen,1267,NA,Vascular plants,pollen,Bupleurum-type,UPHE,84,10
+NISP,NA,pollen,1268,NA,Vascular plants,pollen,Typha latifolia-type,AQVP,357,23
+NISP,NA,pollen,1278,NA,Vascular plants,pollen,Lythraceae,UPHE,9,1
+NISP,NA,pollen,1279,NA,Vascular plants,pollen,Salsola-type,UPHE,44,1
+NISP,NA,pollen,1287,NA,Vascular plants,pollen,Pinus sylvestris,TRSH,94,1
+NISP,NA,pollen,1288,NA,Vascular plants,pollen,Picea abies,TRSH,499,6
+NISP,NA,pollen,1298,NA,Vascular plants,pollen,Plumbaginaceae,UPHE,7,2
+NISP,NA,pollen,1299,NA,Vascular plants,pollen,Alnus glutinosa,TRSH,244,4
+NISP,NA,pollen,1301,NA,Vascular plants,pollen,Sanguisorba officinalis,UPHE,149,25
+NISP,NA,pollen,1302,NA,Vascular plants,pollen,Valerianoideae,UPHE,22,12
+NISP,NA,pollen,1306,NA,Vascular plants,pollen,Hippophaë rhamnoides,TRSH,412,28
+NISP,NA,pollen,1307,NA,Vascular plants,pollen,Plantago maritima,UPHE,14,1
+NISP,NA,pollen,1308,NA,Vascular plants,pollen,Echinops,UPHE,3,2
+NISP,NA,pollen,1310,NA,Vascular plants,pollen,Myriophyllum spicatum,AQVP,411,22
+NISP,NA,pollen,1311,NA,Vascular plants,pollen,Myriophyllum verticillatum,AQVP,58,11
+NISP,NA,pollen,1315,NA,Vascular plants,pollen,Sorbus aucuparia,TRSH,9,2
+NISP,NA,pollen,1316,NA,Vascular plants,pollen,Corylus avellana,TRSH,2146,30
+NISP,NA,pollen,1319,NA,Vascular plants,pollen,Carpinus betulus,TRSH,2197,38
+NISP,NA,pollen,1320,NA,Vascular plants,pollen,Fagus sylvatica,TRSH,627,6
+NISP,NA,pollen,1321,NA,Vascular plants,pollen,Vitis vinifera,TRSH,44,2
+NISP,NA,pollen,1324,NA,Vascular plants,pollen,Fagopyrum esculentum,UPHE,2,1
+NISP,NA,pollen,1325,NA,Vascular plants,pollen,Scabiosa,UPHE,54,12
+NISP,NA,pollen,1327,NA,Vascular plants,pollen,Convolvulaceae,UPHE,9,1
+NISP,NA,pollen,1334,NA,Vascular plants,pollen,Viscum,TRSH,61,15
+NISP,NA,pollen,1335,NA,Vascular plants,pollen,Humulus lupulus,UPHE,189,12
+NISP,NA,pollen,1336,NA,Vascular plants,pollen,Centaurea cyanus,UPHE,51,14
+NISP,NA,pollen,1339,NA,Vascular plants,pollen,Salvia,UPHE,41,3
+NISP,NA,pollen,1340,NA,Vascular plants,pollen,Dipsacoideae,UPHE,77,16
+NISP,NA,pollen,1341,NA,Vascular plants,pollen,Dipsacus,UPHE,4,3
+NISP,NA,pollen,1346,NA,Vascular plants,pollen,Myriophyllum alterniflorum-type,AQVP,3,2
+NISP,NA,pollen,1351,NA,Vascular plants,pollen,Spermatophyta undiff. (trees/shrubs),TRSH,146,1
+NISP,NA,pollen,1358,NA,Vascular plants,pollen,Cupressaceae/Taxaceae,TRSH,54,1
+NISP,NA,pollen,1392,NA,Vascular plants,pollen,Centaurea undiff.,UPHE,6,1
+NISP,NA,pollen,1401,NA,Vascular plants,pollen,Lilium,UPHE,10,4
+NISP,NA,pollen,1416,NA,Vascular plants,pollen,Galium-type,UPHE,1616,15
+NISP,NA,pollen,1427,NA,Vascular plants,pollen,Limonium,UPHE,1,1
+NISP,NA,pollen,1428,NA,Vascular plants,pollen,Filipendula,UPHE,1839,50
+NISP,NA,pollen,1429,NA,Vascular plants,pollen,Carpinus,TRSH,452,16
+NISP,NA,pollen,1434,NA,Vascular plants,pollen,Tofieldia,UPHE,4,2
+NISP,NA,pollen,1435,NA,Vascular plants,pollen,Sorbus,TRSH,248,7
+NISP,NA,pollen,1473,NA,Vascular plants,pollen,Saxifragaceae-type,UPHE,2,1
+NISP,NA,pollen,1501,NA,Vascular plants,pollen,Convolvulus,UPHE,21,3
+NISP,NA,pollen,1505,NA,Vascular plants,pollen,Carpinus-type,TRSH,198,2
+NISP,NA,pollen,1510,NA,Vascular plants,pollen,Centaurea-type,UPHE,4,1
+NISP,NA,pollen,1517,NA,Vascular plants,pollen,Calystegia,UPHE,19,6
+NISP,NA,pollen,1529,NA,Vascular plants,pollen,Pedicularis-type,UPHE,1,1
+NISP,NA,pollen,1530,NA,Vascular plants,pollen,Cerastium,UPHE,2,1
+NISP,NA,pollen,1532,NA,Vascular plants,pollen,Rumex acetosella-type,UPHE,779,11
+NISP,NA,pollen,1576,NA,Vascular plants,pollen,Impatiens noli-tangere,UPHE,1,1
+NISP,NA,pollen,1594,NA,Vascular plants,pollen,cf. Polygonum,UPHE,1,1
+NISP,NA,pollen,1596,NA,Vascular plants,pollen,Hypericum-type,UPHE,1,1
+NISP,NA,pollen,1598,NA,Vascular plants,pollen,Primulaceae undiff.,UPHE,25,1
+NISP,NA,pollen,1693,NA,Vascular plants,pollen,Cornaceae,TRSH,42,1
+NISP,NA,pollen,1727,NA,Vascular plants,pollen,Ficus,TRSH,9,2
+NISP,NA,pollen,1751,NA,Vascular plants,pollen,Thalictrum-type,UPHE,56,2
+NISP,NA,pollen,1764,NA,Vascular plants,pollen,Apium,UPHE,45,8
+NISP,NA,pollen,1915,NA,Vascular plants,pollen,Senecio-type,UPHE,602,10
+NISP,NA,pollen,1931,NA,Vascular plants,pollen,Liliaceae-type,UPHE,75,13
+NISP,NA,pollen,1932,NA,Vascular plants,pollen,Iris,UPHE,5,5
+NISP,NA,pollen,1947,NA,Vascular plants,pollen,Poaceae (Cerealia-type),UPHE,660,11
+NISP,NA,pollen,1997,NA,Vascular plants,pollen,Erythrina,TRSH,1,1
+NISP,NA,pollen,2003,NA,Vascular plants,pollen,Malvaceae undiff.,UPHE,4,1
+NISP,NA,pollen,2113,NA,Vascular plants,pollen,Poaceae (>40 µm),UPHE,13,1
+NISP,NA,pollen,2127,NA,Vascular plants,pollen,Lathyrus-type,UPHE,30,6
+NISP,NA,pollen,2129,NA,Vascular plants,pollen,Lotus-type,UPHE,203,28
+NISP,NA,pollen,2160,NA,Vascular plants,pollen,Geum,UPHE,18,6
+NISP,NA,pollen,2196,NA,Vascular plants,pollen,Epilobium-type,UPHE,6,1
+NISP,NA,pollen,2209,NA,Vascular plants,pollen,Linaria,UPHE,1,1
+NISP,NA,pollen,2224,NA,Vascular plants,pollen,Myriophyllum verticillatum-type,AQVP,114,3
+NISP,NA,pollen,2227,NA,Vascular plants,pollen,Rhynchospora alba,AQVP,2,1
+NISP,NA,pollen,2249,NA,Vascular plants,pollen,Cedrus,TRSH,208,29
+NISP,NA,pollen,2261,NA,Vascular plants,pollen,Corydalis,UPHE,4,2
+NISP,NA,pollen,2286,NA,Vascular plants,pollen,Mentha,UPHE,14,2
+NISP,NA,pollen,2306,NA,Vascular plants,pollen,Silene,UPHE,28,8
+NISP,NA,pollen,2312,NA,Vascular plants,pollen,Valeriana undiff.,UPHE,9,1
+NISP,NA,pollen,2322,NA,Vascular plants,pollen,Frangula alnus,TRSH,307,16
+NISP,NA,pollen,2337,NA,Vascular plants,pollen,Myriophyllum spicatum-type,AQVP,161,4
+NISP,NA,pollen,2338,NA,Vascular plants,pollen,Olea,TRSH,1493,40
+NISP,NA,pollen,2339,NA,Vascular plants,pollen,Oleaceae,TRSH,32,4
+NISP,NA,pollen,2342,NA,Vascular plants,pollen,Quercus (deciduous),TRSH,595,10
+NISP,NA,pollen,2344,NA,Vascular plants,pollen,Tamarix,TRSH,24,4
+NISP,NA,pollen,2345,NA,Vascular plants,pollen,Thymelaeaceae,UPHE,12,5
+NISP,NA,pollen,2460,NA,Vascular plants,pollen,Carduus,UPHE,182,23
+NISP,NA,pollen,2481,NA,Vascular plants,pollen,Anagallis-type,UPHE,15,2
+NISP,NA,pollen,2482,NA,Vascular plants,pollen,Resedaceae,UPHE,9,1
+NISP,NA,pollen,2483,NA,Vascular plants,pollen,Alchemilla,UPHE,75,11
+NISP,NA,pollen,2519,NA,Vascular plants,pollen,Clematis,UPHE,4,3
+NISP,NA,pollen,2532,NA,Vascular plants,pollen,Quercus (evergreen),TRSH,137,3
+NISP,NA,pollen,2535,NA,Vascular plants,pollen,Gentiana verna-type,UPHE,3,2
+NISP,NA,pollen,2536,NA,Vascular plants,pollen,Gentiana pneumonanthe-type,UPHE,94,21
+NISP,NA,pollen,2537,NA,Vascular plants,pollen,Heracleum,UPHE,141,16
+NISP,NA,pollen,2549,NA,Vascular plants,pollen,Dianthus-type,UPHE,3,2
+NISP,NA,pollen,2555,NA,Vascular plants,pollen,Paronychia,UPHE,2,2
+NISP,NA,pollen,2566,NA,Vascular plants,pollen,Montia,UPHE,1,1
+NISP,NA,pollen,2572,NA,Vascular plants,pollen,Typha angustifolia/Sparganium,AQVP,332,9
+NISP,NA,pollen,2627,NA,Vascular plants,pollen,Delphinium,UPHE,10,2
+NISP,NA,pollen,2628,NA,Vascular plants,pollen,Buxus,TRSH,302,16
+NISP,NA,pollen,2645,NA,Vascular plants,pollen,cf. Oxalis,UPHE,2,1
+NISP,NA,pollen,2657,NA,Vascular plants,pollen,Castanea sativa,TRSH,945,33
+NISP,NA,pollen,2664,NA,Vascular plants,pollen,Juglans regia,TRSH,267,4
+NISP,NA,pollen,2667,NA,Vascular plants,pollen,Pterocarya,TRSH,8,2
+NISP,NA,pollen,2677,NA,Vascular plants,pollen,Hippophaë,TRSH,684,14
+NISP,NA,pollen,2680,NA,Vascular plants,pollen,Daphne,TRSH,24,10
+NISP,NA,pollen,2684,NA,Vascular plants,pollen,Hedera,TRSH,782,17
+NISP,NA,pollen,2685,NA,Vascular plants,pollen,Knautia,UPHE,27,10
+NISP,NA,pollen,2693,NA,Vascular plants,pollen,Asperula,UPHE,1,1
+NISP,NA,pollen,2759,NA,Vascular plants,pollen,Euphrasia,UPHE,11,3
+NISP,NA,pollen,2782,NA,Vascular plants,pollen,Spermatophyta undiff. (shrubs),TRSH,102,1
+NISP,NA,pollen,2795,NA,Vascular plants,pollen,Veronica,UPHE,58,12
+NISP,NA,pollen,2797,NA,Vascular plants,pollen,Centaurium,UPHE,11,4
+NISP,NA,pollen,2828,NA,Vascular plants,pollen,Echium,UPHE,82,18
+NISP,NA,pollen,2836,NA,Vascular plants,pollen,Gratiola,UPHE,1,1
+NISP,NA,pollen,2855,NA,Vascular plants,pollen,Poaceae (<20 µm),UPHE,3,1
+NISP,NA,pollen,2893,NA,Vascular plants,pollen,Ranunculus acris,UPHE,1,1
+NISP,NA,pollen,2895,NA,Vascular plants,pollen,Valerianella,UPHE,10,4
+NISP,NA,pollen,2897,NA,Vascular plants,pollen,Calluna vulgaris,TRSH,787,36
+NISP,NA,pollen,2903,NA,Vascular plants,pollen,Erica,TRSH,213,4
+NISP,NA,pollen,2904,NA,Vascular plants,pollen,Lotus,UPHE,22,4
+NISP,NA,pollen,2905,NA,Vascular plants,pollen,Plantago major/P. media,UPHE,191,5
+NISP,NA,pollen,2906,NA,Vascular plants,pollen,Scleranthus perennis,UPHE,8,1
+NISP,NA,pollen,2907,NA,Vascular plants,pollen,Scleranthus,UPHE,10,6
+NISP,NA,pollen,2909,NA,Vascular plants,pollen,Stellaria holostea,UPHE,23,6
+NISP,NA,pollen,2910,NA,Vascular plants,pollen,Succisa,UPHE,20,9
+NISP,NA,pollen,2911,NA,Vascular plants,pollen,Symphytum,UPHE,11,6
+NISP,NA,pollen,2913,NA,Vascular plants,pollen,Trifolium repens,UPHE,13,2
+NISP,NA,pollen,2915,NA,Vascular plants,pollen,Astragalus alpinus-type,UPHE,15,2
+NISP,NA,pollen,2918,NA,Vascular plants,pollen,Cirsium-type,UPHE,142,10
+NISP,NA,pollen,2920,NA,Vascular plants,pollen,Elatine-type,AQVP,1,1
+NISP,NA,pollen,2925,NA,Vascular plants,pollen,Frangula,TRSH,46,3
+NISP,NA,pollen,2927,NA,Vascular plants,pollen,Mercurialis,UPHE,142,12
+NISP,NA,pollen,2928,NA,Vascular plants,pollen,Prunella,UPHE,3,1
+NISP,NA,pollen,2929,NA,Vascular plants,pollen,Quercus ilex-type,TRSH,1706,24
+NISP,NA,pollen,2930,NA,Vascular plants,pollen,Rhinanthus,UPHE,89,12
+NISP,NA,pollen,2931,NA,Vascular plants,pollen,Rhinanthus-type,UPHE,116,12
+NISP,NA,pollen,2932,NA,Vascular plants,pollen,Spergula,UPHE,3,2
+NISP,NA,pollen,2933,NA,Vascular plants,pollen,Spergula arvensis,UPHE,1,1
+NISP,NA,pollen,2934,NA,Vascular plants,pollen,Spergula-type,UPHE,35,13
+NISP,NA,pollen,2938,NA,Vascular plants,pollen,Vicia,UPHE,28,1
+NISP,NA,pollen,2943,NA,Vascular plants,pollen,Quercus undiff.,TRSH,1301,3
+NISP,NA,pollen,2944,NA,Vascular plants,pollen,Caltha palustris,AQVP,3,1
+NISP,NA,pollen,3052,NA,Vascular plants,pollen,Eryngium,UPHE,62,11
+NISP,NA,pollen,3072,NA,Vascular plants,pollen,Rhamnus-type,TRSH,105,7
+NISP,NA,pollen,3124,NA,Vascular plants,pollen,Ranunculus aquatilis-type,AQVP,306,4
+NISP,NA,pollen,3159,NA,Vascular plants,pollen,cf. Aquilegia,UPHE,8,1
+NISP,NA,pollen,3172,NA,Vascular plants,pollen,Rumex acetosella,UPHE,575,15
+NISP,NA,pollen,3180,NA,Vascular plants,pollen,Erodium,UPHE,1,1
+NISP,NA,pollen,3208,NA,Vascular plants,pollen,Betula nana,TRSH,56,1
+NISP,NA,pollen,3405,NA,Vascular plants,pollen,Rubus fruticosus-type,TRSH,1,1
+NISP,NA,pollen,3407,NA,Vascular plants,pollen,Solidago-type,UPHE,752,1
+NISP,NA,pollen,3408,NA,Vascular plants,pollen,Teucrium,UPHE,32,16
+NISP,NA,pollen,3409,NA,Vascular plants,pollen,Theligonum,UPHE,3,2
+NISP,NA,pollen,3410,NA,Vascular plants,pollen,Ulex,TRSH,1,1
+NISP,NA,pollen,3411,NA,Vascular plants,pollen,Ulex-type,TRSH,20,2
+NISP,NA,pollen,3417,NA,Vascular plants,pollen,Glaucium,UPHE,1,1
+NISP,NA,pollen,3418,NA,Vascular plants,pollen,Plantago media-type,UPHE,16,1
+NISP,NA,pollen,3419,NA,Vascular plants,pollen,Carduus-type,UPHE,7,1
+NISP,NA,pollen,3420,NA,Vascular plants,pollen,Cistus,TRSH,39,6
+NISP,NA,pollen,3421,NA,Vascular plants,pollen,Ephedra distachya,TRSH,560,4
+NISP,NA,pollen,3422,NA,Vascular plants,pollen,Ephedra fragilis,TRSH,92,4
+NISP,NA,pollen,3423,NA,Vascular plants,pollen,Gypsophila-type,UPHE,3,2
+NISP,NA,pollen,3424,NA,Vascular plants,pollen,Paronychia-type,UPHE,109,3
+NISP,NA,pollen,3425,NA,Vascular plants,pollen,Phillyrea,TRSH,896,24
+NISP,NA,pollen,3426,NA,Vascular plants,pollen,Pinus cembra,TRSH,2170,34
+NISP,NA,pollen,3427,NA,Vascular plants,pollen,Pistacia lentiscus,TRSH,1,1
+NISP,NA,pollen,3430,NA,Vascular plants,pollen,Veronica-type,UPHE,104,7
+NISP,NA,pollen,3438,NA,Vascular plants,pollen,Anthemis-type,UPHE,623,7
+NISP,NA,pollen,3439,NA,Vascular plants,pollen,Aster-type,UPHE,908,22
+NISP,NA,pollen,3440,NA,Vascular plants,pollen,Centaurea jacea,UPHE,4,2
+NISP,NA,pollen,3441,NA,Vascular plants,pollen,Centaurea scabiosa,UPHE,75,15
+NISP,NA,pollen,3446,NA,Vascular plants,pollen,Galeopsis,UPHE,4,2
+NISP,NA,pollen,3449,NA,Vascular plants,pollen,Genista-type,TRSH,160,17
+NISP,NA,pollen,3455,NA,Vascular plants,pollen,Sorbus-type,TRSH,417,23
+NISP,NA,pollen,3465,NA,Vascular plants,pollen,Echium vulgare,UPHE,20,4
+NISP,NA,pollen,3472,NA,Vascular plants,pollen,Tilia cordata,TRSH,140,4
+NISP,NA,pollen,3473,NA,Vascular plants,pollen,Tilia platyphyllos,TRSH,41,2
+NISP,NA,pollen,3482,NA,Vascular plants,pollen,Delphinium-type,UPHE,1,1
+NISP,NA,pollen,3500,NA,Vascular plants,pollen,Clematis-type,UPHE,23,1
+NISP,NA,pollen,3517,NA,Vascular plants,pollen,Cyperus,UPHE,26,2
+NISP,NA,pollen,3561,NA,Vascular plants,pollen,Aconitum-type,UPHE,47,8
+NISP,NA,pollen,3564,NA,Vascular plants,pollen,Asphodelus,UPHE,9,3
+NISP,NA,pollen,3566,NA,Vascular plants,pollen,Centaurea cyanus-type,UPHE,47,8
+NISP,NA,pollen,3567,NA,Vascular plants,pollen,Centaurea scabiosa-type,UPHE,55,6
+NISP,NA,pollen,3568,NA,Vascular plants,pollen,Centaurea solstitialis-type,UPHE,341,2
+NISP,NA,pollen,3570,NA,Vascular plants,pollen,Cornus sanguinea,TRSH,23,8
+NISP,NA,pollen,3572,NA,Vascular plants,pollen,Ephedra distachya-type,TRSH,480,31
+NISP,NA,pollen,3578,NA,Vascular plants,pollen,Ephedra fragilis-type,TRSH,1104,38
+NISP,NA,pollen,3579,NA,Vascular plants,pollen,Fraxinus excelsior,TRSH,1403,31
+NISP,NA,pollen,3580,NA,Vascular plants,pollen,Fraxinus ornus,TRSH,1555,35
+NISP,NA,pollen,3581,NA,Vascular plants,pollen,Helleborus,UPHE,54,9
+NISP,NA,pollen,3582,NA,Vascular plants,pollen,Hypericum perforatum-type,UPHE,156,12
+NISP,NA,pollen,3585,NA,Vascular plants,pollen,Matthiola,UPHE,1,1
+NISP,NA,pollen,3588,NA,Vascular plants,pollen,Ostrya/Carpinus orientalis,TRSH,253,4
+NISP,NA,pollen,3590,NA,Vascular plants,pollen,Plantago coronopus-type,UPHE,47,3
+NISP,NA,pollen,3591,NA,Vascular plants,pollen,Plantago maritima-type,UPHE,32,1
+NISP,NA,pollen,3593,NA,Vascular plants,pollen,Quercus robur-type,TRSH,2529,23
+NISP,NA,pollen,3597,NA,Vascular plants,pollen,Sambucus nigra-type,TRSH,378,12
+NISP,NA,pollen,3600,NA,Vascular plants,pollen,Solanum dulcamara,UPHE,188,14
+NISP,NA,pollen,3602,NA,Vascular plants,pollen,Urtica dioica-type,UPHE,141,3
+NISP,NA,pollen,3609,NA,Vascular plants,pollen,Cupressaceae-type,TRSH,788,1
+NISP,NA,pollen,3644,NA,Vascular plants,pollen,Abies alba,TRSH,715,8
+NISP,NA,pollen,3666,NA,Vascular plants,pollen,cf. Veronica,UPHE,2,1
+NISP,NA,pollen,3690,NA,Vascular plants,pollen,Chrysosplenium,UPHE,14,1
+NISP,NA,pollen,3693,NA,Vascular plants,pollen,Larix decidua,TRSH,174,2
+NISP,NA,pollen,3696,NA,Vascular plants,pollen,Lysimachia vulgaris-type,UPHE,11,2
+NISP,NA,pollen,3699,NA,Vascular plants,pollen,Parnassia palustris,UPHE,86,16
+NISP,NA,pollen,3701,NA,Vascular plants,pollen,Pleurospermum,UPHE,4,1
+NISP,NA,pollen,3702,NA,Vascular plants,pollen,Ranunculus arvensis-type,UPHE,17,1
+NISP,NA,pollen,3703,NA,Vascular plants,pollen,Silene-type,UPHE,7,4
+NISP,NA,pollen,3704,NA,Vascular plants,pollen,Trifolium pratense-type,UPHE,147,20
+NISP,NA,pollen,3705,NA,Vascular plants,pollen,Hordeum-type,UPHE,54,3
+NISP,NA,pollen,3727,NA,Vascular plants,pollen,Acer campestre-type,TRSH,106,2
+NISP,NA,pollen,3737,NA,Vascular plants,pollen,Achillea,UPHE,113,2
+NISP,NA,pollen,3751,NA,Vascular plants,pollen,Agrimonia-type,UPHE,1,1
+NISP,NA,pollen,3753,NA,Vascular plants,pollen,Agropyron-type,UPHE,7,1
+NISP,NA,pollen,3757,NA,Vascular plants,pollen,Alchemilla-type,UPHE,52,12
+NISP,NA,pollen,3758,NA,Vascular plants,pollen,cf. Alchemilla,UPHE,8,1
+NISP,NA,pollen,3762,NA,Vascular plants,pollen,Alisma-type,AQVP,25,4
+NISP,NA,pollen,3767,NA,Vascular plants,pollen,Allium vineale-type,UPHE,8,2
+NISP,NA,pollen,3770,NA,Vascular plants,pollen,Alnus glutinosa-type,TRSH,1847,22
+NISP,NA,pollen,3771,NA,Vascular plants,pollen,Alnus glutinosa/A. incana,TRSH,687,7
+NISP,NA,pollen,3773,NA,Vascular plants,pollen,Anagallis arvensis-type,UPHE,14,3
+NISP,NA,pollen,3775,NA,Vascular plants,pollen,Anagallis tenella,UPHE,1,1
+NISP,NA,pollen,3777,NA,Vascular plants,pollen,Anagallis arvensis,UPHE,2,1
+NISP,NA,pollen,3785,NA,Vascular plants,pollen,Anthericum,UPHE,11,5
+NISP,NA,pollen,3786,NA,Vascular plants,pollen,Fritillaria-type,UPHE,9,5
+NISP,NA,pollen,3787,NA,Vascular plants,pollen,Anthericum-type,UPHE,32,3
+NISP,NA,pollen,3792,NA,Vascular plants,pollen,Pulmonaria-type,UPHE,10,5
+NISP,NA,pollen,3793,NA,Vascular plants,pollen,Pulmonaria obscura-type,UPHE,3,1
+NISP,NA,pollen,3802,NA,Vascular plants,pollen,Anthriscus sylvestris-type,UPHE,178,10
+NISP,NA,pollen,3804,NA,Vascular plants,pollen,Anthriscus sylvestris,UPHE,38,1
+NISP,NA,pollen,3805,NA,Vascular plants,pollen,Anthyllis,UPHE,12,2
+NISP,NA,pollen,3814,NA,Vascular plants,pollen,Silene dioica-type,UPHE,124,13
+NISP,NA,pollen,3815,NA,Vascular plants,pollen,Silene vulgaris-type,UPHE,224,11
+NISP,NA,pollen,3832,NA,Vascular plants,pollen,Apium-type,UPHE,178,2
+NISP,NA,pollen,3833,NA,Vascular plants,pollen,Apium inundatum-type,UPHE,2,1
+NISP,NA,pollen,3834,NA,Vascular plants,pollen,Arbutus,TRSH,88,5
+NISP,NA,pollen,3835,NA,Vascular plants,pollen,Arbutus unedo,TRSH,61,4
+NISP,NA,pollen,3837,NA,Vascular plants,pollen,Arctium,UPHE,1,1
+NISP,NA,pollen,3854,NA,Vascular plants,pollen,Armeria-type,UPHE,1,1
+NISP,NA,pollen,3855,NA,Vascular plants,pollen,Armeria maritima (type B),UPHE,1,1
+NISP,NA,pollen,3856,NA,Vascular plants,pollen,Armeria/Limonium,UPHE,3,2
+NISP,NA,pollen,3862,NA,Vascular plants,pollen,cf. Armeria (type A),UPHE,2,1
+NISP,NA,pollen,3879,NA,Vascular plants,pollen,Aruncus dioicus,UPHE,2,1
+NISP,NA,pollen,3882,NA,Vascular plants,pollen,Asparagus,UPHE,1,1
+NISP,NA,pollen,3885,NA,Vascular plants,pollen,Asphodelus/Asphodeline,UPHE,11,2
+NISP,NA,pollen,3886,NA,Vascular plants,pollen,Asphodelus-type,UPHE,44,1
+NISP,NA,pollen,3887,NA,Vascular plants,pollen,Asphodelus albus-type,UPHE,5,2
+NISP,NA,pollen,3897,NA,Vascular plants,pollen,Astragalus danicus-type,UPHE,3,1
+NISP,NA,pollen,3901,NA,Vascular plants,pollen,Vicia cracca-type,UPHE,5,2
+NISP,NA,pollen,3909,NA,Vascular plants,pollen,Lathyrus,UPHE,2,1
+NISP,NA,pollen,3926,NA,Vascular plants,pollen,Secale cereale,UPHE,25,4
+NISP,NA,pollen,3928,NA,Vascular plants,pollen,cf. Baldellia,AQVP,2,1
+NISP,NA,pollen,3930,NA,Vascular plants,pollen,Bartsia-type,UPHE,136,14
+NISP,NA,pollen,3932,NA,Vascular plants,pollen,Bellis-type,UPHE,4,1
+NISP,NA,pollen,3934,NA,Vascular plants,pollen,Berberis vulgaris,TRSH,1,1
+NISP,NA,pollen,3950,NA,Vascular plants,pollen,Fallopia convolvulus-type,UPHE,3,3
+NISP,NA,pollen,3962,NA,Vascular plants,pollen,Buglossoides arvensis,UPHE,4,2
+NISP,NA,pollen,3963,NA,Vascular plants,pollen,Buglossoides arvensis-type,UPHE,1,1
+NISP,NA,pollen,3967,NA,Vascular plants,pollen,Bupleurum falcatum-type,UPHE,29,2
+NISP,NA,pollen,3970,NA,Vascular plants,pollen,Butomus,AQVP,1,1
+NISP,NA,pollen,3971,NA,Vascular plants,pollen,Buxus sempervirens,TRSH,81,12
+NISP,NA,pollen,3973,NA,Vascular plants,pollen,Calluna vulgaris-type,TRSH,30,1
+NISP,NA,pollen,3974,NA,Vascular plants,pollen,Caltha palustris-type,AQVP,10,2
+NISP,NA,pollen,3988,NA,Vascular plants,pollen,Scilla-type,UPHE,115,6
+NISP,NA,pollen,3994,NA,Vascular plants,pollen,Ostrya carpinifolia/Carpinus orientalis,TRSH,160,2
+NISP,NA,pollen,4000,NA,Vascular plants,pollen,Celtis australis,TRSH,9,5
+NISP,NA,pollen,4001,NA,Vascular plants,pollen,Centaurea jacea-type,UPHE,94,7
+NISP,NA,pollen,4002,NA,Vascular plants,pollen,Centaurea montana,UPHE,38,7
+NISP,NA,pollen,4003,NA,Vascular plants,pollen,Centaurea montana-type,UPHE,10,3
+NISP,NA,pollen,4004,NA,Vascular plants,pollen,Centaurea nigra,UPHE,38,1
+NISP,NA,pollen,4005,NA,Vascular plants,pollen,Centaurea nigra-type,UPHE,423,28
+NISP,NA,pollen,4011,NA,Vascular plants,pollen,Centaurea solstitialis,UPHE,1,1
+NISP,NA,pollen,4023,NA,Vascular plants,pollen,Centaurea collina-type,UPHE,26,2
+NISP,NA,pollen,4024,NA,Vascular plants,pollen,Centaurium-type,UPHE,14,2
+NISP,NA,pollen,4026,NA,Vascular plants,pollen,cf. Centaurium,UPHE,3,1
+NISP,NA,pollen,4034,NA,Vascular plants,pollen,Cerastium fontanum-type,UPHE,27,3
+NISP,NA,pollen,4047,NA,Vascular plants,pollen,Dryas octopetala,UPHE,36,5
+NISP,NA,pollen,4053,NA,Vascular plants,pollen,Rumex acetosa,UPHE,13,2
+NISP,NA,pollen,4058,NA,Vascular plants,pollen,Rumex crispus,UPHE,6,4
+NISP,NA,pollen,4059,NA,Vascular plants,pollen,Rumex obtusifolius,UPHE,36,1
+NISP,NA,pollen,4072,NA,Vascular plants,pollen,Rumex conglomeratus-type,UPHE,6,3
+NISP,NA,pollen,4073,NA,Vascular plants,pollen,Rumex acetosa/R. acetosella-type,UPHE,462,3
+NISP,NA,pollen,4079,NA,Vascular plants,pollen,Papaver rhoeas-type,UPHE,73,8
+NISP,NA,pollen,4085,NA,Vascular plants,pollen,Pedicularis palustris-type,UPHE,17,9
+NISP,NA,pollen,4098,NA,Vascular plants,pollen,Saussurea-type,UPHE,5,3
+NISP,NA,pollen,4099,NA,Vascular plants,pollen,cf. Sedum,UPHE,1,1
+NISP,NA,pollen,4102,NA,Vascular plants,pollen,Sedum-type,UPHE,168,10
+NISP,NA,pollen,4108,NA,Vascular plants,pollen,Sorbus aria,TRSH,2,1
+NISP,NA,pollen,4114,NA,Vascular plants,pollen,Digitalis-type,UPHE,52,4
+NISP,NA,pollen,4115,NA,Vascular plants,pollen,Digitalis,UPHE,1,1
+NISP,NA,pollen,4117,NA,Vascular plants,pollen,Digitalis purpurea-type,UPHE,1,1
+NISP,NA,pollen,4123,NA,Vascular plants,pollen,Scrophularia-type,UPHE,72,9
+NISP,NA,pollen,4125,NA,Vascular plants,pollen,Scrophularia,UPHE,1,1
+NISP,NA,pollen,4130,NA,Vascular plants,pollen,Chrysosplenium-type,UPHE,6,1
+NISP,NA,pollen,4133,NA,Vascular plants,pollen,Cicuta virosa,UPHE,1,1
+NISP,NA,pollen,4139,NA,Vascular plants,pollen,Cistaceae undiff.,UPHE,2,1
+NISP,NA,pollen,4144,NA,Vascular plants,pollen,Cistus salviifolius,UPHE,28,3
+NISP,NA,pollen,4145,NA,Vascular plants,pollen,Cistus monspeliensis,UPHE,14,1
+NISP,NA,pollen,4148,NA,Vascular plants,pollen,Cistus ladanifer-type,UPHE,1,1
+NISP,NA,pollen,4152,NA,Vascular plants,pollen,Helianthemum-type,UPHE,104,1
+NISP,NA,pollen,4153,NA,Vascular plants,pollen,Helianthemum nummularium-type,UPHE,6,2
+NISP,NA,pollen,4160,NA,Vascular plants,pollen,Helianthemum undiff.,UPHE,39,1
+NISP,NA,pollen,4162,NA,Vascular plants,pollen,Cladium mariscus,AQVP,342,11
+NISP,NA,pollen,4165,NA,Vascular plants,pollen,Colchicum,UPHE,1,1
+NISP,NA,pollen,4166,NA,Vascular plants,pollen,Colchicum-type,UPHE,17,3
+NISP,NA,pollen,4173,NA,Vascular plants,pollen,Convallaria-type,UPHE,2,1
+NISP,NA,pollen,4174,NA,Vascular plants,pollen,Cornus sanguinea-type,TRSH,23,3
+NISP,NA,pollen,4175,NA,Vascular plants,pollen,Cornus suecica,TRSH,3,1
+NISP,NA,pollen,4178,NA,Vascular plants,pollen,Cornus mas,TRSH,61,12
+NISP,NA,pollen,4180,NA,Vascular plants,pollen,Cornus mas-type,TRSH,17,4
+NISP,NA,pollen,4185,NA,Vascular plants,pollen,Coronilla,UPHE,1,1
+NISP,NA,pollen,4188,NA,Vascular plants,pollen,Corydalis solida-type,UPHE,1,1
+NISP,NA,pollen,4189,NA,Vascular plants,pollen,Pseudofumaria lutea-type,UPHE,8,1
+NISP,NA,pollen,4200,NA,Vascular plants,pollen,Cuscuta europaea-type,UPHE,14,3
+NISP,NA,pollen,4201,NA,Vascular plants,pollen,Cynoglossum,UPHE,4,2
+NISP,NA,pollen,4204,NA,Vascular plants,pollen,Cytisus scoparius,TRSH,43,7
+NISP,NA,pollen,4210,NA,Vascular plants,pollen,Cytisus-type,TRSH,17,4
+NISP,NA,pollen,4215,NA,Vascular plants,pollen,Thymelaeaceae cf. Daphne,TRSH,5,1
+NISP,NA,pollen,4216,NA,Vascular plants,pollen,Thymelaea,TRSH,2,1
+NISP,NA,pollen,4222,NA,Vascular plants,pollen,Daucus carota,UPHE,124,11
+NISP,NA,pollen,4223,NA,Vascular plants,pollen,Daucus,UPHE,30,2
+NISP,NA,pollen,4227,NA,Vascular plants,pollen,Dianthus superbus-type,UPHE,17,8
+NISP,NA,pollen,4231,NA,Vascular plants,pollen,Draba-type,UPHE,9,2
+NISP,NA,pollen,4238,NA,Vascular plants,pollen,Echium-type,UPHE,21,2
+NISP,NA,pollen,4250,NA,Vascular plants,pollen,Erica arborea,TRSH,113,1
+NISP,NA,pollen,4255,NA,Vascular plants,pollen,Erica arborea-type,TRSH,290,4
+NISP,NA,pollen,4264,NA,Vascular plants,pollen,Erica terminalis,TRSH,1,1
+NISP,NA,pollen,4276,NA,Vascular plants,pollen,Ephedra major,TRSH,1,1
+NISP,NA,pollen,4282,NA,Vascular plants,pollen,Euonymus europaeus,TRSH,7,4
+NISP,NA,pollen,4285,NA,Vascular plants,pollen,cf. Euphorbia,UPHE,149,1
+NISP,NA,pollen,4286,NA,Vascular plants,pollen,Euphrasia-type,UPHE,43,3
+NISP,NA,pollen,4289,NA,Vascular plants,pollen,Ficus carica,TRSH,4,1
+NISP,NA,pollen,4301,NA,Vascular plants,pollen,Fraxinus excelsior-type,TRSH,2135,18
+NISP,NA,pollen,4316,NA,Vascular plants,pollen,Genista,TRSH,1,1
+NISP,NA,pollen,4329,NA,Vascular plants,pollen,Gentiana lutea,UPHE,1,1
+NISP,NA,pollen,4336,NA,Vascular plants,pollen,Gentianella campestris-type,UPHE,42,11
+NISP,NA,pollen,4340,NA,Vascular plants,pollen,Gentianella tenella-type,UPHE,1,1
+NISP,NA,pollen,4341,NA,Vascular plants,pollen,Geranium-type,UPHE,1,1
+NISP,NA,pollen,4347,NA,Vascular plants,pollen,Rosaceae cf. Geum,UPHE,1,1
+NISP,NA,pollen,4357,NA,Vascular plants,pollen,Gnaphalium,UPHE,3,2
+NISP,NA,pollen,4358,NA,Vascular plants,pollen,Gnaphalium-type,UPHE,81,15
+NISP,NA,pollen,4359,NA,Vascular plants,pollen,Gypsophila,UPHE,4,1
+NISP,NA,pollen,4361,NA,Vascular plants,pollen,Gypsophila repens-type,UPHE,29,8
+NISP,NA,pollen,4367,NA,Vascular plants,pollen,Hedera helix,TRSH,628,25
+NISP,NA,pollen,4373,NA,Vascular plants,pollen,Heracleum-type,UPHE,9,3
+NISP,NA,pollen,4374,NA,Vascular plants,pollen,Heracleum sphondylium,UPHE,6,1
+NISP,NA,pollen,4377,NA,Vascular plants,pollen,Herniaria,UPHE,1,1
+NISP,NA,pollen,4378,NA,Vascular plants,pollen,Herniaria-type,UPHE,18,9
+NISP,NA,pollen,4385,NA,Vascular plants,pollen,Hornungia-type,UPHE,80,4
+NISP,NA,pollen,4394,NA,Vascular plants,pollen,Hydrocharis,AQVP,5,2
+NISP,NA,pollen,4406,NA,Vascular plants,pollen,Ilex aquifolium,TRSH,17,10
+NISP,NA,pollen,4407,NA,Vascular plants,pollen,Ilex aquifolium-type,TRSH,2,1
+NISP,NA,pollen,4409,NA,Vascular plants,pollen,Iris pseudacorus-type,UPHE,30,5
+NISP,NA,pollen,4413,NA,Vascular plants,pollen,Jasione montana-type,UPHE,3,1
+NISP,NA,pollen,4414,NA,Vascular plants,pollen,Jasione-type,UPHE,91,8
+NISP,NA,pollen,4416,NA,Vascular plants,pollen,Juniperus communis,TRSH,40,1
+NISP,NA,pollen,4419,NA,Vascular plants,pollen,Knautia-type,UPHE,1,1
+NISP,NA,pollen,4428,NA,Vascular plants,pollen,Stachys sylvatica-type,UPHE,108,6
+NISP,NA,pollen,4430,NA,Vascular plants,pollen,Larix-type,TRSH,1,1
+NISP,NA,pollen,4434,NA,Vascular plants,pollen,Ligustrum vulgare,TRSH,2,1
+NISP,NA,pollen,4442,NA,Vascular plants,pollen,Lilium martagon-type,UPHE,12,3
+NISP,NA,pollen,4443,NA,Vascular plants,pollen,Lilium martagon,UPHE,2,1
+NISP,NA,pollen,4445,NA,Vascular plants,pollen,Linaria-type,UPHE,58,6
+NISP,NA,pollen,4447,NA,Vascular plants,pollen,Linum bienne-type,UPHE,2,1
+NISP,NA,pollen,4449,NA,Vascular plants,pollen,Linum catharticum-type,UPHE,51,6
+NISP,NA,pollen,4451,NA,Vascular plants,pollen,Linum usitatissimum-type,UPHE,12,4
+NISP,NA,pollen,4457,NA,Vascular plants,pollen,Linum austriacum-type,UPHE,46,4
+NISP,NA,pollen,4461,NA,Vascular plants,pollen,Lithospermum,UPHE,6,1
+NISP,NA,pollen,4462,NA,Vascular plants,pollen,Lithospermum officinale,UPHE,4,2
+NISP,NA,pollen,4465,NA,Vascular plants,pollen,Lonicera xylosteum-type,TRSH,17,4
+NISP,NA,pollen,4469,NA,Vascular plants,pollen,Lonicera xylosteum,TRSH,23,2
+NISP,NA,pollen,4471,NA,Vascular plants,pollen,cf. Lonicera,TRSH,3,1
+NISP,NA,pollen,4474,NA,Vascular plants,pollen,Loranthus europaeus,TRSH,2,2
+NISP,NA,pollen,4482,NA,Vascular plants,pollen,Luzula,UPHE,84,5
+NISP,NA,pollen,4485,NA,Vascular plants,pollen,Lycopus europaeus,UPHE,8,1
+NISP,NA,pollen,4488,NA,Vascular plants,pollen,Lysimachia nemorum,UPHE,1,1
+NISP,NA,pollen,4496,NA,Vascular plants,pollen,Lythrum salicaria-type,UPHE,59,4
+NISP,NA,pollen,4502,NA,Vascular plants,pollen,Maianthemum bifolium,UPHE,1,1
+NISP,NA,pollen,4512,NA,Vascular plants,pollen,Prunus padus,TRSH,1,1
+NISP,NA,pollen,4517,NA,Vascular plants,pollen,Prunus spinosa,TRSH,5,1
+NISP,NA,pollen,4521,NA,Vascular plants,pollen,Marrubium,UPHE,3,1
+NISP,NA,pollen,4530,NA,Vascular plants,pollen,Menyanthes trifoliata-type,AQVP,7,1
+NISP,NA,pollen,4531,NA,Vascular plants,pollen,Mercurialis annua,UPHE,133,14
+NISP,NA,pollen,4533,NA,Vascular plants,pollen,Mercurialis perennis,UPHE,40,2
+NISP,NA,pollen,4535,NA,Vascular plants,pollen,cf. Mercurialis,UPHE,14,1
+NISP,NA,pollen,4536,NA,Vascular plants,pollen,Mercurialis perennis-type,UPHE,13,6
+NISP,NA,pollen,4537,NA,Vascular plants,pollen,Mercurialis-type,UPHE,11,1
+NISP,NA,pollen,4546,NA,Vascular plants,pollen,Muscari,UPHE,2,1
+NISP,NA,pollen,4548,NA,Vascular plants,pollen,Myosotis arvensis-type,UPHE,7,2
+NISP,NA,pollen,4550,NA,Vascular plants,pollen,Myricaria germanica,TRSH,7,2
+NISP,NA,pollen,4553,NA,Vascular plants,pollen,Myriophyllum cf. M. spicatum,AQVP,2,1
+NISP,NA,pollen,4554,NA,Vascular plants,pollen,Myriophyllum cf. M. verticillatum,AQVP,2,1
+NISP,NA,pollen,4556,NA,Vascular plants,pollen,Myrtus,TRSH,29,4
+NISP,NA,pollen,4557,NA,Vascular plants,pollen,Myrtus communis,TRSH,16,3
+NISP,NA,pollen,4558,NA,Vascular plants,pollen,Narcissus,UPHE,2,1
+NISP,NA,pollen,4566,NA,Vascular plants,pollen,Nonea,UPHE,1,1
+NISP,NA,pollen,4573,NA,Vascular plants,pollen,Nymphaea alba-type,AQVP,39,4
+NISP,NA,pollen,4576,NA,Vascular plants,pollen,Nymphoides peltata,AQVP,2,2
+NISP,NA,pollen,4578,NA,Vascular plants,pollen,Odontites,UPHE,212,8
+NISP,NA,pollen,4579,NA,Vascular plants,pollen,cf. Odontites,UPHE,29,2
+NISP,NA,pollen,4580,NA,Vascular plants,pollen,Odontites-type,UPHE,326,16
+NISP,NA,pollen,4582,NA,Vascular plants,pollen,Olea europaea,TRSH,69,2
+NISP,NA,pollen,4585,NA,Vascular plants,pollen,Onobrychis,UPHE,29,12
+NISP,NA,pollen,4586,NA,Vascular plants,pollen,Onobrychis-type,UPHE,68,7
+NISP,NA,pollen,4588,NA,Vascular plants,pollen,Ononis,UPHE,1,1
+NISP,NA,pollen,4591,NA,Vascular plants,pollen,Ornithogalum-type,UPHE,38,4
+NISP,NA,pollen,4592,NA,Vascular plants,pollen,Ornithogalum,UPHE,1,1
+NISP,NA,pollen,4597,NA,Vascular plants,pollen,Pentaglottis sempervirens,UPHE,3,2
+NISP,NA,pollen,4599,NA,Vascular plants,pollen,Phragmites,AQVP,44,2
+NISP,NA,pollen,4607,NA,Vascular plants,pollen,Pimpinella-type,UPHE,4,1
+NISP,NA,pollen,4608,NA,Vascular plants,pollen,Pimpinella major-type,UPHE,130,12
+NISP,NA,pollen,4620,NA,Vascular plants,pollen,Pinus sylvestris-type,TRSH,1607,13
+NISP,NA,pollen,4626,NA,Vascular plants,pollen,Pinus cembra-type,TRSH,651,7
+NISP,NA,pollen,4630,NA,Vascular plants,pollen,Pinus halepensis-type,TRSH,101,2
+NISP,NA,pollen,4634,NA,Vascular plants,pollen,Plantago atrata,UPHE,132,6
+NISP,NA,pollen,4635,NA,Vascular plants,pollen,Plantago coronopus,UPHE,72,5
+NISP,NA,pollen,4637,NA,Vascular plants,pollen,Plantago tenuiflora,UPHE,1,1
+NISP,NA,pollen,4638,NA,Vascular plants,pollen,Plantago cf. P. media,UPHE,1,1
+NISP,NA,pollen,4639,NA,Vascular plants,pollen,Plantago alpina-type,UPHE,984,30
+NISP,NA,pollen,4642,NA,Vascular plants,pollen,Plantago atrata-type,UPHE,63,7
+NISP,NA,pollen,4646,NA,Vascular plants,pollen,Plantago tenuiflora-type,UPHE,1,1
+NISP,NA,pollen,4647,NA,Vascular plants,pollen,Plantago alpina,UPHE,199,7
+NISP,NA,pollen,4662,NA,Vascular plants,pollen,cf. Platanus,TRSH,5,1
+NISP,NA,pollen,4663,NA,Vascular plants,pollen,Pleurospermum austriacum,UPHE,6,3
+NISP,NA,pollen,4664,NA,Vascular plants,pollen,Pleurospermum austriacum-type,UPHE,1,1
+NISP,NA,pollen,4665,NA,Vascular plants,pollen,Pleurospermum-type,UPHE,7,3
+NISP,NA,pollen,4666,NA,Vascular plants,pollen,Polemonium caeruleum,UPHE,1,1
+NISP,NA,pollen,4673,NA,Vascular plants,pollen,Polygala vulgaris-type,UPHE,1,1
+NISP,NA,pollen,4686,NA,Vascular plants,pollen,cf. Persicaria amphibia,UPHE,1,1
+NISP,NA,pollen,4694,NA,Vascular plants,pollen,Stuckenia-type,AQVP,17,3
+NISP,NA,pollen,4703,NA,Vascular plants,pollen,Primula farinosa,UPHE,2,1
+NISP,NA,pollen,4704,NA,Vascular plants,pollen,Primula farinosa-type,UPHE,16,2
+NISP,NA,pollen,4708,NA,Vascular plants,pollen,Primula veris-type,UPHE,31,4
+NISP,NA,pollen,4712,NA,Vascular plants,pollen,Pterocarya fraxinifolia,TRSH,1,1
+NISP,NA,pollen,4713,NA,Vascular plants,pollen,Quercus cerris-type,TRSH,396,4
+NISP,NA,pollen,4714,NA,Vascular plants,pollen,Quercus pubescens-type,TRSH,227,2
+NISP,NA,pollen,4715,NA,Vascular plants,pollen,cf. Quercus,TRSH,15,1
+NISP,NA,pollen,4717,NA,Vascular plants,pollen,Quercus ilex,TRSH,594,10
+NISP,NA,pollen,4718,NA,Vascular plants,pollen,Quercus suber,TRSH,1,1
+NISP,NA,pollen,4720,NA,Vascular plants,pollen,Quercus cerris,TRSH,19,1
+NISP,NA,pollen,4728,NA,Vascular plants,pollen,Radiola linoides,UPHE,2,1
+NISP,NA,pollen,4734,NA,Vascular plants,pollen,Ranunculus sceleratus-type,UPHE,32,4
+NISP,NA,pollen,4736,NA,Vascular plants,pollen,Ranunculus arvensis,UPHE,3,2
+NISP,NA,pollen,4740,NA,Vascular plants,pollen,Ranunculus aquatilis,AQVP,4,1
+NISP,NA,pollen,4747,NA,Vascular plants,pollen,Reseda,UPHE,5,3
+NISP,NA,pollen,4759,NA,Vascular plants,pollen,Rosa-type,UPHE,1,1
+NISP,NA,pollen,4764,NA,Vascular plants,pollen,Rosaceae (trees),TRSH,59,4
+NISP,NA,pollen,4770,NA,Vascular plants,pollen,Sagina,UPHE,100,11
+NISP,NA,pollen,4782,NA,Vascular plants,pollen,Sambucus ebulus,TRSH,15,5
+NISP,NA,pollen,4783,NA,Vascular plants,pollen,Sambucus nigra,TRSH,170,18
+NISP,NA,pollen,4784,NA,Vascular plants,pollen,Sambucus racemosa,TRSH,152,15
+NISP,NA,pollen,4788,NA,Vascular plants,pollen,Sambucus racemosa-type,TRSH,79,1
+NISP,NA,pollen,4796,NA,Vascular plants,pollen,Sanguisorba minor-type,UPHE,170,19
+NISP,NA,pollen,4803,NA,Vascular plants,pollen,Saxifraga granulata-type,UPHE,104,18
+NISP,NA,pollen,4809,NA,Vascular plants,pollen,Micranthes stellaris,UPHE,1,1
+NISP,NA,pollen,4814,NA,Vascular plants,pollen,Saxifraga granulata,UPHE,1,1
+NISP,NA,pollen,4818,NA,Vascular plants,pollen,Saxifraga aizoides-type,UPHE,21,2
+NISP,NA,pollen,4827,NA,Vascular plants,pollen,Scabiosa columbaria-type,UPHE,7,4
+NISP,NA,pollen,4845,NA,Vascular plants,pollen,Scleranthus annuus,UPHE,3,2
+NISP,NA,pollen,4851,NA,Vascular plants,pollen,Sempervivum,UPHE,18,6
+NISP,NA,pollen,4853,NA,Vascular plants,pollen,Serratula-type,UPHE,63,7
+NISP,NA,pollen,4856,NA,Vascular plants,pollen,Sinapis-type,UPHE,289,7
+NISP,NA,pollen,4862,NA,Vascular plants,pollen,Solanum nigrum,UPHE,17,2
+NISP,NA,pollen,4863,NA,Vascular plants,pollen,Solanum nigrum-type,UPHE,44,11
+NISP,NA,pollen,4865,NA,Vascular plants,pollen,Stratiotes aloides,AQVP,1,1
+NISP,NA,pollen,4870,NA,Vascular plants,pollen,Taxus baccata,TRSH,201,13
+NISP,NA,pollen,4877,NA,Vascular plants,pollen,Thesium,UPHE,4,1
+NISP,NA,pollen,4883,NA,Vascular plants,pollen,Tilia cordata-type,TRSH,10,1
+NISP,NA,pollen,4887,NA,Vascular plants,pollen,Solidago,UPHE,24,8
+NISP,NA,pollen,4888,NA,Vascular plants,pollen,Sparganium erectum-type,AQVP,86,2
+NISP,NA,pollen,4890,NA,Vascular plants,pollen,Sparganium emersum-type,AQVP,113,2
+NISP,NA,pollen,4906,NA,Vascular plants,pollen,Trapa natans,AQVP,31,2
+NISP,NA,pollen,4922,NA,Vascular plants,pollen,Trollius,UPHE,34,8
+NISP,NA,pollen,4923,NA,Vascular plants,pollen,Trollius europaeus,UPHE,84,7
+NISP,NA,pollen,4940,NA,Vascular plants,pollen,Urtica dioica,UPHE,91,1
+NISP,NA,pollen,4942,NA,Vascular plants,pollen,Urtica pilulifera-type,UPHE,13,3
+NISP,NA,pollen,4956,NA,Vascular plants,pollen,Valeriana officinalis-type,UPHE,42,10
+NISP,NA,pollen,4961,NA,Vascular plants,pollen,Valeriana dioica-type,UPHE,19,9
+NISP,NA,pollen,4962,NA,Vascular plants,pollen,Valeriana tripteris-type,UPHE,8,3
+NISP,NA,pollen,4964,NA,Vascular plants,pollen,Verbascum,UPHE,5,2
+NISP,NA,pollen,4966,NA,Vascular plants,pollen,Verbena officinalis,UPHE,2,2
+NISP,NA,pollen,4968,NA,Vascular plants,pollen,Viburnum lantana,TRSH,147,6
+NISP,NA,pollen,4969,NA,Vascular plants,pollen,Viburnum lantana-type,TRSH,6,1
+NISP,NA,pollen,4970,NA,Vascular plants,pollen,Viburnum tinus,TRSH,4,1
+NISP,NA,pollen,4972,NA,Vascular plants,pollen,Viola arvensis-type,UPHE,3,2
+NISP,NA,pollen,4973,NA,Vascular plants,pollen,Viola palustris-type,AQVP,3,1
+NISP,NA,pollen,4977,NA,Vascular plants,pollen,Viscum album,TRSH,2,1
+NISP,NA,pollen,4978,NA,Vascular plants,pollen,cf. Viscum,TRSH,1,1
+NISP,NA,pollen,5070,NA,Vascular plants,pollen,Chenopodium,UPHE,35,3
+NISP,NA,pollen,5090,NA,Vascular plants,pollen,Glyceria-type,UPHE,22,1
+NISP,NA,pollen,5097,NA,Vascular plants,pollen,Atriplex,UPHE,1,1
+NISP,NA,pollen,5099,NA,Vascular plants,pollen,Atriplex-type,UPHE,35,1
+NISP,NA,pollen,5145,NA,Vascular plants,pollen,Anemone nemorosa,UPHE,77,2
+NISP,NA,pollen,5146,NA,Vascular plants,pollen,Anemone nemorosa-type,UPHE,239,18
+NISP,NA,pollen,5151,NA,Vascular plants,pollen,Veratrum,UPHE,23,6
+NISP,NA,pollen,5152,NA,Vascular plants,pollen,Veratrum album,UPHE,5,2
+NISP,NA,pollen,5158,NA,Vascular plants,pollen,Tuberaria,UPHE,2,2
+NISP,NA,pollen,5170,NA,Vascular plants,pollen,Amaranthaceae-type,UPHE,1105,24
+NISP,NA,pollen,5181,NA,Vascular plants,pollen,Calligonum,TRSH,18,8
+NISP,NA,pollen,5186,NA,Vascular plants,pollen,Coriaria myrtifolia,TRSH,1,1
+NISP,NA,pollen,5192,NA,Vascular plants,pollen,Oenanthe,AQVP,13,3
+NISP,NA,pollen,5201,NA,Vascular plants,pollen,Carthamus,UPHE,3,2
+NISP,NA,pollen,5211,NA,Vascular plants,pollen,Ruta,UPHE,1,1
+NISP,NA,pollen,5214,NA,Vascular plants,pollen,Tribulus terrestris,UPHE,2,2
+NISP,NA,pollen,5220,NA,Vascular plants,pollen,Arceuthobium oxycedri,TRSH,13,2
+NISP,NA,pollen,5223,NA,Vascular plants,pollen,Chelidonium,UPHE,2,2
+NISP,NA,pollen,5229,NA,Vascular plants,pollen,Theligonum cynocrambe,UPHE,1,1
+NISP,NA,pollen,5232,NA,Vascular plants,pollen,Peucedanum palustre-type,UPHE,1,1
+NISP,NA,pollen,5233,NA,Vascular plants,pollen,Peucedanum-type,UPHE,358,17
+NISP,NA,pollen,5234,NA,Vascular plants,pollen,Peucedanum,UPHE,61,1
+NISP,NA,pollen,5238,NA,Vascular plants,pollen,Xeranthemum,UPHE,16,3
+NISP,NA,pollen,5254,NA,Vascular plants,pollen,Sideritis,UPHE,2,1
+NISP,NA,pollen,5256,NA,Vascular plants,pollen,Cyclamen,UPHE,52,3
+NISP,NA,pollen,5258,NA,Vascular plants,pollen,Asphodeline,UPHE,3,1
+NISP,NA,pollen,5263,NA,Vascular plants,pollen,cf. Orobanche,UPHE,3,1
+NISP,NA,pollen,5274,NA,Vascular plants,pollen,Inula,UPHE,1,1
+NISP,NA,pollen,5298,NA,Vascular plants,pollen,Cerinthe-type,UPHE,3,1
+NISP,NA,pollen,5299,NA,Vascular plants,pollen,Cerinthe,UPHE,25,6
+NISP,NA,pollen,5305,NA,Vascular plants,pollen,Laurus,TRSH,1,1
+NISP,NA,pollen,5310,NA,Vascular plants,pollen,Androsace-type,UPHE,20,1
+NISP,NA,pollen,5311,NA,Vascular plants,pollen,Consolida,UPHE,1,1
+NISP,NA,pollen,5312,NA,Vascular plants,pollen,Consolida ambigua-type,UPHE,10,3
+NISP,NA,pollen,5316,NA,Vascular plants,pollen,Phyteuma-type,UPHE,19,2
+NISP,NA,pollen,5320,NA,Vascular plants,pollen,Beta-type,UPHE,54,1
+NISP,NA,pollen,5323,NA,Vascular plants,pollen,Ceratonia siliqua,TRSH,1,1
+NISP,NA,pollen,5341,NA,Vascular plants,pollen,Centranthus,UPHE,1,1
+NISP,NA,pollen,5342,NA,Vascular plants,pollen,Astrantia-type,UPHE,26,6
+NISP,NA,pollen,5343,NA,Vascular plants,pollen,Astrantia,UPHE,2,1
+NISP,NA,pollen,5353,NA,Vascular plants,pollen,Swertia perennis,UPHE,11,3
+NISP,NA,pollen,5357,NA,Vascular plants,pollen,Agrostemma githago,UPHE,2,1
+NISP,NA,pollen,5358,NA,Vascular plants,pollen,Epipactis palustris,UPHE,1,1
+NISP,NA,pollen,5360,NA,Vascular plants,pollen,Petasites,UPHE,18,4
+NISP,NA,pollen,5375,NA,Vascular plants,pollen,Chaerophyllum,UPHE,257,4
+NISP,NA,pollen,5385,NA,Vascular plants,pollen,Erigeron,UPHE,8,2
+NISP,NA,pollen,5400,NA,Vascular plants,pollen,Carum verticillatum,UPHE,1,1
+NISP,NA,pollen,5431,NA,Vascular plants,pollen,Amaranthus-type,UPHE,1,1
+NISP,NA,pollen,5434,NA,Vascular plants,pollen,Dorycnium,UPHE,5,3
+NISP,NA,pollen,5449,NA,Vascular plants,pollen,Bellis,UPHE,28,6
+NISP,NA,pollen,5461,NA,Vascular plants,pollen,Fumana-type,TRSH,1,1
+NISP,NA,pollen,5465,NA,Vascular plants,pollen,Lamiaceae (tricolpate),UPHE,1,1
+NISP,NA,pollen,5483,NA,Vascular plants,pollen,cf. Myrtus,TRSH,1,1
+NISP,NA,pollen,5489,NA,Vascular plants,pollen,Fumana,TRSH,6,2
+NISP,NA,pollen,5495,NA,Vascular plants,pollen,Conium maculatum,UPHE,1,1
+NISP,NA,pollen,5498,NA,Vascular plants,pollen,Meum-type,UPHE,20,2
+NISP,NA,pollen,5500,NA,Vascular plants,pollen,Ornithopus,UPHE,1,1
+NISP,NA,pollen,5502,NA,Vascular plants,pollen,Selinum carvifolia,UPHE,2,1
+NISP,NA,pollen,5505,NA,Vascular plants,pollen,Sesamoides,UPHE,1,1
+NISP,NA,pollen,5512,NA,Vascular plants,pollen,Olea-type,TRSH,8,1
+NISP,NA,pollen,5517,NA,Vascular plants,pollen,Pinus pinaster-type,TRSH,17,1
+NISP,NA,pollen,5519,NA,Vascular plants,pollen,Quercus cf. Q. suber,TRSH,7,1
+NISP,NA,pollen,5520,NA,Vascular plants,pollen,Sorbus aucuparia-type,TRSH,80,4
+NISP,NA,pollen,5524,NA,Vascular plants,pollen,Nerium oleander,TRSH,2,1
+NISP,NA,pollen,5536,NA,Vascular plants,pollen,Conium-type,UPHE,25,1
+NISP,NA,pollen,5560,NA,Vascular plants,pollen,Pinus mugo,TRSH,3,1
+NISP,NA,pollen,5562,NA,Vascular plants,pollen,Aruncus-type,UPHE,24,7
+NISP,NA,pollen,5602,NA,Vascular plants,pollen,Centaurea cf. C. cyanus-type,UPHE,19,1
+NISP,NA,pollen,5603,NA,Vascular plants,pollen,Centaurea cf. C. nigra-type,UPHE,55,1
+NISP,NA,pollen,5604,NA,Vascular plants,pollen,Centaurea cf. C. scabiosa-type,UPHE,28,1
+NISP,NA,pollen,5614,NA,Vascular plants,pollen,Betula pubescens-type,TRSH,56,1
+NISP,NA,pollen,5615,NA,Vascular plants,pollen,Calligonum-type,TRSH,36,1
+NISP,NA,pollen,5618,NA,Vascular plants,pollen,Centaurea collina,UPHE,9,1
+NISP,NA,pollen,5621,NA,Vascular plants,pollen,Chaerophyllum hirsutum-type,UPHE,270,6
+NISP,NA,pollen,5623,NA,Vascular plants,pollen,Cistus albidus-type,TRSH,1,1
+NISP,NA,pollen,5628,NA,Vascular plants,pollen,Coronilla-type,UPHE,1,1
+NISP,NA,pollen,5633,NA,Vascular plants,pollen,Falcaria vulgaris,UPHE,2,1
+NISP,NA,pollen,5639,NA,Vascular plants,pollen,Heliotropium europaeum,UPHE,1,1
+NISP,NA,pollen,5671,NA,Vascular plants,pollen,Helleborus-type,UPHE,14,1
+NISP,NA,pollen,5674,NA,Vascular plants,pollen,Phyteuma,UPHE,108,14
+NISP,NA,pollen,5750,NA,Vascular plants,pollen,Ailanthus,TRSH,9,2
+NISP,NA,pollen,5798,NA,Vascular plants,pollen,Aesculus hippocastanum,TRSH,1,1
+NISP,NA,pollen,5804,NA,Vascular plants,pollen,Plantago major/P. media-type,UPHE,40,3
+NISP,NA,pollen,5811,NA,Vascular plants,pollen,Papaveraceae undiff.,UPHE,3,1
+NISP,NA,pollen,5819,NA,Vascular plants,pollen,Oenanthe fistulosa-type,UPHE,11,1
+NISP,NA,pollen,5823,NA,Vascular plants,pollen,Cannabis-type,UPHE,251,7
+NISP,NA,pollen,9115,NA,Vascular plants,pollen,Cannabaceae,TRSH,318,13
+NISP,NA,pollen,9503,NA,Vascular plants,pollen,Oxyria,UPHE,12,2
+NISP,NA,pollen,9505,NA,Vascular plants,pollen,Menyanthes,AQVP,52,3
+NISP,NA,pollen,9519,NA,Vascular plants,pollen,Fallopia,UPHE,1,1
+NISP,NA,pollen,9585,NA,Vascular plants,pollen,Amaranthus,UPHE,32,3
+NISP,NA,pollen,9629,NA,Vascular plants,pollen,Cyperus-type,UPHE,59,2
+NISP,NA,pollen,9666,NA,Vascular plants,pollen,Helianthus,UPHE,2,1
+NISP,NA,pollen,9686,NA,Vascular plants,pollen,Clusiaceae/Hypericaceae cf. Hypericum,TRSH,3,1
+NISP,NA,pollen,9690,NA,Vascular plants,pollen,Faboideae,UPHE,183,18
+NISP,NA,pollen,9773,NA,Vascular plants,pollen,Calluna,TRSH,260,6
+NISP,NA,pollen,14122,NA,Vascular plants,pollen,Ostrya carpinifolia,TRSH,288,3
+NISP,NA,pollen,21606,NA,Vascular plants,pollen,Potamogeton natans-type,AQVP,37,1
+NISP,NA,pollen,21607,NA,Vascular plants,pollen,Potamogeton pectinatus-type,AQVP,3,1
+NISP,NA,pollen,22585,NA,Vascular plants,pollen,Erica-type,TRSH,277,3
+NISP,NA,pollen,22717,NA,Vascular plants,pollen,Dioscorea,UPHE,2,2
+NISP,NA,pollen,23548,NA,Vascular plants,pollen,cf. Rubus,TRSH,3,1
+NISP,NA,pollen,23592,NA,Vascular plants,pollen,Quercus sp.,TRSH,3,1
+NISP,NA,pollen,23730,NA,Vascular plants,pollen,Myriophyllum-type,AQVP,86,1
+NISP,NA,pollen,23835,NA,Vascular plants,pollen,Pinus sp.,TRSH,108,1
+NISP,NA,pollen,23917,NA,Vascular plants,pollen,cf. Rutaceae,TRSH,1,1
+NISP,NA,pollen,23964,NA,Vascular plants,pollen,Glyceria,UPHE,1,1
+NISP,NA,pollen,24002,NA,Vascular plants,pollen,cf. Medicago,UPHE,38,2
+NISP,NA,pollen,24994,NA,Vascular plants,pollen,cf. Mentha,UPHE,1,1
+NISP,NA,pollen,24995,NA,Vascular plants,pollen,cf. Prunus,TRSH,7,1
+NISP,NA,pollen,25820,NA,Vascular plants,pollen,Bromus,UPHE,2,1
+NISP,NA,pollen,25878,NA,Vascular plants,pollen,Anemone sect. Pulsatilla,UPHE,69,12
+NISP,NA,pollen,26972,NA,Vascular plants,pollen,Rhododendron-type,TRSH,2,1
+NISP,NA,pollen,27457,NA,Vascular plants,pollen,Oxyria-type,UPHE,15,3
+NISP,NA,pollen,27573,NA,Vascular plants,pollen,Ranunculus sect. Batrachium,AQVP,43,7
+NISP,NA,pollen,27584,NA,Vascular plants,pollen,Aegopodium podagraria,UPHE,1,1
+NISP,NA,pollen,27585,NA,Vascular plants,pollen,Arnica montana,UPHE,17,5
+NISP,NA,pollen,27586,NA,Vascular plants,pollen,Carlina,UPHE,19,6
+NISP,NA,pollen,27587,NA,Vascular plants,pollen,Silenoideae-type,UPHE,63,8
+NISP,NA,pollen,27588,NA,Vascular plants,pollen,Cerastium arvense-type,UPHE,21,3
+NISP,NA,pollen,27589,NA,Vascular plants,pollen,Cerastium cerastoides-type,UPHE,58,6
+NISP,NA,pollen,27592,NA,Vascular plants,pollen,Doronicum,UPHE,2,1
+NISP,NA,pollen,27593,NA,Vascular plants,pollen,Homogyne,UPHE,15,7
+NISP,NA,pollen,27594,NA,Vascular plants,pollen,Ligusticum mutellina,UPHE,54,10
+NISP,NA,pollen,27595,NA,Vascular plants,pollen,Medicago falcata-type,UPHE,5,3
+NISP,NA,pollen,27597,NA,Vascular plants,pollen,Moehringia-type,UPHE,6,2
+NISP,NA,pollen,27599,NA,Vascular plants,pollen,Primula hirsuta-type,UPHE,2,1
+NISP,NA,pollen,27600,NA,Vascular plants,pollen,Rumex alpinus,UPHE,367,11
+NISP,NA,pollen,27605,NA,Vascular plants,pollen,Seseli-type,UPHE,38,2
+NISP,NA,pollen,27606,NA,Vascular plants,pollen,Soldanella,UPHE,12,7
+NISP,NA,pollen,27607,NA,Vascular plants,pollen,Sparganium angustifolium-type,AQVP,92,7
+NISP,NA,pollen,27611,NA,Vascular plants,pollen,Trifolium badium-type,UPHE,22,4
+NISP,NA,pollen,27613,NA,Vascular plants,pollen,Tussilago farfara,UPHE,10,3
+NISP,NA,pollen,27661,NA,Vascular plants,pollen,Humulus/Cannabis-type,UPHE,218,4
+NISP,NA,pollen,27881,NA,Vascular plants,pollen,cf. Chrysosplenium,UPHE,3,1
+NISP,NA,pollen,27888,NA,Vascular plants,pollen,cf. Scutellaria,UPHE,1,1
+NISP,NA,pollen,29012,NA,Vascular plants,pollen,mimosoid clade,TRSH,3,2
+NISP,NA,pollen,29114,NA,Vascular plants,pollen,Cicendia,UPHE,2,1
+NISP,NA,pollen,29485,NA,Vascular plants,pollen,cf. Daphne,TRSH,2,1
+NISP,NA,pollen,29559,NA,Vascular plants,pollen,Erythrina-type,TRSH,2,1
+NISP,NA,pollen,29625,NA,Vascular plants,pollen,Cannabis,UPHE,184,8
+NISP,NA,pollen,29809,NA,Vascular plants,pollen,Orlaya,UPHE,14,3
+NISP,NA,pollen,29810,NA,Vascular plants,pollen,Orlaya grandiflora,UPHE,11,3
+NISP,NA,pollen,29811,NA,Vascular plants,pollen,Torilis arvensis,UPHE,9,3
+NISP,NA,pollen,29816,NA,Vascular plants,pollen,Trifolium alpinum-type,UPHE,18,5
+NISP,NA,pollen,30385,NA,Vascular plants,pollen,Plantago sp.,UPHE,11,2
+NISP,NA,pollen,30930,NA,Vascular plants,pollen,Aconitum napellus-type,UPHE,10,1
+NISP,NA,pollen,30937,NA,Vascular plants,pollen,Adonis annua-type,UPHE,5,3
+NISP,NA,pollen,30942,NA,Vascular plants,pollen,Aethusa-type,UPHE,19,2
+NISP,NA,pollen,30966,NA,Vascular plants,pollen,Ammi majus,UPHE,2,1
+NISP,NA,pollen,30972,NA,Vascular plants,pollen,Lycopsis arvensis,UPHE,2,1
+NISP,NA,pollen,30977,NA,Vascular plants,pollen,Androsace alpina-type,UPHE,2,1
+NISP,NA,pollen,30999,NA,Vascular plants,pollen,Anemone hortensis-type,UPHE,3,1
+NISP,NA,pollen,31033,NA,Vascular plants,pollen,Aphanes arvensis,UPHE,3,1
+NISP,NA,pollen,31050,NA,Vascular plants,pollen,Arenaria serpyllifolia-type,UPHE,1,1
+NISP,NA,pollen,31211,NA,Vascular plants,pollen,Asparagus acutifolius,UPHE,8,1
+NISP,NA,pollen,31233,NA,Vascular plants,pollen,Astragalus depressus,UPHE,2,1
+NISP,NA,pollen,31236,NA,Vascular plants,pollen,Astrantia major-type,UPHE,2,1
+NISP,NA,pollen,31246,NA,Vascular plants,pollen,Avena/Triticum group,UPHE,86,2
+NISP,NA,pollen,31266,NA,Vascular plants,pollen,Ranunculus sect. Batrachium-type,UPHE,103,4
+NISP,NA,pollen,31289,NA,Vascular plants,pollen,Bifora radians-type,UPHE,5,1
+NISP,NA,pollen,31368,NA,Vascular plants,pollen,Buphthalmum,UPHE,1,1
+NISP,NA,pollen,31421,NA,Vascular plants,pollen,Carthamus-type,UPHE,3,2
+NISP,NA,pollen,31459,NA,Vascular plants,pollen,Carpinus betulus-type,TRSH,67,1
+NISP,NA,pollen,31512,NA,Vascular plants,pollen,Centaurea montana/Cyanus triumfettii,UPHE,3,1
+NISP,NA,pollen,31556,NA,Vascular plants,pollen,cf. Aconitum,UPHE,3,1
+NISP,NA,pollen,31558,NA,Vascular plants,pollen,cf. Acorus,UPHE,3,1
+NISP,NA,pollen,31574,NA,Vascular plants,pollen,cf. Astragalus,UPHE,1,1
+NISP,NA,pollen,31589,NA,Vascular plants,pollen,cf. Butomus,AQVP,4,1
+NISP,NA,pollen,31595,NA,Vascular plants,pollen,cf. Carduus,UPHE,10,2
+NISP,NA,pollen,31600,NA,Vascular plants,pollen,cf. Cedrus,TRSH,3,1
+NISP,NA,pollen,31628,NA,Vascular plants,pollen,cf. Cirsium,UPHE,1,1
+NISP,NA,pollen,31711,NA,Vascular plants,pollen,cf. Cytisus,TRSH,40,3
+NISP,NA,pollen,31723,NA,Vascular plants,pollen,cf. Epilobium,UPHE,4,1
+NISP,NA,pollen,31734,NA,Vascular plants,pollen,Gagea,UPHE,1,1
+NISP,NA,pollen,31736,NA,Vascular plants,pollen,cf. Genista,TRSH,5,2
+NISP,NA,pollen,31744,NA,Vascular plants,pollen,cf. Helianthemum,UPHE,1,1
+NISP,NA,pollen,31745,NA,Vascular plants,pollen,Helleborus viridis,UPHE,3,2
+NISP,NA,pollen,31756,NA,Vascular plants,pollen,cf. Humulus lupulus,UPHE,62,1
+NISP,NA,pollen,31998,NA,Vascular plants,pollen,Cynoglossum officinale-type,UPHE,2,2
+NISP,NA,pollen,31999,NA,Vascular plants,pollen,Falcaria-type,UPHE,45,5
+NISP,NA,pollen,32003,NA,Vascular plants,pollen,Laserpitium latifolium-type,UPHE,4,3
+NISP,NA,pollen,32004,NA,Vascular plants,pollen,Minuartia rubra-type,UPHE,42,4
+NISP,NA,pollen,32005,NA,Vascular plants,pollen,Morus alba-type,TRSH,27,6
+NISP,NA,pollen,32006,NA,Vascular plants,pollen,Saponaria,UPHE,3,2
+NISP,NA,pollen,32262,NA,Vascular plants,pollen,Levisticum officinale,UPHE,2,1
+NISP,NA,pollen,32275,NA,Vascular plants,pollen,Silene flos-cuculi,UPHE,2,2
+NISP,NA,pollen,32277,NA,Vascular plants,pollen,Silene viscaria-type,UPHE,14,3
+NISP,NA,pollen,32327,NA,Vascular plants,pollen,cf. Olea,TRSH,54,2
+NISP,NA,pollen,32328,NA,Vascular plants,pollen,cf. Onobrychis-type,UPHE,1,1
+NISP,NA,pollen,32385,NA,Vascular plants,pollen,cf. Rosa,UPHE,9,2
+NISP,NA,pollen,32397,NA,Vascular plants,pollen,cf. Saussurea,UPHE,1,1
+NISP,NA,pollen,32460,NA,Vascular plants,pollen,cf. Succisa,UPHE,3,1
+NISP,NA,pollen,32467,NA,Vascular plants,pollen,cf. Taraxacum,UPHE,4,1
+NISP,NA,pollen,32537,NA,Vascular plants,pollen,Chaerophyllum-type,UPHE,16,2
+NISP,NA,pollen,32603,NA,Vascular plants,pollen,Convolvulus arvensis-type,UPHE,6,2
+NISP,NA,pollen,32604,NA,Vascular plants,pollen,Calystegia sepium-type,UPHE,1,1
+NISP,NA,pollen,32645,NA,Vascular plants,pollen,Crupina-type,UPHE,2,1
+NISP,NA,pollen,32654,NA,Vascular plants,pollen,Cyclamen hederifolium,UPHE,6,5
+NISP,NA,pollen,32655,NA,Vascular plants,pollen,Cyclamen purpurascens,UPHE,1,1
+NISP,NA,pollen,32672,NA,Vascular plants,pollen,Cytinus,UPHE,3,1
+NISP,NA,pollen,32685,NA,Vascular plants,pollen,Daucus carota-type,UPHE,4,1
+NISP,NA,pollen,32692,NA,Vascular plants,pollen,Dictamnus albus,TRSH,1,1
+NISP,NA,pollen,32714,NA,Vascular plants,pollen,Drosera-type,AQVP,1,1
+NISP,NA,pollen,32730,NA,Vascular plants,pollen,Echium vulgare-type,UPHE,12,2
+NISP,NA,pollen,32731,NA,Vascular plants,pollen,Vincetoxicum,UPHE,1,1
+NISP,NA,pollen,32769,NA,Vascular plants,pollen,Epipactis palustris-type,UPHE,1,1
+NISP,NA,pollen,32821,NA,Vascular plants,pollen,Falcaria vulgaris-type,UPHE,12,1
+NISP,NA,pollen,32839,NA,Vascular plants,pollen,Foeniculum vulgare subsp. vulgare,UPHE,1,1
+NISP,NA,pollen,32840,NA,Vascular plants,pollen,Frangula alnus-type,TRSH,2,1
+NISP,NA,pollen,32843,NA,Vascular plants,pollen,Fraxinus ornus-type,TRSH,122,5
+NISP,NA,pollen,32864,NA,Vascular plants,pollen,Gagea/Tulipa,UPHE,7,1
+NISP,NA,pollen,32887,NA,Vascular plants,pollen,Genisteae-type,TRSH,7,1
+NISP,NA,pollen,32899,NA,Vascular plants,pollen,Geranium molle-type,UPHE,2,1
+NISP,NA,pollen,32901,NA,Vascular plants,pollen,Geranium phaeum-type,UPHE,2,1
+NISP,NA,pollen,32913,NA,Vascular plants,pollen,Geum montanum-type,UPHE,1,1
+NISP,NA,pollen,32918,NA,Vascular plants,pollen,Globularia,UPHE,4,2
+NISP,NA,pollen,32938,NA,Vascular plants,pollen,Hedera-type,TRSH,10,1
+NISP,NA,pollen,32940,NA,Vascular plants,pollen,Hedysarum hedysaroides,UPHE,1,1
+NISP,NA,pollen,32962,NA,Vascular plants,pollen,Helleborus foetidus,UPHE,36,2
+NISP,NA,pollen,32963,NA,Vascular plants,pollen,Helleborus viridis-type,UPHE,17,2
+NISP,NA,pollen,32974,NA,Vascular plants,pollen,Herniaria glabra-type,UPHE,34,3
+NISP,NA,pollen,32987,NA,Vascular plants,pollen,Hippocrepis comosa,UPHE,2,2
+NISP,NA,pollen,33004,NA,Vascular plants,pollen,Hordelymus,UPHE,3,1
+NISP,NA,pollen,33007,NA,Vascular plants,pollen,Hordeum/Triticum-type,UPHE,39,1
+NISP,NA,pollen,33008,NA,Vascular plants,pollen,Hordeum group,UPHE,117,2
+NISP,NA,pollen,33009,NA,Vascular plants,pollen,Hottonia palustris-type,AQVP,12,2
+NISP,NA,pollen,33064,NA,Vascular plants,pollen,Juniperus communis-type,TRSH,8,1
+NISP,NA,pollen,33069,NA,Vascular plants,pollen,Knautia arvensis-type,UPHE,5,4
+NISP,NA,pollen,33087,NA,Vascular plants,pollen,Laserpitium prutenicum,UPHE,20,6
+NISP,NA,pollen,33144,NA,Vascular plants,pollen,Limonium-type,UPHE,1,1
+NISP,NA,pollen,33146,NA,Vascular plants,pollen,Linaceae undiff.,UPHE,1,1
+NISP,NA,pollen,33169,NA,Vascular plants,pollen,Lloydia serotina,UPHE,3,3
+NISP,NA,pollen,33199,NA,Vascular plants,pollen,Lygeum spartum,UPHE,35,6
+NISP,NA,pollen,33243,NA,Vascular plants,pollen,Malva sylvestris-type,UPHE,1,1
+NISP,NA,pollen,33246,NA,Vascular plants,pollen,Marrubium-type,UPHE,1,1
+NISP,NA,pollen,33247,NA,Vascular plants,pollen,Matthiola-type,UPHE,1,1
+NISP,NA,pollen,33253,NA,Vascular plants,pollen,Thymus/Mentha-type,UPHE,43,2
+NISP,NA,pollen,33256,NA,Vascular plants,pollen,Mercurialis cf. M. ovata,UPHE,4,1
+NISP,NA,pollen,33270,NA,Vascular plants,pollen,Minuartia verna-type,UPHE,26,3
+NISP,NA,pollen,33288,NA,Vascular plants,pollen,Morus alba,TRSH,42,3
+NISP,NA,pollen,33299,NA,Vascular plants,pollen,Myrtus-type,TRSH,7,4
+NISP,NA,pollen,33339,NA,Vascular plants,pollen,Onosma,UPHE,2,2
+NISP,NA,pollen,33359,NA,Vascular plants,pollen,Papaver argemone-type,UPHE,1,1
+NISP,NA,pollen,33377,NA,Vascular plants,pollen,Parthenocissus quinquefolia,TRSH,1,1
+NISP,NA,pollen,33465,NA,Vascular plants,pollen,Phillyrea angustifolia-type,TRSH,79,2
+NISP,NA,pollen,33478,NA,Vascular plants,pollen,Pimpinella anisum-type,UPHE,2,2
+NISP,NA,pollen,33523,NA,Vascular plants,pollen,Platanus orientalis,TRSH,1,1
+NISP,NA,pollen,33547,NA,Vascular plants,pollen,Spermatophyta undiff. (cf. upland herbs),UPHE,491,9
+NISP,NA,pollen,33583,NA,Vascular plants,pollen,Koenigia alpina,UPHE,21,7
+NISP,NA,pollen,33584,NA,Vascular plants,pollen,Koenigia alpina-type,UPHE,4,1
+NISP,NA,pollen,33595,NA,Vascular plants,pollen,Rumex spinosus,UPHE,1,1
+NISP,NA,pollen,33609,NA,Vascular plants,pollen,Polygonum maritimum,UPHE,1,1
+NISP,NA,pollen,33634,NA,Vascular plants,pollen,Poterium,UPHE,3,1
+NISP,NA,pollen,33655,NA,Vascular plants,pollen,Pulmonaria obscura,UPHE,2,2
+NISP,NA,pollen,33686,NA,Vascular plants,pollen,Quercus cerris/Q. suber,TRSH,248,3
+NISP,NA,pollen,33694,NA,Vascular plants,pollen,Quercus pubescens/Q. robur-type,TRSH,164,3
+NISP,NA,pollen,33719,NA,Vascular plants,pollen,Ranunculus aconitifolius-type,UPHE,59,5
+NISP,NA,pollen,33720,NA,Vascular plants,pollen,Ranunculus acris group,UPHE,4,1
+NISP,NA,pollen,33749,NA,Vascular plants,pollen,Ranunculus lingua-type,UPHE,1,1
+NISP,NA,pollen,33759,NA,Vascular plants,pollen,Reseda luteola-type,UPHE,5,1
+NISP,NA,pollen,33767,NA,Vascular plants,pollen,Rhamnus/Frangula,TRSH,2,1
+NISP,NA,pollen,33769,NA,Vascular plants,pollen,Rhaponticum scariosum,UPHE,1,1
+NISP,NA,pollen,33800,NA,Vascular plants,pollen,Robinia pseudoacacia,TRSH,6,3
+NISP,NA,pollen,33823,NA,Vascular plants,pollen,Poterium sanguisorba,UPHE,213,19
+NISP,NA,pollen,33824,NA,Vascular plants,pollen,Poterium sanguisorba subsp. sanguisorba,UPHE,5,1
+NISP,NA,pollen,33844,NA,Vascular plants,pollen,Rumex acetosa/R. scutatus-type,UPHE,1,1
+NISP,NA,pollen,33845,NA,Vascular plants,pollen,Rumex scutatus-type,UPHE,1,1
+NISP,NA,pollen,33849,NA,Vascular plants,pollen,Rumex alpinus-type,UPHE,40,2
+NISP,NA,pollen,33854,NA,Vascular plants,pollen,Rumex palustris-type,AQVP,1,1
+NISP,NA,pollen,33855,NA,Vascular plants,pollen,Rumex palustris group,AQVP,11,1
+NISP,NA,pollen,33856,NA,Vascular plants,pollen,Rumex sanguineus,UPHE,4,4
+NISP,NA,pollen,33858,NA,Vascular plants,pollen,Rumex triangulivalvis,UPHE,7,2
+NISP,NA,pollen,33883,NA,Vascular plants,pollen,Salvia-type,UPHE,9,2
+NISP,NA,pollen,33909,NA,Vascular plants,pollen,Saxifraga paniculata-type,UPHE,71,5
+NISP,NA,pollen,33958,NA,Vascular plants,pollen,Scleranthus annuus-type,UPHE,4,2
+NISP,NA,pollen,33966,NA,Vascular plants,pollen,Scrophulariaceae pro parte,UPHE,1,1
+NISP,NA,pollen,33999,NA,Vascular plants,pollen,Silaum silaus,UPHE,1,1
+NISP,NA,pollen,34011,NA,Vascular plants,pollen,Asphodelaceae,UPHE,2,1
+NISP,NA,pollen,34017,NA,Vascular plants,pollen,Simethis planifolia,UPHE,3,1
+NISP,NA,pollen,34019,NA,Vascular plants,pollen,Sison amomum,UPHE,1,1
+NISP,NA,pollen,34035,NA,Vascular plants,pollen,Sorbus aria-type,TRSH,23,2
+NISP,NA,pollen,34059,NA,Vascular plants,pollen,Staphylea pinnata,TRSH,3,1
+NISP,NA,pollen,34064,NA,Vascular plants,pollen,Stellaria cf. S. holostea,UPHE,1,1
+NISP,NA,pollen,34068,NA,Vascular plants,pollen,Streptopus amplexifolius,UPHE,1,1
+NISP,NA,pollen,34069,NA,Vascular plants,pollen,Succisa pratensis-type,UPHE,11,2
+NISP,NA,pollen,34076,NA,Vascular plants,pollen,Dioscorea communis,UPHE,4,2
+NISP,NA,pollen,34091,NA,Vascular plants,pollen,Thalictrum flavum-type,UPHE,108,2
+NISP,NA,pollen,34116,NA,Vascular plants,pollen,Torilis nodosa,UPHE,5,2
+NISP,NA,pollen,34120,NA,Vascular plants,pollen,Trachycarpus fortunei,PALM,10,3
+NISP,NA,pollen,34161,NA,Vascular plants,pollen,Trollius europaeus-type,UPHE,3,1
+NISP,NA,pollen,34204,NA,Vascular plants,pollen,Urtica pilulifera,UPHE,2,2
+NISP,NA,pollen,34206,NA,Vascular plants,pollen,Urtica membranacea,UPHE,7,2
+NISP,NA,pollen,34232,NA,Vascular plants,pollen,Valeriana montana-type,UPHE,3,2
+NISP,NA,pollen,34235,NA,Vascular plants,pollen,Verbena-type,UPHE,1,1
+NISP,NA,pollen,34247,NA,Vascular plants,pollen,Viola canina-type,UPHE,2,1
+NISP,NA,pollen,34259,NA,Vascular plants,pollen,Xanthium spinosum-type,UPHE,5,1
+NISP,NA,pollen,35235,NA,Vascular plants,pollen,Vicia faba-type,UPHE,1,1
+NISP,NA,pollen,38049,NA,Vascular plants,pollen,cf. Hydrocotyle,AQVP,1,1
+NISP,NA,pollen,38510,NA,Vascular plants,pollen,Althaea officinalis,UPHE,6,1
+NISP,NA,pollen,38716,NA,Vascular plants,pollen,cf. Ruta,UPHE,1,1
+NISP,NA,pollen,38770,NA,Vascular plants,pollen,Plantago uniflora,UPHE,3,3
+NISP,NA,pollen,39210,NA,Vascular plants,pollen,Vicia cf. V. faba,UPHE,3,1
+NISP,NA,pollen,39227,NA,Vascular plants,pollen,cf. Elatine,AQVP,2,1
+NISP,NA,pollen,40368,NA,Vascular plants,pollen,cf. Capparis,TRSH,8,2
+NISP,NA,pollen,40907,NA,Vascular plants,pollen,Fabaceae (type 1),UPHE,1,1
+NISP,NA,pollen,41049,NA,Vascular plants,pollen,Achillea/Anthemis-type,UPHE,487,1
+NISP,NA,pollen,41050,NA,Vascular plants,pollen,Centaurea cf. C. cyanus/montana-type,UPHE,20,1
+NISP,NA,pollen,41051,NA,Vascular plants,pollen,cf. Frangula/Bruckenthalia,TRSH,1,1
+NISP,NA,pollen,41052,NA,Vascular plants,pollen,cf. Androsace,UPHE,21,1
+NISP,NA,pollen,41053,NA,Vascular plants,pollen,cf. Circaea,UPHE,1,1
+NISP,NA,pollen,41054,NA,Vascular plants,pollen,cf. Samolus valerandi,AQVP,1,1
+NISP,NA,pollen,41057,NA,Vascular plants,pollen,Persicaria undiff.,UPHE,5,1
+NISP,NA,pollen,41531,NA,Vascular plants,pollen,Pyrus/Malus,TRSH,2,1
+NISP,NA,pollen,41548,NA,Vascular plants,pollen,cf. Cardamine,UPHE,4,1
+NISP,NA,pollen,41612,NA,Vascular plants,pollen,cf. Lupinus,UPHE,1,1
+NISP,NA,pollen,42232,NA,Vascular plants,pollen,Caryophyllaceae (porate),UPHE,9,2
+NISP,NA,pollen,44116,NA,Vascular plants,pollen,Fumaria officinalis,UPHE,4,1
+NISP,NA,pollen,44117,NA,Vascular plants,pollen,Centaurium erythraea,UPHE,3,1
+NISP,NA,pollen,45946,NA,Vascular plants,pollen,Anthyllis montana-type,UPHE,3,1
+NISP,NA,pollen,46128,NA,Vascular plants,pollen,cf. Cercis,TRSH,1,1
+NISP,NA,pollen,46129,NA,Vascular plants,pollen,Cistus cf. C. incanus,TRSH,18,2
+NISP,NA,pollen,46130,NA,Vascular plants,pollen,Clematis vitalba group,UPHE,47,2
+NISP,NA,pollen,46131,NA,Vascular plants,pollen,Erica cf. E. arborea/multiflora,TRSH,128,2
+NISP,NA,pollen,46132,NA,Vascular plants,pollen,cf. Ficus,TRSH,2,1
+NISP,NA,pollen,46133,NA,Vascular plants,pollen,Jasminum fruticans-type,UPHE,2,1
+NISP,NA,pollen,46134,NA,Vascular plants,pollen,cf. Pyrus,TRSH,8,2
+NISP,NA,pollen,46135,NA,Vascular plants,pollen,cf. Arum,UPHE,1,1
+NISP,NA,pollen,46136,NA,Vascular plants,pollen,Symphytum officinale-type,UPHE,5,2
+NISP,NA,pollen,46137,NA,Vascular plants,pollen,Paronychia cf. P. kapela,UPHE,32,2
+NISP,NA,pollen,46138,NA,Vascular plants,pollen,cf. Arabis,UPHE,41,2
+NISP,NA,pollen,46139,NA,Vascular plants,pollen,cf. Capsella,UPHE,16,2
+NISP,NA,pollen,46140,NA,Vascular plants,pollen,cf. Lamium,UPHE,16,2
+NISP,NA,pollen,46141,NA,Vascular plants,pollen,cf. Phlomis,UPHE,10,2
+NISP,NA,pollen,46143,NA,Vascular plants,pollen,cf. Dorycnium,UPHE,1,1
+NISP,NA,pollen,46144,NA,Vascular plants,pollen,Hedysarum cf. H. coronarium,UPHE,8,2
+NISP,NA,pollen,46145,NA,Vascular plants,pollen,cf. Asparagus,UPHE,12,2
+NISP,NA,pollen,46146,NA,Vascular plants,pollen,cf. Mesembryanthemum,UPHE,3,2
+NISP,NA,pollen,46147,NA,Vascular plants,pollen,cf. Corydalis,UPHE,3,1
+NISP,NA,pollen,46148,NA,Vascular plants,pollen,cf. Rheum,UPHE,1,1
+NISP,NA,pollen,46149,NA,Vascular plants,pollen,Cyclamen hederifolium-type,UPHE,3,2
+NISP,NA,pollen,46150,NA,Vascular plants,pollen,Primula cf. P. integrifolia,UPHE,6,1
+NISP,NA,pollen,46151,NA,Vascular plants,pollen,Primula undiff.,UPHE,3,1
+NISP,NA,pollen,46152,NA,Vascular plants,pollen,cf. Euphrasia,UPHE,3,1
+NISP,NA,pollen,46153,NA,Vascular plants,pollen,Pastinaca sativa-type,UPHE,1,1
+NISP,NA,pollen,46154,NA,Vascular plants,pollen,Urtica cf. U. membranacea,UPHE,4,1
+NISP,NA,pollen,46155,NA,Vascular plants,pollen,Magnoliatae indeterminata,TRSH,100,2
+NISP,NA,pollen,46156,NA,Vascular plants,pollen,Samolus valerandi-type,AQVP,2,1
+NISP,NA,pollen,46165,NA,Vascular plants,pollen,cf. Ziziphus,TRSH,2,1
+NISP,NA,pollen,46166,NA,Vascular plants,pollen,cf. Iberis,UPHE,3,1
+NISP,NA,pollen,46167,NA,Vascular plants,pollen,cf. Limodorum,UPHE,1,1
+NISP,NA,pollen,46168,NA,Vascular plants,pollen,Fragaria cf. F. vesca,UPHE,1,1
+NISP,NA,pollen,46169,NA,Vascular plants,pollen,Ammi cf. A. visnaga,UPHE,6,1
+NISP,NA,pollen,46170,NA,Vascular plants,pollen,cf. Althenia,AQVP,1,1
+NISP,NA,pollen,46171,NA,Vascular plants,pollen,Ranunculus cf. R. fluitans,UPHE,1,1
+NISP,NA,pollen,46203,NA,Vascular plants,pollen,Phoenix-type,PALM,1,1
+NISP,NA,pollen,46204,NA,Vascular plants,pollen,Valeriana celtica-type,UPHE,2,1
+NISP,NA,pollen,46277,NA,Vascular plants,pollen,Pinus cf. P. pinaster,TRSH,1,1
+NISP,NA,pollen,46278,NA,Vascular plants,pollen,Pinus sylvestris/P. mugo,TRSH,93,1
+NISP,NA,pollen,46279,NA,Vascular plants,pollen,Fraxinus cf. F. angustifolia/F. oxycarpa,TRSH,30,1
+NISP,NA,pollen,46280,NA,Vascular plants,pollen,Cistus cf. C. albidus,TRSH,1,1
+NISP,NA,pollen,46281,NA,Vascular plants,pollen,cf. Bellis,UPHE,5,1
+NISP,NA,pollen,46282,NA,Vascular plants,pollen,cf. Senecio,UPHE,2,1
+NISP,NA,pollen,46283,NA,Vascular plants,pollen,cf. Hieracium,UPHE,1,1
+NISP,NA,pollen,46285,NA,Vascular plants,pollen,cf. Raphanus,UPHE,1,1
+NISP,NA,pollen,46286,NA,Vascular plants,pollen,cf. Corrigiola,UPHE,1,1
+NISP,NA,pollen,46287,NA,Vascular plants,pollen,cf. Lathyrus,UPHE,1,1
+NISP,NA,pollen,46288,NA,Vascular plants,pollen,cf. Stachys glutinosa,UPHE,1,1
+NISP,NA,pollen,46289,NA,Vascular plants,pollen,cf. Anagallis tenella,UPHE,1,1
+NISP,NA,pollen,48911,NA,Vascular plants,pollen,Pistacia-type,TRSH,3,1
+NISP,NA,pollen/spore,296,NA,Unidentified palynomorphs,pollen/spore,Unknown undiff.,UNID,273,1
+NISP,NA,pollen/spore,312,NA,Unidentified palynomorphs,pollen/spore,Indeterminable,UNID,1114,9
+NISP,NA,pollen/spore,313,NA,Unidentified palynomorphs,pollen/spore,Unknown,UNID,831,12
+NISP,NA,pollen/spore,905,NA,Unidentified palynomorphs,pollen/spore,Indeterminable undiff.,UNID,299,3
+NISP,NA,pollen/spore,3713,NA,Unidentified palynomorphs,pollen/spore,Varia,UNID,868,13
+NISP,NA,pollen/spore,34946,NA,Unidentified palynomorphs,pollen/spore,Indeterminable (broken),UNID,431,1
+NISP,NA,pollen/spore,35429,NA,Unidentified palynomorphs,pollen/spore,Indeterminable (unknown),UNID,149,3
+NISP,NA,pollen/spore,35430,NA,Unidentified palynomorphs,pollen/spore,Indeterminable (concealed),UNID,70,1
+NISP,NA,pollen/spore,35431,NA,Unidentified palynomorphs,pollen/spore,Indeterminable (degraded),UNID,327,1
+NISP,NA,pollen/spore,35432,NA,Unidentified palynomorphs,pollen/spore,Indeterminable (unidentified),UNID,63,1
+NISP,NA,pollen/spore,35433,NA,Unidentified palynomorphs,pollen/spore,Indeterminable (crumpled),UNID,541,1
+NISP,NA,quantity added,932,NA,Laboratory analyses,quantity added,Lycopodium spike,LABO,223,3
+NISP,NA,spine,4865,NA,Vascular plants,spine,Stratiotes aloides,AQVP,1,1
+NISP,NA,sporangium,677,NA,Vascular plants,sporangium,Pteridophyta,VACR,10,1
+NISP,NA,spore,26,NA,Vascular plants,spore,Athyrium,VACR,13,1
+NISP,NA,spore,33,NA,Vascular plants,spore,Botrychium,VACR,501,36
+NISP,NA,spore,91,NA,Vascular plants,spore,Equisetum,VACR,470,26
+NISP,NA,spore,108,NA,Vascular plants,spore,Polypodiophyta undiff.,VACR,91,1
+NISP,NA,spore,139,NA,Vascular plants,spore,Isoëtes,AQVP,52,7
+NISP,NA,spore,168,NA,Vascular plants,spore,Lycopodium annotinum,VACR,44,11
+NISP,NA,spore,170,NA,Vascular plants,spore,Lycopodium clavatum,VACR,7,5
+NISP,NA,spore,172,NA,Vascular plants,spore,Lycopodiella inundata,VACR,58,5
+NISP,NA,spore,175,NA,Vascular plants,spore,Huperzia selago,VACR,59,20
+NISP,NA,spore,202,NA,Algae,spore,Pediastrum,ALGA,38,1
+NISP,NA,spore,234,NA,Vascular plants,spore,Polypodiaceae,VACR,54,2
+NISP,NA,spore,235,NA,Vascular plants,spore,Polypodium-type,VACR,33,5
+NISP,NA,spore,247,NA,Vascular plants,spore,Pteridium-type,VACR,4,2
+NISP,NA,spore,286,NA,Vascular plants,spore,Selaginella,VACR,9,3
+NISP,NA,spore,294,NA,Bryophytes,spore,Sphagnum,AQBR,735,31
+NISP,NA,spore,313,NA,Unidentified palynomorphs,spore,Unknown,UNID,21,1
+NISP,NA,spore,326,NA,Algae,spore,Botryococcus,ALGA,71,2
+NISP,NA,spore,339,NA,Unidentified palynomorphs,spore,Unknown (trilete),UNID,474,11
+NISP,NA,spore,348,NA,Unidentified palynomorphs,spore,Unknown (monolete),UNID,1190,12
+NISP,NA,spore,504,NA,Vascular plants,spore,Gymnocarpium,VACR,61,5
+NISP,NA,spore,508,NA,Vascular plants,spore,Ophioglossum,VACR,36,3
+NISP,NA,spore,509,NA,Vascular plants,spore,Osmunda,VACR,114,2
+NISP,NA,spore,512,NA,Vascular plants,spore,Thelypteris palustris-type,VACR,4,1
+NISP,NA,spore,535,NA,Fungi,spore,Fungi,FUNG,1,1
+NISP,NA,spore,573,NA,Vascular plants,spore,Athyrium filix-femina,VACR,360,19
+NISP,NA,spore,605,NA,Vascular plants,spore,Cystopteris fragilis,VACR,68,16
+NISP,NA,spore,613,NA,Vascular plants,spore,Dryopteris,VACR,117,5
+NISP,NA,spore,650,NA,Vascular plants,spore,Lycopodium annotinum-type,VACR,2,2
+NISP,NA,spore,676,NA,Vascular plants,spore,Polypodiophyta,VACR,77,2
+NISP,NA,spore,677,NA,Vascular plants,spore,Pteridophyta,VACR,160,2
+NISP,NA,spore,720,NA,Vascular plants,spore,Pteridium aquilinum,VACR,1881,31
+NISP,NA,spore,750,NA,Vascular plants,spore,Selaginella selaginoides,VACR,480,28
+NISP,NA,spore,799,NA,Vascular plants,spore,Polypodiophyta (monolete),VACR,1112,19
+NISP,NA,spore,807,NA,Vascular plants,spore,Pteridium,VACR,602,12
+NISP,NA,spore,835,NA,Vascular plants,spore,Polypodium,VACR,461,34
+NISP,NA,spore,839,NA,Vascular plants,spore,Cystopteris-type,VACR,13,5
+NISP,NA,spore,850,NA,Vascular plants,spore,Osmunda regalis,VACR,49,5
+NISP,NA,spore,932,NA,Laboratory analyses,spore,Lycopodium spike,LABO,26,1
+NISP,NA,spore,957,NA,Vascular plants,spore,Polypodiophyta (monolete) undiff.,VACR,16,1
+NISP,NA,spore,958,NA,Vascular plants,spore,Polypodiophyta (trilete) undiff.,VACR,16,1
+NISP,NA,spore,1068,NA,Vascular plants,spore,Botrychium-type,VACR,108,6
+NISP,NA,spore,1092,NA,Vascular plants,spore,Adiantum-type,VACR,1,1
+NISP,NA,spore,1109,NA,Fungi,spore,Tilletia sphagni,FUNG,324,2
+NISP,NA,spore,1125,NA,Vascular plants,spore,Lycopodium clavatum-type,VACR,18,3
+NISP,NA,spore,1179,NA,Vascular plants,spore,Lycopodiella,VACR,1,1
+NISP,NA,spore,1180,NA,Vascular plants,spore,Lycopodiaceae,VACR,5,3
+NISP,NA,spore,1243,NA,Bryophytes,spore,Bryophyta undiff.,UPBR,20,1
+NISP,NA,spore,1265,NA,Vascular plants,spore,Polypodiophyta (trilete),VACR,41,4
+NISP,NA,spore,1331,NA,Vascular plants,spore,Ophioglossum vulgatum,VACR,24,9
+NISP,NA,spore,1343,NA,Bryophytes,spore,Riccia,AQBR,1,1
+NISP,NA,spore,1345,NA,Vascular plants,spore,Dryopteris filix-mas-type,VACR,285,13
+NISP,NA,spore,1348,NA,Vascular plants,spore,Asplenium,VACR,17,4
+NISP,NA,spore,1370,NA,Vascular plants,spore,Thelypteris palustris,VACR,248,11
+NISP,NA,spore,1488,NA,Algae,spore,Spirogyra,ALGA,30,2
+NISP,NA,spore,1489,NA,Fungi,spore,Sporormiella,FUNG,356,6
+NISP,NA,spore,1519,NA,Vascular plants,spore,Osmunda-type,VACR,138,2
+NISP,NA,spore,1559,NA,Vascular plants,spore,cf. Botrychium,VACR,19,1
+NISP,NA,spore,1615,NA,Vascular plants,spore,Hymenophyllum,VACR,2,1
+NISP,NA,spore,1695,NA,Vascular plants,spore,Pteridophyta (trilete),VACR,116,2
+NISP,NA,spore,1801,NA,Bryophytes,spore,Anthoceros laevis,UPBR,1,1
+NISP,NA,spore,1890,NA,Vascular plants,spore,Asplenium-type,VACR,95,14
+NISP,NA,spore,1949,NA,Vascular plants,spore,cf. Ophioglossum,VACR,1,1
+NISP,NA,spore,2193,NA,Fungi,spore,Gelasinospora,FUNG,13,4
+NISP,NA,spore,2277,NA,Bryophytes,spore,Hedwigia,UPBR,22,9
+NISP,NA,spore,2299,NA,Vascular plants,spore,Polypodiaceae undiff.,VACR,124,1
+NISP,NA,spore,2301,NA,Vascular plants,spore,Polypodium vulgare,VACR,60,4
+NISP,NA,spore,2660,NA,Vascular plants,spore,Cryptogramma crispa,VACR,27,7
+NISP,NA,spore,2662,NA,Vascular plants,spore,Diphasiastrum-type,VACR,4,3
+NISP,NA,spore,2679,NA,Vascular plants,spore,Selaginella helvetica,VACR,11,1
+NISP,NA,spore,3091,NA,Algae,spore,Zygnema,ALGA,10,2
+NISP,NA,spore,3114,NA,Vascular plants,spore,Pteridophyta (monolete),VACR,54,1
+NISP,NA,spore,3141,NA,Vascular plants,spore,Pteridophyta (trilete) undiff.,VACR,256,10
+NISP,NA,spore,3401,NA,Vascular plants,spore,Dryopteris filix-mas,VACR,131,9
+NISP,NA,spore,3429,NA,Vascular plants,spore,Thelypteris,VACR,8,1
+NISP,NA,spore,3716,NA,Bryophytes,spore,cf. Sphagnum,PLNT,3,1
+NISP,NA,spore,4985,NA,Vascular plants,spore,cf. Athyrium,VACR,1,1
+NISP,NA,spore,4988,NA,Vascular plants,spore,Botrychium lunaria-type,VACR,30,3
+NISP,NA,spore,4989,NA,Vascular plants,spore,Blechnum spicant,VACR,24,2
+NISP,NA,spore,5011,NA,Vascular plants,spore,Lycopodium,VACR,68,3
+NISP,NA,spore,5024,NA,Vascular plants,spore,Polypodium vulgare-type,VACR,8,2
+NISP,NA,spore,5027,NA,Vascular plants,spore,Polystichum-type,VACR,8,6
+NISP,NA,spore,5030,NA,Vascular plants,spore,Pteridophyta (monolete) undiff.,VACR,1631,13
+NISP,NA,spore,5033,NA,Vascular plants,spore,Selaginella helvetica-type,VACR,20,8
+NISP,NA,spore,5034,NA,Vascular plants,spore,Selaginella selaginoides-type,VACR,5,2
+NISP,NA,spore,5039,NA,Bryophytes,spore,cf. Bryophyta,PLNT,2,1
+NISP,NA,spore,5142,NA,Algae,spore,Tetraëdron,ALGA,2,1
+NISP,NA,spore,5406,NA,Bryophytes,spore,Polytrichum,AQBR,4,1
+NISP,NA,spore,5415,NA,Fungi,spore,Diporotheca,FUNG,18,3
+NISP,NA,spore,5470,NA,Fungi,spore,Glomus,FUNG,118,7
+NISP,NA,spore,5559,NA,Vascular plants,spore,Dryopteris dilatata-type,VACR,10,4
+NISP,NA,spore,9541,NA,Vascular plants,spore,Polypodiales (monolete),VACR,421,3
+NISP,NA,spore,9542,NA,Vascular plants,spore,Polypodiales (trilete),VACR,25,1
+NISP,NA,spore,15671,NA,Unidentified palynomorphs,spore,Unknown (pre-Quaternary),ANAC,15,1
+NISP,NA,spore,23130,NA,Fungi,spore,Podospora,FUNG,1,1
+NISP,NA,spore,24696,NA,Fungi,spore,Sordaria,FUNG,2,1
+NISP,NA,spore,25917,NA,Fungi,spore,Neurospora,FUNG,2,1
+NISP,NA,spore,25931,NA,Fungi,spore,Ustulina,FUNG,12,3
+NISP,NA,spore,27453,NA,Vascular plants,spore,"Polypodiophyta undiff. (monolete, without perine)",VACR,21,1
+NISP,NA,spore,27591,NA,Fungi,spore,Cercophora-type,FUNG,100,4
+NISP,NA,spore,27598,NA,Fungi,spore,Podospora-type,FUNG,50,3
+NISP,NA,spore,27614,NA,Fungi,spore,Ustulina deusta,FUNG,8,3
+NISP,NA,spore,27652,NA,Fungi,spore,Zopfiella,FUNG,4,1
+NISP,NA,spore,29127,NA,Algae,spore,Botryococcaceae,ALGA,72,2
+NISP,NA,spore,29967,NA,Bryophytes,spore,Bryidae,UPBR,4,1
+NISP,NA,spore,30479,NA,Fungi,spore,Cercophora,FUNG,16,1
+NISP,NA,spore,30993,NA,Algae,spore,Rivulariaceae,ALGA,38,2
+NISP,NA,spore,32718,NA,Vascular plants,spore,Dryopteris cf. D. cristata,VACR,1,1
+NISP,NA,spore,32720,NA,Vascular plants,spore,Dryopteris/Thelypteris,VACR,2,1
+NISP,NA,spore,33341,NA,Vascular plants,spore,Ophioglossum lusitanicum,VACR,4,2
+NISP,NA,spore,33343,NA,Vascular plants,spore,Ophioglossum vulgatum-type,VACR,3,2
+NISP,NA,spore,33468,NA,Vascular plants,spore,Asplenium scolopendrium-type,VACR,1,1
+NISP,NA,spore,33622,NA,Vascular plants,spore,Polystichum lonchitis,VACR,2,1
+NISP,NA,spore,34272,NA,Fungi,spore,Gelasinospora retispora,FUNG,1,1
+NISP,NA,spore,34413,NA,Bryophytes,spore,Aspiromitus punctatus,UPBR,2,1
+NISP,NA,spore,37440,NA,Vascular plants,spore,Monoletes,PTER,91,4
+NISP,NA,spore,37441,NA,Vascular plants,spore,Triletes,PTER,81,3
+NISP,NA,spore,38489,NA,Fungi,spore,Tetraploa scheueri,FUNG,4,1
+NISP,NA,spore,41055,NA,Vascular plants,spore,cf. Trichomanes,VACR,2,1
+NISP,NA,stomate,1,NA,Vascular plants,stomate,Abies,TRSH,178,8
+NISP,NA,stomate,153,NA,Vascular plants,stomate,Larix,TRSH,329,13
+NISP,NA,stomate,210,NA,Vascular plants,stomate,Picea,TRSH,163,7
+NISP,NA,stomate,312,NA,Unidentified palynomorphs,stomate,Indeterminable,UNID,28,2
+NISP,NA,stomate,385,NA,Vascular plants,stomate,Pinus,TRSH,444,18
+NISP,NA,stomate,983,NA,Vascular plants,stomate,Juniperus,TRSH,61,12
+NISP,NA,stomate,1943,NA,Vascular plants,stomate,Coniferae undiff.,TRSH,3,1
+NISP,NA,stomate,1944,NA,Vascular plants,stomate,Coniferae,TRSH,143,3
+NISP,NA,stomate,2897,NA,Vascular plants,stomate,Calluna vulgaris,TRSH,1,1
+NISP,NA,stomate,9095,NA,Plants undiff.,stomate,Plantae,PLNT,2,2
+NISP,NA,stomate,31591,NA,Vascular plants,stomate,cf. Calluna,TRSH,1,1
+NISP,NA,test,559,NA,Testate amoebae,test,Amphitrema,TEAM,27,1
+NISP,NA,test,570,NA,Testate amoebae,test,Assulina,TEAM,81,2
+NISP,NA,test,571,NA,Testate amoebae,test,Assulina muscorum,TEAM,340,2
+NISP,NA,test,572,NA,Testate amoebae,test,Assulina seminulum,TEAM,240,1
+NISP,NA,test,620,NA,Foraminifera,test,Foraminifera,FORM,47,1
+NISP,NA,test,1189,NA,Testate amoebae,test,Arcella,TEAM,123,2
+NISP,NA,test,28043,NA,Testate amoebae,test,Archerella flavum,TEAM,95,1
+NISP,NA,tracheid,9534,NA,Vascular plants,tracheid,Tracheophyta,VASC,33,1
+NISP,NA,volume,276,NA,Laboratory analyses,volume,Sample quantity,LABO,354,1
+NISP,NA,zygospore,5123,NA,Algae,zygospore,Mougeotia,ALGA,1,1
+cm^3,NA,volume,276,NA,Laboratory analyses,volume,Sample quantity,LABO,210,2
+count,NA,particle,34286,NA,Charcoal,particle,Spheroidal carbonaceous particle,CHAR,354,1
+g,NA,mass,276,NA,Laboratory analyses,mass,Sample quantity,LABO,132,2
+grains/g,NA,concentration,63,NA,Laboratory analyses,concentration,Pollen concentration,LABO,137,1
+grains/tablet,NA,concentration,97,NA,Laboratory analyses,concentration,Eucalyptus tablets,LABO,161,1
+grains/tablet,NA,concentration,930,NA,Laboratory analyses,concentration,Lycopodium tablets,LABO,2509,24
+grains/tablet,NA,concentration,2635,NA,Laboratory analyses,concentration,Spike tablets,LABO,104,2
+l,NA,volume,276,NA,Laboratory analyses,volume,Sample quantity,LABO,94,1
+mg,NA,mass,276,NA,Laboratory analyses,mass,Sample quantity,LABO,323,5
+ml,NA,quantity added,96,NA,Laboratory analyses,quantity added,Eucalyptus suspension,LABO,164,1
+ml,NA,volume,276,NA,Laboratory analyses,volume,Sample quantity,LABO,2692,32
+mm^2/cm^2/yr,NA,>10 µm,1062,NA,Charcoal,>10 µm,Charcoal,CHAR,471,2
+mm^2/ml,NA,>10 µm,1062,NA,Charcoal,>10 µm,Charcoal,CHAR,471,2
+number,NA,>10 µm,1062,NA,Charcoal,>10 µm,Charcoal,CHAR,75,1
+number,NA,counted,95,NA,Laboratory analyses,counted,Eucalyptus spike,LABO,161,1
+number,NA,counted,932,NA,Laboratory analyses,counted,Lycopodium spike,LABO,2472,21
+number,NA,counted,1305,NA,Laboratory analyses,counted,Spike,LABO,261,6
+number,NA,counted,5508,NA,Laboratory analyses,counted,Transects across slide,LABO,322,5
+number,NA,quantity added,97,NA,Laboratory analyses,quantity added,Eucalyptus tablets,LABO,161,1
+number,NA,quantity added,930,NA,Laboratory analyses,quantity added,Lycopodium tablets,LABO,2509,24
+number/ml,NA,concentration,96,NA,Laboratory analyses,concentration,Eucalyptus suspension,LABO,214,1
+particles,NA,>10 µm,1062,NA,Charcoal,>10 µm,Charcoal,CHAR,72,1
+particles/cm^2/yr,NA,>10 µm,1062,NA,Charcoal,>10 µm,Charcoal,CHAR,469,4
+particles/ml,NA,>10 µm,1062,NA,Charcoal,>10 µm,Charcoal,CHAR,469,4
+particles/ml,NA,concentration,1062,NA,Charcoal,concentration,Charcoal,CHAR,75,1
diff --git a/2023_INQUA_pollen_vertebrates/data/taxontable.csv b/2023_INQUA_pollen_vertebrates/data/taxontable.csv
new file mode 100644
index 0000000..ecf6ebc
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/data/taxontable.csv
@@ -0,0 +1,235 @@
+taxonid,variablename,ecologicalgroup,harmonizedname
+1,Abies,TRSH,Abies
+550,Abies balsamea,TRSH,Abies
+3725,Abies undiff.,TRSH,Abies
+338,Acer,TRSH,Acer
+552,Acer cf. A. pensylvanicum,TRSH,Acer
+4,Acer negundo,TRSH,Acer
+553,Acer nigrum,TRSH,Acer
+5,Acer pensylvanicum,TRSH,Acer
+6,Acer rubrum,TRSH,Acer
+554,Acer saccharinum,TRSH,Acer
+555,Acer saccharum,TRSH,Acer
+3,Acer saccharum-type,TRSH,Acer
+8,Acer spicatum,TRSH,Acer
+9,Acer undiff.,TRSH,Acer
+330,Alnus,TRSH,Alnus
+344,Alnus incana,TRSH,Alnus
+13,Alnus incana-type,TRSH,Alnus
+15,Alnus undiff.,TRSH,Alnus
+353,Alnus viridis,TRSH,Alnus
+3606,Alnus viridis subsp. crispa,TRSH,Alnus
+3607,Alnus viridis subsp. crispa-type,TRSH,Alnus
+14,Alnus viridis-type,TRSH,Alnus
+564,Andromeda polifolia,TRSH,Andromeda
+563,Andromeda polifolia var. latifolia,TRSH,Andromeda
+21,Aquifoliaceae,TRSH,Aquifoliaceae
+23,Arceuthobium,TRSH,Arceuthobium
+1162,Arctostaphylos,TRSH,Arctostaphylos
+29,Betula,TRSH,Betula
+5735,Betula (large),TRSH,Betula
+574,Betula (shrub),TRSH,Betula
+5736,Betula (small),TRSH,Betula
+23078,Betula spp.,TRSH,Betula
+1011,Betula undiff.,TRSH,Betula
+327,Betulaceae,TRSH,Betula
+357,Betulaceae undiff.,TRSH,Betula
+394,Caprifoliaceae,TRSH,Caprifoliaceae
+9528,Caprifoliaceae sensu lato,TRSH,Caprifoliaceae
+9529,Caprifoliaceae sensu lato undiff.,TRSH,Caprifoliaceae
+44,Carya,TRSH,Carya
+587,Carya cordiformis,TRSH,Carya
+588,Carya ovata,TRSH,Carya
+2643,Cassiope-type,TRSH,Cassiope
+47,Castanea,TRSH,Castanea
+590,Castanea dentata,TRSH,Castanea
+3996,Castanea-type,TRSH,Castanea
+49,Celtis,TRSH,Celtis
+591,Celtis occidentalis,TRSH,Celtis
+24134,Celtis/Ulmus,TRSH,Celtis
+50,Cephalanthus,TRSH,Other
+593,Cephalanthus occidentalis,TRSH,Other
+743,cf. Sarcobatus vermiculatus,TRSH,Sarcobatus vermiculatus
+2574,cf. Shepherdia,TRSH,Shepherdia
+757,cf. Taxus,TRSH,Taxus
+9124,Chamaedaphne,TRSH,Chamaedaphne
+53,Chamaedaphne calyculata,TRSH,Chamaedaphne
+597,Comptonia peregrina,TRSH,Comptonia
+1944,Coniferae,TRSH,Other
+1943,Coniferae undiff.,TRSH,Other
+1693,Cornaceae,TRSH,Cornus
+361,Cornus,TRSH,Cornus
+599,Cornus alternifolia,TRSH,Cornus
+600,Cornus canadensis,TRSH,Cornus
+3170,Cornus racemosa,TRSH,Cornus
+601,Cornus rugosa,TRSH,Cornus
+579,Cornus sericea,TRSH,Cornus
+4175,Cornus suecica,TRSH,Cornus
+65,Cornus undiff.,TRSH,Cornus
+67,Corylus,TRSH,Corylus
+603,Corylus cornuta,TRSH,Corylus
+3399,Corylus-type,TRSH,Corylus
+72,Cupressaceae,TRSH,Thuja
+756,Cupressaceae cf. Thuja occidentalis,TRSH,Thuja
+607,Diervilla lonicera,TRSH,Diervilla lonicera
+907,Elaeagnaceae undiff.,TRSH,Elaeagnus
+84,Elaeagnus,TRSH,Elaeagnus
+615,Elaeagnus commutata,TRSH,Elaeagnus
+86,Empetrum,TRSH,Empetrum
+366,Ephedra,TRSH,Ephedra
+368,Ephedra nevadensis-type,TRSH,Ephedra
+23490,Ephedraceae,TRSH,Ephedra
+92,Ericaceae,TRSH,Ericaceae
+909,Ericaceae undiff.,TRSH,Ericaceae
+848,Ericales,TRSH,Ericales
+849,Ericales undiff.,TRSH,Ericales
+107,Fagus,TRSH,Fagus
+2588,Fagus grandifolia,TRSH,Fagus
+369,Fraxinus,TRSH,Fraxinus
+110,Fraxinus (tetracolpate),TRSH,Fraxinus
+111,Fraxinus (tricolpate),TRSH,Fraxinus
+1102,Fraxinus americana,TRSH,Fraxinus
+371,Fraxinus americana-type,TRSH,Fraxinus
+1082,Fraxinus nigra,TRSH,Fraxinus
+112,Fraxinus nigra-type,TRSH,Fraxinus
+1083,Fraxinus pennsylvanica,TRSH,Fraxinus
+961,Fraxinus pennsylvanica/F. americana-type,TRSH,Fraxinus
+113,Fraxinus pennsylvanica-type,TRSH,Fraxinus
+114,Fraxinus undiff.,TRSH,Fraxinus
+117,Gaultheria,TRSH,Gaultheria
+118,Gaylussacia,TRSH,Gaylussacia
+2274,Grossulariaceae,TRSH,Other
+135,Ilex,TRSH,Ilex
+672,Ilex/Nemopanthus,TRSH,Ilex
+1225,Ilex/Nemopanthus undiff.,TRSH,Ilex
+940,Ilex-type,TRSH,Ilex
+372,Juglans,TRSH,Juglans
+144,Juglans cinerea,TRSH,Juglans
+145,Juglans nigra,TRSH,Juglans
+146,Juglans undiff.,TRSH,Juglans
+983,Juniperus,TRSH,Juniperus
+4416,Juniperus communis,TRSH,Juniperus
+761,Juniperus communis/Thuja occidentalis-type,TRSH,Juniperus
+364,Juniperus/Thuja,TRSH,Juniperus
+363,Juniperus-type,TRSH,Juniperus
+148,Kalmia,TRSH,Kalmia
+153,Larix,TRSH,Larix
+1460,Larix laricina,TRSH,Larix
+162,Liquidambar,TRSH,Liquidambar
+164,Lonicera,TRSH,Lonicera
+598,Lonicera caerulea,TRSH,Lonicera
+640,Lonicera canadensis,TRSH,Lonicera
+642,Lonicera canadensis-type,TRSH,Lonicera
+641,Lonicera involucrata,TRSH,Lonicera
+776,Loranthaceae,TRSH,Loranthaceae
+185,Moraceae,TRSH,Morus
+874,Moraceae undiff.,TRSH,Morus
+186,Morus,TRSH,Morus
+662,Morus rubra-type,TRSH,Morus
+383,Myrica,TRSH,Myrica
+666,Myrica gale,TRSH,Myrica
+381,Myricaceae,TRSH,Myrica
+189,Nemopanthus,TRSH,Nemopanthus
+671,Nemopanthus mucronatus,TRSH,Nemopanthus
+193,Nyssa,TRSH,Nyssa
+4577,Nyssaceae,TRSH,Nyssa
+1237,Ostrya,TRSH,Ostraya
+197,Ostrya/Carpinus,TRSH,Ostraya
+384,Ostrya-type,TRSH,Ostraya
+210,Picea,TRSH,Picea
+1233,Picea cf. P. glauca,TRSH,Picea
+2317,Picea glauca,TRSH,Picea
+207,Picea glauca-type,TRSH,Picea
+2318,Picea mariana,TRSH,Picea
+208,Picea mariana-type,TRSH,Picea
+209,Picea rubens-type,TRSH,Picea
+897,Picea undiff.,TRSH,Picea
+329,Pinaceae,TRSH,Other
+64,Pinaceae undiff.,TRSH,Other
+385,Pinus,TRSH,Pinus
+836,Pinus banksiana/P. resinosa,TRSH,Pinus
+695,Pinus banksiana-type,TRSH,Pinus
+696,Pinus resinosa-type,TRSH,Pinus
+697,Pinus strobus,TRSH,Pinus
+212,Pinus subg. Pinus,TRSH,Pinus
+913,Pinus subg. Pinus undiff.,TRSH,Pinus
+213,Pinus subg. Strobus,TRSH,Pinus
+2917,Pinus subg. Strobus undiff.,TRSH,Pinus
+216,Pinus undiff.,TRSH,Pinus
+222,Platanus,TRSH,Platanus
+700,Platanus occidentalis,TRSH,Platanus
+389,Populus,TRSH,Populus
+1151,Populus balsamifera,TRSH,Populus
+238,Populus balsamifera-type,TRSH,Populus
+23203,Populus cf. P. tremuloides,TRSH,Populus
+709,Populus deltoides-type,TRSH,Populus
+710,Populus grandidentata-type,TRSH,Populus
+1155,Populus tremuloides,TRSH,Populus
+239,Populus tremuloides-type,TRSH,Populus
+237,Populus undiff.,TRSH,Populus
+715,Prunus,TRSH,Prunus
+716,Prunus pensylvanica,TRSH,Prunus
+717,Prunus serotina,TRSH,Prunus
+942,Prunus undiff.,TRSH,Prunus
+719,Prunus virginiana,TRSH,Prunus
+250,Pyrus-type,TRSH,Pyrus
+251,Quercus,TRSH,Quercus
+256,Rhamnaceae,TRSH,Rhamnaceae/Vitaceae
+726,Rhamnaceae/Vitaceae,TRSH,Rhamnaceae/Vitaceae
+785,Rhamnus,TRSH,Rhamnaceae/Vitaceae
+723,Rhamnus alnifolia/Frangula alnus,TRSH,Rhamnaceae/Vitaceae
+725,Rhamnus cathartica,TRSH,Rhamnaceae/Vitaceae
+724,Rhamnus/Vitis,TRSH,Rhamnaceae/Vitaceae
+1226,Rhamnus/Vitis undiff.,TRSH,Rhamnaceae/Vitaceae
+259,Rhododendron,TRSH,Rhododendron
+727,Rhododendron canadense,TRSH,Rhododendron
+155,Rhododendron subsect. Ledum,TRSH,Rhododendron
+156,Rhododendron subsect. Ledum/Chamaedaphne calyculata,TRSH,Rhododendron
+260,Rhus,TRSH,Rhus
+730,Rhus typhina,TRSH,Rhus
+262,Ribes,TRSH,Ribes
+718,Rosaceae cf. Prunus serotina,TRSH,Prunus
+733,Rubiaceae,TRSH,Rubiaceae
+266,Rubiaceae undiff.,TRSH,Rubiaceae
+267,Rubus,TRSH,Rubiaceae
+734,Rubus chamaemorus,TRSH,Rubiaceae
+271,Salix,TRSH,Salix
+739,Salix herbacea-type,TRSH,Salix
+740,Salix reticulata-type,TRSH,Salix
+25596,Salix spp.,TRSH,Salix
+1216,Salix undiff.,TRSH,Salix
+741,Salix vestita-type,TRSH,Salix
+275,Sambucus,TRSH,Sambucus
+7654,Sarcobataceae,TRSH,Sarcobatus vermiculatus
+279,Sarcobatus vermiculatus,TRSH,Sarcobatus vermiculatus
+542,Shepherdia,TRSH,Shepherdia
+289,Shepherdia argentea,TRSH,Shepherdia
+290,Shepherdia canadensis,TRSH,Shepherdia
+3010,Spermatophyta undiff. (trees),TRSH,Other
+5779,Symphoricarpos albus,TRSH,Symphoricarpos albus
+299,Taxus,TRSH,Taxus
+1461,Taxus canadensis,TRSH,Taxus
+853,Thuja,TRSH,Thuja
+42657,Thuja occidentalis,TRSH,Thuja
+302,Tilia,TRSH,Tilia
+758,Tilia americana,TRSH,Tilia
+306,Tsuga,TRSH,Tsuga canadensis
+763,Tsuga canadensis,TRSH,Tsuga canadensis
+1275,Tsuga undiff.,TRSH,Tsuga canadensis
+310,Ulmus,TRSH,Ulmus
+9817,Ulmus americana,TRSH,Ulmus
+317,Vaccinium,TRSH,Vaccinium
+764,Vaccinium angustifolium-type,TRSH,Vaccinium
+766,Vaccinium macrocarpon-type,TRSH,Vaccinium
+767,Vaccinium oxycoccos,TRSH,Vaccinium
+765,Vaccinium uliginosum-type,TRSH,Vaccinium
+1219,Vaccinium undiff.,TRSH,Vaccinium
+397,Viburnum,TRSH,Viburnum
+768,Viburnum alnifolium,TRSH,Viburnum
+770,Viburnum edule,TRSH,Viburnum
+396,Viburnum lentago,TRSH,Viburnum
+793,Viburnum nudum,TRSH,Viburnum
+794,Viburnum opulus,TRSH,Viburnum
+319,Viburnum undiff.,TRSH,Viburnum
+1108,Vitaceae,TRSH,Rhamnaceae/Vitaceae
+320,Vitis,TRSH,Rhamnaceae/Vitaceae
diff --git a/2023_INQUA_pollen_vertebrates/images/neotomaUML_as.svg b/2023_INQUA_pollen_vertebrates/images/neotomaUML_as.svg
new file mode 100644
index 0000000..4fc1cc1
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/images/neotomaUML_as.svg
@@ -0,0 +1,2654 @@
+
+
diff --git a/2023_INQUA_pollen_vertebrates/images/site_collunit_dataset.svg b/2023_INQUA_pollen_vertebrates/images/site_collunit_dataset.svg
new file mode 100644
index 0000000..52bc876
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/images/site_collunit_dataset.svg
@@ -0,0 +1,616 @@
+
+
+
+
diff --git a/2023_INQUA_pollen_vertebrates/images/site_collunit_dataset_rev.png b/2023_INQUA_pollen_vertebrates/images/site_collunit_dataset_rev.png
new file mode 100644
index 0000000..9e8a754
Binary files /dev/null and b/2023_INQUA_pollen_vertebrates/images/site_collunit_dataset_rev.png differ
diff --git a/2023_INQUA_pollen_vertebrates/images/site_collunit_dataset_rev.svg b/2023_INQUA_pollen_vertebrates/images/site_collunit_dataset_rev.svg
new file mode 100644
index 0000000..f861cc1
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/images/site_collunit_dataset_rev.svg
@@ -0,0 +1,235 @@
+
+
+
diff --git a/2023_INQUA_pollen_vertebrates/images/sitecollunitdataset.png b/2023_INQUA_pollen_vertebrates/images/sitecollunitdataset.png
new file mode 100644
index 0000000..bc3a6a7
Binary files /dev/null and b/2023_INQUA_pollen_vertebrates/images/sitecollunitdataset.png differ
diff --git a/2023_INQUA_pollen_vertebrates/index.html b/2023_INQUA_pollen_vertebrates/index.html
new file mode 100644
index 0000000..8b02f7f
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/index.html
@@ -0,0 +1,9 @@
+
+
+
+ EPD Workshop
+
+
+
+
+
diff --git a/2023_INQUA_pollen_vertebrates/install.R b/2023_INQUA_pollen_vertebrates/install.R
new file mode 100644
index 0000000..5834626
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/install.R
@@ -0,0 +1,10 @@
+install.packages("ggplot2")
+install.packages("tidyverse")
+install.packages("dplyr")
+install.packages("rioja")
+install.packages("DT")
+install.packages("pacman")
+install.packages("Bchron")
+install.packages("maptools")
+install.packages("maps")
+remotes::install_github("NeotomaDB/neotoma2@CRANv1.0.2b")
\ No newline at end of file
diff --git a/2023_INQUA_pollen_vertebrates/simple_workflow.Rmd b/2023_INQUA_pollen_vertebrates/simple_workflow.Rmd
new file mode 100644
index 0000000..15c1073
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/simple_workflow.Rmd
@@ -0,0 +1,551 @@
+---
+title: "A Simple Workflow"
+author: "Simon Goring, Socorro Dominguez Vidaña"
+date: "`r Sys.Date()`"
+output:
+ html_document:
+ code_folding: show
+ fig_caption: yes
+ keep_md: yes
+ self_contained: yes
+ theme: readable
+ toc: yes
+ toc_float: yes
+ css: "text.css"
+ pdf_document:
+ pandoc_args: "-V geometry:vmargin=1in -V geometry:hmargin=1in"
+---
+
+```{r setup, echo=FALSE}
+options(warn = -1)
+pacman::p_load(neotoma2, dplyr, ggplot2, sf, geojsonsf, leaflet, DT, readr, stringr, rioja)
+```
+
+## 1. Introduction
+
+This document is intended to act as a primer for the use of the new Neotoma R package, `neotoma2`. Some users may be working with this document as part of a workshop for which there is a Binder instance. The Binder instance will run RStudio in your browser, with all the required packages installed.
+
+If you are using this workflow on its own, or want to use the package directly, [the `neotoma2` package](https://github.com/NeotomaDB/neotoma2) is available on CRAN by running:
+
+```r
+install.packages('neotoma2')
+library(neotoma2)
+```
+
+This workshop will also require other packages. To maintain the flow of this document we've placed instructions at the end of the document in the section labelled "[Installing packages on your own](#localinstall)".
+
+## 2. Learning Goals
+
+In this tutorial you will learn how to:
+
+* Search for sites using site names and geographic parameters -- [Site Searches](#3-site-searches)
+* Filter results using temporal and spatial parameters -- [Filter Results](#33-filter-records-tabset)
+* Obtain sample information for the selected datasets -- [Sample Information](#34-pulling-in-sample-data)
+* Perform basic Stratigraphic Plotting -- [Basic Analysis](#4-simple-analytics)
+
+### 2.1. Getting Help with Neotoma
+
+If you're planning on working with Neotoma, please join us on [Slack](https://join.slack.com/t/neotomadb/shared_invite/zt-cvsv53ep-wjGeCTkq7IhP6eUNA9NxYQ) where we manage a channel specifically for questions about the R package (the #it_r channel, or #it_r_es for R help in Spanish and #it_r_jp in Japanese). You may also wish to join the Neotoma community through our Google Groups mailing lists; please [see the information on our website](https://www.neotomadb.org/about/join-the-neotoma-community) to be added.
+
+### 2.2 Understanding Data Structures in Neotoma
+
+Data in the Neotoma database itself is structured as a set of linked relationships to express the different elements of paleoecological analysis: space and time, raw data, scientific methods and data models. Because paleoecology is such a broad discipline these relationships can be complex, and as such, the database itself is highly structured. If you want to better understand concepts within the database, you can read the [Neotoma Database Manual](https://open.neotomadb.org/manual), or take a look at [the database schema itself](https://open.neotomadb.org/dbschema).
+
+In this workshop we want to highlight two key structural concepts:
+
+ 1. The way data is structured conceptually within Neotoma (Sites, Collection Units and Datasets).
+ 2. The way that this structure is adapted within the `neotoma2` R package.
+
+### 2.2.1 Data Structure in the Neotoma Database
+
+![**Figure**. *The structure of sites, collection units, samples, and datasets within Neotoma. A site contains one or more collection units. Chronologies are associated with collection units. Samples with data of a common type (pollen, diatoms, vertebrate fauna) are assigned to a dataset.*](images/site_collunit_dataset_rev.png){width=50%}
+
+
+Data in Neotoma is associated with sites -- specific locations with lat/long coordinates.
+
+Within a **site**, there may be one or more [**collection units**](https://open.neotomadb.org/manual/dataset-collection-related-tables-1.html#CollectionUnits) -- locations at which samples are physically collected within the site. For example, an archaeological **site** may have one or more **collection units**, pits within a broader dig site; a pollen sampling **site** on a lake may have multiple **collection units** -- core sites within the lake basin. Collection units may have higher resolution GPS locations than the site location, but are considered to be part of the broader site.
+
+Data within a **collection unit** is collected at various [**analysis units**](https://open.neotomadb.org/manual/sample-related-tables-1.html#AnalysisUnits). Any data sampled within an analysis unit is grouped by the dataset type (charcoal, diatom, dinoflagellate, etc.) and aggregated into a [**sample**](https://open.neotomadb.org/manual/sample-related-tables-1.html#Samples). The set of samples for a collection unit of a particular dataset type is then assigned to a [**dataset**](https://open.neotomadb.org/manual/dataset-collection-related-tables-1.html#Datasets).
+
+### 2.2.2 Data Structures in `neotoma2` {#222-data-structures-in-neotoma2}
+
+![**Figure**. *Neotoma R Package UML diagram. Each box represents a data class within the package. Individual boxes show the class object, its name, its properties, and functions that can be applied to those objects. For example, a `sites` object has a property `sites`, that is a list. The function `plotLeaflet()` can be used on a `sites` object.*](images/neotomaUML_as.svg)
+
+If we look at the [UML diagram](https://en.wikipedia.org/wiki/Unified_Modeling_Language) for the objects in the `neotoma2` R package we can see that the data structure generally mimics the structure within the database itself. As we will see in the [Site Searches section](#3-site-searches), we can search for these objects, and begin to manipulate them (in the [Simple Analysis section](#4-simple-analytics)).
+
+It is important to note: *within the `neotoma2` R package, most objects are `sites` objects, they just contain more or less data*. There are a set of functions that can operate on `sites`. As we add to `sites` objects, using `get_datasets()` or `get_downloads()`, we are able to use more of these helper functions.
+
+### 2.2.3 Piping in `R` {.tabset}
+
+Piping is a technique that simplifies the process of chaining multiple operations on a data object. It involves using either of these operators: `|>` or `%>%`. `|>` is a base R operator while `%>%` comes from the `tidyverse` ecosystem in R. In `neotoma2` we use `%>%`.
+
+The pipe operator works as a real-life pipe, which carries water from one location to another. In programming, the output of the function on the left-hand side of the pipe is taken as the initial argument for the function on the right-hand side of the pipe. It helps by making code easier to write and read. Additionally, it reduces the number of intermediate objects created during data processing, which can make code more memory-efficient and faster.
+
+Without using pipes you can use the `neotoma2` R package to retrieve a site and then plot it by doing:
+
+```r
+# Retrieve the site
+plot_site <- neotoma2::get_sites(sitename = "%Lago%")
+# Plot the site
+neotoma2::plotLeaflet(object = plot_site)
+```
+
+This would create a variable `plot_site` that we will not need any more, but it was necessary so that we could pass it to the `plotLeaflet` function.
+
+With the pipe (`%>%`) we do not need to create the variable, we can just rewrite our code. Notice that `plotLeaflet()` doesn't need the `object` argument because the response of `get_sites(sitename = "%Lago%")` gets passed directly into the function.
+
+#### 2.2.3.1. Code
+
+```{r piping code, eval=FALSE}
+# get_sites and pipe. The `object` parameter for plotLeaflet will be the
+# result of the `get_sites()` function.
+get_sites(sitename = "%Lago%") %>%
+ plotLeaflet()
+```
+
+#### 2.2.3.2. Result
+
+```{r piping result, echo=FALSE}
+# get_sites and pipe
+get_sites(sitename = "%Lago%") %>%
+ plotLeaflet()
+```
+
+## 3. Site Searches
+
+### 3.1. `get_sites()`
+
+There are several ways to find sites in `neotoma2`, but we think of `sites` as being spatial objects primarily. They have names, locations, and are found within the context of geopolitical units, but within the API and the package, the site itself does not have associated information about taxa, dataset types or ages. It is simply the container into which we add that information. So, when we search for sites we can search by:
+
+| Parameter | Description |
+| --------- | ----------- |
+| sitename | A valid site name (case insensitive) using `%` as a wildcard. |
+| siteid | A unique numeric site id from the Neotoma Database |
+| loc | A bounding box vector, geoJSON or WKT string. |
+| altmin | Lower altitude bound for sites. |
+| altmax | Upper altitude bound for site locations. |
+| database | The constituent database from which the records are pulled. |
+| datasettype | The kind of dataset (see `get_tables(datasettypes)`) |
+| datasetid | Unique numeric dataset identifier in Neotoma |
+| doi | A valid dataset DOI in Neotoma |
+| gpid | A unique numeric identifier, or text string identifying a geopolitical unit in Neotoma |
+| keywords | Unique sample keywords for records in Neotoma. |
+| contacts | A name or numeric id for individuals associuated with sites. |
+| taxa | Unique numeric identifiers or taxon names associated with sites. |
+
+All sites in Neotoma contain one or more datasets. It's worth noting that the results of these search parameters may be slightly unexpected. For example, searching for sites by sitename, latitude, or altitude will return all of the datasets for the particular site. Searching for terms such as datasettype, datasetid or taxa will return the site, but the only datasets returned will be those matching the dataset-specific search terms. We'll see this later.
+
+#### 3.1.1. Site names: `sitename="%Lago%"` {.tabset}
+
+We may know exactly what site we're looking for ("Lago Grande di Monticchio"), or have an approximate guess for the site name (for example, we know it's something like "Lago Grande", or "Grande Lago Grande", but we're not sure how it was entered specifically), or we may want to search all sites that have a specific term, for example, *Lago*.
+
+We use the general format: `get_sites(sitename="%Lago%")` for searching by name.
+
+PostgreSQL (and the API) uses the percent sign as a wildcard. So `"%Lago%"` would pick up ["Lago Grande di Monticchio"](https://data.neotomadb.org/26607) for us (and picks up "Lago di Martignano" and "Lago Padule"). Note that the search query is also case insensitive, so you could simply write `"%LAGO%"`.
+
+##### 3.1.1.1. Code
+
+```{r sitename, eval=FALSE}
+lac_sites <- neotoma2::get_sites(sitename = "%Lago %")
+plotLeaflet(lac_sites)
+```
+
+##### 3.1.1.2. Result
+
+```{r sitenamePlot, echo=FALSE}
+lac_sites <- neotoma2::get_sites(sitename = "%Lago %")
+plotLeaflet(lac_sites)
+```
+
+#### 3.1.2. Location: `loc=c()` {.tabset}
+
+The original `neotoma` package used a bounding box for locations, structured as a vector of latitude and longitude values: `c(xmin, ymin, xmax, ymax)`. The `neotoma2` R package supports both this simple bounding box, but also more complex spatial objects, using the [`sf` package](https://r-spatial.github.io/sf/). Using the `sf` package allows us to more easily work with raster and polygon data in R, and to select sites from more complex spatial objects. The `loc` parameter works with the simple vector, [WKT](https://arthur-e.github.io/Wicket/sandbox-gmaps3.html), [geoJSON](http://geojson.io/#map=2/20.0/0.0) objects and native `sf` objects in R.
+
+As an example of searching for sites using a location, we've created a rough representation of Italy as a polygon. To work with this spatial object in R we also transformed the `geoJSON` element to an object for the `sf` package. There are many other tools to work with spatial objects in R. Regardless of how you get the data into R, `neotoma2` works with almost all objects in the `sf` package.
+
+```{r boundingBox}
+geoJSON <- '{"coordinates":
+ [[
+ [8.22, 44.13],
+ [12.44, 41.72],
+ [15.86, 37.82],
+ [18.61, 39.99],
+ [12.20, 45.39],
+ [13.62, 45.86],
+ [13.45, 46.46],
+ [12.21, 47.11],
+ [10.41, 46.69],
+ [6.99, 45.97],
+ [6.87, 44.34],
+ [8.22, 44.13]
+ ]],
+ "type":"Polygon"}'
+
+italy_sf <- geojsonsf::geojson_sf(geoJSON)
+
+# Note here we use the `all_data` flag to capture all the sites within the polygon.
+# We're using `all_data` here because we know that the site information is relatively small
+# for Italy. If we were working in a new area or with a new search we would limit the
+# search size.
+italy_sites <- neotoma2::get_sites(loc = italy_sf, all_data = TRUE)
+```
+
+You can always simply `plot()` the `sites` objects, but you will lose some of the geographic context. The `plotLeaflet()` function returns a `leaflet()` map, and allows you to further customize it, or add additional spatial data (like our original bounding polygon, `sa_sf`, which works directly with the R `leaflet` package):
+
+##### 3.1.2.1. Code
+
+```{r plotL, eval=FALSE}
+neotoma2::plotLeaflet(italy_sites) %>%
+ leaflet::addPolygons(map = .,
+ data = italy_sf,
+ color = "green")
+```
+
+##### 3.1.2.2. Result
+
+```{r plotLeaf, echo=FALSE}
+neotoma2::plotLeaflet(italy_sites) %>%
+ leaflet::addPolygons(map = .,
+ data = italy_sf,
+ color = "green")
+```
+
+#### 3.1.3. Site Helpers {.tabset}
+
+If we look at the [data structure diagram](#222-data-structures-in-neotoma2) for the objects in the `neotoma2` R package we can see that there are a set of functions that can operate on `sites`. As we retrieve more information for `sites` objects, using `get_datasets()` or `get_downloads()`, we are able to use more of these helper functions.
+
+As it is, we can take advantage of functions like `summary()` to get a more complete sense of the types of data we have in `italy_sites`. The following code gives the summary table. We do some R magic here to change the way the data is displayed (turning it into a [`DT::datatable()`](https://rstudio.github.io/DT/) object), but the main piece is the `summary()` call.
+
+##### 3.1.3.1. Code
+
+```{r summary_sites, eval=FALSE}
+# Give information about the sites themselves, site names &cetera.
+neotoma2::summary(italy_sites)
+# Give the unique identifiers for sites, collection units and datasets found at those sites.
+neotoma2::getids(italy_sites)
+```
+
+##### 3.1.3.2. Result
+
+```{r summarySitesTable, eval=TRUE, echo=FALSE}
+neotoma2::summary(italy_sites) %>%
+ DT::datatable(data = ., rownames = FALSE,
+ options = list(scrollX = "100%", dom = 't'))
+```
+
+In this document we list only the first 10 records (there are more, you can use `length(datasets(italy_sites))` to see how many datasets you've got). We can see that there are no chronologies associated with the `site` objects. This is because, at present, we have not pulled in the `dataset` information we need. In Neotoma, a chronology is associated with a collection unit (and that metadata is pulled by `get_datasets()` or `get_downloads()`). All we know from `get_sites()` are the kinds of datasets we have and the location of the sites that contain the datasets.
+
+### 3.2. Searching for datasets: {.tabset}
+
+Within Neotoma, collection units and datasets are contained within sites. Similarly, a `sites` object contains `collectionunits` which contain `datasets`. From the table above (Result tab in Section 3.1.3.2) we can see that some of the sites we've looked at contain pollen records, some contain geochronologic data and some contain other dataset types. We could write something like this: `table(summary(italy_sites)$types)` to see the different datasettypes and their counts.
+
+With a `sites` object we can directly call `get_datasets()` to pull in more metadata about the datasets. The `get_datasets()` method also supports any of the search terms listed above in the [Site Search](#3-site-searches) section. At any time we can use `datasets()` to get more information about any datasets that a `sites` object may contain. Compare the output of `datasets(italy_sites)` to the output of a similar call using the following:
+
+#### 3.2.1. Code
+
+```{r datasetsFromSites, eval=FALSE}
+# This is slow, because there's a lot of sites!
+# italy_datasets <- neotoma2::get_datasets(italy_sites, all_data = TRUE)
+
+italy_datasets <- neotoma2::get_datasets(loc = italy_sf, datasettype = "pollen", all_data = TRUE)
+
+datasets(italy_datasets)
+```
+
+#### 3.2.2. Result
+
+```{r datasetsFromSitesResult, echo=FALSE, message=FALSE}
+italy_datasets <- neotoma2::get_datasets(loc = italy_sf, datasettype = "pollen", all_data = TRUE)
+datasets(italy_datasets) %>%
+ as.data.frame() %>%
+ DT::datatable(data = .,
+ options = list(scrollX = "100%", dom = 't'))
+```
+
+You can see that this provides information only about the specific dataset, not the site! For a more complete record we can join site information from `summary()` to dataset information using `datasets()` using the `getids()` function which links sites, and all the collection units and datasets they contain.
+
+### 3.3. Filter Records {.tabset}
+
+If we choose to pull in information about only a single dataset type, or if there is additional filtering we want to do before we download the data, we can use the `filter()` function. For example, if we only want sedimentary pollen records (as opposed to pollen surface samples), and want records with known chronologies, we can filter by `datasettype` and by the presence of an `age_range_young`, which would indicate that there is a chronology that defines bounds for ages within the record.
+
+#### 3.3.1. Code
+
+```{r downloads, eval=FALSE}
+italy_records <- italy_datasets %>%
+ neotoma2::filter(!is.na(age_range_young))
+
+neotoma2::summary(italy_records)
+
+# We've removed records, so the new object should be shorter than the original.
+length(italy_records) < length(italy_datasets)
+```
+
+#### 3.3.2. Result
+
+```{r downloadsCode, echo = FALSE}
+italy_records <- italy_datasets %>%
+ neotoma2::filter(!is.na(age_range_young))
+
+neotoma2::summary(italy_records) %>% DT::datatable(data = .,
+ options = list(scrollX = "100%", dom = 't'))
+```
+
+We can see now that the data table looks different (comparing it to the [table above](#322-result)), and there are fewer total sites. Again, there is no explicit chronology for these records, we need to pull down the complete download for these records, but we begin to get a sense of what kind of data we have.
+
+### 3.4. Pulling in `sample()` data
+
+Because sample data adds a lot of overhead (for this pollen data, the object that includes the dataset with samples is 20 times larger than the `dataset` alone), we try to call `get_downloads()` only after we've done our preliminary filtering. After `get_datasets()` you have enough information to filter based on location, time bounds and dataset type. When we move to `get_download()` we can do more fine-tuned filtering at the analysis unit or taxon level.
+
+The following call can take some time, but we've frozen the object as an RDS data file. You can run this command on your own, and let it run for a bit, or you can just load the object in.
+
+```{r taxa}
+## This line is commented out because we've already run it for you.
+## italy_dl <- italy_records %>% get_downloads(all_data = TRUE)
+## saveRDS(italy_dl, "data/itDownload.RDS")
+italy_dl <- readRDS("data/itDownload.RDS")
+```
+
+Once we've downloaded, we now have information for each site about all the associated collection units, the datasets, and, for each dataset, all the samples associated with the datasets. To extract all the samples we can call:
+
+```{r allSamples}
+allSamp <- samples(italy_dl)
+```
+
+When we've done this, we get a `data.frame` that is `r nrow(allSamp)` rows long and `r ncol(allSamp)` columns wide. The reason the table is so wide is that we are returning data in a **long** format. Each row contains all the information you should need to properly interpret it:
+
+```{r colNamesAllSamp, echo = FALSE}
+colnames(allSamp)
+```
+
+For some dataset types or analyses, some of these columns may not be needed, however, for other dataset types they may be critically important. To allow the `neotoma2` package to be as useful as possible for the community we've included as many as we can.
+
+#### 3.4.1. Extracting Taxa {.tabset}
+
+If you want to know what taxa we have in the record you can use the helper function `taxa()` on the sites object. The `taxa()` function gives us not only the unique taxa, but two additional columns -- `sites` and `samples` -- that tell us how many sites the taxa appear in, and how many samples the taxa appear in, to help us better understand how common individual taxa are.
+
+##### 3.4.1.1. Code
+
+```{r taxa2, eval=FALSE}
+neotomatx <- neotoma2::taxa(italy_dl)
+```
+
+##### 3.4.1.2. Results
+
+```{r taxaprint, echo=FALSE, message=FALSE}
+neotomatx <- neotoma2::taxa(italy_dl)
+neotomatx %>%
+ DT::datatable(data = head(neotomatx, n = 20), rownames = FALSE,
+ options = list(scrollX = "100%", dom = 't'))
+```
+
+#### 3.4.2. Understanding Taxonomies in Neotoma {-}
+
+Taxonomies in Neotoma are not as straightforward as we might expect. Taxonomic identification in paleoecology can be complex, impacted by the morphology of the object we are trying to identify, the condition of the palynomorph, the expertise of the analyst, and many other conditions. You can read more about concepts of taxonomy within Neotoma in the Neotoma Manual's [section on Taxonomic concepts](https://open.neotomadb.org/manual/database-design-concepts.html#taxonomy-and-synonymy).
+
+We use the unique identifiers (*e.g.*, `taxonid`, `siteid`, `analysisunitid`) throughout the package, since they help us to link between records. The `taxonid` values returned by the `taxa()` call can be linked to the `taxonid` column in the `samples()` table. This allows us to build taxon harmonization tables if we choose to. You may also note that the `taxonname` is in the field `variablename`. Individual sample counts are reported in Neotoma as [`variables`](https://open.neotomadb.org/manual/taxonomy-related-tables-1.html#Variables). A "variable" may be either a species, something like laboratory measurements, or a non-organic proxy, like charcoal or XRF measurements, and includes the units of measurement and the value.
+
+#### 3.4.3. Simple Harmonization {.tabset}
+
+Let's say we want all samples from which *Pinus* taxa have been reported to be grouped together into one pseudo-taxon called *Pinus-undiff*. **NOTE**, this is not an ecologically useful grouping, but used for illustration.
+
+There are several ways of grouping taxa, either directly by exporting the file and editing each individual cell, or by creating an external "harmonization" table (which we did in the prior `neotoma` package). First, lets look for how many different ways *Pinus* appears in these records. We can use the function `str_detect()` from the `stringr` package to look for patterns, and then return either `TRUE` or `FALSE` when the string is detected:
+
+```{r echo = FALSE}
+# How many different "Pinus" taxa have been identified?
+neotomatx %>%
+ filter(stringr::str_detect(variablename, "Pinus"))
+```
+
+We can harmonize taxon by taxon a number of different ways. One way would be to get every instance of a *Pinus* taxon and just change them directly. Here we are taking the column `variablename` from the `allSamp` object (this is where the count data is). The square brackets are telling us which rows we're changing, here only rows where we detect `"Pinus"` in the variable name. For each of those rows, in that column, we assign the value `"Pinus undiff"`:
+
+```{r echo = FALSE, eval=FALSE}
+# Don't run this!
+allSamp$variablename[stringr::str_detect(allSamp$variablename, "Pinus")] <- "Pinus undiff."
+```
+
+There were originally `r sum(stringr::str_detect(neotomatx$variablename, "Pinus.*"))` different taxa identified as being within the genus *Pinus* (including *Pinus*., *Pinus strobus*, and *Pinus banksiana/P. resinosa*). The above code reduces them all to a single taxonomic group *Pinus undiff*.
+
+Note that this changes *Pinus* in the `allSamp` object _only_, not in any of the downloaded objects. If we were to call `samples()` again, the taxonomy would return to its original form.
+
+A second way to harmonize taxa is to use an external table, which is especially useful if we want to have an artifact of our choices. For example, a table of pairs (what we want changed, and the name we want it replaced with) can be generated, and it can include regular expressions (if we choose):
+
+| original | replacement |
+| -------- | ----------- |
+| Pinus.* | Pinus-undiff |
+| Picea.* | Picea-undiff |
+| Tamarindus.* | Tamarindus-undiff |
+| Quercus.* | Quercus-undiff |
+| ... | ... |
+
+We can get the list of original names directly from the `taxa()` call, applied to a `sites` object that contains samples, and then export it using `write.csv()`.
+
+```{r countbySitesSamples, eval=FALSE}
+taxaplots <- taxa(italy_dl)
+# Save the taxon list to file so we can edit it subsequently.
+readr::write_csv(taxaplots, "data/mytaxontable.csv")
+```
+
+#### Looking at the Taxonomic Structure {.tabset}
+
+The `taxa` function returns all our taxonomic information, and it provides some additional information, the columns `samples` and `sites` which record the number of samples across all datasets that contain the taxon, and the number of sites with the taxon. The plot below shows the relationship between samples and sites, which we would expect to be somewhat skewed, as it is.
+
+##### 3.4.3.1. Code
+
+```{r PlotTaxonCountsFirst, fig.cap="**Figure**. *A plot of the number of sites a taxon appears in, against the number of samples a taxon appears in.*", eval=FALSE}
+taxaplots <- taxa(italy_dl)
+ggplot(data = taxaplots, aes(x = sites, y = samples)) +
+ geom_point() +
+ stat_smooth(method = 'glm',
+ method.args = list(family = 'poisson')) +
+ xlab("Number of Sites") +
+ ylab("Number of Samples") +
+ theme_bw()
+```
+
+##### 3.4.3.2. Result
+
+```{r PlotTaxonCounts, echo=FALSE, fig.cap="**Figure**. *A plot of the number of sites a taxon appears in, against the number of samples a taxon appears in.*", message=FALSE}
+taxaplots <- taxa(italy_dl)
+ggplot(data = taxaplots, aes(x = sites, y = samples)) +
+ geom_point() +
+ stat_smooth(method = 'glm',
+ method.args = list(family = 'poisson')) +
+ xlab("Number of Sites") +
+ ylab("Number of Samples") +
+ theme_bw()
+```
+
+#### 3.4.4. Editing the Taxonomy Table {-}
+
+The plot (above) is mostly for illustration, but we can see, as a sanity check, that the relationship is as we'd expect. Here, each point represents a separate taxon, roughly, so there is a large density of points (taxa) that plot in the lower left section of the figure, and fewer points in the upper right. This means that there are a large number of taxa that are rarely present and then several that are quite common.
+
+Exporting the taxon table to a `csv` file allows us to edit the table, filtering and selecting taxa based on contextual information, such as the `ecologicalgroup` or `taxongroup` to help you out. Once you've cleaned up the translation table you can load it in (try to save it under a different file name!), and then apply the transformation:
+
+```{r translationTable, message=FALSE, eval=FALSE}
+translation <- readr::read_csv("data/taxontable.csv")
+```
+
+I did a bunch of work here. . . Then we read it in.
+
+```{r translationDisplay, message=FALSE, echo = FALSE}
+translation <- readr::read_csv("data/taxontable.csv")
+DT::datatable(translation, rownames = FALSE,
+ options = list(scrollX = "100%", dom = 't'))
+```
+
+You can see we've changed some of the taxon names in the taxon table. To replace the names in the `samples()` output, we'll join the two tables using an `inner_join()` (meaning the `variablename` must appear in both tables for the result to be included), and then we're going to select only those elements of the sample tables that are relevant to our later analysis, using the `harmonizedname` column as our new name for the taxa:
+
+```{r joinTranslation, eval = FALSE}
+allSamp <- samples(italy_dl)
+
+allSamp <- allSamp %>%
+ inner_join(translation, by = c("variablename" = "variablename")) %>%
+ dplyr::select(!c("variablename")) %>%
+ group_by(siteid, sitename, harmonizedname,
+ sampleid, units, age,
+ agetype, depth, datasetid,
+ long, lat) %>%
+ summarise(value = sum(value), .groups='keep')
+```
+
+```{r harmonizationTableOut, message = FALSE, echo=FALSE}
+cleanSamp <- samples(italy_dl) %>%
+ inner_join(translation, by = c("variablename" = "variablename")) %>%
+ dplyr::select(!c("variablename")) %>%
+ group_by(siteid, sitename, harmonizedname,
+ sampleid, units, age,
+ agetype, depth, datasetid,
+ long, lat) %>%
+ summarise(value = sum(value), .groups='keep') %>%
+ arrange(sitename, age, harmonizedname)
+
+DT::datatable(head(cleanSamp, n = 50), rownames = FALSE,
+ options = list(scrollX = "100%", dom = 't'))
+```
+
+We now have a cleaner set of taxon names compared to the original table, both because of harmonization, and because we cleared out many of the non-**TRSH** (trees and shrubs) taxa from the harmonization table. Plotting the same set of taxa with the new harmonized names results in this plot:
+
+```{r origTableOut, message = FALSE, echo=FALSE, fig.cap="**Figure**. *The same site/sample plot as above, with with the new harmonized taxonomy. Note that the distribution of points along the curve is smoother, as we remove some of the taxonomic issues.*"}
+taxaplots <- samples(italy_dl) %>%
+ inner_join(translation, by = c("variablename" = "variablename")) %>%
+ dplyr::select(!c("variablename")) %>%
+ group_by(harmonizedname) %>%
+ summarise(sites = length(unique(siteid)), samples = length(unique(sampleid)), .groups='keep')
+
+ggplot(data = taxaplots, aes(x = sites, y = samples)) +
+ geom_point() +
+ stat_smooth(method = 'glm',
+ method.args = list(family = 'poisson')) +
+ xlab("Number of Sites") +
+ ylab("Number of Samples") +
+ theme_bw()
+```
+
+## 4. Simple Analytics
+
+### 4.1. Stratigraphic Plotting
+
+We can use packages like `rioja` to do stratigraphic plotting for a single record, but first we need to do some different data management. Although we could do harmonization again we're going to simply take the taxa at a single site and plot them in a stratigraphic diagram.
+
+```{r stratiplot, message = FALSE}
+# Get a particular site, in this case we are simply subsetting the
+# `italy_dl` object:
+plottingSite <- italy_dl[[1]]
+
+# Select only pollen measured using NISP and convert to a "wide"
+# table, using proportions. The first column will be "age".
+# This turns our "long" table into a "wide" table:
+counts <- plottingSite %>%
+ samples() %>%
+ toWide(ecologicalgroup = c("TRSH"),
+ unit = c("NISP"),
+ elementtypes = c("pollen"),
+ groupby = "age",
+ operation = "prop")
+
+counts <- counts[, colSums(counts > 0.01, na.rm = TRUE) > 5]
+```
+
+Hopefully the code is pretty straightforward. The `toWide()` function provides you with significant control over the taxa, units and other elements of your data before you get them into the wide matrix (`depth` by `taxon`) that most statistical tools such as the `vegan` package or `rioja` use.
+
+To plot the data we can use `rioja`'s `strat.plot()`, sorting the taxa using weighted averaging scores (`wa.order`). I've also added a CONISS plot to the edge of the the plot, to show how the new *wide* data frame works with distance metric funcitons.
+
+```{r plotStrigraph, message=FALSE, warning=FALSE}
+# Perform constrained clustering:
+clust <- rioja::chclust(dist(sqrt(counts)),
+ method = "coniss")
+
+# Plot the stratigraphic plot, converting proportions to percentages:
+plot <- rioja::strat.plot(counts[,-1] * 100, yvar = counts$age,
+ title = italy_dl[[1]]$sitename,
+ ylabel = "Calibrated Years BP",
+ xlabel = "Pollen (% of Trees and Shrubs)",
+ y.rev = TRUE,
+ clust = clust,
+ wa.order = "topleft",
+ scale.percent = TRUE)
+
+rioja::addClustZone(plot, clust, 4, col = "red")
+```
+
+## 5. Conclusion
+
+So, we've done a lot in this example. We've (1) searched for sites using site names and geographic parameters, (2) filtered results using temporal and spatial parameters, (3) obtained sample information for the selected datasets and (4) performed basic analysis including the use of climate data from rasters. Hopefully you can use these examples as templates for your own future work, or as a building block for something new and cool!
+
+## 6. Installing packages on your own {#localinstall}
+
+We use several packages in this document, including `leaflet`, `sf` and others. We load the packages using the `pacman` package, which will automatically install the packages if they do not currently exist in your set of packages.
+
+```{r setupFake, eval=FALSE}
+options(warn = -1)
+pacman::p_load(neotoma2, dplyr, ggplot2, sf, geojsonsf, leaflet, terra, DT, readr, stringr, rioja)
+```
+
+Note that R is sensitive to the order in which packages are loaded. Using `neotoma2::` tells R explicitly that you want to use the `neotoma2` package to run a particular function. So, for a function like `filter()`, which exists in other packages such as `dplyr`, you may see an error that looks like:
+
+```bash
+Error in UseMethod("filter") :
+ no applicable method for 'filter' applied to an object of class "sites"
+```
+
+In that case it's likely that the wrong package is trying to run `filter()`, and so explicitly adding `dplyr::` or `neotoma2::` in front of the function name (i.e., `neotoma2::filter()`)is good practice.
diff --git a/2023_INQUA_pollen_vertebrates/simple_workflow.html b/2023_INQUA_pollen_vertebrates/simple_workflow.html
new file mode 100644
index 0000000..32926cc
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/simple_workflow.html
@@ -0,0 +1,9245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A Simple Workflow
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This document is intended to act as a primer for the use of the new
+Neotoma R package, neotoma2. Some users may be working with
+this document as part of a workshop for which there is a Binder
+instance. The Binder instance will run RStudio in your browser, with all
+the required packages installed.
+
If you are using this workflow on its own, or want to use the package
+directly, the
+neotoma2 package is available on CRAN by running:
+
install.packages('neotoma2')
+library(neotoma2)
+
This workshop will also require other packages. To maintain the flow
+of this document we’ve placed instructions at the end of the document in
+the section labelled “Installing packages on
+your own”.
+
+
+
2. Learning Goals
+
In this tutorial you will learn how to:
+
+
Search for sites using site names and geographic parameters – Site Searches
+
Filter results using temporal and spatial parameters – Filter Results
+
Obtain sample information for the selected datasets – Sample Information
If you’re planning on working with Neotoma, please join us on Slack
+where we manage a channel specifically for questions about the R package
+(the #it_r channel, or #it_r_es for R help in Spanish and #it_r_jp in
+Japanese). You may also wish to join the Neotoma community through our
+Google Groups mailing lists; please see
+the information on our website to be added.
+
+
+
2.2 Understanding Data Structures in Neotoma
+
Data in the Neotoma database itself is structured as a set of linked
+relationships to express the different elements of paleoecological
+analysis: space and time, raw data, scientific methods and data models.
+Because paleoecology is such a broad discipline these relationships can
+be complex, and as such, the database itself is highly structured. If
+you want to better understand concepts within the database, you can read
+the Neotoma Database
+Manual, or take a look at the database schema
+itself.
+
In this workshop we want to highlight two key structural
+concepts:
+
+
The way data is structured conceptually within Neotoma (Sites,
+Collection Units and Datasets).
+
The way that this structure is adapted within the
+neotoma2 R package.
+
+
+
+
2.2.1 Data Structure in the Neotoma Database
+
+
+
Figure. The structure of
+sites, collection units, samples, and datasets within Neotoma. A site
+contains one or more collection units. Chronologies are associated with
+collection units. Samples with data of a common type (pollen, diatoms,
+vertebrate fauna) are assigned to a dataset.
+
+
Data in Neotoma is associated with sites – specific locations with
+lat/long coordinates.
+
Within a site, there may be one or more collection
+units – locations at which samples are physically collected
+within the site. For example, an archaeological site
+may have one or more collection units, pits within a
+broader dig site; a pollen sampling site on a lake may
+have multiple collection units – core sites within the
+lake basin. Collection units may have higher resolution GPS locations
+than the site location, but are considered to be part of the broader
+site.
+
Data within a collection unit is collected at
+various analysis
+units. Any data sampled within an analysis unit is grouped
+by the dataset type (charcoal, diatom, dinoflagellate, etc.) and
+aggregated into a sample.
+The set of samples for a collection unit of a particular dataset type is
+then assigned to a dataset.
+
+
+
2.2.2 Data Structures in neotoma2
+
+
+
Figure. Neotoma R Package
+UML diagram. Each box represents a data class within the package.
+Individual boxes show the class object, its name, its properties, and
+functions that can be applied to those objects. For example, a
+sites object has a property sites, that is a
+list. The function plotLeaflet() can be used on a
+sites object.
+
+
If we look at the UML
+diagram for the objects in the neotoma2 R package we
+can see that the data structure generally mimics the structure within
+the database itself. As we will see in the Site Searches section, we can search for
+these objects, and begin to manipulate them (in the Simple Analysis section).
+
It is important to note: within the neotoma2 R
+package, most objects are sites objects, they just contain
+more or less data. There are a set of functions that can operate on
+sites. As we add to sites objects, using
+get_datasets() or get_downloads(), we are able
+to use more of these helper functions.
+
+
+
2.2.3 Piping in R
+
Piping is a technique that simplifies the process of chaining
+multiple operations on a data object. It involves using either of these
+operators: |> or %>%. |>
+is a base R operator while %>% comes from the
+tidyverse ecosystem in R. In neotoma2 we use
+%>%.
+
The pipe operator works as a real-life pipe, which carries water from
+one location to another. In programming, the output of the function on
+the left-hand side of the pipe is taken as the initial argument for the
+function on the right-hand side of the pipe. It helps by making code
+easier to write and read. Additionally, it reduces the number of
+intermediate objects created during data processing, which can make code
+more memory-efficient and faster.
+
Without using pipes you can use the neotoma2 R package
+to retrieve a site and then plot it by doing:
+
# Retrieve the site
+plot_site <- neotoma2::get_sites(sitename = "%Lago%")
+# Plot the site
+neotoma2::plotLeaflet(object = plot_site)
+
This would create a variable plot_site that we will not
+need any more, but it was necessary so that we could pass it to the
+plotLeaflet function.
+
With the pipe (%>%) we do not need to create the
+variable, we can just rewrite our code. Notice that
+plotLeaflet() doesn’t need the object argument
+because the response of get_sites(sitename = "%Lago%") gets
+passed directly into the function.
+
+
2.2.3.1. Code
+
# get_sites and pipe. The `object` parameter for plotLeaflet will be the
+# result of the `get_sites()` function.
+get_sites(sitename = "%Lago%") %>%
+ plotLeaflet()
+
+
+
2.2.3.2. Result
+
+
+
+
+
+
+
3. Site Searches
+
+
3.1. get_sites()
+
There are several ways to find sites in neotoma2, but we
+think of sites as being spatial objects primarily. They
+have names, locations, and are found within the context of geopolitical
+units, but within the API and the package, the site itself does not have
+associated information about taxa, dataset types or ages. It is simply
+the container into which we add that information. So, when we search for
+sites we can search by:
+
+
+
+
+
+
+
+
Parameter
+
Description
+
+
+
+
+
sitename
+
A valid site name (case insensitive) using % as a
+wildcard.
+
+
+
siteid
+
A unique numeric site id from the Neotoma Database
+
+
+
loc
+
A bounding box vector, geoJSON or WKT string.
+
+
+
altmin
+
Lower altitude bound for sites.
+
+
+
altmax
+
Upper altitude bound for site locations.
+
+
+
database
+
The constituent database from which the records are pulled.
+
+
+
datasettype
+
The kind of dataset (see get_tables(datasettypes))
+
+
+
datasetid
+
Unique numeric dataset identifier in Neotoma
+
+
+
doi
+
A valid dataset DOI in Neotoma
+
+
+
gpid
+
A unique numeric identifier, or text string identifying a
+geopolitical unit in Neotoma
+
+
+
keywords
+
Unique sample keywords for records in Neotoma.
+
+
+
contacts
+
A name or numeric id for individuals associuated with sites.
+
+
+
taxa
+
Unique numeric identifiers or taxon names associated with
+sites.
+
+
+
+
All sites in Neotoma contain one or more datasets. It’s worth noting
+that the results of these search parameters may be slightly unexpected.
+For example, searching for sites by sitename, latitude, or altitude will
+return all of the datasets for the particular site. Searching for terms
+such as datasettype, datasetid or taxa will return the site, but the
+only datasets returned will be those matching the dataset-specific
+search terms. We’ll see this later.
+
+
3.1.1. Site names:
+sitename="%Lago%"
+
We may know exactly what site we’re looking for (“Lago Grande di
+Monticchio”), or have an approximate guess for the site name (for
+example, we know it’s something like “Lago Grande”, or “Grande Lago
+Grande”, but we’re not sure how it was entered specifically), or we may
+want to search all sites that have a specific term, for example,
+Lago.
+
We use the general format: get_sites(sitename="%Lago%")
+for searching by name.
+
PostgreSQL (and the API) uses the percent sign as a wildcard. So
+"%Lago%" would pick up “Lago Grande di Monticchio”
+for us (and picks up “Lago di Martignano” and “Lago Padule”). Note that
+the search query is also case insensitive, so you could simply write
+"%LAGO%".
The original neotoma package used a bounding box for
+locations, structured as a vector of latitude and longitude values:
+c(xmin, ymin, xmax, ymax). The neotoma2 R
+package supports both this simple bounding box, but also more complex
+spatial objects, using the sf package.
+Using the sf package allows us to more easily work with
+raster and polygon data in R, and to select sites from more complex
+spatial objects. The loc parameter works with the simple
+vector, WKT, geoJSON objects and native
+sf objects in R.
+
As an example of searching for sites using a location, we’ve created
+a rough representation of Italy as a polygon. To work with this spatial
+object in R we also transformed the geoJSON element to an
+object for the sf package. There are many other tools to
+work with spatial objects in R. Regardless of how you get the data into
+R, neotoma2 works with almost all objects in the
+sf package.
+
geoJSON <- '{"coordinates":
+ [[
+ [8.22, 44.13],
+ [12.44, 41.72],
+ [15.86, 37.82],
+ [18.61, 39.99],
+ [12.20, 45.39],
+ [13.62, 45.86],
+ [13.45, 46.46],
+ [12.21, 47.11],
+ [10.41, 46.69],
+ [6.99, 45.97],
+ [6.87, 44.34],
+ [8.22, 44.13]
+ ]],
+ "type":"Polygon"}'
+
+italy_sf <- geojsonsf::geojson_sf(geoJSON)
+
+# Note here we use the `all_data` flag to capture all the sites within the polygon.
+# We're using `all_data` here because we know that the site information is relatively small
+# for Italy. If we were working in a new area or with a new search we would limit the
+# search size.
+italy_sites <- neotoma2::get_sites(loc = italy_sf, all_data = TRUE)
+
You can always simply plot() the sites
+objects, but you will lose some of the geographic context. The
+plotLeaflet() function returns a leaflet()
+map, and allows you to further customize it, or add additional spatial
+data (like our original bounding polygon, sa_sf, which
+works directly with the R leaflet package):
+
+
3.1.2.1. Code
+
neotoma2::plotLeaflet(italy_sites) %>%
+ leaflet::addPolygons(map = .,
+ data = italy_sf,
+ color = "green")
+
+
+
3.1.2.2. Result
+
+
+
+
+
+
3.1.3. Site Helpers
+
If we look at the data
+structure diagram for the objects in the neotoma2 R
+package we can see that there are a set of functions that can operate on
+sites. As we retrieve more information for
+sites objects, using get_datasets() or
+get_downloads(), we are able to use more of these helper
+functions.
+
As it is, we can take advantage of functions like
+summary() to get a more complete sense of the types of data
+we have in italy_sites. The following code gives the
+summary table. We do some R magic here to change the way the data is
+displayed (turning it into a DT::datatable()
+object), but the main piece is the summary() call.
+
+
3.1.3.1. Code
+
# Give information about the sites themselves, site names &cetera.
+neotoma2::summary(italy_sites)
+# Give the unique identifiers for sites, collection units and datasets found at those sites.
+neotoma2::getids(italy_sites)
+
+
+
3.1.3.2. Result
+
+
+
In this document we list only the first 10 records (there are more,
+you can use length(datasets(italy_sites)) to see how many
+datasets you’ve got). We can see that there are no chronologies
+associated with the site objects. This is because, at
+present, we have not pulled in the dataset information we
+need. In Neotoma, a chronology is associated with a collection unit (and
+that metadata is pulled by get_datasets() or
+get_downloads()). All we know from get_sites()
+are the kinds of datasets we have and the location of the sites that
+contain the datasets.
+
+
+
+
+
3.2. Searching for datasets:
+
Within Neotoma, collection units and datasets are contained within
+sites. Similarly, a sites object contains
+collectionunits which contain datasets. From
+the table above (Result tab in Section 3.1.3.2) we can see that some of
+the sites we’ve looked at contain pollen records, some contain
+geochronologic data and some contain other dataset types. We could write
+something like this: table(summary(italy_sites)$types) to
+see the different datasettypes and their counts.
+
With a sites object we can directly call
+get_datasets() to pull in more metadata about the datasets.
+The get_datasets() method also supports any of the search
+terms listed above in the Site Search
+section. At any time we can use datasets() to get more
+information about any datasets that a sites object may
+contain. Compare the output of datasets(italy_sites) to the
+output of a similar call using the following:
+
+
3.2.1. Code
+
# This is slow, because there's a lot of sites!
+# italy_datasets <- neotoma2::get_datasets(italy_sites, all_data = TRUE)
+
+italy_datasets <- neotoma2::get_datasets(loc = italy_sf, datasettype = "pollen", all_data = TRUE)
+
+datasets(italy_datasets)
+
+
+
3.2.2. Result
+
+
+
You can see that this provides information only about the specific
+dataset, not the site! For a more complete record we can join site
+information from summary() to dataset information using
+datasets() using the getids() function which
+links sites, and all the collection units and datasets they contain.
+
+
+
+
3.3. Filter Records
+
If we choose to pull in information about only a single dataset type,
+or if there is additional filtering we want to do before we download the
+data, we can use the filter() function. For example, if we
+only want sedimentary pollen records (as opposed to pollen surface
+samples), and want records with known chronologies, we can filter by
+datasettype and by the presence of an
+age_range_young, which would indicate that there is a
+chronology that defines bounds for ages within the record.
+
+
3.3.1. Code
+
italy_records <- italy_datasets %>%
+ neotoma2::filter(!is.na(age_range_young))
+
+neotoma2::summary(italy_records)
+
+# We've removed records, so the new object should be shorter than the original.
+length(italy_records) < length(italy_datasets)
+
+
+
3.3.2. Result
+
+
+
We can see now that the data table looks different (comparing it to
+the table above), and there are fewer total
+sites. Again, there is no explicit chronology for these records, we need
+to pull down the complete download for these records, but we begin to
+get a sense of what kind of data we have.
+
+
+
+
3.4. Pulling in sample() data
+
Because sample data adds a lot of overhead (for this pollen data, the
+object that includes the dataset with samples is 20 times larger than
+the dataset alone), we try to call
+get_downloads() only after we’ve done our preliminary
+filtering. After get_datasets() you have enough information
+to filter based on location, time bounds and dataset type. When we move
+to get_download() we can do more fine-tuned filtering at
+the analysis unit or taxon level.
+
The following call can take some time, but we’ve frozen the object as
+an RDS data file. You can run this command on your own, and let it run
+for a bit, or you can just load the object in.
+
## This line is commented out because we've already run it for you.
+## italy_dl <- italy_records %>% get_downloads(all_data = TRUE)
+## saveRDS(italy_dl, "data/itDownload.RDS")
+italy_dl <- readRDS("data/itDownload.RDS")
+
Once we’ve downloaded, we now have information for each site about
+all the associated collection units, the datasets, and, for each
+dataset, all the samples associated with the datasets. To extract all
+the samples we can call:
+
allSamp <- samples(italy_dl)
+
When we’ve done this, we get a data.frame that is 266926
+rows long and 37 columns wide. The reason the table is so wide is that
+we are returning data in a long format. Each row
+contains all the information you should need to properly interpret
+it:
For some dataset types or analyses, some of these columns may not be
+needed, however, for other dataset types they may be critically
+important. To allow the neotoma2 package to be as useful as
+possible for the community we’ve included as many as we can.
+
+
3.4.1. Extracting Taxa
+
If you want to know what taxa we have in the record you can use the
+helper function taxa() on the sites object. The
+taxa() function gives us not only the unique taxa, but two
+additional columns – sites and samples – that
+tell us how many sites the taxa appear in, and how many samples the taxa
+appear in, to help us better understand how common individual taxa
+are.
+
+
3.4.1.1. Code
+
neotomatx <- neotoma2::taxa(italy_dl)
+
+
+
3.4.1.2. Results
+
+
+
+
+
+
3.4.2. Understanding Taxonomies in Neotoma
+
Taxonomies in Neotoma are not as straightforward as we might expect.
+Taxonomic identification in paleoecology can be complex, impacted by the
+morphology of the object we are trying to identify, the condition of the
+palynomorph, the expertise of the analyst, and many other conditions.
+You can read more about concepts of taxonomy within Neotoma in the
+Neotoma Manual’s section
+on Taxonomic concepts.
+
We use the unique identifiers (e.g., taxonid,
+siteid, analysisunitid) throughout the
+package, since they help us to link between records. The
+taxonid values returned by the taxa() call can
+be linked to the taxonid column in the
+samples() table. This allows us to build taxon
+harmonization tables if we choose to. You may also note that the
+taxonname is in the field variablename.
+Individual sample counts are reported in Neotoma as variables.
+A “variable” may be either a species, something like laboratory
+measurements, or a non-organic proxy, like charcoal or XRF measurements,
+and includes the units of measurement and the value.
+
+
+
3.4.3. Simple Harmonization
+
Let’s say we want all samples from which Pinus taxa have
+been reported to be grouped together into one pseudo-taxon called
+Pinus-undiff. NOTE, this is not an
+ecologically useful grouping, but used for illustration.
+
There are several ways of grouping taxa, either directly by exporting
+the file and editing each individual cell, or by creating an external
+“harmonization” table (which we did in the prior neotoma
+package). First, lets look for how many different ways Pinus
+appears in these records. We can use the function
+str_detect() from the stringr package to look
+for patterns, and then return either TRUE or
+FALSE when the string is detected:
+
## # A tibble: 15 × 11
+## # Groups: units, context, element, taxonid, symmetry, taxongroup,
+## # elementtype, variablename, ecologicalgroup [15]
+## units context element taxonid symmetry taxongroup elementtype variablename
+## <chr> <lgl> <chr> <int> <lgl> <chr> <chr> <chr>
+## 1 NISP NA pollen 212 NA Vascular pla… pollen Pinus subg.…
+## 2 NISP NA pollen 213 NA Vascular pla… pollen Pinus subg.…
+## 3 NISP NA pollen 216 NA Vascular pla… pollen Pinus undif…
+## 4 NISP NA pollen 385 NA Vascular pla… pollen Pinus
+## 5 NISP NA pollen 1287 NA Vascular pla… pollen Pinus sylve…
+## 6 NISP NA pollen 3426 NA Vascular pla… pollen Pinus cembra
+## 7 NISP NA pollen 4620 NA Vascular pla… pollen Pinus sylve…
+## 8 NISP NA pollen 4626 NA Vascular pla… pollen Pinus cembr…
+## 9 NISP NA pollen 4630 NA Vascular pla… pollen Pinus halep…
+## 10 NISP NA pollen 5517 NA Vascular pla… pollen Pinus pinas…
+## 11 NISP NA pollen 5560 NA Vascular pla… pollen Pinus mugo
+## 12 NISP NA pollen 23835 NA Vascular pla… pollen Pinus sp.
+## 13 NISP NA pollen 46277 NA Vascular pla… pollen Pinus cf. P…
+## 14 NISP NA pollen 46278 NA Vascular pla… pollen Pinus sylve…
+## 15 NISP NA stomate 385 NA Vascular pla… stomate Pinus
+## # ℹ 3 more variables: ecologicalgroup <chr>, samples <int>, sites <int>
+
We can harmonize taxon by taxon a number of different ways. One way
+would be to get every instance of a Pinus taxon and just change
+them directly. Here we are taking the column variablename
+from the allSamp object (this is where the count data is).
+The square brackets are telling us which rows we’re changing, here only
+rows where we detect "Pinus" in the variable name. For each
+of those rows, in that column, we assign the value
+"Pinus undiff":
+
There were originally 15 different taxa identified as being within
+the genus Pinus (including Pinus., Pinus
+strobus, and Pinus banksiana/P. resinosa). The above code
+reduces them all to a single taxonomic group Pinus undiff.
+
Note that this changes Pinus in the allSamp
+object only, not in any of the downloaded objects. If we were
+to call samples() again, the taxonomy would return to its
+original form.
+
A second way to harmonize taxa is to use an external table, which is
+especially useful if we want to have an artifact of our choices. For
+example, a table of pairs (what we want changed, and the name we want it
+replaced with) can be generated, and it can include regular expressions
+(if we choose):
+
+
+
+
original
+
replacement
+
+
+
+
+
Pinus.*
+
Pinus-undiff
+
+
+
Picea.*
+
Picea-undiff
+
+
+
Tamarindus.*
+
Tamarindus-undiff
+
+
+
Quercus.*
+
Quercus-undiff
+
+
+
…
+
…
+
+
+
+
We can get the list of original names directly from the
+taxa() call, applied to a sites object that
+contains samples, and then export it using write.csv().
+
taxaplots <- taxa(italy_dl)
+# Save the taxon list to file so we can edit it subsequently.
+readr::write_csv(taxaplots, "data/mytaxontable.csv")
+
+
+
Looking at the Taxonomic Structure
+
The taxa function returns all our taxonomic information,
+and it provides some additional information, the columns
+samples and sites which record the number of
+samples across all datasets that contain the taxon, and the number of
+sites with the taxon. The plot below shows the relationship between
+samples and sites, which we would expect to be somewhat skewed, as it
+is.
Figure. A plot of the
+number of sites a taxon appears in, against the number of samples a
+taxon appears in.
+
+
+
+
+
3.4.4. Editing the Taxonomy Table
+
The plot (above) is mostly for illustration, but we can see, as a
+sanity check, that the relationship is as we’d expect. Here, each point
+represents a separate taxon, roughly, so there is a large density of
+points (taxa) that plot in the lower left section of the figure, and
+fewer points in the upper right. This means that there are a large
+number of taxa that are rarely present and then several that are quite
+common.
+
Exporting the taxon table to a csv file allows us to
+edit the table, filtering and selecting taxa based on contextual
+information, such as the ecologicalgroup or
+taxongroup to help you out. Once you’ve cleaned up the
+translation table you can load it in (try to save it under a different
+file name!), and then apply the transformation:
I did a bunch of work here. . . Then we read it in.
+
+
+
You can see we’ve changed some of the taxon names in the taxon table.
+To replace the names in the samples() output, we’ll join
+the two tables using an inner_join() (meaning the
+variablename must appear in both tables for the result to
+be included), and then we’re going to select only those elements of the
+sample tables that are relevant to our later analysis, using the
+harmonizedname column as our new name for the taxa:
We now have a cleaner set of taxon names compared to the original
+table, both because of harmonization, and because we cleared out many of
+the non-TRSH (trees and shrubs) taxa from the
+harmonization table. Plotting the same set of taxa with the new
+harmonized names results in this plot:
+
+
+
Figure. The same
+site/sample plot as above, with with the new harmonized taxonomy. Note
+that the distribution of points along the curve is smoother, as we
+remove some of the taxonomic issues.
+
+
+
+
+
+
4. Simple Analytics
+
+
4.1. Stratigraphic Plotting
+
We can use packages like rioja to do stratigraphic
+plotting for a single record, but first we need to do some different
+data management. Although we could do harmonization again we’re going to
+simply take the taxa at a single site and plot them in a stratigraphic
+diagram.
+
# Get a particular site, in this case we are simply subsetting the
+# `italy_dl` object:
+plottingSite <- italy_dl[[1]]
+
+# Select only pollen measured using NISP and convert to a "wide"
+# table, using proportions. The first column will be "age".
+# This turns our "long" table into a "wide" table:
+counts <- plottingSite %>%
+ samples() %>%
+ toWide(ecologicalgroup = c("TRSH"),
+ unit = c("NISP"),
+ elementtypes = c("pollen"),
+ groupby = "age",
+ operation = "prop")
+
+counts <- counts[, colSums(counts > 0.01, na.rm = TRUE) > 5]
+
Hopefully the code is pretty straightforward. The
+toWide() function provides you with significant control
+over the taxa, units and other elements of your data before you get them
+into the wide matrix (depth by taxon) that
+most statistical tools such as the vegan package or
+rioja use.
+
To plot the data we can use rioja’s
+strat.plot(), sorting the taxa using weighted averaging
+scores (wa.order). I’ve also added a CONISS plot to the
+edge of the the plot, to show how the new wide data frame works
+with distance metric funcitons.
+
# Perform constrained clustering:
+clust <- rioja::chclust(dist(sqrt(counts)),
+ method = "coniss")
+
+# Plot the stratigraphic plot, converting proportions to percentages:
+plot <- rioja::strat.plot(counts[,-1] * 100, yvar = counts$age,
+ title = italy_dl[[1]]$sitename,
+ ylabel = "Calibrated Years BP",
+ xlabel = "Pollen (% of Trees and Shrubs)",
+ y.rev = TRUE,
+ clust = clust,
+ wa.order = "topleft",
+ scale.percent = TRUE)
+
+rioja::addClustZone(plot, clust, 4, col = "red")
+
+
+
+
+
5. Conclusion
+
So, we’ve done a lot in this example. We’ve (1) searched for sites
+using site names and geographic parameters, (2) filtered results using
+temporal and spatial parameters, (3) obtained sample information for the
+selected datasets and (4) performed basic analysis including the use of
+climate data from rasters. Hopefully you can use these examples as
+templates for your own future work, or as a building block for something
+new and cool!
+
+
+
6. Installing packages on your own
+
We use several packages in this document, including
+leaflet, sf and others. We load the packages
+using the pacman package, which will automatically install
+the packages if they do not currently exist in your set of packages.
Note that R is sensitive to the order in which packages are loaded.
+Using neotoma2:: tells R explicitly that you want to use
+the neotoma2 package to run a particular function. So, for
+a function like filter(), which exists in other packages
+such as dplyr, you may see an error that looks like:
+
Error in UseMethod("filter") :
+ no applicable method for 'filter' applied to an object of class "sites"
+
In that case it’s likely that the wrong package is trying to run
+filter(), and so explicitly adding dplyr:: or
+neotoma2:: in front of the function name (i.e.,
+neotoma2::filter())is good practice.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/2023_INQUA_pollen_vertebrates/simple_workflow.md b/2023_INQUA_pollen_vertebrates/simple_workflow.md
new file mode 100644
index 0000000..87dfaca
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/simple_workflow.md
@@ -0,0 +1,556 @@
+---
+title: "A Simple Workflow"
+author: "Simon Goring, Socorro Dominguez Vidaña"
+date: "2023-07-13"
+output:
+ html_document:
+ code_folding: show
+ fig_caption: yes
+ keep_md: yes
+ self_contained: yes
+ theme: readable
+ toc: yes
+ toc_float: yes
+ css: "text.css"
+ pdf_document:
+ pandoc_args: "-V geometry:vmargin=1in -V geometry:hmargin=1in"
+---
+
+
+
+## 1. Introduction
+
+This document is intended to act as a primer for the use of the new Neotoma R package, `neotoma2`. Some users may be working with this document as part of a workshop for which there is a Binder instance. The Binder instance will run RStudio in your browser, with all the required packages installed.
+
+If you are using this workflow on its own, or want to use the package directly, [the `neotoma2` package](https://github.com/NeotomaDB/neotoma2) is available on CRAN by running:
+
+```r
+install.packages('neotoma2')
+library(neotoma2)
+```
+
+This workshop will also require other packages. To maintain the flow of this document we've placed instructions at the end of the document in the section labelled "[Installing packages on your own](#localinstall)".
+
+## 2. Learning Goals
+
+In this tutorial you will learn how to:
+
+* Search for sites using site names and geographic parameters -- [Site Searches](#3-site-searches)
+* Filter results using temporal and spatial parameters -- [Filter Results](#33-filter-records-tabset)
+* Obtain sample information for the selected datasets -- [Sample Information](#34-pulling-in-sample-data)
+* Perform basic Stratigraphic Plotting -- [Basic Analysis](#4-simple-analytics)
+
+### 2.1. Getting Help with Neotoma
+
+If you're planning on working with Neotoma, please join us on [Slack](https://join.slack.com/t/neotomadb/shared_invite/zt-cvsv53ep-wjGeCTkq7IhP6eUNA9NxYQ) where we manage a channel specifically for questions about the R package (the #it_r channel, or #it_r_es for R help in Spanish and #it_r_jp in Japanese). You may also wish to join the Neotoma community through our Google Groups mailing lists; please [see the information on our website](https://www.neotomadb.org/about/join-the-neotoma-community) to be added.
+
+### 2.2 Understanding Data Structures in Neotoma
+
+Data in the Neotoma database itself is structured as a set of linked relationships to express the different elements of paleoecological analysis: space and time, raw data, scientific methods and data models. Because paleoecology is such a broad discipline these relationships can be complex, and as such, the database itself is highly structured. If you want to better understand concepts within the database, you can read the [Neotoma Database Manual](https://open.neotomadb.org/manual), or take a look at [the database schema itself](https://open.neotomadb.org/dbschema).
+
+In this workshop we want to highlight two key structural concepts:
+
+ 1. The way data is structured conceptually within Neotoma (Sites, Collection Units and Datasets).
+ 2. The way that this structure is adapted within the `neotoma2` R package.
+
+### 2.2.1 Data Structure in the Neotoma Database
+
+![**Figure**. *The structure of sites, collection units, samples, and datasets within Neotoma. A site contains one or more collection units. Chronologies are associated with collection units. Samples with data of a common type (pollen, diatoms, vertebrate fauna) are assigned to a dataset.*](images/site_collunit_dataset_rev.png){width=50%}
+
+
+Data in Neotoma is associated with sites -- specific locations with lat/long coordinates.
+
+Within a **site**, there may be one or more [**collection units**](https://open.neotomadb.org/manual/dataset-collection-related-tables-1.html#CollectionUnits) -- locations at which samples are physically collected within the site. For example, an archaeological **site** may have one or more **collection units**, pits within a broader dig site; a pollen sampling **site** on a lake may have multiple **collection units** -- core sites within the lake basin. Collection units may have higher resolution GPS locations than the site location, but are considered to be part of the broader site.
+
+Data within a **collection unit** is collected at various [**analysis units**](https://open.neotomadb.org/manual/sample-related-tables-1.html#AnalysisUnits). Any data sampled within an analysis unit is grouped by the dataset type (charcoal, diatom, dinoflagellate, etc.) and aggregated into a [**sample**](https://open.neotomadb.org/manual/sample-related-tables-1.html#Samples). The set of samples for a collection unit of a particular dataset type is then assigned to a [**dataset**](https://open.neotomadb.org/manual/dataset-collection-related-tables-1.html#Datasets).
+
+### 2.2.2 Data Structures in `neotoma2` {#222-data-structures-in-neotoma2}
+
+![**Figure**. *Neotoma R Package UML diagram. Each box represents a data class within the package. Individual boxes show the class object, its name, its properties, and functions that can be applied to those objects. For example, a `sites` object has a property `sites`, that is a list. The function `plotLeaflet()` can be used on a `sites` object.*](images/neotomaUML_as.svg)
+
+If we look at the [UML diagram](https://en.wikipedia.org/wiki/Unified_Modeling_Language) for the objects in the `neotoma2` R package we can see that the data structure generally mimics the structure within the database itself. As we will see in the [Site Searches section](#3-site-searches), we can search for these objects, and begin to manipulate them (in the [Simple Analysis section](#4-simple-analytics)).
+
+It is important to note: *within the `neotoma2` R package, most objects are `sites` objects, they just contain more or less data*. There are a set of functions that can operate on `sites`. As we add to `sites` objects, using `get_datasets()` or `get_downloads()`, we are able to use more of these helper functions.
+
+### 2.2.3 Piping in `R` {.tabset}
+
+Piping is a technique that simplifies the process of chaining multiple operations on a data object. It involves using either of these operators: `|>` or `%>%`. `|>` is a base R operator while `%>%` comes from the `tidyverse` ecosystem in R. In `neotoma2` we use `%>%`.
+
+The pipe operator works as a real-life pipe, which carries water from one location to another. In programming, the output of the function on the left-hand side of the pipe is taken as the initial argument for the function on the right-hand side of the pipe. It helps by making code easier to write and read. Additionally, it reduces the number of intermediate objects created during data processing, which can make code more memory-efficient and faster.
+
+Without using pipes you can use the `neotoma2` R package to retrieve a site and then plot it by doing:
+
+```r
+# Retrieve the site
+plot_site <- neotoma2::get_sites(sitename = "%Lago%")
+# Plot the site
+neotoma2::plotLeaflet(object = plot_site)
+```
+
+This would create a variable `plot_site` that we will not need any more, but it was necessary so that we could pass it to the `plotLeaflet` function.
+
+With the pipe (`%>%`) we do not need to create the variable, we can just rewrite our code. Notice that `plotLeaflet()` doesn't need the `object` argument because the response of `get_sites(sitename = "%Lago%")` gets passed directly into the function.
+
+#### 2.2.3.1. Code
+
+
+```r
+# get_sites and pipe. The `object` parameter for plotLeaflet will be the
+# result of the `get_sites()` function.
+get_sites(sitename = "%Lago%") %>%
+ plotLeaflet()
+```
+
+#### 2.2.3.2. Result
+
+
+```{=html}
+
+
+```
+
+## 3. Site Searches
+
+### 3.1. `get_sites()`
+
+There are several ways to find sites in `neotoma2`, but we think of `sites` as being spatial objects primarily. They have names, locations, and are found within the context of geopolitical units, but within the API and the package, the site itself does not have associated information about taxa, dataset types or ages. It is simply the container into which we add that information. So, when we search for sites we can search by:
+
+| Parameter | Description |
+| --------- | ----------- |
+| sitename | A valid site name (case insensitive) using `%` as a wildcard. |
+| siteid | A unique numeric site id from the Neotoma Database |
+| loc | A bounding box vector, geoJSON or WKT string. |
+| altmin | Lower altitude bound for sites. |
+| altmax | Upper altitude bound for site locations. |
+| database | The constituent database from which the records are pulled. |
+| datasettype | The kind of dataset (see `get_tables(datasettypes)`) |
+| datasetid | Unique numeric dataset identifier in Neotoma |
+| doi | A valid dataset DOI in Neotoma |
+| gpid | A unique numeric identifier, or text string identifying a geopolitical unit in Neotoma |
+| keywords | Unique sample keywords for records in Neotoma. |
+| contacts | A name or numeric id for individuals associuated with sites. |
+| taxa | Unique numeric identifiers or taxon names associated with sites. |
+
+All sites in Neotoma contain one or more datasets. It's worth noting that the results of these search parameters may be slightly unexpected. For example, searching for sites by sitename, latitude, or altitude will return all of the datasets for the particular site. Searching for terms such as datasettype, datasetid or taxa will return the site, but the only datasets returned will be those matching the dataset-specific search terms. We'll see this later.
+
+#### 3.1.1. Site names: `sitename="%Lago%"` {.tabset}
+
+We may know exactly what site we're looking for ("Lago Grande di Monticchio"), or have an approximate guess for the site name (for example, we know it's something like "Lago Grande", or "Grande Lago Grande", but we're not sure how it was entered specifically), or we may want to search all sites that have a specific term, for example, *Lago*.
+
+We use the general format: `get_sites(sitename="%Lago%")` for searching by name.
+
+PostgreSQL (and the API) uses the percent sign as a wildcard. So `"%Lago%"` would pick up ["Lago Grande di Monticchio"](https://data.neotomadb.org/26607) for us (and picks up "Lago di Martignano" and "Lago Padule"). Note that the search query is also case insensitive, so you could simply write `"%LAGO%"`.
+
+##### 3.1.1.1. Code
+
+
+```r
+lac_sites <- neotoma2::get_sites(sitename = "%Lago %")
+plotLeaflet(lac_sites)
+```
+
+##### 3.1.1.2. Result
+
+
+```{=html}
+
+
+```
+
+#### 3.1.2. Location: `loc=c()` {.tabset}
+
+The original `neotoma` package used a bounding box for locations, structured as a vector of latitude and longitude values: `c(xmin, ymin, xmax, ymax)`. The `neotoma2` R package supports both this simple bounding box, but also more complex spatial objects, using the [`sf` package](https://r-spatial.github.io/sf/). Using the `sf` package allows us to more easily work with raster and polygon data in R, and to select sites from more complex spatial objects. The `loc` parameter works with the simple vector, [WKT](https://arthur-e.github.io/Wicket/sandbox-gmaps3.html), [geoJSON](http://geojson.io/#map=2/20.0/0.0) objects and native `sf` objects in R.
+
+As an example of searching for sites using a location, we've created a rough representation of Italy as a polygon. To work with this spatial object in R we also transformed the `geoJSON` element to an object for the `sf` package. There are many other tools to work with spatial objects in R. Regardless of how you get the data into R, `neotoma2` works with almost all objects in the `sf` package.
+
+
+```r
+geoJSON <- '{"coordinates":
+ [[
+ [8.22, 44.13],
+ [12.44, 41.72],
+ [15.86, 37.82],
+ [18.61, 39.99],
+ [12.20, 45.39],
+ [13.62, 45.86],
+ [13.45, 46.46],
+ [12.21, 47.11],
+ [10.41, 46.69],
+ [6.99, 45.97],
+ [6.87, 44.34],
+ [8.22, 44.13]
+ ]],
+ "type":"Polygon"}'
+
+italy_sf <- geojsonsf::geojson_sf(geoJSON)
+
+# Note here we use the `all_data` flag to capture all the sites within the polygon.
+# We're using `all_data` here because we know that the site information is relatively small
+# for Italy. If we were working in a new area or with a new search we would limit the
+# search size.
+italy_sites <- neotoma2::get_sites(loc = italy_sf, all_data = TRUE)
+```
+
+You can always simply `plot()` the `sites` objects, but you will lose some of the geographic context. The `plotLeaflet()` function returns a `leaflet()` map, and allows you to further customize it, or add additional spatial data (like our original bounding polygon, `sa_sf`, which works directly with the R `leaflet` package):
+
+##### 3.1.2.1. Code
+
+
+```r
+neotoma2::plotLeaflet(italy_sites) %>%
+ leaflet::addPolygons(map = .,
+ data = italy_sf,
+ color = "green")
+```
+
+##### 3.1.2.2. Result
+
+
+```{=html}
+
+
+```
+
+#### 3.1.3. Site Helpers {.tabset}
+
+If we look at the [data structure diagram](#222-data-structures-in-neotoma2) for the objects in the `neotoma2` R package we can see that there are a set of functions that can operate on `sites`. As we retrieve more information for `sites` objects, using `get_datasets()` or `get_downloads()`, we are able to use more of these helper functions.
+
+As it is, we can take advantage of functions like `summary()` to get a more complete sense of the types of data we have in `italy_sites`. The following code gives the summary table. We do some R magic here to change the way the data is displayed (turning it into a [`DT::datatable()`](https://rstudio.github.io/DT/) object), but the main piece is the `summary()` call.
+
+##### 3.1.3.1. Code
+
+
+```r
+# Give information about the sites themselves, site names &cetera.
+neotoma2::summary(italy_sites)
+# Give the unique identifiers for sites, collection units and datasets found at those sites.
+neotoma2::getids(italy_sites)
+```
+
+##### 3.1.3.2. Result
+
+
+```{=html}
+
+
+```
+
+In this document we list only the first 10 records (there are more, you can use `length(datasets(italy_sites))` to see how many datasets you've got). We can see that there are no chronologies associated with the `site` objects. This is because, at present, we have not pulled in the `dataset` information we need. In Neotoma, a chronology is associated with a collection unit (and that metadata is pulled by `get_datasets()` or `get_downloads()`). All we know from `get_sites()` are the kinds of datasets we have and the location of the sites that contain the datasets.
+
+### 3.2. Searching for datasets: {.tabset}
+
+Within Neotoma, collection units and datasets are contained within sites. Similarly, a `sites` object contains `collectionunits` which contain `datasets`. From the table above (Result tab in Section 3.1.3.2) we can see that some of the sites we've looked at contain pollen records, some contain geochronologic data and some contain other dataset types. We could write something like this: `table(summary(italy_sites)$types)` to see the different datasettypes and their counts.
+
+With a `sites` object we can directly call `get_datasets()` to pull in more metadata about the datasets. The `get_datasets()` method also supports any of the search terms listed above in the [Site Search](#3-site-searches) section. At any time we can use `datasets()` to get more information about any datasets that a `sites` object may contain. Compare the output of `datasets(italy_sites)` to the output of a similar call using the following:
+
+#### 3.2.1. Code
+
+
+```r
+# This is slow, because there's a lot of sites!
+# italy_datasets <- neotoma2::get_datasets(italy_sites, all_data = TRUE)
+
+italy_datasets <- neotoma2::get_datasets(loc = italy_sf, datasettype = "pollen", all_data = TRUE)
+
+datasets(italy_datasets)
+```
+
+#### 3.2.2. Result
+
+
+```{=html}
+
+
+```
+
+You can see that this provides information only about the specific dataset, not the site! For a more complete record we can join site information from `summary()` to dataset information using `datasets()` using the `getids()` function which links sites, and all the collection units and datasets they contain.
+
+### 3.3. Filter Records {.tabset}
+
+If we choose to pull in information about only a single dataset type, or if there is additional filtering we want to do before we download the data, we can use the `filter()` function. For example, if we only want sedimentary pollen records (as opposed to pollen surface samples), and want records with known chronologies, we can filter by `datasettype` and by the presence of an `age_range_young`, which would indicate that there is a chronology that defines bounds for ages within the record.
+
+#### 3.3.1. Code
+
+
+```r
+italy_records <- italy_datasets %>%
+ neotoma2::filter(!is.na(age_range_young))
+
+neotoma2::summary(italy_records)
+
+# We've removed records, so the new object should be shorter than the original.
+length(italy_records) < length(italy_datasets)
+```
+
+#### 3.3.2. Result
+
+
+```{=html}
+
+
+```
+
+We can see now that the data table looks different (comparing it to the [table above](#322-result)), and there are fewer total sites. Again, there is no explicit chronology for these records, we need to pull down the complete download for these records, but we begin to get a sense of what kind of data we have.
+
+### 3.4. Pulling in `sample()` data
+
+Because sample data adds a lot of overhead (for this pollen data, the object that includes the dataset with samples is 20 times larger than the `dataset` alone), we try to call `get_downloads()` only after we've done our preliminary filtering. After `get_datasets()` you have enough information to filter based on location, time bounds and dataset type. When we move to `get_download()` we can do more fine-tuned filtering at the analysis unit or taxon level.
+
+The following call can take some time, but we've frozen the object as an RDS data file. You can run this command on your own, and let it run for a bit, or you can just load the object in.
+
+
+```r
+## This line is commented out because we've already run it for you.
+## italy_dl <- italy_records %>% get_downloads(all_data = TRUE)
+## saveRDS(italy_dl, "data/itDownload.RDS")
+italy_dl <- readRDS("data/itDownload.RDS")
+```
+
+Once we've downloaded, we now have information for each site about all the associated collection units, the datasets, and, for each dataset, all the samples associated with the datasets. To extract all the samples we can call:
+
+
+```r
+allSamp <- samples(italy_dl)
+```
+
+When we've done this, we get a `data.frame` that is 266926 rows long and 37 columns wide. The reason the table is so wide is that we are returning data in a **long** format. Each row contains all the information you should need to properly interpret it:
+
+
+```
+## [1] "age" "agetype" "ageolder" "ageyounger"
+## [5] "chronologyid" "chronologyname" "units" "value"
+## [9] "context" "element" "taxonid" "symmetry"
+## [13] "taxongroup" "elementtype" "variablename" "ecologicalgroup"
+## [17] "analysisunitid" "sampleanalyst" "sampleid" "depth"
+## [21] "thickness" "samplename" "datasetid" "database"
+## [25] "datasettype" "age_range_old" "age_range_young" "datasetnotes"
+## [29] "siteid" "sitename" "lat" "long"
+## [33] "area" "sitenotes" "description" "elev"
+## [37] "collunitid"
+```
+
+For some dataset types or analyses, some of these columns may not be needed, however, for other dataset types they may be critically important. To allow the `neotoma2` package to be as useful as possible for the community we've included as many as we can.
+
+#### 3.4.1. Extracting Taxa {.tabset}
+
+If you want to know what taxa we have in the record you can use the helper function `taxa()` on the sites object. The `taxa()` function gives us not only the unique taxa, but two additional columns -- `sites` and `samples` -- that tell us how many sites the taxa appear in, and how many samples the taxa appear in, to help us better understand how common individual taxa are.
+
+##### 3.4.1.1. Code
+
+
+```r
+neotomatx <- neotoma2::taxa(italy_dl)
+```
+
+##### 3.4.1.2. Results
+
+
+```{=html}
+
+
+```
+
+#### 3.4.2. Understanding Taxonomies in Neotoma {-}
+
+Taxonomies in Neotoma are not as straightforward as we might expect. Taxonomic identification in paleoecology can be complex, impacted by the morphology of the object we are trying to identify, the condition of the palynomorph, the expertise of the analyst, and many other conditions. You can read more about concepts of taxonomy within Neotoma in the Neotoma Manual's [section on Taxonomic concepts](https://open.neotomadb.org/manual/database-design-concepts.html#taxonomy-and-synonymy).
+
+We use the unique identifiers (*e.g.*, `taxonid`, `siteid`, `analysisunitid`) throughout the package, since they help us to link between records. The `taxonid` values returned by the `taxa()` call can be linked to the `taxonid` column in the `samples()` table. This allows us to build taxon harmonization tables if we choose to. You may also note that the `taxonname` is in the field `variablename`. Individual sample counts are reported in Neotoma as [`variables`](https://open.neotomadb.org/manual/taxonomy-related-tables-1.html#Variables). A "variable" may be either a species, something like laboratory measurements, or a non-organic proxy, like charcoal or XRF measurements, and includes the units of measurement and the value.
+
+#### 3.4.3. Simple Harmonization {.tabset}
+
+Let's say we want all samples from which *Pinus* taxa have been reported to be grouped together into one pseudo-taxon called *Pinus-undiff*. **NOTE**, this is not an ecologically useful grouping, but used for illustration.
+
+There are several ways of grouping taxa, either directly by exporting the file and editing each individual cell, or by creating an external "harmonization" table (which we did in the prior `neotoma` package). First, lets look for how many different ways *Pinus* appears in these records. We can use the function `str_detect()` from the `stringr` package to look for patterns, and then return either `TRUE` or `FALSE` when the string is detected:
+
+
+```
+## # A tibble: 15 × 11
+## # Groups: units, context, element, taxonid, symmetry, taxongroup,
+## # elementtype, variablename, ecologicalgroup [15]
+## units context element taxonid symmetry taxongroup elementtype variablename
+##
+## 1 NISP NA pollen 212 NA Vascular pla… pollen Pinus subg.…
+## 2 NISP NA pollen 213 NA Vascular pla… pollen Pinus subg.…
+## 3 NISP NA pollen 216 NA Vascular pla… pollen Pinus undif…
+## 4 NISP NA pollen 385 NA Vascular pla… pollen Pinus
+## 5 NISP NA pollen 1287 NA Vascular pla… pollen Pinus sylve…
+## 6 NISP NA pollen 3426 NA Vascular pla… pollen Pinus cembra
+## 7 NISP NA pollen 4620 NA Vascular pla… pollen Pinus sylve…
+## 8 NISP NA pollen 4626 NA Vascular pla… pollen Pinus cembr…
+## 9 NISP NA pollen 4630 NA Vascular pla… pollen Pinus halep…
+## 10 NISP NA pollen 5517 NA Vascular pla… pollen Pinus pinas…
+## 11 NISP NA pollen 5560 NA Vascular pla… pollen Pinus mugo
+## 12 NISP NA pollen 23835 NA Vascular pla… pollen Pinus sp.
+## 13 NISP NA pollen 46277 NA Vascular pla… pollen Pinus cf. P…
+## 14 NISP NA pollen 46278 NA Vascular pla… pollen Pinus sylve…
+## 15 NISP NA stomate 385 NA Vascular pla… stomate Pinus
+## # ℹ 3 more variables: ecologicalgroup , samples , sites
+```
+
+We can harmonize taxon by taxon a number of different ways. One way would be to get every instance of a *Pinus* taxon and just change them directly. Here we are taking the column `variablename` from the `allSamp` object (this is where the count data is). The square brackets are telling us which rows we're changing, here only rows where we detect `"Pinus"` in the variable name. For each of those rows, in that column, we assign the value `"Pinus undiff"`:
+
+
+
+There were originally 15 different taxa identified as being within the genus *Pinus* (including *Pinus*., *Pinus strobus*, and *Pinus banksiana/P. resinosa*). The above code reduces them all to a single taxonomic group *Pinus undiff*.
+
+Note that this changes *Pinus* in the `allSamp` object _only_, not in any of the downloaded objects. If we were to call `samples()` again, the taxonomy would return to its original form.
+
+A second way to harmonize taxa is to use an external table, which is especially useful if we want to have an artifact of our choices. For example, a table of pairs (what we want changed, and the name we want it replaced with) can be generated, and it can include regular expressions (if we choose):
+
+| original | replacement |
+| -------- | ----------- |
+| Pinus.* | Pinus-undiff |
+| Picea.* | Picea-undiff |
+| Tamarindus.* | Tamarindus-undiff |
+| Quercus.* | Quercus-undiff |
+| ... | ... |
+
+We can get the list of original names directly from the `taxa()` call, applied to a `sites` object that contains samples, and then export it using `write.csv()`.
+
+
+```r
+taxaplots <- taxa(italy_dl)
+# Save the taxon list to file so we can edit it subsequently.
+readr::write_csv(taxaplots, "data/mytaxontable.csv")
+```
+
+#### Looking at the Taxonomic Structure {.tabset}
+
+The `taxa` function returns all our taxonomic information, and it provides some additional information, the columns `samples` and `sites` which record the number of samples across all datasets that contain the taxon, and the number of sites with the taxon. The plot below shows the relationship between samples and sites, which we would expect to be somewhat skewed, as it is.
+
+##### 3.4.3.1. Code
+
+
+```r
+taxaplots <- taxa(italy_dl)
+ggplot(data = taxaplots, aes(x = sites, y = samples)) +
+ geom_point() +
+ stat_smooth(method = 'glm',
+ method.args = list(family = 'poisson')) +
+ xlab("Number of Sites") +
+ ylab("Number of Samples") +
+ theme_bw()
+```
+
+##### 3.4.3.2. Result
+
+![**Figure**. *A plot of the number of sites a taxon appears in, against the number of samples a taxon appears in.*](simple_workflow_files/figure-html/PlotTaxonCounts-1.png)
+
+#### 3.4.4. Editing the Taxonomy Table {-}
+
+The plot (above) is mostly for illustration, but we can see, as a sanity check, that the relationship is as we'd expect. Here, each point represents a separate taxon, roughly, so there is a large density of points (taxa) that plot in the lower left section of the figure, and fewer points in the upper right. This means that there are a large number of taxa that are rarely present and then several that are quite common.
+
+Exporting the taxon table to a `csv` file allows us to edit the table, filtering and selecting taxa based on contextual information, such as the `ecologicalgroup` or `taxongroup` to help you out. Once you've cleaned up the translation table you can load it in (try to save it under a different file name!), and then apply the transformation:
+
+
+```r
+translation <- readr::read_csv("data/taxontable.csv")
+```
+
+I did a bunch of work here. . . Then we read it in.
+
+
+```{=html}
+
+
+```
+
+You can see we've changed some of the taxon names in the taxon table. To replace the names in the `samples()` output, we'll join the two tables using an `inner_join()` (meaning the `variablename` must appear in both tables for the result to be included), and then we're going to select only those elements of the sample tables that are relevant to our later analysis, using the `harmonizedname` column as our new name for the taxa:
+
+
+```r
+allSamp <- samples(italy_dl)
+
+allSamp <- allSamp %>%
+ inner_join(translation, by = c("variablename" = "variablename")) %>%
+ dplyr::select(!c("variablename")) %>%
+ group_by(siteid, sitename, harmonizedname,
+ sampleid, units, age,
+ agetype, depth, datasetid,
+ long, lat) %>%
+ summarise(value = sum(value), .groups='keep')
+```
+
+
+```{=html}
+
+
+```
+
+We now have a cleaner set of taxon names compared to the original table, both because of harmonization, and because we cleared out many of the non-**TRSH** (trees and shrubs) taxa from the harmonization table. Plotting the same set of taxa with the new harmonized names results in this plot:
+
+![**Figure**. *The same site/sample plot as above, with with the new harmonized taxonomy. Note that the distribution of points along the curve is smoother, as we remove some of the taxonomic issues.*](simple_workflow_files/figure-html/origTableOut-1.png)
+
+## 4. Simple Analytics
+
+### 4.1. Stratigraphic Plotting
+
+We can use packages like `rioja` to do stratigraphic plotting for a single record, but first we need to do some different data management. Although we could do harmonization again we're going to simply take the taxa at a single site and plot them in a stratigraphic diagram.
+
+
+```r
+# Get a particular site, in this case we are simply subsetting the
+# `italy_dl` object:
+plottingSite <- italy_dl[[1]]
+
+# Select only pollen measured using NISP and convert to a "wide"
+# table, using proportions. The first column will be "age".
+# This turns our "long" table into a "wide" table:
+counts <- plottingSite %>%
+ samples() %>%
+ toWide(ecologicalgroup = c("TRSH"),
+ unit = c("NISP"),
+ elementtypes = c("pollen"),
+ groupby = "age",
+ operation = "prop")
+
+counts <- counts[, colSums(counts > 0.01, na.rm = TRUE) > 5]
+```
+
+Hopefully the code is pretty straightforward. The `toWide()` function provides you with significant control over the taxa, units and other elements of your data before you get them into the wide matrix (`depth` by `taxon`) that most statistical tools such as the `vegan` package or `rioja` use.
+
+To plot the data we can use `rioja`'s `strat.plot()`, sorting the taxa using weighted averaging scores (`wa.order`). I've also added a CONISS plot to the edge of the the plot, to show how the new *wide* data frame works with distance metric funcitons.
+
+
+```r
+# Perform constrained clustering:
+clust <- rioja::chclust(dist(sqrt(counts)),
+ method = "coniss")
+
+# Plot the stratigraphic plot, converting proportions to percentages:
+plot <- rioja::strat.plot(counts[,-1] * 100, yvar = counts$age,
+ title = italy_dl[[1]]$sitename,
+ ylabel = "Calibrated Years BP",
+ xlabel = "Pollen (% of Trees and Shrubs)",
+ y.rev = TRUE,
+ clust = clust,
+ wa.order = "topleft",
+ scale.percent = TRUE)
+
+rioja::addClustZone(plot, clust, 4, col = "red")
+```
+
+![](simple_workflow_files/figure-html/plotStrigraph-1.png)
+
+## 5. Conclusion
+
+So, we've done a lot in this example. We've (1) searched for sites using site names and geographic parameters, (2) filtered results using temporal and spatial parameters, (3) obtained sample information for the selected datasets and (4) performed basic analysis including the use of climate data from rasters. Hopefully you can use these examples as templates for your own future work, or as a building block for something new and cool!
+
+## 6. Installing packages on your own {#localinstall}
+
+We use several packages in this document, including `leaflet`, `sf` and others. We load the packages using the `pacman` package, which will automatically install the packages if they do not currently exist in your set of packages.
+
+
+```r
+options(warn = -1)
+pacman::p_load(neotoma2, dplyr, ggplot2, sf, geojsonsf, leaflet, terra, DT, readr, stringr, rioja)
+```
+
+Note that R is sensitive to the order in which packages are loaded. Using `neotoma2::` tells R explicitly that you want to use the `neotoma2` package to run a particular function. So, for a function like `filter()`, which exists in other packages such as `dplyr`, you may see an error that looks like:
+
+```bash
+Error in UseMethod("filter") :
+ no applicable method for 'filter' applied to an object of class "sites"
+```
+
+In that case it's likely that the wrong package is trying to run `filter()`, and so explicitly adding `dplyr::` or `neotoma2::` in front of the function name (i.e., `neotoma2::filter()`)is good practice.
diff --git a/2023_INQUA_pollen_vertebrates/text.css b/2023_INQUA_pollen_vertebrates/text.css
new file mode 100644
index 0000000..bca57db
--- /dev/null
+++ b/2023_INQUA_pollen_vertebrates/text.css
@@ -0,0 +1,91 @@
+p { font-family: "Raleway";
+ color: rgba(0,0,0,0.8); }
+
+a { font-weight: 600;
+ color: rgba(59, 72, 202, 0.8); }
+
+h1, h2, h3, h4, h5 { font-family: 'Raleway';
+ color: rgba(72,202,59, 0.9);
+ margin-top: 0.2cm;
+ margin-bottom: 0.2cm;
+ direction: inherit;
+ font-variant: normal;
+ page-break-inside: avoid;
+ text-align: left;
+ orphans: 2;
+ widows: 2;
+ text-decoration: none
+ }
+
+h1 { font-weight: 900;
+ line-height: 110%;
+ font-variant: small-caps;
+ font-size: 200%;
+ }
+
+h2 { font-weight: 700;
+ line-height: 100%;
+ font-size: 150%;
+ }
+
+h3 { font-weight: 700;
+ line-height: 100%;
+ font-size: 100%;
+ }
+
+h2.status { font-weight: 700;
+ line-height: 100%;
+ font-size: 75%;
+ }
+
+li, tr {
+ font-family: "Raleway";
+ color: rgba(0,0,0,0.8);
+}
+
+p.hanging-indent {
+ margin-left: 1cm;
+ text-indent: -0.5cm;
+ font-family: "EB Garamond";
+ font-size: 11pt }
+
+p.hangingindent:hover{
+ background:#dddddd
+}
+
+div.figure {
+ padding-top: 20px;
+}
+
+p.caption {
+ font-family: "EB Garamond";
+ color:rgba(0,0,0,0.7);
+ font-size:90%;
+}
+
+a:link { so-language: zxx }
+
+summary {
+ padding-top: 10px;
+ font-family: "Raleway";
+}
+
+td {
+ vertical-align: top;
+}
+
+table {
+ padding-top: 0px;
+ padding-bottom: 10px;
+ font-size: 80%;
+}
+
+pre.r {
+ font-size: 80%;
+}
+
+div.resource-box {
+ padding-left: 10px;
+ border-left-style:solid;
+ border-left-color: rgba(72,202,59, 0.2);
+}