addEEtoSpOcc_single: Add Google Earth Engine covariate data to a list for use in...

View source: R/addEEtoSpOcc_single.R

addEEtoSpOcc_singleR Documentation

Add Google Earth Engine covariate data to a list for use in spOccupancy

Description

Google Earth Engine (GEE) data for each pentad can be extracted to a data frame using ABAP's addVarEEcollection and addVarEEimage functions. addEEtoSpOcc_single can then be used to add these types of data to a list in order to fit single-species occupancy models using spPGOcc (spatial) or PGOcc (non-spatial) from the spOccupancy package.

Usage

addEEtoSpOcc_single(spOcc, ee_data)

Arguments

spOcc

a list containing ABAP detection/non-detection data returned by abapToSpOcc_single.

ee_data

a data frame with GEE data extracted using addVarEEcollection or addVarEEimage. The data frame needs to contain a column called pentad with the pentad ID from data extracted using the GEE functions. The remaining columns should only contain the GEE covariate values that are intended to be added to the spOccupancy list. For ease of use in occupancy model formula notation it's recommended that the variable names in the data frame are concise and informative, and don't contain spaces. See the example below for how to create this data frame after extracting GEE data.

Note

The numeric ranges of various GEE data can be vastly different so it is advised that you scale your covariate data before running an occupancy model. See the example below for how to do this.

Author(s)

Dominic Henry dominic.henry@gmail.com
Pachi Cervantes

See Also

abapToSpOcc_single, spPGOcc, PGOcc, addVarEEimage, addVarEEcollection

Examples

## Not run: 
library(rgee)
library(ABDtools)
library(dplyr)

## Extract ABAP pentad data
abap_pentads <- getRegionPentads(.region_type = "province",
                                 .region = "Eastern Cape")

## Extract single season ABAP bird data
abap_single <- getAbapData(.spp_code = 212,
                           .region_type = "province",
                           .region = "Eastern Cape",
                           .years = 2012)

## Create spOcc list (with XY coordinates as site covariates)
spOcc_single <- abapToSpOcc_single(abap_single, abap_pentads)
str(spOcc_single)

## Start up GEE
ee_check()
ee_Initialize(drive = TRUE)

## Create assetId for pentads of interest
assetId <- file.path(ee_get_assethome(), 'EC_pentads')

## Upload to pentads to GEE (only run this once per asset)
uploadFeaturesToEE(pentads = abap_pentads,
                   asset_id = assetId,
                   load = FALSE)

## Load the remote asset into R session
pentads <- ee$FeatureCollection(assetId)

## Extract spatial mean NDVI for each pentad
ndvi_mean <- addVarEEcollection(ee_pentads = pentads,
                                collection = "MODIS/006/MOD13A2",
                                dates = c("2010-01-01", "2013-01-01"),
                                temp_reducer = "mean",
                                spt_reducer = "mean",
                                bands = "NDVI")

## Extract spatial standard deviation of NDVI for each pentad
ndvi_sd <- addVarEEcollection(ee_pentads = pentads,
                              collection = "MODIS/006/MOD13A2",
                              dates = c("2010-01-01", "2013-01-01"),
                              temp_reducer = "mean",
                              spt_reducer = "stdDev",
                              bands = "NDVI")

## Create a site covariate data frame for input into addEEtoSpOcc_single().
## Note the first column is called "pentad" which is a requirement for the
## function to work properly.
my_ee_data <- bind_cols(pentad = ndvi_mean$pentad,
                        ndvi_SD = ndvi_sd$NDVI_stdDev,
                        ndvi_MEAN = ndvi_mean$NDVI_mean)

## Add GEE covariates to spOcc list
spOcc_single_ee <- addEEtoSpOcc_single(spOcc = spOcc_single,
                                       ee_data = my_ee_data)
str(spOcc_single_ee)


## Scale site covariates if necessary
spOcc_single_ee$occ.covs <- scale(spOcc_single_ee$occ.covs)
head(spOcc_single_ee$occ.covs)
summary(spOcc_single_ee$occ.covs)


## A slightly different example:
## Annotate ABAP data with multiple bands from a GEE collection
pentads_tc <- addVarEEcollection(ee_pentads = pentads,
                                 collection = "IDAHO_EPSCOR/TERRACLIMATE",
                                 dates = c("2010-01-01", "2011-01-01"),
                                 temp_reducer = "mean",
                                 spt_reducer = "mean",
                                 bands = c("tmmx", "tmmn"))

## Select the variables to transfer to the spOcc list, making sure
## 'pentad' is amongst them
my_ee_data <- pentads_tc %>%
    select(pentad, tmmx_mean, tmmn_mean)

## Add GEE covariates to spOcc list
spOcc_single_ee <- addEEtoSpOcc_single(spOcc = spOcc_single,
                                       ee_data = my_ee_data)

str(spOcc_single_ee)


## End(Not run)

AfricaBirdData/ABAP documentation built on Aug. 4, 2024, 4:41 p.m.