mirror of
https://git.gfz-potsdam.de/naaice/poet.git
synced 2025-12-15 12:28:22 +01:00
93 lines
4.0 KiB
R
93 lines
4.0 KiB
R
## Example script for assessing simulation results with "RFun_Eval.R"
|
|
## Time-stamp: "Last modified 2020-01-27 17:23:25 delucia"
|
|
|
|
## Read all the needed functions
|
|
source("RFun_Eval.R")
|
|
|
|
|
|
## Read all .rds in a given directory
|
|
trds <- ReadRTSims("TestDHT_Log")
|
|
## Read all .dht in a given directory
|
|
tdht <- ReadAllDHT("TestDHT_Log")
|
|
|
|
## control the content of a .dht
|
|
rc <- trds[[1]]$C
|
|
rt <- trds[[1]]$T
|
|
dht <- tdht[[1]][, 10:18]
|
|
## extract the unique rows of the first iteration (3 rows expected, as per dht)
|
|
rtu <- mgcv::uniquecombs(rt)
|
|
rcu <- mgcv::uniquecombs(rc)
|
|
all.equal(attr(rtu,"index"), attr(rcu,"index"))
|
|
colnames(dht) <- colnames(rcu)
|
|
|
|
|
|
## compare _Log _NoLog and reference
|
|
## First read all the simulations
|
|
rlog <- ReadRTSims("TestDHT_Log") ## all default values, np 4, with --dht-log
|
|
nlog <- ReadRTSims("TestDHT_NoLog") ## all default values, np 4, without --dht-log
|
|
ref <- ReadRTSims("TestNoDHT") ## all default values, np 4
|
|
|
|
## Compute absolute RMSE for each variable
|
|
rmse_lnl <- ComputeErrors(rlog, nlog, FUN=RMSE)
|
|
## Compute relative RMSE for each variable using sd as norm
|
|
rel_sd_rmse_lnl <- ComputeErrors(rlog, nlog, FUN=RsdRMSE)
|
|
## Compute relative RMSE for each variable using MAX as norm
|
|
rel_max_rmse_lnl <- ComputeErrors(rlog, nlog, FUN=RmaxRMSE)
|
|
|
|
## Visualize the 2 computed relative errors
|
|
## start by defining a nice color palette using RColorBrewer
|
|
mycol <- RColorBrewer::brewer.pal(8, "Dark2")
|
|
|
|
## uncomment the next line to save this image to a pdf file
|
|
## cairo_pdf("RelErr_Dol_dhtlog_vs_nolog.pdf", height=9, width=12)
|
|
par(mfrow=c(1,2))
|
|
ErrorProgress(rel_sd_rmse_lnl, colors=mycol, ignore=c("O2g"), log="y", ylim=c(1E-08, 1E-3), las=1, main="Rel.err dht-log vs dht, norm=SD", metric="RMSE_SD")
|
|
## add a grid
|
|
abline(h=10^-seq(8,3), col="grey", lwd=0.5, lty="dashed")
|
|
ErrorProgress(rel_max_rmse_lnl, colors=mycol, ignore=c("O2g"), log="y", ylim=c(1E-08, 1E-3), las=1, main="Rel.err dht-log vs dht, norm=MAX", metric="RMSE_MAX")
|
|
abline(h=10^-seq(8,3), col="grey", lwd=0.5, lty="dashed")
|
|
|
|
## uncomment the next line when saving to pdf
|
|
## dev.off()
|
|
|
|
|
|
## Visualize Scatter Plot of each variable
|
|
PlotScatter(rlog[[20]], nlog[[20]], labs=c("DHT LOG", "DHT"))
|
|
|
|
PlotScatter(rlog[[4]], nlog[[4]], labs=c("DHT LOG", "DHT"))
|
|
|
|
## Same as before but between dht-log and ref
|
|
rmse_logref <- ComputeErrors(rlog, ref, FUN=RMSE)
|
|
rel_sd_rmse_logref <- ComputeErrors(rlog, ref, FUN=RsdRMSE)
|
|
rel_max_rmse_logref <- ComputeErrors(rlog, ref, FUN=RmaxRMSE)
|
|
|
|
cairo_pdf("RelErr_Dol_ref_vs_dhtlog.pdf", height=9, width=12)
|
|
par(mfrow=c(1,2))
|
|
ErrorProgress(rel_sd_rmse_logref, colors=mycol, ignore=c("O2g"), log="y", ylim=c(1E-08, 1E-3), las=1, main="Rel.err dht-log vs Ref, norm=SD", metric="RMSE_SD")
|
|
abline(h=10^-seq(8,3), col="grey", lwd=0.5, lty="dashed")
|
|
ErrorProgress(rel_max_rmse_logref, colors=mycol, ignore=c("O2g"), log="y", ylim=c(1E-08, 1E-3), las=1, main="Rel.err dht-log vs Ref, norm=MAX", metric="RMSE_MAX")
|
|
abline(h=10^-seq(8,3), col="grey", lwd=0.5, lty="dashed")
|
|
|
|
dev.off()
|
|
|
|
x11(); PlotScatter(rlog[[20]]$C, ref[[20]]$C, labs=c("DHT log", "ref"))
|
|
|
|
rmse_nlogref <- ComputeErrors(nlog, ref, FUN=RMSE)
|
|
rel_sd_rmse_nlogref <- ComputeErrors(nlog, ref, FUN=RsdRMSE)
|
|
ErrorProgress(rel_sd_rmse_nlogref, log="y")
|
|
PlotScatter(nlog[[20]]$C, ref[[20]]$C, labs=c("DHT no log", "ref"))
|
|
|
|
## Same as before but between dht-nolog and ref
|
|
rmse_nlogref <- ComputeErrors(nlog, ref, FUN=RMSE)
|
|
rel_sd_rmse_nlogref <- ComputeErrors(nlog, ref, FUN=RsdRMSE)
|
|
rel_max_rmse_nlogref <- ComputeErrors(nlog, ref, FUN=RmaxRMSE)
|
|
|
|
cairo_pdf("RelErr_Dol_ref_vs_dht.pdf", height=9, width=12)
|
|
par(mfrow=c(1,2))
|
|
ErrorProgress(rel_sd_rmse_nlogref, colors=mycol, ignore=c("O2g"), log="y", ylim=c(1E-08, 1E-3), las=1, main="Rel.err dht-nolog vs Ref, norm=SD", metric="RMSE_SD")
|
|
abline(h=10^-seq(8,3), col="grey", lwd=0.5, lty="dashed")
|
|
ErrorProgress(rel_max_rmse_nlogref, colors=mycol, ignore=c("O2g"), log="y", ylim=c(1E-08, 1E-3), las=1, main="Rel.err dht-nolog vs Ref, norm=MAX", metric="RMSE_MAX")
|
|
abline(h=10^-seq(8,3), col="grey", lwd=0.5, lty="dashed")
|
|
|
|
dev.off()
|