df_manual_libz %>%
plot.facet()
## Warning: Removed 3 row(s) containing missing values (geom_path).
df_observe_pr_libz %>%
plot.facet()
df_observe_pr_libz %>%
ggplot(aes(x = rain_mm.sum)) +
geom_histogram(bins = 100, col= "white")
df_observe_pr_libz %>%
ggplot(aes(x = rain_mm.sum)) +
geom_histogram(bins = 100, col= "white") +
scale_x_log10()
df_observe_pr_libz %>%
ggplot(aes(x = rain_mm.sum)) +
geom_histogram(bins = 100, col= "white") +
scale_x_sqrt()
This is an experimental package with a function for downloading and subsetting daily Global Climate Models (GCM) from NASA Earth Exchange Global Daily Downscaled Projections (NEX-GDDP-CMIP6). Readers can find more data set details in: https://www.nccs.nasa.gov/services/data-collections/land-based-products/nex-gddp-cmip6
Future implementations will consider additional functions to post-process and bias-correct this data set.
NEX-GDDP-CMIP6: https://ds.nccs.nasa.gov/thredds/catalog/AMES/NEX/GDDP-CMIP6/catalog.html
Available variables
hurs: Near-Surface Relative Humidity in [%]. huss: Near-Surface Relative Humidity in [kg/kg]. pr: Precipitation (mean of the daily precipitation rate) in [kg m-2 s-1] or [mm/d]. rlds: Surface Downwelling Longwave Radiation in [W m-2]. rsds: Surface Downwelling Shortwave Radiation in [W m-2]. sfcWind: Daily-Mean Near-Surface Wind Speed in [m s-1] tas: Daily Near-Surface Air Temperature in [K] or [ºC]. tasmax: Daily Maximum Near-Surface Air Temperature in [K] or [ºC]. tasmin: Daily Minimum Near-Surface Air Temperature in [K] or [ºC]. Available scenarios
ssp126 ssp245 ssp370 ssp585
nc_path <- "C:/Users/DidiA/Documents/download gcm/pr/ssp245/ACCESS-CM2/pr_day_ACCESS-CM2_ssp245_r1i1p1f1_gn_2015.nc"
plot geospatial data
gcm.plot(nc_path, day.band = 150)
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded ellps WGS 84 in Proj4 definition: +proj=merc +a=6378137
## +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null
## +wktext +no_defs +type=crs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded datum World Geodetic System 1984 in Proj4 definition
## Warning in rgdal::rawTransform(projfrom, projto, nrow(xy), xy[, 1], xy[, : 53
## projected point(s) not finite
## Warning in rgdal::rawTransform(projfrom, projto, nrow(xy), xy[, 1], xy[, : 53
## projected point(s) not finite
## Warning in raster::projectRaster(x, raster::projectExtent(x, crs =
## sp::CRS(epsg3857)), : input and ouput crs are the same
gcm.levelplot(nc_path, day.band = 150)
# lat_range of the weather station
# Precipitation Example
#nc_path <- "C:/Users/DidiA/Documents/download gcm/pr/ssp585/ACCESS-CM2/pr_day_ACCESS-CM2_ssp585_r1i1p1f1_gn_2033.nc"
#nc_path <- "C:/Users/DidiA/Documents/download gcm/pr/ssp370/GFDL-ESM4/pr_day_GFDL-ESM4_ssp370_r1i1p1f1_gr1_2026.nc"
nc_path = "C:/Users/DidiA/Documents/download gcm/pr/ssp245/MIROC6/pr_day_MIROC6_ssp245_r1i1p1f1_gn_2046.nc"
nc <- nc_open(nc_path)
lat <- ncvar_get(nc, "lat") %>%
as.numeric()
lon <- ncvar_get(nc, "lon")
lat_rng <- 0.9265431554788971
lon_rng <- 101.19326699480717
lat_ind = which.min(abs(lat - lat_rng))
lon_ind = which.min(abs(lon - lon_rng))
pr_ts <- ncvar_get(nc, "pr", start = c(lon_ind, lat_ind, 1), count=c(1,1,-1))
#lat_ind <- which(abs(lat_rng-lat)==min(abs(lat_rng-lat)))
#lon_ind <- which(abs(lon_rng-lon)==min(abs(lon_rng-lon)))
df_pr_ts <- as.data.frame(pr_ts) %>%
mutate(rain_mm.sum = pr_ts*86400) %>%
dplyr::select(-pr_ts) %>%
mutate(date =seq.Date(as.Date("2015-01-01"), as.Date("2015-12-31"),by='day'))
ggplot(df_pr_ts) +
aes(x = date, y = rain_mm.sum) +
geom_line(size = 0.5, colour = "#112446") +
theme_bw()
ggplot(df_pr_ts) +
aes(x = rain_mm.sum) +
geom_density(adjust = 1L, fill = "#112446") +
theme_minimal()
#Coordinate Libz
lat_lon=c(0.9265431554788971, 101.19326699480717)
df_cmip6_pr_ssp245_cnrm <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/ssp245/CNRM-CM6-1",
lat_lon=lat_lon)
df_cmip6_pr_ssp370_cnrm <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/ssp370/CNRM-CM6-1",
lat_lon=lat_lon)
df_cmip6_pr_ssp585_cnrm <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/ssp585/CNRM-CM6-1",
lat_lon=lat_lon)
df_cmip6_pr_historical_cnrm <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/historical/CNRM-CM6-1",
lat_lon=lat_lon)
df_cmip6_pr_ssp245_miroc6 <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/ssp245/MIROC6",
lat_lon=lat_lon)
df_cmip6_pr_ssp370_miroc6 <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/ssp370/MIROC6",
lat_lon=lat_lon)
df_cmip6_pr_ssp585_miroc6 <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/ssp585/MIROC6",
lat_lon=lat_lon)
df_cmip6_pr_historical_miroc6 <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/historical/MIROC6",
lat_lon=lat_lon)
df_cmip6_pr_ssp245_gfdl <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/ssp245/GFDL-ESM4",
lat_lon=lat_lon)
df_cmip6_pr_ssp370_gfdl <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/ssp370/GFDL-ESM4",
lat_lon=lat_lon)
df_cmip6_pr_ssp585_gfdl <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/ssp585/GFDL-ESM4",
lat_lon=lat_lon)
df_cmip6_pr_historical_gfdl <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/historical/GFDL-ESM4",
lat_lon=lat_lon)
df_cmip6_pr_ssp245_access <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/ssp245/ACCESS-CM2",
lat_lon=lat_lon)
df_cmip6_pr_ssp370_access <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/ssp370/ACCESS-CM2",
lat_lon=lat_lon)
df_cmip6_pr_ssp585_access <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/ssp585/ACCESS-CM2",
lat_lon=lat_lon)
df_cmip6_pr_historical_access <- gcm.combine.ts(path = "C:/Users/DidiA/Documents/download gcm/pr/historical/ACCESS-CM2",
lat_lon=lat_lon)
# scenario (2006-2014) and model (2015-2050) are separated (Dataset option 1 )
df_cmip6_pr <- list(pr_ssp245_cnrm = df_cmip6_pr_ssp245_cnrm,
pr_ssp370_cnrm = df_cmip6_pr_ssp370_cnrm,
pr_ssp585_cnrm = df_cmip6_pr_ssp585_cnrm,
pr_historical_cnrm = df_cmip6_pr_historical_cnrm,
pr_ssp245_miroc6 = df_cmip6_pr_ssp245_miroc6,
pr_ssp370_miroc6 = df_cmip6_pr_ssp370_miroc6,
pr_ssp585_miroc6 = df_cmip6_pr_ssp585_miroc6,
pr_historical_miroc6 = df_cmip6_pr_historical_miroc6,
pr_ssp245_gfdl = df_cmip6_pr_ssp245_gfdl,
pr_ssp370_gfdl = df_cmip6_pr_ssp370_gfdl,
pr_ssp585_gfdl = df_cmip6_pr_ssp585_gfdl,
pr_historical_gfdl = df_cmip6_pr_historical_gfdl,
pr_ssp245_access = df_cmip6_pr_ssp245_access,
pr_ssp370_access = df_cmip6_pr_ssp370_access,
pr_ssp585_access = df_cmip6_pr_ssp585_access,
pr_historical_access = df_cmip6_pr_historical_access
)
df_cmip6_pr_daily <- rbindlist(df_cmip6_pr, use.names=TRUE, idcol=TRUE) %>%
dplyr::rename(id=.id) %>%
bind_rows(df_observe_pr_libz ) %>%
group_by(id) %>%
distinct(date, .keep_all = TRUE) %>%
ungroup() %>%
pivot_wider(names_from = id, values_from = rain_mm.sum) %>%
filter_by_time(.start_date = "2000-01-01", .end_date = "2050-12-31") %>%
mutate(pr_ssp245_cnrm = coalesce(pr_historical_cnrm, pr_ssp245_cnrm ),
pr_ssp370_cnrm = coalesce(pr_historical_cnrm, pr_ssp370_cnrm ),
pr_ssp585_cnrm = coalesce(pr_historical_cnrm, pr_ssp585_cnrm ),
pr_ssp245_miroc6 = coalesce(pr_historical_miroc6, pr_ssp245_miroc6),
pr_ssp370_miroc6 = coalesce(pr_historical_miroc6, pr_ssp370_miroc6),
pr_ssp585_miroc6 = coalesce(pr_historical_miroc6, pr_ssp585_miroc6),
pr_ssp245_access = coalesce(pr_historical_access, pr_ssp245_access ),
pr_ssp370_access = coalesce(pr_historical_access, pr_ssp370_access ),
pr_ssp585_access = coalesce(pr_historical_access, pr_ssp585_access ),
pr_ssp245_gfdl = coalesce(pr_historical_gfdl, pr_ssp245_gfdl),
pr_ssp370_gfdl = coalesce(pr_historical_gfdl, pr_ssp370_gfdl),
pr_ssp585_gfdl = coalesce(pr_historical_gfdl, pr_ssp585_gfdl)) %>%
dplyr::select(-contains("historical")) %>%
pivot_longer(!date, names_to = "id", values_to = "rain_mm.sum") %>%
mutate(raindays = case_when(rain_mm.sum>0.2 ~ 1,
rain_mm.sum<=0.2 ~0)) %>%
group_by(id) %>%
mutate(scenario = as.factor(strsplit(id, "[_]")[[2]][2])) %>% # to use strsplit, should be grouped first
mutate(var = as.factor(strsplit(id, "[_]")[[1]][1] )) %>%
mutate(mod = as.factor(strsplit(id, "[_]")[[3]][3] )) %>%
mutate(id=as.factor(id)) %>%
ungroup()
## .date_var is missing. Using: date
# Aggregating
df_cmip6_pr_weekly <- df_cmip6_pr_daily %>%
group_by(id) %>%
summarise_by_time(.date_var = date, .by="week",
scenario = scenario, var=var, mod=mod,
rain_mm.sum=sum(rain_mm.sum),
raindays=sum(raindays))
df_cmip6_pr_monthly <- df_cmip6_pr_daily %>%
group_by(id) %>%
summarise_by_time(.date_var = date, .by="month",
scenario = scenario, var=var, mod=mod,
rain_mm.sum=sum(rain_mm.sum),
raindays=sum(raindays))
df_cmip6_pr_yearly <- df_cmip6_pr_daily %>%
group_by(id) %>%
summarise_by_time(.date_var = date,
scenario = scenario, var=var, mod=mod,
rain_mm.sum=sum(rain_mm.sum),
raindays=sum(raindays),
.by="year")
df_cmip6_pr_daily_spread_mm <- df_cmip6_pr_daily %>%
as.data.frame() %>%
dplyr::select(date, id, rain_mm.sum) %>%
group_by(id) %>%
distinct(date, .keep_all = TRUE) %>%
#pad_by_time(date, .start_date = "2006-01-01", .end_date = "2050-12-31") %>%
#filter_by_time(date, .start_date = "2006-01-01", .end_date = "2050-12-31") %>%
ungroup() %>%
spread(id, rain_mm.sum)
list.df.pr <- list(df_cmip6_pr_daily,
df_cmip6_pr_weekly,
df_cmip6_pr_monthly,
df_cmip6_pr_yearly)
list.names <- c("Daily", "Weekly", "monthly", "Yearly")
rain_mm_days <- c("rain_mm.sum", "raindays")
# Rainfall and Raindays timeseries facet plot
for(i in 1:length(list.df.pr)) {
for(j in 1:length(rain_mm_days)) {
plot.fun <- function(df, labs, mm_days){
df %>%
as.data.frame() %>%
ggplot() +
aes(x = date, y = (!! sym(mm_days)), colour = scenario) +
geom_line(size = 0.5) +
scale_color_hue(direction = 1) +
theme_bw() +
facet_wrap(vars(mod)) +
labs(title=paste0(mm_days," ", labs))
}
df <- list.df.pr[i]
lab <- list.names[i]
mm_days <- rain_mm_days [j]
print(plot.fun(df, labs=lab, mm_days=mm_days))
}}
## Warning: Removed 10309 row(s) containing missing values (geom_path).
## Warning: Removed 10309 row(s) containing missing values (geom_path).
## Warning: Removed 10311 row(s) containing missing values (geom_path).
## Warning: Removed 10311 row(s) containing missing values (geom_path).
## Warning: Removed 10319 row(s) containing missing values (geom_path).
## Warning: Removed 10319 row(s) containing missing values (geom_path).
## Warning: Removed 10592 row(s) containing missing values (geom_path).
## Warning: Removed 10592 row(s) containing missing values (geom_path).
for(i in 1:length(list.df.pr)) {
for(j in 1:length(rain_mm_days)) {
plot.fun <- function(df, labs, mm_days){
df %>%
as.data.frame() %>%
ggplot() +
aes(x = date, y = (!! sym(mm_days)), colour = scenario) +
geom_line(size = 0.5) +
scale_color_hue(direction = 1) +
theme_bw() +
#facet_wrap(vars(mod)) +
labs(title=paste0(mm_days," ", labs))
}
df <- list.df.pr[i]
lab <- list.names[i]
mm_days <- rain_mm_days [j]
print(plot.fun(df, labs=lab, mm_days=mm_days))
}}
## Warning: Removed 10309 row(s) containing missing values (geom_path).
## Warning: Removed 10309 row(s) containing missing values (geom_path).
## Warning: Removed 10311 row(s) containing missing values (geom_path).
## Warning: Removed 10311 row(s) containing missing values (geom_path).
## Warning: Removed 10319 row(s) containing missing values (geom_path).
## Warning: Removed 10319 row(s) containing missing values (geom_path).
## Warning: Removed 10592 row(s) containing missing values (geom_path).
## Warning: Removed 10592 row(s) containing missing values (geom_path).
for(i in 1:length(list.df.pr)) {
plot.dist <- function(df, labs){
df %>%
as.data.frame() %>%
ggplot() +
aes(x = rain_mm.sum, fill = scenario, group = scenario) +
geom_density(adjust = 1L, alpha=.5) +
scale_fill_hue(direction = 1) +
labs(title = labs) +
theme_bw() +
facet_wrap(vars(mod))
}
df <- list.df.pr[i]
lab <- list.names[i]
print(plot.dist(df, labs=lab))
}
## Warning: Removed 10456 rows containing non-finite values (stat_density).
## Warning: Removed 10458 rows containing non-finite values (stat_density).
## Warning: Removed 10502 rows containing non-finite values (stat_density).
## Warning: Removed 11687 rows containing non-finite values (stat_density).
## QQ PLOT
library("car")
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:purrr':
##
## some
## The following object is masked from 'package:dplyr':
##
## recode
df_cmip6_pr_daily %>%
as.data.frame() %>%
dplyr::select(date, id, rain_mm.sum) %>%
group_by(id) %>%
distinct(date, .keep_all = TRUE) %>%
ungroup() %>%
pivot_wider(names_from = id, values_from = rain_mm.sum) %>%
pull(pr_observed_libz) %>%
qqPlot()
## [1] 14673 909
df_cmip6_pr_daily %>%
as.data.frame() %>%
dplyr::select(date, id, rain_mm.sum) %>%
group_by(id) %>%
distinct(date, .keep_all = TRUE) %>%
ungroup() %>%
pivot_wider(names_from = id, values_from = rain_mm.sum) %>%
pull(pr_observed_libz) %>%
hist()
df_cmip6_pr_monthly %>%
as.data.frame() %>%
dplyr::select(date, id, rain_mm.sum) %>%
group_by(id) %>%
distinct(date, .keep_all = TRUE) %>%
ungroup() %>%
pivot_wider(names_from = id, values_from = rain_mm.sum) %>%
pull(pr_observed_libz) %>%
qqPlot()
## [1] 191 167
df_cmip6_pr_monthly %>%
as.data.frame() %>%
dplyr::select(date, id, rain_mm.sum) %>%
group_by(id) %>%
distinct(date, .keep_all = TRUE) %>%
ungroup() %>%
pivot_wider(names_from = id, values_from = rain_mm.sum) %>%
pull(pr_observed_libz) %>%
hist()
rnorm(500, mean = 50, sd=5) %>%
qqPlot()
## [1] 230 333
hist(rnorm(500, mean = 50, sd=5))
ggplot(df_cmip6_pr_daily) +
aes(x = "", y = rain_mm.sum, fill = scenario) +
geom_boxplot() +
scale_fill_hue(direction = 1) +
labs(title = "daily") +
theme_bw() +
theme(plot.title = element_text(size = 14L, face = "bold")) +
facet_wrap(vars(mod))
## Warning: Removed 10456 rows containing non-finite values (stat_boxplot).
ggplot(df_cmip6_pr_monthly) +
aes(x = "", y = rain_mm.sum, fill = scenario) +
geom_boxplot() +
scale_fill_hue(direction = 1) +
labs(title = "Monthly") +
theme_bw() +
theme(plot.title = element_text(size = 14L, face = "bold")) +
facet_wrap(vars(mod))
## Warning: Removed 10502 rows containing non-finite values (stat_boxplot).
ggplot(df_cmip6_pr_yearly) +
aes(x = "", y = rain_mm.sum, fill = scenario) +
geom_boxplot() +
scale_fill_hue(direction = 1) +
labs(title = "yearly") +
theme_bw() +
theme(plot.title = element_text(size = 14L, face = "bold")) +
facet_wrap(vars(mod))
## Warning: Removed 11687 rows containing non-finite values (stat_boxplot).
ggplot(df_cmip6_pr_monthly %>%
mutate(month = as.factor(month(date)))) +
aes(
x = "",
y = rain_mm.sum,
fill = month,
colour = scenario
) +
geom_boxplot() +
scale_fill_viridis_d(option = "inferno", direction = 1) +
scale_color_viridis_d(option = "inferno", direction = 1) +
theme_bw() +
facet_wrap(vars(mod))
## Warning: Removed 10502 rows containing non-finite values (stat_boxplot).
ggplot(df_cmip6_pr_monthly %>%
mutate(month = as.factor(month(date)))) +
aes(x = "", y = rain_mm.sum, fill = month) +
geom_boxplot() +
scale_fill_viridis_d(option = "inferno", direction = 1) +
theme_bw() +
facet_wrap(vars(scenario))
## Warning: Removed 10502 rows containing non-finite values (stat_boxplot).
## Warning in ggcorr(., palette = "RdBu", label = TRUE, hjust = 1, size = 3, : data
## in column(s) 'date' are not numeric and were ignored
## Warning in ggcorr(., palette = "RdBu", label = TRUE, hjust = 1, size = 3, : data
## in column(s) 'date' are not numeric and were ignored
## Warning in ggcorr(., palette = "RdBu", label = TRUE, hjust = 1, size = 3, : data
## in column(s) 'date' are not numeric and were ignored
## Warning in ggcorr(., palette = "RdBu", label = TRUE, hjust = 1, size = 3, : data
## in column(s) 'date' are not numeric and were ignored
##PCA
##
## Attaching package: 'PCAtools'
## The following objects are masked from 'package:stats':
##
## biplot, screeplot
## -- removing the lower 10% of variables based on variance
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
# Works for mrs and other data -------------------------------------
oc <- df_cmip6_pr_daily_spread_mm %>%
filter_by_time(.start_date = "2000-01-01", .end_date = "2017-12-31") %>%
replace(is.na(.), 0) %>%
dplyr::select(pr_observed_libz) %>% # vector of observed samples during the calibration period.
dplyr::rename(pr=pr_observed_libz) %>%
mutate(tas=0, dtr= 0, sfcWind=0, ps =0, huss=0) %>%
data.matrix()
## .date_var is missing. Using: date
mc <- df_cmip6_pr_daily_spread_mm %>%
filter_by_time(.start_date = "2000-01-01", .end_date = "2017-12-31") %>%
replace(is.na(.), 0) %>%
dplyr::select(pr_ssp245_cnrm) %>% # vector of observed samples during the calibration period.
dplyr::rename(pr=pr_ssp245_cnrm) %>%
mutate(tas=0, dtr= 0, sfcWind=0, ps =0, huss=0) %>%
data.matrix()
## .date_var is missing. Using: date
mp <- df_cmip6_pr_daily_spread_mm %>%
filter_by_time(.start_date = "2018-01-01", .end_date = "2050-12-31") %>%
replace(is.na(.), 0) %>%
dplyr::select(pr_ssp245_cnrm) %>% # vector of observed samples during the calibration period.
dplyr::rename(pr=pr_ssp245_cnrm) %>%
mutate(tas=0, dtr= 0, sfcWind=0, ps =0, huss=0) %>%
data.matrix()
## .date_var is missing. Using: date
# Works for mrs and QDM --------------------------------------------------------
oc <- df_cmip6_pr_daily_spread_mm %>%
filter_by_time(.start_date = "2000-01-01", .end_date = "2017-12-31") %>%
distinct(date, .keep_all = TRUE) %>%
pad_by_time() %>%
replace(is.na(.), 0) %>%
pull(pr_observed_libz) %>% # vector of observed samples during the calibration period.
as.matrix() %>%
magrittr::set_colnames(c("pr"))
## .date_var is missing. Using: date
## .date_var is missing. Using: date
## pad applied on the interval: day
mc <- df_cmip6_pr_daily_spread_mm %>%
filter_by_time(.start_date = "2000-01-01", .end_date = "2017-12-31") %>%
distinct(date, .keep_all = TRUE) %>%
pad_by_time() %>%
replace(is.na(.), 0) %>%
pull(pr_ssp245_cnrm) %>% # vector of model outputs during the calibration period.
as.matrix() %>%
magrittr::set_colnames(c("pr"))
## .date_var is missing. Using: date
## .date_var is missing. Using: date
## pad applied on the interval: day
mp <- df_cmip6_pr_daily_spread_mm %>%
filter_by_time(.start_date = "2018-01-01", .end_date = "2050-12-31") %>%
distinct(date, .keep_all = TRUE) %>%
pad_by_time() %>%
replace(is.na(.), 0) %>%
pull(pr_ssp245_cnrm) %>% # vector of model outputs during the projected period.
as.matrix() %>%
magrittr::set_colnames(c("pr"))
## .date_var is missing. Using: date
## .date_var is missing. Using: date
## pad applied on the interval: day
# Data Processing--------------------------------------------
#mbcn <- MBC::MBCn(o.c=oc, m.c=mc, m.p = mp) # Multivariate bias correction (N-pdft)
#test <- mbcn[[1]]
#test <- rbindlist(test)
#mbcp <- MBC::MBCp(o.c=oc, m.c=mc, m.p = mp) # Multivariate bias correction (Pearson correlation)
#mbcr <- MBC::MBCr(o.c=oc, m.c=mc, m.p = mp) # Multivariate bias correction (Spearman rank correlation)
#r2d2 <- MBC::R2D2(o.c=oc, m.c=mc, m.p = mp) # Multivariate bias correction (R2D2)
#mrs <- MBC::MRS(o.c=oc, m.c=mc, m.p = mp) # Multivariate linear rescaling using Cholesky decomposition
qdm <- MBC::QDM(o.c=oc, m.c=mc, m.p = mp) # Univariate bias correction via quantile delta mapping
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
# Okay
# mrs1 <- mrs[1] %>% as.data.frame()
# mrs2 <- mrs[2] %>% as.data.frame()
qdm1 <- qdm[1] %>%
as.data.frame()
qdm2 <- qdm[2] %>%
as.data.frame()
df <- as.data.frame(qdm1) %>%
bind_rows(as.data.frame(qdm2)) %>%
mutate(date=seq(as.Date("2000/1/1"), as.Date("2050/12/31"), "days")) %>%
left_join((df_cmip6_pr_daily_spread_mm %>%
dplyr::select(date, pr_observed_libz)), by="date") %>%
left_join((df_cmip6_pr_daily_spread_mm %>%
dplyr::select(date, pr_ssp245_cnrm) %>%
filter_by_time(.start_date = "2018-01-01" , .end_date ="2050-12-31" )), by="date")
## .date_var is missing. Using: date
vis_miss(df)
## Warning: `gather_()` was deprecated in tidyr 1.2.0.
## Please use `gather()` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.
df_monthly <- df %>%
summarise_by_time(mhat.c=sum(mhat.c),
pr=sum(pr),
pr_observed_libz=sum(pr_observed_libz),
pr_ssp245_cnrm=sum(pr_ssp245_cnrm),
.by="month")
## .date_var is missing. Using: date
df_longer <- df %>%
pivot_longer(!date, names_to = "id")
df_monthly_longer <- df_monthly %>%
pivot_longer(!date, names_to = "id")
ggplot(df_longer) +
aes(x = date, y = value, colour = id) +
geom_line(size = 0.5) +
scale_color_hue(direction = 1) +
theme_minimal()
## Warning: Removed 35512 row(s) containing missing values (geom_path).
ggplot(df_monthly_longer) +
aes(x = date, y = value, colour = id) +
geom_line(size = 0.5) +
scale_color_hue(direction = 1) +
theme_minimal()
## Warning: Removed 1167 row(s) containing missing values (geom_path).
ggpairs(df)
## Warning: Removed 12053 rows containing non-finite values (stat_density).
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 12053 rows containing missing values
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 12053 rows containing missing values
## Warning: Removed 6575 rows containing non-finite values (stat_density).
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 6575 rows containing missing values
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 16884 rows containing missing values
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 6575 rows containing missing values
## Warning: Removed 12053 rows containing missing values (geom_point).
## Warning: Removed 6575 rows containing missing values (geom_point).
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 10309 rows containing missing values
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 6575 rows containing missing values
## Warning: Removed 12053 rows containing missing values (geom_point).
## Warning: Removed 16884 rows containing missing values (geom_point).
## Warning: Removed 10309 rows containing missing values (geom_point).
## Warning: Removed 10309 rows containing non-finite values (stat_density).
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 16884 rows containing missing values
## Warning: Removed 6575 rows containing missing values (geom_point).
## Removed 6575 rows containing missing values (geom_point).
## Warning: Removed 16884 rows containing missing values (geom_point).
## Warning: Removed 6575 rows containing non-finite values (stat_density).
ggpairs(df_monthly)
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 396 rows containing missing values
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 216 rows containing missing values
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 339 rows containing missing values
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 216 rows containing missing values
## Warning: Removed 396 rows containing missing values (geom_point).
## Warning: Removed 396 rows containing non-finite values (stat_density).
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 396 rows containing missing values
## Warning: Removed 216 rows containing missing values (geom_point).
## Warning: Removed 216 rows containing non-finite values (stat_density).
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 555 rows containing missing values
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 216 rows containing missing values
## Warning: Removed 339 rows containing missing values (geom_point).
## Warning: Removed 396 rows containing missing values (geom_point).
## Warning: Removed 555 rows containing missing values (geom_point).
## Warning: Removed 339 rows containing non-finite values (stat_density).
## Warning in ggally_statistic(data = data, mapping = mapping, na.rm = na.rm, :
## Removed 555 rows containing missing values
## Warning: Removed 216 rows containing missing values (geom_point).
## Removed 216 rows containing missing values (geom_point).
## Warning: Removed 555 rows containing missing values (geom_point).
## Warning: Removed 216 rows containing non-finite values (stat_density).
## [1] "mhat.c" "mhat.p" "date" "pr_observed_libz"
## [5] "pr_ssp245_cnrm"