Nothing
## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
# load the library
library(ncdf4)
library(terra)
library(sf)
library(appeears)
library(dplyr)
library(ggplot2)
library(patchwork)
# load demo data
r_polygon <- terra::rast(
file.path(system.file(package = "appeears"),"extdata/polygon/MCD12Q2.006_Greenup_0_doy2010001_aid0001.tif")
)
r_raster <- terra::rast(
file.path(system.file(package = "appeears"),"extdata/raster/MCD12Q2.006_Greenup_0_doy2010001_aid0001.tif")
)
time_series <- read.table(
file.path(system.file(package = "appeears"),"extdata/time_series/time-series-MCD43A4-061-results.csv"),
header = TRUE,
sep = ","
)
## ----eval = FALSE-------------------------------------------------------------
# library(appeears)
#
# # set a key to the keychain
# rs_set_key(
# user = "earth_data_user",
# password = "XXXXXXXXXXXXXXXXXXXXXX"
# )
#
# # you can retrieve the password using
# rs_get_key(user = "earth_data_user")
#
# # the output should be the key you provided
# # "XXXXXXXXXXXXXXXXXXXXXX"
## ----eval = FALSE-------------------------------------------------------------
# # request the current token
# token <- rs_login(user = "earth_data_user")
#
# # invalidate the current session
# rs_logout(token)
## -----------------------------------------------------------------------------
# list all product information
products <- rs_products()
# print the start of all products with their versions
head(products$ProductAndVersion)
# list all layers for a particular
# product
layers <- rs_layers(
product = "MCD12Q2.006"
)
head(layers)
## ----eval = FALSE-------------------------------------------------------------
# # Load the library
# library(appeears)
#
# # list all products
# rs_products()
#
# # list layers of the MOD11A2.061 product
# rs_layers("MOD11A2.061")
#
# df <- data.frame(
# task = "time_series",
# subtask = "US-Ha1",
# latitude = 42.5378,
# longitude = -72.1715,
# start = "2010-01-01",
# end = "2010-12-31",
# product = "MCD43A4.061",
# layer = c("Nadir_Reflectance_Band3","Nadir_Reflectance_Band4")
# )
#
# # build the area based request/task
# # rename the task name so data will
# # be saved in the "point" folder
# # as defined by the task name
# df$task <- "point"
# task <- rs_build_task(df = df)
#
# # request the task to be executed
# rs_request(
# request = task,
# user = "earth_data_user",
# transfer = TRUE,
# path = "~/some_path",
# verbose = TRUE
# )
## ----eval = FALSE-------------------------------------------------------------
# # read in data
# time_series <- read.table(
# "~/some_path/time_series/time-series-MCD43A4-061-results.csv",
# header = TRUE,
# sep = ","
# )
## ----warning=FALSE------------------------------------------------------------
# convert band 3 and 4 to NDVI
time_series <- time_series |>
mutate(
Date = as.Date(Date),
NDVI = (MCD43A4_061_Nadir_Reflectance_Band4 - MCD43A4_061_Nadir_Reflectance_Band3)/
(MCD43A4_061_Nadir_Reflectance_Band4 + MCD43A4_061_Nadir_Reflectance_Band3)
)
# screen for quality control
time_series <- time_series |>
mutate(
NDVI = ifelse(MCD43A4_061_BRDF_Albedo_Band_Mandatory_Quality_Band4 == 255 |
MCD43A4_061_BRDF_Albedo_Band_Mandatory_Quality_Band3 == 255,
NA, NDVI)
)
# plot the time series
ggplot(time_series) +
geom_point(
aes(
Date,
NDVI
)
) +
theme_bw()
## -----------------------------------------------------------------------------
# load the required libraries
library(appeears)
library(sf)
library(dplyr)
library(ggplot2)
df <- data.frame(
task = "time_series",
subtask = "subtask",
latitude = 42.5378,
longitude = -72.1715,
start = "2010-01-01",
end = "2010-12-31",
product = "MCD12Q2.006",
layer = c("Greenup")
)
# load the north carolina demo data
# included in the {sf} package
# and only retain Camden county
roi <- st_read(system.file("gpkg/nc.gpkg", package="sf"), quiet = TRUE) |>
filter(
NAME == "Camden"
)
## ----eval = FALSE-------------------------------------------------------------
# # build the area based request/task
# # rename the task name so data will
# # be saved in the "polygon" folder
# # as defined by the task name
# df$task <- "polygon"
# task <- rs_build_task(
# df = df,
# roi = roi,
# format = "geotiff"
# )
#
# # request the task to be executed
# rs_request(
# request = task,
# user = "earth_data_user",
# transfer = TRUE,
# path = "~/some_path",
# verbose = TRUE
# )
## ----eval=FALSE---------------------------------------------------------------
# library(terra)
# r_polygon <- terra::rast(
# file.path("~/some_path","polygon/MCD12Q2.006_Greenup_0_doy2010001_aid0001.tif")
# )
## -----------------------------------------------------------------------------
# convert to data frame for plotting
# with ggplot2, otherwise use the
# tidyterra package and geom_spatrast()
df_polygon <- r_polygon |>
as.data.frame(xy=TRUE)
# convert incremental values (days since Jan 1, 1970
# to DOY)
df_polygon <- df_polygon |>
mutate(
DOY = as.numeric(
format(
as.Date("1970-01-01") + MCD12Q2.006_Greenup_0_doy2010001_aid0001, "%j"
)
)
) |>
filter(
DOY < 180
)
head(df_polygon)
ggplot() +
geom_raster(
data = df_polygon,
aes(
x,
y,
fill = DOY
)
) +
labs(
x = "",
y = ""
) +
scale_fill_viridis_c() +
geom_sf(
data = roi,
fill = NA,
colour = "red",
lwd = 2
) +
theme_bw()
## -----------------------------------------------------------------------------
# load the required libraries
library(terra)
library(ggplot2)
library(patchwork)
# create a SpatRaster ROI from the terra demo file
f <- system.file("ex/elev.tif", package="terra")
roi <- terra::rast(f)
## ----eval = FALSE-------------------------------------------------------------
#
# # build the area based request/task
# # rename the task name so data will
# # be saved in the "raster" folder
# # as defined by the task name
# df$task <- "raster"
# task <- rs_build_task(
# df = df,
# roi = roi,
# format = "geotiff"
# )
#
# # request the task to be executed
# rs_request(
# request = task,
# user = "earth_data_user",
# transfer = TRUE,
# path = "~/some_path",
# verbose = TRUE
# )
## ----eval=FALSE---------------------------------------------------------------
# r_raster <- terra::rast(
# file.path("~/some_path","raster/MCD12Q2.006_Greenup_0_doy2010001_aid0001.tif")
# )
## -----------------------------------------------------------------------------
# convert to data frame for plotting
# with ggplot2, otherwise use the
# tidyterra package and geom_spatrast()
df_raster <- r_raster |>
as.data.frame(xy=TRUE)
# convert incremental values (days since Jan 1, 1970
# to DOY)
df_raster <- df_raster |>
mutate(
DOY = as.numeric(
format(
as.Date("1970-01-01") + MCD12Q2.006_Greenup_0_doy2010001_aid0001, "%j"
)
)
) |>
filter(
DOY < 180
)
df_source <- roi |>
as.data.frame(xy=TRUE)
p <- ggplot() +
geom_raster(
data = df_source,
aes(
x,
y,
fill = elevation
)
) +
labs(
x = "",
y = ""
) +
scale_fill_viridis_c() +
theme_bw()
p2 <- ggplot() +
geom_raster(
data = df_raster,
aes(
x,
y,
fill = DOY
)
) +
labs(
x = "",
y = ""
) +
scale_fill_viridis_c() +
theme_bw()
# patchwork side by side plot
p | p2
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.