-
Notifications
You must be signed in to change notification settings - Fork 3
/
tue_obtaining_environmental_data.Rmd
60 lines (42 loc) · 1.85 KB
/
tue_obtaining_environmental_data.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
---
title: "Obtaining environmental data"
output: html_document
---
```{r global_options, include=FALSE}
knitr::opts_chunk$set(fig.width=12, fig.height=8, eval = FALSE,
echo=TRUE, warning=FALSE, message=FALSE,
tidy = TRUE, collapse = TRUE,
results = 'hold')
```
# Background
Linking species occurrences and evolution to environmental variables and quantifying species "niche" and its evolution is essential for many biogeographic questions. We will use the temperature range of species to reconstruct the evolution of temperature mean and variance using BITE tomorrow.
# Objective
After this exercise, you will be able to extract environmental data from for geographic coordinates.
# Exercise
1. Download global environmental data from the [CHELSA](http://chelsa-climate.org/) project or [worldclim 2](https://worldclim.org/version2).
2. Load the data into R and extract the mean annual temperature for your locations (`raster`, `read_csv`, `extract`)
# Tutorial
Once you downloaded the environmental data, it is straightforward to extract values for geographic coordinates. The `raster` package will help you to handle environmental data in R and extract the values for your coordinates.
## Load environmental data
```{r}
library(raster)
library(tidyverse)
occ <- read_csv("example_data/input/occurrence_records_clean.csv")
env <- raster("example_data/input/wc2.0_bio_5m_01.tif")
```
## Extract values
```{r}
# Generate a spatial object with the coordinates
pts <- occ %>%
select(decimalLongitude, decimalLatitude) %>%
as.matrix()
# Extract the environmental values
ext <- raster::extract(env, pts) %>%
enframe(name = NULL, value = "MAT")
# Bind coordinates and environmental variables
out <- bind_cols(occ, ext)
```
## Write to disk
```{r}
write_csv(out, "output/records+environment.csv")
```