From caf59371b0404cebf22f70fdc9984e39c6cafbf2 Mon Sep 17 00:00:00 2001 From: hollorol Date: Tue, 20 Jun 2017 11:30:22 +0200 Subject: [PATCH 1/2] corrigating the leapyear --- RBBGCMuso/R/musoTime.R | 6 ++++++ RBBGCMuso/R/otherUsefullFunctions.R | 26 ++++++++++++++++++++++++++ RBBGCMuso/R/rungetMuso.R | 11 +++++++++-- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/RBBGCMuso/R/musoTime.R b/RBBGCMuso/R/musoTime.R index 2b6cdfc..c29648c 100644 --- a/RBBGCMuso/R/musoTime.R +++ b/RBBGCMuso/R/musoTime.R @@ -56,6 +56,12 @@ sumDaysOfPeriod <- function(year, periodlen, corrigated=TRUE){ } } +musoLeapYears <- function(settings){ + days <- 365*settings$numyears + years <- settings$startyear:(settings$startyear+settings$numyears-1) + Leapyears <-unlist(lapply(years,isLeapyear)) + return(Leapyears) +} musoDate <- function(settings,timestep="d",combined=TRUE, corrigated=TRUE, format="en"){ ##purpose: generate date label for muso diff --git a/RBBGCMuso/R/otherUsefullFunctions.R b/RBBGCMuso/R/otherUsefullFunctions.R index 5165fa0..13f10d0 100644 --- a/RBBGCMuso/R/otherUsefullFunctions.R +++ b/RBBGCMuso/R/otherUsefullFunctions.R @@ -51,3 +51,29 @@ supportedMuso <- function(x="outputs"){ return(cat("Supported formats are ",supportedFormats,"If your fileformat is something else, we automaticle coerced it to csv.\n")) } } + + +insertRow <- function(existingDF, newrow, r){ + nr <- nrow(existingDF) + existingDF <- rbind(existingDF,rep(NA,ncol(existingDF))) + existingDF[seq(r+1,nr+1),] <- existingDF[seq(r,nr),] + existingDF[r,] <- newrow + existingDF +} + +corrigMuso <- function(settings, data){ + numdays <- nrow(data) + data <- data + numyears <- settings$numyears + leapyears <- musoLeapYears(settings) + sylvesters <- data[seq(from=365, to=numdays, by=365),] + ind <- 0 + for(i in 1:numyears){ + + if(leapyears[i]){ + data <- insertRow(data,sylvesters[i],i*360+ind) + ind <- ind+1 + } + } + return(data) +} diff --git a/RBBGCMuso/R/rungetMuso.R b/RBBGCMuso/R/rungetMuso.R index 4fb3bca..ed0b1e1 100644 --- a/RBBGCMuso/R/rungetMuso.R +++ b/RBBGCMuso/R/rungetMuso.R @@ -6,7 +6,7 @@ Linuxp <-(Sys.info()[1]=="Linux") -rungetMuso <- function(settings, timee="d", debugging=FALSE, logfilename=NULL, keepEpc=FALSE, export=FALSE, silent=FALSE, aggressive=FALSE){ +rungetMuso <- function(settings, timee="d", debugging=FALSE, logfilename=NULL, keepEpc=FALSE, export=FALSE, silent=FALSE, aggressive=FALSE, leapYear=FALSE){ ############################################################# ############################spinup run############################ @@ -194,6 +194,13 @@ rungetMuso <- function(settings, timee="d", debugging=FALSE, logfilename=NULL, k colnames(Reva) <- unlist(settings$outputvars[[2]]) } + if(leapYear){ + Reva <- corrigMuso(settings,Reva) + rownames(Reva) <- musoDate(settings) + } else { + rownames(Reva) <- musoDate(settings, corrigated=FALSE) + } + if(export!=FALSE){ setwd(whereAmI) @@ -204,7 +211,7 @@ rungetMuso <- function(settings, timee="d", debugging=FALSE, logfilename=NULL, k ## ) - + write.csv(Reva,export) } else{ setwd(whereAmI) From 038e871ce3f4b3b0cf8debd20d8b6b8c9daec915 Mon Sep 17 00:00:00 2001 From: hollorol Date: Tue, 20 Jun 2017 15:11:52 +0200 Subject: [PATCH 2/2] version change and minor bug fixes --- RBBGCMuso/DESCRIPTION | 2 +- RBBGCMuso/R/#musoTime.R# | 105 ++++++++++++++++++ RBBGCMuso/R/calibMuso.R | 14 ++- ...1.tar.gz => RBBGCMuso_0.1.9.0-1.tar.gz.bck | Bin RBBGCMuso_0.2.0.0-1.tar.gz | Bin 0 -> 17742 bytes .../RBBGCMuso_0.1.8.tar.gz | Bin 6 files changed, 118 insertions(+), 3 deletions(-) create mode 100644 RBBGCMuso/R/#musoTime.R# rename RBBGCMuso_0.1.9.0-1.tar.gz => RBBGCMuso_0.1.9.0-1.tar.gz.bck (100%) create mode 100644 RBBGCMuso_0.2.0.0-1.tar.gz rename RBBGCMuso_0.1.8.tar.gz => RBBGCMuso_archive/RBBGCMuso_0.1.8.tar.gz (100%) diff --git a/RBBGCMuso/DESCRIPTION b/RBBGCMuso/DESCRIPTION index 65da841..1bd6ed1 100644 --- a/RBBGCMuso/DESCRIPTION +++ b/RBBGCMuso/DESCRIPTION @@ -1,6 +1,6 @@ Package: RBBGCMuso Title: What the Package Does (one line, title case) -Version: 0.1.9.0-1 +Version: 0.2.0.0-1 Authors@R: person("Roland", "Hollos", , "hollorol@gmail.com", role = c("aut", "cre")) Description: What the package does (one paragraph) License: GPL-2 diff --git a/RBBGCMuso/R/#musoTime.R# b/RBBGCMuso/R/#musoTime.R# new file mode 100644 index 0000000..c29648c --- /dev/null +++ b/RBBGCMuso/R/#musoTime.R# @@ -0,0 +1,105 @@ + +isLeapyear <- function(year){ + ##This Boolean function tells us whether the given year is leapyear or not + + if(((year%%4==0)&(year%%100!=0))|(year%%400==0)){ + return(TRUE) + } else { + return(FALSE) + } +} + +dayOfMonths <- function(year,corrigated=TRUE){ + ##This function tells us how many days are in the months in the choosen year. + + dayMonths <- c(31,28,31,30,31,30,31,31,30,31,30,31) + + if(corrigated){ + + if(isLeapyear(year)==TRUE){ + dayMonths[2] <-29 + } + } + + return(dayMonths) +} + +dayOfYears <- function(year, corrigated=TRUE){ + ##This function tells us how many days are in the given year. + + if(corrigated){ + if(isLeapyear(year)==TRUE){ + return(366) + } else { + return(365) + } + } else { + return(365) + } + +} + +sumDaysOfPeriod <- function(year, periodlen, corrigated=TRUE){ + ##How many days are from the given date and given period length(periodlen)? + + years <- year:(year+periodlen) + + if(corrigated){ + years100 <-length(which(years%%100==0)) + years400 <-length(which(years%%400==0)) + years4 <- length(which(years%%4==0)) + numberOfLeapdays <- years4-years100+years400 + days <- periodlen*365+numberOfLeapdays + return(days) + } else { + days <- periodlen*365 + } +} + +musoLeapYears <- function(settings){ + days <- 365*settings$numyears + years <- settings$startyear:(settings$startyear+settings$numyears-1) + Leapyears <-unlist(lapply(years,isLeapyear)) + return(Leapyears) +} + +musoDate <- function(settings,timestep="d",combined=TRUE, corrigated=TRUE, format="en"){ + ##purpose: generate date label for muso + + + days <- sumDaysOfPeriod(settings$startyear,settings$numyears, corrigated=corrigated) + dates <- matrix(rep(NA,days*3),ncol=3) + + dates[1,] <- c(1,1,settings$startyear) + for(i in 2:days){ + dates[i,]<-dates[(i-1),] + if((dates[i-1,2]==12)&(dates[i-1,1]==31)){ + dates[i,] <-c(1,1,(dates[(i-1),3]+1)) + } else { + + if(dates[i-1,1]==(dayOfMonths(dates[(i-1),3],corrigated=corrigated)[dates[(i-1),2]] )){ + dates[i,]<-c(1,(dates[(i-1),2]+1),dates[(i-1),3]) + } else { + dates[i,1]<-dates[(i-1),1]+1 + } + } + + } + if(format=="en"){ + + } else { + if(format=="hu"){ + dates<-dates[,c(3,2,1)] + } else { + cat("format is coerced to english, because I don't know",format) + } + } + + if(combined==TRUE){ + dates <- apply(dates,1,function(x) paste(x,collapse=".")) + return(dates) + } + + return(dates) + +} diff --git a/RBBGCMuso/R/calibMuso.R b/RBBGCMuso/R/calibMuso.R index c490c6d..4ce194e 100644 --- a/RBBGCMuso/R/calibMuso.R +++ b/RBBGCMuso/R/calibMuso.R @@ -6,7 +6,7 @@ Linuxp <-(Sys.info()[1]=="Linux") -calibMuso <- function(settings,parameters=NULL, timee="d", debugging=FALSE, logfilename=NULL, keepEpc=FALSE, export=FALSE, silent=FALSE, aggressive=FALSE){ +calibMuso <- function(settings,parameters=NULL, timee="d", debugging=FALSE, logfilename=NULL, keepEpc=FALSE, export=FALSE, silent=FALSE, aggressive=FALSE, leapYear=FALSE){ ############################################################# ############################spinup run############################ @@ -199,6 +199,16 @@ calibMuso <- function(settings,parameters=NULL, timee="d", debugging=FALSE, logf colnames(Reva) <- unlist(settings$outputvars[[2]]) } + +if(leapYear){ + Reva <- corrigMuso(settings,Reva) + rownames(Reva) <- musoDate(settings) + } else { + rownames(Reva) <- musoDate(settings, corrigated=FALSE) + } + + + if(export!=FALSE){ setwd(whereAmI) @@ -209,7 +219,7 @@ calibMuso <- function(settings,parameters=NULL, timee="d", debugging=FALSE, logf ## ) - + write.csv(Reva,export) } else{ setwd(whereAmI) diff --git a/RBBGCMuso_0.1.9.0-1.tar.gz b/RBBGCMuso_0.1.9.0-1.tar.gz.bck similarity index 100% rename from RBBGCMuso_0.1.9.0-1.tar.gz rename to RBBGCMuso_0.1.9.0-1.tar.gz.bck diff --git a/RBBGCMuso_0.2.0.0-1.tar.gz b/RBBGCMuso_0.2.0.0-1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..237deb64527f8b4b775b0da928b7f0c99dcc39e9 GIT binary patch literal 17742 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 M2bt1a&H!Km0JU0@-v9sr literal 0 HcmV?d00001 diff --git a/RBBGCMuso_0.1.8.tar.gz b/RBBGCMuso_archive/RBBGCMuso_0.1.8.tar.gz similarity index 100% rename from RBBGCMuso_0.1.8.tar.gz rename to RBBGCMuso_archive/RBBGCMuso_0.1.8.tar.gz