scripts/outputdiff.R

library(ncdf4)
library(data.table)
library(lubridate)
library(tidyr)
library(purrr)
library(slider)
library(dplyr)
library(abind)

gc()

ncfile <- nc_open("/mnt/n/Research/cmip5/heatwave/data-raw/CN05.1_Tmin_1961_2018_daily_025x025.nc")
tmin_arr <- ncvar_get(ncfile, "tmin")
date <- (ncvar_get(ncfile, 'time')/24) %>% as_date(origin = '1961-01-01')
nc_close(ncfile)

ncfile <- nc_open("/mnt/n/Research/cmip5/heatwave/data-raw/CN05.1_Tmax_1961_2018_daily_025x025.nc")
tmax_arr <- ncvar_get(ncfile, "tmax")
nc_close(ncfile)

ncfile <- nc_open("/mnt/n/Research/cmip5/heatwave/data-raw/CN05.1_Tm_1961_2018_daily_025x025.nc")
tmean_arr <- ncvar_get(ncfile, "tm")
nc_close(ncfile)

HW1 <- HW_1con_allSPL(tmean_arr, date = date, k = 2, prob = 0.9, diff = TRUE)
HW2 <- HW_1con_allSPL(tmean_arr, date = date, k = 2, prob = 0.95, diff = TRUE)
HW3 <- HW_1con_allSPL(tmax_arr, date = date, k = 2, prob = 0.9, diff = TRUE)
for (i in 1:3){
    name <- paste0('OUTPUT/diff/nonHI/HW', i, '.nc')
    save(list = paste0('HW', i), file = name)
}
rm(HW1, HW2, HW3)
gc()

HW4 <- HW_1con_allSPL(tmin_arr, date = date, k = 2, prob = 0.9, diff = TRUE)
HW5 <- HW_1con_allSPL(tmean_arr, date = date, k = 2, prob = 0.98, diff = TRUE)
HW6 <- HW_1con_allSPL(tmean_arr, date = date, k = 2, prob = 0.99, diff = TRUE)
HW7 <- HW_1con_allSPL(tmax_arr, date = date, k = 3, THR = 35, diff = TRUE)
for (i in 4:7){
    name <- paste0('OUTPUT/diff/nonHI/HW', i, '.nc')
    save(list = paste0('HW', i), file = name)
}
rm(HW4, HW5, HW6,HW7)
gc()

HW8 <- HW_1con_movingSPL(tmax_arr, date = date, prob = 0.95, diff = TRUE)
HW9 <- HW_1con_movingSPL(tmin_arr, date = date, prob = 0.95, diff = TRUE)
HW10 <- HW_3con_matrix(tmax_arr, date = date, k = 3, p_high = 0.975, p_low = 0.81, diff = TRUE)
for (i in 8:10){
    name <- paste0('OUTPUT/diff/nonHI/HW', i, '.nc')
    save(list = paste0('HW', i), file = name)
}
rm(HW8, HW9, HW10)
gc()

HW11 <- HW_3con_matrix(tmax_arr, date = date, k = 3, p_high = 0.9, p_low = 0.75, diff = TRUE)
HW12 <- HW_3con_matrix(tmin_arr, date = date, k = 3, p_high = 0.975, p_low = 0.81, diff = TRUE)
HW13 <- HW_3con_matrix(tmin_arr, date = date, k = 3, p_high = 0.9, p_low = 0.75, diff = TRUE)
for (i in 11:13){
    name <- paste0('OUTPUT/diff/nonHI/HW', i, '.nc')
    save(list = paste0('HW', i), file = name)
}
rm(HW11, HW12, HW13)
gc()

ncfile <- nc_open("/mnt/n/Research/cmip5/heatwave/data-raw/CN05.1_Rhu_1961_2017_daily_025x025.nc")
rhu_arr <- ncvar_get(ncfile, "rhu")
nc_close(ncfile)

date <- date[1:20574]
tmax_arr <- tmax_arr[, , 1:20574]
tmean_arr <- tmean_arr[, , 1:20574]
tmin_arr <- tmin_arr[, , 1:20574]

HW1 <- HW_1con_allSPL(tmean_arr_HI, date = date, k = 2, prob = 0.9, diff = TRUE)
HW2 <- HW_1con_allSPL(tmean_arr_HI, date = date, k = 2, prob = 0.95, diff = TRUE)
HW3 <- HW_1con_allSPL(tmax_arr_HI, date = date, k = 2, prob = 0.9, diff = TRUE)
for (i in 1:3){
    name <- paste0('OUTPUT/diff/HI/HW', i, '.nc')
    save(list = paste0('HW', i), file = name)
}
rm(HW1, HW2, HW3)
gc()

HW4 <- HW_1con_allSPL(tmin_arr_HI, date = date, k = 2, prob = 0.9, diff = TRUE)
HW5 <- HW_1con_allSPL(tmean_arr_HI, date = date, k = 2, prob = 0.98, diff = TRUE)
HW6 <- HW_1con_allSPL(tmean_arr_HI, date = date, k = 2, prob = 0.99, diff = TRUE)
HW7 <- HW_1con_allSPL(tmax_arr_HI, date = date, k = 3, THR = 35, diff = TRUE)
for (i in 4:7){
    name <- paste0('OUTPUT/diff/HI/HW', i, '.nc')
    save(list = paste0('HW', i), file = name)
}
rm(HW4, HW5, HW6,HW7)
gc()

HW8 <- HW_1con_movingSPL(tmax_arr_HI, date = date, prob = 0.95, diff = TRUE)
HW9 <- HW_1con_movingSPL(tmin_arr_HI, date = date, prob = 0.95, diff = TRUE)
HW10 <- HW_3con_matrix(tmax_arr_HI, date = date, k = 3, p_high = 0.975, p_low = 0.81, diff = TRUE)
for (i in 8:10){
    name <- paste0('OUTPUT/diff/HI/HW', i, '.nc')
    save(list = paste0('HW', i), file = name)
}
rm(HW8, HW9, HW10)
gc()

HW11 <- HW_3con_matrix(tmax_arr_HI, date = date, k = 3, p_high = 0.9, p_low = 0.75, diff = TRUE)
HW12 <- HW_3con_matrix(tmin_arr_HI, date = date, k = 3, p_high = 0.975, p_low = 0.81, diff = TRUE)
HW13 <- HW_3con_matrix(tmin_arr_HI, date = date, k = 3, p_high = 0.9, p_low = 0.75, diff = TRUE)
for (i in 13){
    name <- paste0('OUTPUT/diff/HI/HW', i, '.nc')
    save(list = paste0('HW', i), file = name)
}
rm(HW11, HW12, HW13)
gc()
CUG-hydro/heatwave documentation built on Dec. 17, 2021, 1:53 p.m.