Skip to content

bluegreen-labs/daymetr

Repository files navigation

daymetr

R-CMD-check codecov CRAN_Status_Badge CRAN_Downloads

A programmatic interface to the Daymet web services. Allows for easy downloads of Daymet climate data directly to your R workspace or your computer. Routines for both single pixel data downloads and gridded (netCDF) data are provided. Please use the below citation when using the package.

How to cite this package

Hufkens K., Basler J. D., Milliman T. Melaas E., Richardson A.D. 2018 An integrated phenology modelling framework in R: Phenology modelling with phenor. Methods in Ecology & Evolution, 9: 1-10. https://doi.org/10.1111/2041-210X.12970

Installation

stable release

To install the current stable release use a CRAN repository:

install.packages("daymetr")
library("daymetr")

development release

To install the development releases of the package run the following commands:

if(!require(remotes)){install.packages("remotes")}
remotes::install_github("bluegreen-labs/daymetr")
library("daymetr")

Vignettes are not rendered by default, if you want to include additional documentation please use:

if(!require(remotes)){install.packages("remotes")}
remotes::install_github("bluegreen-labs/daymetr", build_vignettes = TRUE)
library("daymetr")

Use

Single pixel location download

For a single site use the following format

download_daymet(site = "Oak Ridge National Laboratories",
                lat = 36.0133,
                lon = -84.2625,
                start = 1980,
                end = 2010,
                internal = TRUE)
Parameter Description
site site name
lat latitude of the site
lon longitude of the site
start start year of the time series (data start in 1980)
end end year of the time series (current year - 2 years, use force = TRUE to override)
internal logical, TRUE or FALSE, if true data is imported into R workspace otherwise it is downloaded into the current working directory
path path where to store the data when not used internally, defaults to tempdir()
force force “out of temporal range” downloads
silent suppress the verbose output

Batch mode uses similar parameters but you provide a comma separated file with site names and latitude longitude which are sequentially downloaded. The format of the comma separated file is: site name, latitude, longitude.

download_daymet_batch(file_location = 'my_sites.csv',
                      start = 1980,
                      end = 2010,
                      internal = TRUE)

Gridded data downloads

For gridded data use either download_daymet_tiles() for individual tiles or download_daymet_ncss() for a netCDF subset which is not bound by tile limits (but restricted to a 6GB query size).

Tiled data

download_daymet_tiles(location = c(36.0133,-84.2625),
                      tiles = NULL,
                      start = 1980,
                      end = 2012,
                      param = "ALL")
Parameter Description
location vector with a point location c(lat,lon) or top left / bottom right pair c(lat,lon,lat,lon)
tiles vector with tile numbers if location point or top left / bottom right pair is not provided
start start year of the time series (data start in 1980)
end end year of the time series (current year - 2 years, use force = TRUE to override)
param climate variable you want to download vapour pressure (vp), minimum and maximum temperature (tmin,tmax), snow water equivalent (swe), solar radiation (srad), precipitation (prcp) , day length (dayl). The default setting is ALL, this will download all the previously mentioned climate variables.
path path where to store the data, defaults to tempdir()
silent suppress the verbose output

If only the first set of coordinates is provided the tile in which these reside is downloaded. If your region of interest falls outside the scope of the DAYMET data coverage a warning is issued. If both top left and bottom right coordinates are provided all tiles covering the region of interst are downloaded. I would caution against downloading too much data, as file sizes do add up. So be careful how you specify your region of interest.

netCDF subset (ncss) data

download_daymet_ncss(location = c(36.61,-85.37,33.57,-81.29),
                     start = 1980,
                     end = 1980,
                     param = "tmin")
Parameter Description
location bounding box extent defined as top left / bottom right pair c(lat,lon,lat,lon)
start start year of the time series (data start in 1980)
end end year of the time series (current year - 2 years, use force = TRUE to override)
param climate variable you want to download vapour pressure (vp), minimum and maximum temperature (tmin,tmax), snow water equivalent (swe), solar radiation (srad), precipitation (prcp) , day length (dayl). The default setting is ALL, this will download all the previously mentioned climate variables.
mosaic tile mosaic to use, defaults to “na” for North America (use “pr” for Puerto Rico and “hi” for Hawaii)
path path where to store the data, defaults to tempdir()
silent suppress the verbose output

Keep in mind that the bounding box is defined by the minimum (square) bounding box in a Lambert Conformal Conic (LCC) projection as defined by the provided geographic coordinates. In general the query area will be larger than the requested location. For more information I refer to Daymet documentation on the web service.

Acknowledgements

This project was supported by the National Science Foundation’s Macro-system Biology Program (awards EF-1065029 and EF-1702697) and the Marie Skłodowska-Curie Action (H2020 grant 797668). Logo design elements are taken from the FontAwesome library according to these terms, where the globe element was inverted and intersected.