Nothing
## ----start, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
echo = TRUE,
eval = TRUE,
fig.width = 7,
warning = FALSE,
message = FALSE
)
library(pRecipe)
library(kableExtra)
library(cowplot)
library(data.table)
library(foreach)
library(ggplot2)
library(ggpubr)
library(grid)
library(raster)
library(scales)
## ----eval = FALSE-------------------------------------------------------------
# library(cowplot)
# library(data.table)
# library(foreach)
# library(ggpubr)
# library(ggplot2)
# library(grid)
# library(kableExtra)
# library(pRecipe)
# library(raster)
# library(scales)
## ----eval = FALSE-------------------------------------------------------------
# download_data()
# prec_obs <- fread("chmi.csv")
# prec_obs$dataset <- "chmi"
# GAUGE_BASED <- c("cpc-global", "cru-ts-v4-08", "em-earth", "ghcn-v2",
# "gpcc-v2022", "precl")
# SATELLITE_BASED <- c("chirps-v2", "cmap", "cmorph-cdr", "gpcp-v3-2",
# "gpm-imerg-v7", "gsmap-v8", "mswep-v2-8", "persiann-cdr")
# REANALYSES <- c("20cr-v3", "era20c", "era5", "era5-land", "jra55", "merra-2",
# "ncep-doe", "ncep-ncar")
# FORCINGS <- c("fldas", "gldas-clsm-v2-0", "gldas-noah-v2-0", "gldas-vic-v2-0",
# "terraclimate")
## ----eval = FALSE-------------------------------------------------------------
# prec_names <- list.files(full.names = TRUE)
# prec_data <- foreach (dataset_count = 1:length(prec_names)) %do% {
# dummie_data <- subset_data(prec_names[dataset_count], box = c(11, 19, 46, 54),
# yrs = c(1981, 2020)) %>%
# crop_data("gadm41_CZE_0.shp")
# dummie_name <- sub(".*/([^_/]*)_.*", "\\1", prec_names[dataset_count])
# dummie_data@file@name <- dummie_name
# return(dummie_data)
# }
## ----eval = FALSE-------------------------------------------------------------
# prec_ts <- foreach (idx = 1:length(prec_data), .combine = rbind) %do% {
# dummie_data <- prec_data[[idx]]
# dummie_name <- dummie_data@file@name
# dummie_data <- fldmean(dummie_data)
# dummie_data$dataset <- dummie_name
# return(dummie_data)
# }
# prec_ts[dataset %in% GAUGE_BASED, source := "Gauge-based"
# ][dataset %in% FORCINGS, source := "Model forcing"
# ][dataset %in% REANALYSES, source := "Reanalysis"
# ][dataset %in% SATELLITE_BASED, source := "Satellite-based"]
## ----eval = FALSE-------------------------------------------------------------
# prec_ts[, asum := sum(value, na.rm = TRUE), by = .(year(date), dataset)
# ][, amean := mean(value, na.rm = TRUE), by = .(year(date), dataset)
# ][, amax := max(value, na.rm = TRUE), by = .(year(date), dataset)
# ][, amin := min(value, na.rm = TRUE), by = .(year(date), dataset)
# ][, amed := median(value, na.rm = TRUE), by = .(year(date), dataset)]
# prec_ts$dataset <- as.factor(prec_ts$dataset)
## ----eval = FALSE-------------------------------------------------------------
# prec_color <- setNames(hue_pal()(length(unique(prec_ts$dataset))),
# levels(prec_ts$dataset))
# p01 <- ggplot(prec_ts, aes(x = date)) +
# geom_line(aes(y = value, color = dataset)) +
# scale_color_manual(values = prec_color, guide = 'none') +
# labs(y = NULL, title = 'Monthly') + theme_bw()
# p02 <- ggplot(prec_ts, aes(x = date)) +
# geom_line(aes(y = asum, color = dataset)) +
# scale_color_manual(values = prec_color, guide = 'none') +
# labs(y = NULL, title = 'Annual Total') + theme_bw()
# p03 <- ggplot(prec_ts, aes(x = date)) +
# geom_line(aes(y = amin, color = dataset)) +
# scale_color_manual(values = prec_color, guide = 'none') +
# labs(y = NULL, title = 'Annual Min') + theme_bw()
# p04 <- ggplot(prec_ts, aes(x = date)) +
# geom_line(aes(y = amax, color = dataset)) +
# scale_color_manual(values = prec_color, guide = 'none') +
# labs(y = NULL, title = 'Annual Max') + theme_bw()
# p05 <- ggplot(prec_ts, aes(x = date)) +
# geom_line(aes(y = amed, color = dataset)) +
# scale_color_manual(values = prec_color, guide = 'none') +
# labs(y = NULL, title = 'Annual Median') + theme_bw()
# p06 <- ggplot(prec_ts, aes(x = date)) +
# geom_line(aes(y = amean, color = dataset)) +
# scale_color_manual(values = prec_color, guide = 'none') +
# labs(y = NULL, title = 'Annual Average') + theme_bw()
#
# # Aux legends
# gauge_legend <- ggplot(prec_ts[type == 'Gauge-based']) +
# geom_line(aes(x = date, y = value, color = dataset)) +
# scale_color_manual(values = prec_color, name = 'Gauge-based') +
# theme_bw() +
# theme(legend.text = element_text(size = 20),
# legend.title = element_text(size = 24))
# model_legend <- ggplot(prec_ts[type == 'Model forcing']) +
# geom_line(aes(x = date, y = value, color = dataset)) +
# scale_color_manual(values = prec_color, name = 'Model forcing') +
# theme_bw() +
# theme(legend.text = element_text(size = 20),
# legend.title = element_text(size = 24))
# reanalysis_legend <- ggplot(prec_ts[type == 'Reanalysis']) +
# geom_line(aes(x = date, y = value, color = dataset)) +
# scale_color_manual(values = prec_color, name = 'Reanalysis') +
# theme_bw() +
# theme(legend.text = element_text(size = 20),
# legend.title = element_text(size = 24))
# satellite_legend <- ggplot(prec_ts[type == 'Satellite-based']) +
# geom_line(aes(x = date, y = value, color = dataset)) +
# scale_color_manual(values = prec_color, name = 'Satellite-based') +
# theme_bw() +
# theme(legend.text = element_text(size = 20),
# legend.title = element_text(size = 24))
#
# plot_grid(plot_grid(p01, p02, p03, p04, p05, p06, nrow = 3, ncol = 2),
# plot_grid(get_legend(gauge_legend), get_legend(model_legend),
# get_legend(reanalysis_legend),
# get_legend(satellite_legend), ncol = 1),
# ncol = 2, rel_widths = c(5, 0.75)) %>%
# annotate_figure(left = textGrob("Precipitation in [mm]", rot = 90,
# vjust = 1, gp = gpar(fontsize = 24)))
## ----eval=FALSE---------------------------------------------------------------
# plot_taylor(prec_ts, prec_obs, cols = prec_color)
## ----eval=FALSE---------------------------------------------------------------
# prec_8 <- prec_ts[dataset %in% c('gpcc-v2022', 'cpc-global', 'era5-land',
# 'merra-2', 'gldas-noah-v2-0', 'gldas-clsm-v2-0',
# 'gpcp-v3-2', 'mswep-v2-8')]
# prec8_colors <- setNames(c("#999999", "#E69F00", "#56B4E9", "#009E73",
# "#F0E442", "#0072B2", "#D55E00", "#CC79A7"),
# unique(prec_8$name))
# plot_taylor(prec_8, prec_obs, groups = 'seasons', cols = prec8_colors)
## ----eval=FALSE---------------------------------------------------------------
# prec_4 <- prec_ts[dataset %in% c('gpcc-v2022', 'merra-2', 'mswep-v2-8',
# 'gldas-noah-v2-0')] %>%
# .[year(date) <= 2000, period := "1981 - 2000"] %>%
# .[year(date) > 2000, period := "2001 - 2020"]
#
# plot_density(prec_4) +
# facet_grid(dataset + source ~ period) +
# theme(axis.text = element_text(size = 16),
# axis.title = element_text(size = 24),
# strip.text = element_text(size = 24),
# strip.background = element_rect(fill = "white",
# color = "black", linewidth = 1))
## ----eval=FALSE---------------------------------------------------------------
# prec_grid <- lapply(prec_data, function(x) x@file@name %in% c('gpcc-v2022',
# 'merra-2',
# 'mswep-v2-8',
# 'gldas-noah-v2-0'))
# prec_grid <- prec_data[which(prec_grid == TRUE)]
# prec_grid <- foreach (dataset_count = 1:4, .combine = rbind) %do% {
# dummie <- prec_grid[[dataset_count]]
# dummie_name <- dummie@file@name
# dummie <- tabular(dummie) %>%
# .[year(date) <= 2000, period := "1981 - 2000\nMedian"] %>%
# .[year(date) > 2000, period := "2001 - 2020\nMedian"]
# dummie <- dummie[, .(value = median(value, na.rm = TRUE)),
# by = .(lon, lat, period)]
# dummie$dataset <- dummie_name
# dummie
# }
#
# prec_grid[dataset %in% GAUGE_BASED, source := "Gauge-based"
# ][dataset %in% FORCINGS, source := "Model forcing"
# ][dataset %in% REANALYSES, source := "Reanalysis"
# ][dataset %in% SATELLITE_BASED, source := "Satellite-based"]
#
#
# plot_map(prec_grid, timestamp = FALSE) +
# facet_grid(dataset + source ~ period) +
# theme(axis.text = element_text(size = 16),
# axis.title = element_text(size = 24),
# strip.text = element_text(size = 24),
# strip.background = element_rect(fill = "white",
# color = "black", linewidth = 2))
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.