R/recupGFS.R

Defines functions recupGFS recupGFS

Documented in recupGFS

<<<<<<< HEAD
##' @rdname getGFS
##' @description \command{recupGFS} réalise l'extraction des prévisions 
##' GFS via la commande \command{getGFS} et dépose les résultats sur le 
##' serveur FTP des prévisionnistes sous la forme d'un fichier \var{NetCDF}. 
##' 
##' @examples 
##' \dontrun{
##' recupGFS(run=0)
##' }
##' @export
recupGFS <- 
  function(date, run, var=c("precip", "temp","gust","alti"), 
           quiet = FALSE, ...)
  {
    ## Sélection du run GFS
    if (missing(date)) date <- Sys.Date()
    if (missing(run)) run <- as.POSIXlt(Sys.time(), tz="UTC")$hour
    ## On valide la valeur de run
    run <- getrun(run)
    ## Répertoire de travail temporaire
    TMP <- tempdir()
    ## 
    ## Boucle de traitement des récupérations
    for (variable in var) {
      ## Aspiration des previsions
      x <- getGFS(date, run, var = variable, ...)
      ## Sauvegarde dans un ficheir text 
      fname <- writeForecast(x, path=TMP)
      ## Dépot sur le FTP
      if (!quiet) message("Archivage de ", fname, "...")
      chk <- deposePrevi(fname, "previ/archives/GFS")
      if (!quiet) message(ifelse(chk, "Ok", "Erreur"))
      if (!chk) return(chk)
    }
  }
=======
##' @rdname getGFS
##' @description \command{recupGFS} réalise l'extraction des prévisions 
##' GFS via la commande \command{getGFS} et dépose les résultats sur le 
##' serveur FTP des prévisionnistes sous la forme d'un fichier \var{NetCDF}. 
##' 
##' @examples 
##' \dontrun{
##' recupGFS(run=0)
##' }
##' @export
recupGFS <- 
  function(date, run, var=c("precip", "snow", "temp","gust"),
           quiet=FALSE, ...)
  {
    ## Sélection du run GFS
    if (missing(date)) date <- Sys.Date()
    if (missing(run)) 
      run <- ((as.POSIXlt(Sys.time(),tz="ITC")$hour-4)%/%6) * 6
    ## Répertoire de travail temporaire
    TMP <- tempdir()
    ## 
    ## Boucle de traitement des récupérations
    for (variable in var) {
      ## Aspiration des previsions
      x <- getGFS(date, run, var = variable, quiet=quiet, ...)
      ## Sauvegarde dans un ficheir text 
      fname <- writeForecast(x, path=TMP)
      ## Dépot sur le FTP
      if (!quiet) message("Archivage de", fname,"...")
      if (.Platform$OS.type=="windows") {
        ## Systeme windows
        CMD <- tempfile(fileext = "_ftp.cmd") 
        cat("open ftp.edf.fr", "ftpdtg", "dtg1recep",
            "cd previ/archives/GFS", "binary", sprintf("lcd %s", TMP),
            sprintf("put %s", basename(fname)), "bye", sep="\n", 
            file=CMD)
        chk <- try(system(sprintf("ftp -i -s:%s",CMD), intern=TRUE))
      } else {
        ## Systeme linux
        CMD <- tempfile(fileext = "_ftp.sh") 
        cat("ftp -n ftp.edf.fr <<EOF", "user ftpdtg dtg1recep",
            "cd previ/archives/GFS", "binary", sprintf("lcd %s", TMP),
            sprintf("put %s", basename(fname)), "bye","EOF", sep="\n", 
            file=CMD)
        chk <- try(system(sprintf("sh %s",CMD), intern=TRUE))
      }
      if (inherits(chk,"try-error")) return(chk)
    }
  }
>>>>>>> 53ae716ce8775c9fd36538db2ce00c6b918e4778
coolTot/DtgRecup documentation built on May 12, 2017, 9:45 a.m.