plot.OutputsModel: Default preview of model outputs

View source: R/plot.OutputsModel.R

plotR Documentation

Default preview of model outputs

Description

Function which creates a screen plot giving an overview of the model outputs.

Usage

## S3 method for class 'OutputsModel'
plot(x, Qobs = NULL, IndPeriod_Plot = NULL,
     BasinArea = NULL, which = "synth", log_scale = FALSE,
     cex.axis = 1, cex.lab = 0.9, cex.leg = 0.9, lwd = 1,
     AxisTS = function(x) axis.POSIXct(side = 1, x = x$DatesR, ...),
     LayoutMat = NULL,
     LayoutWidths = rep.int(1, ncol(LayoutMat)),
     LayoutHeights = rep.int(1, nrow(LayoutMat)),
     verbose = TRUE, ...)

Arguments

x

[object of class OutputsModel] list of model outputs (which must at least include DatesR, Precip and Qsim) [POSIXlt, mm/time step, mm/time step]

Qobs

(optional) [numeric] time series of observed flow (for the same time steps than simulated) [mm/time step]

IndPeriod_Plot

(optional) [numeric] indices of the time steps to be plotted (among the OutputsModel series)

BasinArea

(optional) [numeric] basin area [km2], used to plot flow axes in m3/s

which

(optional) [character] choice of plots
(e.g. c("Precip", "Temp", "SnowPack", "Flows", "Error", "Regime", "CumFreq", "CorQQ")), default = "synth", see details below

log_scale

(optional) [boolean] indicating if the flow and the error time series axis and the flow error time series axis are to be logarithmic, default = FALSE

cex.axis

(optional) [numeric] the magnification to be used for axis annotation relative to the current setting of cex

cex.lab

(optional) [numeric] the magnification to be used for x and y labels relative to the current setting of cex

cex.leg

(optional) [numeric] the magnification to be used for the legend labels relative to the current setting of cex

lwd

(optional) [numeric] the line width (a positive number)

AxisTS

(optional) [function] to manage x-axis representing calendar dates and times on time series plots (see axis and axis.POSIXct)

LayoutMat

(optional) [numeric] a matrix object specifying the location of the next N figures on the output device. Each value in the matrix must be 0 or a positive integer. If N is the largest positive integer in the matrix, then the integers 1, \dots, N-1 must also appear at least once in the matrix (see layout)

LayoutWidths

(optional) [numeric] a vector of values for the widths of columns on the device (see layout)

LayoutHeights

(optional) [numeric] a vector of values for the heights of rows on the device (see layout)

verbose

(optional) [boolean] indicating if the function is run in verbose mode or not, default = TRUE

...

(optional) other parameters to be passed through to plotting functions

Details

Different types of independent graphs are available (depending on the model, but always drawn in this order):

  • "Precip": time series of total precipitation

  • "PotEvap": time series of potential evapotranspiration

  • "ActuEvap": time series of simulated actual evapotranspiration (overlaid to "PotEvap" if already drawn)

  • "Temp": time series of temperature (plotted only if CemaNeige is used)

  • "SnowPack": time series of snow water equivalent (plotted only if CemaNeige is used)

  • "Flows": time series of simulated flows (and observed flows if provided)

  • "Error": time series of simulated flows minus observed flows (and observed flows if provided)

  • "Regime": centred 30-day rolling mean applied on interannual average of daily simulated flows (and observed flows if provided)

  • "CorQQ": correlation plot between simulated and observed flows (only if observed flows provided)

  • "CumFreq": cumulative frequency plot for simulated flows (and observed flows if provided)

Different dashboards of results including various graphs are available:

  • "perf": corresponds to "Error", "Regime", "CumFreq" and "CorQQ"

  • "ts": corresponds to "Precip", "PotEvap", "Temp", "SnowPack" and "Flows"

  • "synth": corresponds to "Precip", "Temp", "SnowPack", "Flows", "Regime", "CumFreq" and "CorQQ"

  • "all": corresponds to "Precip", "PotEvap", "ActuEvap", "Temp", "SnowPack", "Flows", "Error", "Regime", "CumFreq" and "CorQQ"

If several dashboards are selected, or if an independent graph is called with a dashboard, the graphical device will include all the requested graphs without redundancy.

Value

Screen plot window.

Author(s)

Laurent Coron, Olivier Delaigue, Guillaume Thirel

Examples

### see examples of RunModel_GR4J or RunModel_CemaNeigeGR4J functions
### to understand how the example datasets have been prepared


## loading examples dataset for GR4J and GR4J + CemaNeige
data(exampleSimPlot)


### Qobs and outputs from GR4J and GR4J + CemaNeige models
str(simGR4J, max.level = 1)
str(simCNGR4J, max.level = 1)


### default dashboard (which = "synth")

## GR models whithout CemaNeige
plot(simGR4J$OutputsModel, Qobs = simGR4J$Qobs)

## GR models whith CemaNeige ("Temp" and "SnowPack" added)
plot(simCNGR4J$OutputsModel, Qobs = simCNGR4J$Qobs)


### "Error" and "CorQQ" plots cannot be display whithout Qobs
plot(simGR4J$OutputsModel, which = "all", Qobs = simGR4J$Qobs)
plot(simGR4J$OutputsModel, which = "all", Qobs = NULL)


### complex plot arrangements
plot(simGR4J$OutputsModel, Qobs = simGR4J$Qobs,
     which = c("Flows", "Regime", "CumFreq", "CorQQ"),
     LayoutMat = matrix(c(1, 2, 3, 1, 4, 4), ncol = 2),
     LayoutWidths  = c(1.5, 1),
     LayoutHeights = c(0.5, 1, 1))


### customize x-axis on time series plot
FunAxisTS <- function(x) {
  axis.POSIXct(side = 1, x = x$DatesR,
  at = pretty(x$DatesR, n = 10),
  format = "%Y-%m-%d")
}
plot(simGR4J$OutputsModel, Qobs = simGR4J$Qobs, AxisTS = FunAxisTS)


### add a main title

## the whole list of settable par's
opar <- par(no.readonly = TRUE)

## define outer margins and a title inside it
par(oma = c(0, 0, 3, 0))
plot(simGR4J$OutputsModel, Qobs = simGR4J$Qobs)
title(main = "GR4J outputs", outer = TRUE, line = 1.2, cex.main = 1.4)

## reset original par
par(opar)

airGR documentation built on Oct. 26, 2023, 9:07 a.m.