R/forecast-ensemble-visu.R

Defines functions labGEFS visuGEFS

Documented in labGEFS visuGEFS

##' Visualisteur de prevision GEFS
##' 
##' Visualisatuur simple des fihciers GRIB de prévisions d'ensemble GFS.
##' Le visualisateur requiert le paquet \pkg{manipulate}.
##' @param x le résultats de la commande \command{getGEFS}.   
##' 
##' @importFrom manipulate manipulate
##' @export
visuGEFS <- 
  function(x, filled=FALSE) 
  {
    data(border)
    ## Preparation de quelques variables 
    var <- labGEFS(names(x$data)[1])$var
    lev <- switch(var, temp=seq(-30, 30, by=5),
                  precip=c(0.5,1,2,5,10,20,30,50,70,100))
    pal <- switch(var, temp=cm.colors, precip=topo.colors)  
    labs <- sapply(names(x$data), function(x) labGEFS(x)$label)
    ## 
    pl <- function(x,i) {
      if (filled)
        raster::filledContour(x$data[[i]], levels=lev, color.palette=pal, 
                              plot.title=title(main=labs[i], xlab="Longitude", 
                                               ylab="Latitude", cex.main=0.8),
                              key.title=title(main="mm/6H", cex.main=0.6), 
                              cex=0.6, asp=1)
      else
        plot(x$data[[i]], col=pal(length(lev)-1), breaks=lev, asp=1,
             main=labs[i], xlab="Longitude", ylab="Latitude")
      plot(border.ll, add=TRUE)
    }
    ## On trace 
    manipulate::manipulate(pl(x,i), i=slider(1,length(x$data)))
  }


##' Extrait le titre d'un GRIB GEFS
##' 
##' Extrait les caractéristiques d'un fichier GRIB de prévision 
##' d'ensemble GFS, récupéré sur les serveurs NOMADS de la NOAA, 
##' à partir du nom du fichier téléchargé.
##' @param x le chemin d'un fichier GRIB obtenu à l'aide de la commande 
##' \command{getGEFS}.
##' @return \command{labGEFS} retourne un liste contenant le titre 
##' correspondant au fichier (\code{$label}), la date de la prévisons 
##' (\code{$date.prev}), le type de variable (\code{var}) et le numéro
##' du scénario de la prévision d'ensemble (\code{ensemble}). 
##' @export
labGEFS <- 
  function(x) 
  {
    ## On sectionne le nom de fichier
    tmp <- unlist(strsplit(basename(x),split="_"))
    ## 
    datep <- as.POSIXct(strptime(tmp[2],"%Y%m%d", tz="UTC")) + 
      as.difftime(as.integer(tmp[3])+as.integer(tmp[4]), units="hours")
    type <- tmp[5]
    scen <- as.integer(tmp[6])
    lab <- paste(toupper(type),": ",format(datep,"%a %d %b %Y, %HH"),
                 " (Ensemble ",scen,")", sep="")
    list(label=lab, date.prev=datep, var=type, ensemble=scen )
  }
coolTot/DtgRecup documentation built on May 12, 2017, 9:45 a.m.