R/meta2esd.R

# author Rasmus E. Benestad
# Last-Update 2013-07-23 by Abdelkader Mezghani
 
decryptcn <- function(codes,src="ECAD") {
  n <- length(codes)
  country <- rep("",n)
  for (i in 1:n) {
    country[i]= switch(codes[i],'SE'='Sweden','AT'=,'Austria','BE'='Belgium',
            'HR'='Croatia','CY'='Cypros','CZ'='Chzeck Republic',
            'FI'='Finland','FR'='France','DE'='Germany',
            'IS'='Iceland','RU'='Russia','DK'='Denmark',
            'IE'='Ireland','NL'='the Netherlands','IT'='Italy',
            'NO'='Norway','LV'='Latvia','LT'='Lituania',
            'PT'='Portugal','RO'='Romania','SK'='Slovakia',
            'SI'='Slovenia','ES'='Spain','CH'='Switzerland',
            'RS'='Serbia','EE'='Estonia','MK'='Makedonia',
            'GB'='Great Britain','BA'='Bosnia-Hertsogovina',
            'AL'='Albania','DZ'='Algeria','LU'='Luxemburg',
            'AM'='Armenia','GL'='Greenland','AZ'='Azerbaijan',
            'EG'='Egypt','GR'='Greece','PL'='Poland','IL'='Israel',
            'BY'='Belarus','GE'='Georgia','HU'='Hungary',
            'IQ'='Iraq','KZ'='Khazakstan','LY'='Libya',
            'MD'='Moldova','MO'='Morocco','MT'='Malta',
            'SA'='Saudi Arabia','SY'='Syria','TJ'='Tajikistan',
            'TR'="Turkey",'UA'='Ukraina','UZ'='Uzbekistan',
            'B'='Belgia','FIN'='Finland','FRI'='Faroe Islands',
            'G'='Greenland','IRL'='Ireland','IS'='Iceland',
            'N'='Norway','S'='Sweden')
  }
  invisible(country)
}

meta2esd <- function(silent=TRUE) {
require(clim.pact)
 # These data sets will be re-saved in esd and consolidated in terms of parameter names
  data("nacd.meta",envir=environment())
  data("narp.meta",envir=environment())
  #data("nordklim.meta",envir=environment())
  load("nordklim.meta.rda")
  #load("eca.meta.rda")
  load("ecad.meta.rda") ; ecsn.meta <- ecad.meta
  load("ghcnd.meta.rda")
  load("ghcnm.meta.rda")
  
  n.narp <- length(narp.meta$stnr); n.nacd <- length(nacd.meta$station.number);
  n.nork <- length(nordklim.meta$station_id)
  
  n.nacd <- length(nacd.meta$station.number)
  n.ecad <- length(ecad.meta$station_id)
  n.ghcnm <- length(ghcnm.meta$station_id)
  n.ghcnd <- length(ghcnd.meta$station_id)
  #nacd.lon <- nacd.meta$degE + nacd.meta$minE/60
  nacd.lon <- (nacd.meta$degE + nacd.meta$minE/60)*ifelse(as.character(nacd.meta$E.W)==" E",1,-1)
  nacd.lat <- nacd.meta$degN + nacd.meta$minN/60

  nacd.cn <- strip(as.character(nacd.meta$country))
  nacd.cn[is.element(nacd.cn,'FR')] <- 'FRI'
  #r.script <- readLines("meta2esd.R")

#  data("observation.meta",envir=environment()
  station.meta <- list(
    	station_id=as.character(c(nacd.meta$station.number,narp.meta$stnr,nordklim.meta$station_id,ecad.meta$station_id,ghcnm.meta$station_id,ghcnd.meta$station_id)),
    	location=c(nacd.meta$location,narp.meta$names,nordklim.meta$location,ecad.meta$location,ghcnm.meta$location,ghcnd.meta$location),
	country=c(toupper(decryptcn(nacd.cn)),toupper(narp.meta$countries),nordklim.meta$country,ecad.meta$country,ghcnm.meta$country,ghcnd.meta$country),
    	longitude=c(nacd.lon,narp.meta$lons,nordklim.meta$longitude,ecad.meta$lon,ghcnm.meta$longitude,ghcnd.meta$longitude),
    	latitude=c(nacd.lat,narp.meta$lats,nordklim.meta$latitude,ecad.meta$lat,ghcnm.meta$latitude,ghcnd.meta$latitude),
    	altitude=c(nacd.meta$alt,rep(NA,n.narp),nordklim.meta$altitude,ecad.meta$alt,ghcnm.meta$altitude,ghcnd.meta$altitude),
	element=c(nacd.meta$element,rep(NA,n.narp),nordklim.meta$element,ecad.meta$element,rep(NA,n.ghcnm),rep(NA,n.ghcnd)),
	start=c(nacd.meta$start,rep(NA,n.narp),nordklim.meta$start,ecad.meta$start,ghcnm.meta$start,ghcnd.meta$start),
	end=c(rep(NA,n.nacd),rep(NA,n.narp),nordklim.meta$end,ecad.meta$end,ghcnm.meta$end,ghcnd.meta$end),    	
	source=c(rep("NACD",n.nacd),rep("NARP",n.narp),rep("NORDKLIM",n.nork),rep("ECAD",n.ecad),rep("GHCNM",n.ghcnm),rep("GHCND",n.ghcnd)),
	wmo=c(nacd.meta$wmo.number,narp.meta$WMO.number,rep(NA,n.nork),rep(NA,n.ecad),rep(NA,n.ghcnm),rep(NA,n.ghcnd)),  
    	quality=c(nacd.meta$quality,rep(NA,n.narp),rep(NA,n.nork),rep(NA,n.ecad),rep(NA,n.ghcnm),rep(NA,n.ghcnd))
)

  if (!silent) print(str(station.meta))
  if (!silent) print(table(station.meta$source))
  attr(station.meta,'history') <- c('meta2esd.R - data taken from the clim.pact package and consilidated for NACD and NARP',"nordklima.meta.rda","ecad.meta.rda","ghcnd.meta.rda","ghcnm.meta.rda")
  #attr(station.meta,'R-script') <- r.script
  attr(station.meta,'date') <- date
  attr(station.meta,'call') <- match.call()
  attr(station.meta,'author') <- 'R.E. Benestad & A. Mezghani'
  attr(station.meta,'URLs') = c(
         "www.dmi.dk/dmi/sr96-1.pdf",
         "http://www.norden.org/en/publications/publikationer/2005-450",
         "http://www.smhi.se/hfa_coord/nordklim/",
         "http://eca.knmi.nl/")
  save(file="station.meta.rda",station.meta)
return(station.meta)
}
metno/esd.test documentation built on May 22, 2019, 7:49 p.m.