# data table with param values from the median curve of (1) the QDF model and (2) the local GEV fit
medp
##            lnxID  d type   med.mu.x med.sigma.x    med.xi.x     gev.mu
##   1: dyrdalsvatn  1   DD   6.629573    1.792056  0.03743206   6.816863
##   2: dyrdalsvatn  1    J   6.702721    1.703989  0.04084315   6.816863
##   3: dyrdalsvatn  1  RJD   6.709828    1.733398  0.03600216   6.816863
##   4: dyrdalsvatn 24   DD   4.089810    1.096808  0.04040544   4.025240
##   5: dyrdalsvatn 24    J   4.092168    1.057974  0.03788926   4.025240
##  ---                                                                  
## 176:    viksvatn 48    J 152.876390   33.213338 -0.12653890 152.160578
## 177:    viksvatn 48  RJD 152.836132   33.278582 -0.12682042 152.160578
## 178:    viksvatn 72   DD 148.746918   34.038084 -0.12907497 148.152551
## 179:    viksvatn 72    J 149.594074   32.867014 -0.12870464 148.152551
## 180:    viksvatn 72  RJD 148.951267   33.234232 -0.13046078 148.152551
##      gev.sigma      gev.xi
##   1:  1.480452  0.11158187
##   2:  1.480452  0.11158187
##   3:  1.480452  0.11158187
##   4:  1.139131  0.07703172
##   5:  1.139131  0.07703172
##  ---                      
## 176: 33.052511 -0.09787224
## 177: 33.052511 -0.09787224
## 178: 31.986724 -0.12388234
## 179: 31.986724 -0.12388234
## 180: 31.986724 -0.12388234
## ---calculate the IQD

myIQD <- function(muQ,sigmaQ,xiQ,muG,sigmaG,xiG){

  integrand <- function(x){
    a = SpatialExtremes::pgev(x,loc=muQ, scale=sigmaQ, shape=xiQ)
    b = SpatialExtremes::pgev(x,loc=muG, scale=sigmaG, shape=xiG)
    return( (a-b)^2 )
    }
  iqd = integrate(integrand,-Inf,Inf)$value
  return(iqd)
}


medp[,
     iqd:=lapply(.SD,
                 function(cols) myIQD(muQ=med.mu.x,
                                      sigmaQ=med.sigma.x,
                                      xiQ=med.xi.x,
                                      muG=gev.mu,
                                      sigmaG=gev.sigma,
                                      xiG=gev.xi)),
     by = list(lnxID,d,type),
     .SDcols = 4:9]

Which model is best grouped across stations and durations?

medp[,.(score=mean(iqd)),by=list(type)]
##    type      score
## 1:   DD 0.03479781
## 2:    J 0.03664582
## 3:  RJD 0.04283840

Which model wins each station?

tf <- medp[,.(score=mean(iqd)),by=list(lnxID,type)]
winningmodeleachstation <- tf[tf[, .I[score == min(score)], by=lnxID]$V1]
setnames(winningmodeleachstation,"type", "w")
winningmodeleachstation
##            lnxID   w        score
##  1:  dyrdalsvatn  DD 4.221255e-03
##  2:     elgtjern   J 1.061689e-03
##  3:         etna RJD 9.089377e-03
##  4:        grava RJD 8.836108e-03
##  5:  grosettjern  DD 5.977336e-04
##  6:        gryta  DD 1.010800e-03
##  7:    hugdalbru   J 2.019134e-01
##  8: manndalenbru RJD 1.068889e-02
##  9:      oyungen  DD 9.291191e-02
## 10:     roykenes  DD 3.493691e-02
## 11:  sjodalsvatn  DD 1.252005e-02
## 12:     viksvatn   J 2.089943e-06
tf
##            lnxID type        score
##  1:  dyrdalsvatn   DD 4.221255e-03
##  2:  dyrdalsvatn    J 4.375382e-03
##  3:  dyrdalsvatn  RJD 4.446831e-03
##  4:     elgtjern   DD 1.149447e-03
##  5:     elgtjern    J 1.061689e-03
##  6:     elgtjern  RJD 1.229821e-03
##  7:         etna   DD 1.069467e-02
##  8:         etna    J 1.224852e-02
##  9:         etna  RJD 9.089377e-03
## 10:        grava   DD 8.881172e-03
## 11:        grava    J 1.023195e-02
## 12:        grava  RJD 8.836108e-03
## 13:  grosettjern   DD 5.977336e-04
## 14:  grosettjern    J 7.066845e-04
## 15:  grosettjern  RJD 6.059088e-04
## 16:        gryta   DD 1.010800e-03
## 17:        gryta    J 2.193199e-03
## 18:        gryta  RJD 1.353265e-03
## 19:    hugdalbru   DD 2.339426e-01
## 20:    hugdalbru    J 2.019134e-01
## 21:    hugdalbru  RJD 2.591966e-01
## 22: manndalenbru   DD 1.094474e-02
## 23: manndalenbru    J 1.379276e-02
## 24: manndalenbru  RJD 1.068889e-02
## 25:      oyungen   DD 9.291191e-02
## 26:      oyungen    J 1.191373e-01
## 27:      oyungen  RJD 1.382769e-01
## 28:     roykenes   DD 3.493691e-02
## 29:     roykenes    J 4.129107e-02
## 30:     roykenes  RJD 4.197315e-02
## 31:  sjodalsvatn   DD 1.252005e-02
## 32:  sjodalsvatn    J 3.279590e-02
## 33:  sjodalsvatn  RJD 3.835839e-02
## 34:     viksvatn   DD 5.762441e-03
## 35:     viksvatn    J 2.089943e-06
## 36:     viksvatn  RJD 5.485069e-06
##            lnxID type        score