Nothing
## ----global-options, include = FALSE------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----install-packages, include = FALSE----------------------------------------
# Check that required packages are available without installing them
required_pkgs <- c("dplyr", "leaflet", "withr", "sf")
missing_pkgs <- required_pkgs[!vapply(
required_pkgs, requireNamespace, logical(1), quietly = TRUE)]
if (length(missing_pkgs) > 0) {
stop(paste0("Missing packages: ", paste(missing_pkgs, collapse = ", "),
".\nPlease install them manually before running this vignette."))
}
# Define a temporary path for SQLite database
path_to_db <- withr::local_tempdir()
## ----setup, include = FALSE---------------------------------------------------
# Load the necessary packages
library(geeLite)
library(withr)
# Set chunk evaluation flag based on GEE authentication status
run_chunks <- geeLite:::check_rgee_ready()
# Set the time zone to UTC temporarily during vignette execution
withr::local_timezone("UTC")
## ----eval = FALSE-------------------------------------------------------------
# # Install devtools if not installed
# # install.packages("devtools")
#
# # Install geeLite from GitHub
# devtools::install_github("mtkurbucz/geeLite")
#
# # Install Python dependencies and setup rgee
# geeLite::gee_install()
## ----config-setup, warning = FALSE, eval = FALSE------------------------------
# # Define the path for the SQLite database
# path <- path_to_db
#
# # Create a configuration for Somalia (SO) and Yemen (YE) to collect NDVI data
# set_config(
# path = path,
# regions = c("SO", "YE"),
# source = list(
# "MODIS/061/MOD13A2" = list(
# "NDVI" = c("mean", "sd")
# )
# ),
# resol = 3,
# start = "2020-01-01"
# )
## ----data-collection, eval = FALSE--------------------------------------------
# # Collect the data and store it in the SQLite database
# run_geelite(path = path)
## ----config-modification, eval = FALSE----------------------------------------
# # Add more statistics to the NDVI band and include EVI data
# modify_config(
# path = path,
# keys = list(
# c("source", "MODIS/061/MOD13A2", "NDVI"),
# c("source", "MODIS/061/MOD13A2", "EVI")
# ),
# new_values = list(
# c("mean", "min", "max"),
# c("mean", "sd")
# )
# )
## ----reading-analyzing, eval = FALSE------------------------------------------
# # Read the data from the database, aggregate to monthly frequency by default
# db <- read_db(path = path)
#
# # Read the data with custom aggregation functions
# db <- read_db(path = path, aggr_funs = list(
# function(x) mean(x, na.rm = TRUE),
# function(x) sd(x, na.rm = TRUE))
# )
## ----collecting-data-example, warning = FALSE, eval = run_chunks--------------
# Define the path for the SQLite database
path <- path_to_db
# Set the configuration file for NDVI data collection
set_config(
path = path,
regions = c("SO", "YE"),
source = list(
"MODIS/061/MOD13A2" = list(
"NDVI" = c("mean", "sd")
)
),
resol = 3,
start = "2020-01-01"
)
# Collect the data
run_geelite(path = path)
# Read the data from the database
db <- read_db(path = path, freq = "month")
## ----visualize-ndvi-leaflet, eval = run_chunks--------------------------------
# Load necessary packages
library(leaflet)
library(dplyr)
library(sf)
# Read database and merge grid with MODIS data
sf <- merge(db$grid, db$`MODIS/061/MOD13A2/NDVI/mean`, by = "id")
# Select the date to visualize
ndvi <- sf$`2020-01-01`
# Create a color palette function based on the values
color_pal <- colorNumeric(palette = "viridis", domain = ndvi)
# Create the leaflet map
leaflet(data = sf) %>%
addTiles() %>% # Add base tiles
addPolygons(
fillColor = color_pal(ndvi), # Fill color
color = "#BDBDC3", # Border color
weight = 1, # Border weight
opacity = 1, # Border opacity
fillOpacity = 0.9 # Fill opacity
) %>%
addScaleBar(position = "bottomleft") %>% # Add scale bar
addLegend(
pal = color_pal, # Color palette
values = ndvi, # Data values to map
title = "Mean NDVI", # Legend title
position = "bottomright" # Legend position
)
## ----drive-mode, eval = FALSE-------------------------------------------------
# # Collect and store data using drive mode
# run_geelite(path = path, mode = "drive")
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.