IS {verification}R Documentation

Alternative Intensity Scale Function

Description

Beta version of intensity scale function created by Barbara Casati.

Usage

 IS(frcs, obs, thres) 

Arguments

frcs

Forecast matrix. Must be of $2^n$ dimensions.

obs

Observation matrix. Must be of $2^n$ dimensions.

thres

A vector of thresholds to be considered. By default, the percentiles 0, 90 are used.

Value

SSul = SSul, MSEul = MSEul, l.frcs = dim(frcs)[1], thres = thres, Bias = Bu, BR = BRu

SSul

Skill score as matrix. The rownames are the thresholds, the colnames are $n$ where $2^n$ is the spatial scale of the skill score decomposition.

MSEul

A matrix with the mean squared error of the forecast

l.frcs

Number of rows in forecast. Used in plotting routine.

thres

Thresholds used in model

Bias

Bias

BR

BR

Note

THIS IS A DRAFT FORM OF THIS FUNCTION. IT MAY CHANGE AND REPLACE int.scale.verify

Author(s)

Barbara Casati <barbara.casati@ec.gc.ca>

References

Casati et al (2004), A new intensity-scale approach for the verification of spatial precipitation forecasts, Meteorol. Appl, vol 11, 141-154 pp.

See Also

int.scale.verify and plot.int.scale

Examples

#####################################################
# files.dat: read, create and write
######################################################

IS.NIMROD.case <- IS(forecast.dat, analysis.dat,c(0, 2^seq(-5,6)))
NIMROD.SSul <- IS.NIMROD.case$SSul
colnames(NIMROD.SSul) <- paste(c("0","1/32", "1/16", "1/8", "1/4", "1/2", "1",
                "2","4", "8", "16", "32", "64"),"mm/h")
rownames(NIMROD.SSul) <- paste(5*2^seq(0,8),"km")
# write.table(NIMROD.SSul,file="NIMROD.SSul.dat")

NIMROD.MSEul <- IS.NIMROD.case$MSEul
colnames(NIMROD.MSEul) <- paste(c("0","1/32", "1/16", "1/8", "1/4", "1/2", "1",
                "2","4", "8", "16", "32", "64"),"mm/h")
rownames(NIMROD.MSEul) <- paste(5*2^seq(0,8),"km")

###################################################
# colorbars for the images
###################################################

Nimrod.colorbar <- function(){
colors = c(0,8,8,8,8,5,5,4,4,4,2,2,2)
xlimbar = c(7,8)
ylimbar = c(46.5,59.5)
barlabels = c("0","1/32", "1/16", "1/8", "1/4", "1/2", "1", "2", "4", "8", "16",
"32", "64","128")
ycoord = seq(ylimbar[1],ylimbar[2],length=length(colors)+1)
for(i in seq(1,length(colors))){
polygon(x=c(xlimbar[1],xlimbar[1],xlimbar[2],xlimbar[2],xlimbar[1]),
y=c(ycoord[i],ycoord[i+1],ycoord[i+1],ycoord[i],ycoord[i]),
col = colors[i])}
axis(4,at=ycoord,labels=barlabels,las=TRUE)
mtext("mm/h",line=1,at=c(7.5,61),cex=1.5)
}

colorbar <- function(xlimbar,ylimbar,colors,barlabels){
ycoord = seq(ylimbar[1],ylimbar[2],length=(length(colors)+1))
for(i in seq(1,length(colors))){
polygon(x=c(xlimbar[1],xlimbar[1],xlimbar[2],xlimbar[2],xlimbar[1]),
y=c(ycoord[i],ycoord[i+1],ycoord[i+1],ycoord[i],ycoord[i]),
col = colors[i])}
axis(4,at=ycoord,labels=barlabels,las=TRUE)
}

#  images
#
   par(oma=c(3,3,3,3), mfrow = c(1,1) )
   image(seq(-12,8,length=256), seq(46.5,59.5,length=256), analysis.dat,
       xlim = c(-12,8), ylim = c(46.5,59.5), zlim = c(0,128),
       xlab = "longitude", ylab = "latitude",main="Nimrod analysis 29/05/99 15:00",
       col=c(0,8,8,8,8,5,5,4,4,4,2,2,2),breaks=c(0,2^seq(-5,7,1)))
   world(xlim=c(-12,8),ylim=c(46.5,59.5), add = TRUE, lwd = 3)
   Nimrod.colorbar()

#
   par(oma=c(3,3,3,3))
   image(seq(-12,8,length=256), seq(46.5,59.5,length=256), forecast.dat,
       xlim = c(-12,8), ylim = c(46.5,59.5), zlim = c(0,128),
       xlab = "longitude", ylab = "latitude",main="Nimrod forecast T+3h",
       col=c(0,8,8,8,8,5,5,4,4,4,2,2,2),breaks=c(0,2^seq(-5,7,1)))
   world(xlim=c(-12,8),ylim=c(46.5,59.5), add = TRUE, lwd = 3)
   Nimrod.colorbar()
#
    par(oma=c(3,3,3,3))
    image(seq(-6,6,1),seq(1,9),t(NIMROD.SSul),xlim=c(-6.5,8.5),zlim=c(-4,1),
        xlab="threshold (mm/h)",ylab="scale (km)",axes=FALSE,
        main="Intensity-Scale Skill Score", col=c(4,4,4,4,5,5,5,5,7,7))
    axis(1,at = seq(-6,6,1), labels = c("0","1/32", "1/16", "1/8", "1/4", "1/2",
"1", "2","4", "8", "16", "32", "64"))
    axis(2,at = seq(1,9),labels=5*2^seq(0,8,1))
    rect(xleft=-6.5, ybottom=0.5, xright=6.5, ytop=9.5)

colorbar(xlimbar=c(7.5,8.5),ylimbar=c(0.5,9.5),colors=c(4,4,4,4,5,5,5,5,7,7),barlabels=seq(-4,1,0.5))

[Package verification version 1.31 Index]