R/getSynop.R

Defines functions getSynop

Documented in getSynop

##' Extraction des observations de reseau SYNOP
##' 
##' Récupère les observations climatologiques du réseau OMM 
##' SYNOP fournies par Météo-France pour une date et un réseau 
##' donné.
##' 
##' @param la date des observations à télécharger.
##' @param l' heure du réseau à télécharger,donnée sous la 
##' forme d'unmultiple de 3 compris entre 0 et 21.
##' 
##' @return La fonction retourne un tableau de données 
##' contenant les valeurs des principales variables climatiques
##' des stations du réseau SYNOP.
##'     
##' @export
getSynop <- 
  function(date=Sys.Date(), reseau)
  {
    ##  
    if (missing(reseau)) reseau <- format(Sys.time(),"%H", tz = "UTC")
    reseau <-  (as.numeric(reseau) %/% 3) * 3
    message("Extraction du réseau SYNOP du ", 
            format(date,"%a %d-%b-%Y-"), reseau, "H UTC", sep = "")
    ## Construction du chemin de fichier
    reseau <- sprintf("%s%02d", format(date,"%Y%m%d"), reseau)
    fname <- paste("https://donneespubliques.meteofrance.fr/",
                   "donnees_libres/Txt/Synop/synop.",
                   reseau,".csv", sep = "")
    #message(fname)
    ##  Extraction des données
    ftmp <- tempfile(pattern = "synop", fileext = "csv")
    download.file(fname, ftmp)
    tmp <- read.csv2(ftmp, stringsAsFactors = FALSE)
    ## Post-traitements 
    res <- with(tmp, suppressWarnings(data.frame( 
      code = as.integer(numer_sta), 
      date = as.POSIXct(as.character(date),"%Y%m%d%H%M%S",tz = "UTC"),
      pmer = as.numeric(pmer)/100, psol = as.numeric(pres)/100,
      temp = as.numeric(t) - 273.15, rain = as.numeric(rr3), 
      raf = as.numeric(raf10)
      )))
    ## Ajout du nom des stations climato
    data("synop", package = "DtgRecup")
    id <- match(res$code, synop$numer_sta)
    lab <- synop$Nom.usuel[id] 
    data.frame(station = lab, res, stringsAsFactors = FALSE)
  }
coolTot/DtgRecup documentation built on May 12, 2017, 9:45 a.m.