emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] Error when tangling subtree - but works for whole document


From: Rainer M Krug
Subject: [O] Error when tangling subtree - but works for whole document
Date: Fri, 04 Sep 2015 12:05:03 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (darwin)

Hi

I get an error #(wrong-type-argument stringp nil)# when I tangle a
subtree, but tangling the whole document works.

,----
| GNU Emacs 24.5.1 (x86_64-apple-darwin14.5.0, Carbon Version 157 AppKit 
1348.17) of 2015-08-28 on Rainers-MacBook-Pro.local
| Org-mode version 8.3.1 (release_8.3.1-166-g5bfdfc @ 
/Users/rainerkrug/.emacs.d/org-mode/lisp/)
`----

The backtrace is below

Let me know if you need any further info

Thanks,

Rainer

--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  expand-file-name(nil)
  file-relative-name(nil)
  org-babel-spec-to-string((5939 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*CACHE" CACHE:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/data/fileNames.R") 
(:exports . "both") (:results . "replace") (:session . "*R.EnergyBalance*") 
(:eval . "never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) 
"CACHE <- file.path( \".\", \"cache\")\nSQLITEDB  <- file.path(CACHE, 
\"energyBalance.sqlite\")" nil))
  #[(spec) "\306\211.\307!.\310!\211.G\311V\205.\n).\312!.   
\313\230\203%.\314\315 !\2027.  \316\230\203/.\317\2027.        G\311V\2057.    
\211.\205P.,\203O.     \313\230\203O.
\320.,Q\202P.
\211.-\2054.\321!\322.-!..\211./\203w..\203w./\316\230\204w.\323..\324\"\210*\325.-!\203\217.-\326\327.0\"\235\204\217.\330.-!\210\331\332!.1r.1q\210\333\216\334.2!\203\247.\317\335\336\217\210\203\277.-.3\235\204\277.\337Pc\210.-.3B.3\340.4!\210\341
 
.5\331\332!.6r.6q\210\342\216\325.-!\203\340.\343.-!\210db\210\344\345\346.48\"A\316\230\204\371.`eU\204\371.\337c\210.5c\210\347\317\211.-#\210.\203.\f\204.\350.7T.7.-\fB.8\351.8.0\352\353$\203+.0\2023.8.0B\211.0)..\207"
 [get-spec tangle sheb she-bang tangle-mode base-name #[(name) "\302\303 
8\"A\207" [name spec assoc 4] 4] :tangle :shebang 0 :tangle-mode "yes" 
file-name-sans-extension buffer-file-name "no" nil "." :mkdirp 
file-name-directory make-directory parents file-exists-p mapcar car delete-file 
generate-new-buffer " *temp*" ((byte-code "\301!\203\n.\302!\210\301\207" 
[temp-buffer buffer-name kill-buffer] 2)) fboundp (funcall lang-f) ((error)) 
"\n" org-babel-spec-to-string buffer-string ((byte-code 
"\301!\203\n.\302!\210\301\207" [temp-buffer buffer-name kill-buffer] 2)) 
insert-file-contents assoc :padline 4 write-region 493 cl-member :test #[(a b) 
"@   @\232\207" [a b] 2] ext file-name fnd m path-collector temp-buffer ...] 
6]((5939 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*CACHE" CACHE:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/data/fileNames.R") 
(:exports . "both") (:results . "replace") (:session . "*R.EnergyBalance*") 
(:eval . "never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) 
"CACHE <- file.path( \".\", \"cache\")\nSQLITEDB  <- file.path(CACHE, 
\"energyBalance.sqlite\")" nil))
  mapc(#[(spec) "\306\211.\307!.\310!\211.G\311V\205.\n).\312!.      
\313\230\203%.\314\315 !\2027.  \316\230\203/.\317\2027.        G\311V\2057.    
\211.\205P.,\203O.     \313\230\203O.
\320.,Q\202P.
\211.-\2054.\321!\322.-!..\211./\203w..\203w./\316\230\204w.\323..\324\"\210*\325.-!\203\217.-\326\327.0\"\235\204\217.\330.-!\210\331\332!.1r.1q\210\333\216\334.2!\203\247.\317\335\336\217\210\203\277.-.3\235\204\277.\337Pc\210.-.3B.3\340.4!\210\341
 
.5\331\332!.6r.6q\210\342\216\325.-!\203\340.\343.-!\210db\210\344\345\346.48\"A\316\230\204\371.`eU\204\371.\337c\210.5c\210\347\317\211.-#\210.\203.\f\204.\350.7T.7.-\fB.8\351.8.0\352\353$\203+.0\2023.8.0B\211.0)..\207"
 [get-spec tangle sheb she-bang tangle-mode base-name #[(name) "\302\303 
8\"A\207" [name spec assoc 4] 4] :tangle :shebang 0 :tangle-mode "yes" 
file-name-sans-extension buffer-file-name "no" nil "." :mkdirp 
file-name-directory make-directory parents file-exists-p mapcar car delete-file 
generate-new-buffer " *temp*" ((byte-code "\301!\203\n.\302!\210\301\207" 
[temp-buffer buffer-name kill-buffer] 2)) fboundp (funcall lang-f) ((error)) 
"\n" org-babel-spec-to-string buffer-string ((byte-code 
"\301!\203\n.\302!\210\301\207" [temp-buffer buffer-name kill-buffer] 2)) 
insert-file-contents assoc :padline 4 write-region 493 cl-member :test #[(a b) 
"@   @\232\207" [a b] 2] ext file-name fnd m path-collector temp-buffer ...] 
6] ((5939 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*CACHE" CACHE:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/data/fileNames.R") 
(:exports . "both") (:results . "replace") (:session . "*R.EnergyBalance*") 
(:eval . "never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) 
"CACHE <- file.path( \".\", \"cache\")\nSQLITEDB  <- file.path(CACHE, 
\"energyBalance.sqlite\")" nil) (5950 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*Package%20Documentation"
 Package\ Documentation:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/EnergyBalance.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "#' EnergyBalance: A package for 
computating wind profiles and\n#' aerodynamic resistances.\n#'\n#' The 
EnergyBalance package provides functiuons to\n#' fit wind profiles, calculate 
the aerial resistance and plot the profiles.\n#' \n#' @section EnergyBalance 
functions:\n#' To Be added  ...\n#'\n#' @docType package\n#' @name 
EnergyBalance\n#' @importFrom parallel detectCores\n#' @importFrom parallel 
mclapply\n#' @importFrom lhs randomLHS\n#' @importFrom RSQLite SQLite\n#' 
@import DBI\n#' @import magrittr\nNULL\n#> NULL" nil) (5973 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*CACHE" CACHE:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/R/CACHE.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "#' Cache for 
computations in package\n#'\n#' CACHE to be used for the computations. The 
cac=he holde =temporary\n#' as well as final results of the computations which 
are saved\n#' automatically to avoid re-computqtion. \n#' \n#' @format 
Character vector of length one.\n#' @name CACHE\n#' @docType data\nNULL" nil) 
(5986 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*SQLITEDB" 
SQLITEDB:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/SQLITEDB.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "#' SQLite Database with processed input 
data\n#'\n#' File name and path to the sqlite database which holds the 
processed\n#' wind speeds and LAI and the indices to increase access speed.\n#' 
\n#' @format Character vector of length one.\n#' @name SQLITEDB\n#' @docType 
data\nNULL" nil) (6000 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*getplotlim" 
getplotlim:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/getplotlim.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Return the limits of the 
plot\n##'\n##' Return the limits, as set by \\code{xlim = } and \\code{ylim = 
}. \n##' @param lim if \\code{xlim} or \\code{ylim} return the 
xorresponding\n##' limits, if code{xlimylim} retur list with each limit as 
an\n##' element.\n##' @return either vector with two elements containing the x 
or y\n##' limits or a list of two elements, xlim and ylim.\n##' @author Rainer 
M. Krug\n##' @export\ngetplotlim<-function(lim = c(\"xlim\", \"ylim\")) {\n    
usr <- par('usr')\n    xr <- (usr[2] - usr[1]) / 27 # 27 = (100 + 2*4) / 4\n    
yr <- (usr[4] - usr[3]) / 27\n    return(\n        switch(\n            EXPR = 
paste(sort(lim), collapse=\"\"),\n            xlim = c(usr[1] + xr, usr[2] - 
xr),\n            ylim = c(usr[3] + yr, usr[4] - yr),\n            xlimylim = 
list(\n                xlim = c(usr[1] + xr, usr[2] - xr),\n                
ylim = c(usr[3] + yr, usr[4] - yr)\n                ),\n            
stop(\"Invalid value for lim!\")\n            )        \n        )\n}" nil) 
(6032 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*Input%20data%20directory%20discovery%20functions"
 Input\ data\ directory\ discovery\ functions:1 ((:colname-names) 
(:rowname-names) (:result-params "replace") (:result-type . value) (:comments . 
"link") (:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") 
(:tangle . "./package/EnergyBalance/R/inputDataDir.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Returns input 
data dir\n##'\n##' Returns input data dir (the directory with the wind and 
LAI\n##' input files are located in).  If the package 
\\code{EnergyBalancePaper} is\n##' installed, the data included in this package 
is returned,\n##' otherwist the directory \\code{paste0{getwd(), 
\"/inputdata\"}} is\n##' returned.\n##' \n##' @title inputDataDir\n##' @return 
input data directory for win=d and LAI data\n##' @author Rainer M. Krug\n##' 
@export\ninputDataDir <- function() {\n    file.path(\n        ifelse(\n        
    \"package:EnergyBalancePaper\" %in% search(),\n            
system.file(package = \"EnergyBalancePaper\"),\n            getwd()\n           
 ),\n        \"inputdata\"\n        )\n}" nil) (6120 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*importVentToDB" 
importVentToDB:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/importVentToDB.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Import wind data\n##'\n##' Import 
data into sqlite db and fit =default= to each wind profile\n##' to obtain the 
parameters, e.g. ustar for selecting.\n##' @param h canopy height in meter. 
Needed for estimate of ustar (u*)\n##' @param fn file name of wind date\n##' 
@return invisible \\code{NULL}\n##' @author Rainer M. Krug\n##' 
@export\nimportVentToDB <- function(fn, h) {\n    wsw <- read.csv(\n        
file = fn,\n        stringsAsFactors = FALSE,\n        header = TRUE\n        
)\n    names(wsw) <- c(\n        \"date\",\n        \"time\",\n        
\"julien\",\n        \"h03\",\n        \"h11\",\n        \"h17\",\n        
\"h23\",\n        \"h29\",\n        \"h37\"\n        )\n    ## Add columns for 
wpLELDefault parameter values\n    wsw$ua <- NA\n    wsw$dep <- NA\n    wsw$z0 
<- NA\n    wsw$na <- NA\n    wsw$zjoint <- NA\n    wsw$h <- NA\n    wsw$za <- 
NA\n    wsw$ustar <- NA\n    ## Fit wpLELDefault and save parameter\n\n    for 
(i in 1:nrow(wsw)) {\n        if(floor(i/20)*20 == i) { cat(i, \" \") }\n       
 wp <- dfFromLong(wsw[i,])\n        if ( !any( is.na( c(wp$z, wp[,3]) ) ) ){\n  
          wpf <- fitOptim.wpLEL.default.single(\n                z = wp$z,\n    
            u = wp[,3],\n                ##                lower   = c(dep=0,  
z0=0.001, na=0.01, zjoint=0),\n                initial = c(dep=2,  z0=2,     
na=2,    zjoint=3)\n                ##                upper   = c(dep=27, z0=h, 
    na=20,   zjoint=h),\n                ##                method  = 
\"L-BFGS-B\"\n                )\n            wsw$ua[i]     <- 
wpf$wp[[\"ua\"]]\n            wsw$dep[i]    <- wpf$fit$par[[\"dep\"]]\n         
   wsw$z0[i]     <- wpf$fit$par[[\"z0\"]]\n            wsw$na[i]     <- 
wpf$fit$par[[\"na\"]]\n            wsw$zjoint[i] <- wpf$fit$par[[\"zjoint\"]]\n 
           wsw$h[i]      <- wpf$wp[[\"h\"]]\n            wsw$za[i]     <- 
wpf$wp[[\"za\"]]\n            wsw$ustar[i]  <- wpf$wp[[\"ustar\"]]\n        }\n 
   }\n    \n    wsl <- data.frame(\n        date   = wsw$date,\n        time   
= wsw$time,\n        julien = wsw$julien,\n        z      = rep(\n            
c(3,11,17,23,29,37),\n            times = rep( nrow(wsw), 6 )\n            ),\n 
       ws     = c(\n            wsw$h03,\n            wsw$h11,\n            
wsw$h17,\n            wsw$h23,\n            wsw$h29,\n            wsw$h37\n     
       ),\n        ua     = wsw$ua,\n        dep    = wsw$dep,\n        z0     
= wsw$z0,\n        na     = wsw$na,\n        zjoint = wsw$zjoint,\n        h    
  = wsw$h,\n        za     = wsw$za,\n        ustar  = wsw$ustar\n        )\n   
 ##\n    db <- DBI::dbConnect(RSQLite::SQLite(), SQLITEDB)\n    try({\n         
   ## WindSpeed_w\n            DBI::dbWriteTable(db, \"WindSpeed_w\", wsw, 
overwrite=TRUE)\n            DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX wsw_dt 
ON WindSpeed_w (date,   time)\")\n            DBI::dbGetQuery(db, \"CREATE 
UNIQUE INDEX wsw_jt ON WindSpeed_w (julien, time)\")\n            
DBI::dbGetQuery(db, \"CREATE INDEX wsw_date   ON WindSpeed_w (date  )\")\n      
      DBI::dbGetQuery(db, \"CREATE INDEX wsw_time   ON WindSpeed_w (time  
)\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wsw_julien ON WindSpeed_w 
(julien)\")\n            ## WindSpeed_l\n            DBI::dbWriteTable(db, 
\"WindSpeed_l\", wsl, overwrite=TRUE)\n            DBI::dbGetQuery(db, \"CREATE 
UNIQUE INDEX wsl_dth ON WindSpeed_l (date,   time, z)\")\n            
DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX wsl_jth ON WindSpeed_l (julien, time, 
z)\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wsl_date   ON WindSpeed_l 
(date  )\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wsl_time   ON 
WindSpeed_l (time  )\")\n            DBI::dbGetQuery(db, \"CREATE INDEX 
wsl_julien ON WindSpeed_l (julien)\")\n            DBI::dbGetQuery(db, \"CREATE 
INDEX wsl_h      ON WindSpeed_l (h     )\")\n        }\n        )\n    
DBI::dbDisconnect(db)\n    invisible()\n}" nil) (6245 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*importLAIToDB" 
importLAIToDB:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/importLAIToDB.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Import LAI data\n##'\n##' Import 
LAI data into sqlite db\n##' @param fn file name of LAI data\n##' @return 
invisible \\code{NULL}\n##' @author Rainer M. Krug\n##' @export\nimportLAIToDB 
<- function(fn) {\n    lai <- read.csv(\n        file =  fn,\n        
stringsAsFactors = FALSE,\n        header = TRUE\n    )\n    names(lai) <- c(\n 
       \"doy\",\n        \"lai\"\n    )\n    ##\n    db <- 
DBI::dbConnect(RSQLite::SQLite(), SQLITEDB)\n    try(\n        {\n            
DBI::dbWriteTable(db, \"LeafAreaIndex\", lai, overwrite=TRUE)\n            
DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX lai_doy ON LeafAreaIndex (doy)\")\n   
         DBI::dbGetQuery(db, \"CREATE INDEX lai_h ON LeafAreaIndex (lai)\")\n   
     }\n    )\n    DBI::dbDisconnect(db)\n}" nil) (6353 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*createWsLAI" 
createWsLAI:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/createWsLAI.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Finalize sqlight databaes of input 
data\n##'\n##' Create combined wind speed and LAI table and associated indices 
in sqlite database.\n##' @return invisible \\code{NULL}\n##' @author Rainer M. 
Krug\n##' @export\ncreateWsLAI <- function(\n    ){\n    sql_l <- paste(\n      
  \"CREATE TABLE\",\n        \"  WindSpeedLAI_l\",\n        \"AS SELECT\",\n    
    \"  WindSpeed_l.*, LeafAreaIndex.lai AS lai\",\n        \"FROM\", \n        
\"  WindSpeed_l\",\n        \"LEFT OUTER JOIN\",\n        \"  
LeafAreaIndex\",\n        \"ON\",\n        \" julien=DOY\"\n    )\n    sql_w <- 
paste(\n        \"CREATE TABLE\",\n        \"  WindSpeedLAI_w\",\n        \"AS 
SELECT\",\n        \"  WindSpeed_w.*, LeafAreaIndex.lai AS lai\",\n        
\"FROM\", \n        \"  WindSpeed_w\",\n        \"LEFT OUTER JOIN\",\n        
\"  LeafAreaIndex\",\n        \"ON\",\n        \" julien=DOY\"\n    )\n    db 
<- DBI::dbConnect(RSQLite::SQLite(), SQLITEDB)\n    try({\n            ##\n     
       DBI::dbGetQuery( conn = db, statement = \"DROP TABLE IF EXISTS 
WindSpeedLAI_l\")\n            DBI::dbGetQuery( conn = db, statement = sql_l)\n 
           DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX wslail_dth ON 
WindSpeedLAI_l (date, time, z)\")\n            DBI::dbGetQuery(db, \"CREATE 
UNIQUE INDEX wslail_jth ON WindSpeedLAI_l (julien, time, z)\")\n            
DBI::dbGetQuery(db, \"CREATE INDEX wslail_date   ON WindSpeedLAI_l (date  
)\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wslail_time   ON 
WindSpeedLAI_l (time  )\")\n            DBI::dbGetQuery(db, \"CREATE INDEX 
wslail_julien ON WindSpeedLAI_l (julien)\")\n            DBI::dbGetQuery(db, 
\"CREATE INDEX wslail_h      ON WindSpeedLAI_l (z     )\")\n            
DBI::dbGetQuery(db, \"CREATE INDEX wslail_lai    ON WindSpeedLAI_l (lai)\")\n   
         DBI::dbGetQuery(db, \"CREATE INDEX wslail_ustar  ON WindSpeedLAI_l 
(ustar)\")\n            ##\n            DBI::dbGetQuery( conn = db, statement = 
\"DROP TABLE IF EXISTS WindSpeedLAI_w\")\n            DBI::dbGetQuery( conn = 
db, statement = sql_w)\n            DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX 
wslaiw_dth ON WindSpeedLAI_w (date, time)\")\n            DBI::dbGetQuery(db, 
\"CREATE UNIQUE INDEX wslaiw_jth ON WindSpeedLAI_w (julien, time)\")\n          
  DBI::dbGetQuery(db, \"CREATE INDEX wslaiw_date   ON WindSpeedLAI_w (date  
)\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wslaiw_time   ON 
WindSpeedLAI_w (time  )\")\n            DBI::dbGetQuery(db, \"CREATE INDEX 
wslaiw_julien ON WindSpeedLAI_w (julien)\")\n            DBI::dbGetQuery(db, 
\"CREATE INDEX wslaiw_lai    ON WindSpeedLAI_w (lai)\")\n            
DBI::dbGetQuery(db, \"CREATE INDEX wslaiw_ustar  ON WindSpeedLAI_w (ustar)\")\n 
       }\n    )\n    DBI::dbDisconnect(db)\n    invisible(NULL)\n}" nil) (6421 
nil "file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*createCache" 
createCache:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/createCache.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Re-create \\code{CACHE}\n##'\n##' 
Deletes all files in the cache (directory \\code{CACHE}) and re-creates 
them\n##' @title Recreate files in cache\n##' @name createCache\n##' @return 
invisible NULL\n##' @author Rainer M. Krug\n##' @export\n##' @param fnVent file 
name of Wind Profile csv file\n##' @param fnLAI file name of LAI csv file\n##' 
@param h height, needed for wind profile fit to obtain u^*\ncreateCache <- 
function(fnVent, fnLAI, h) {\n    dir.create(CACHE, showWarnings = FALSE)\n    
unlink(SQLITEDB)\n    importVentToDB(fnVent, h)\n    importLAIToDB(fnLAI)\n    
createWsLAI()\n    invisible(NULL)\n}" nil) (6446 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*loadWS" loadWS:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/R/loadWS.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' 
Depending on the values of the arguments, different datasets are\n##' loaded, 
but all contain wind speed at different heights and lai\n##' data.  The sql 
argument can be used to specify different\n##' conditions for the data 
returned.\n##'\n##' Loads wind speed data from sql database in cache\n##' 
@title Load wind speed data\n##' @param wide if TRUE, load wide format, if 
FALSE long format\n##' @param onlyComplete if \\code{TRUE}, load only 
datapoints without missing\n##' data in wind \\code{h*} and \\code{LAI}.\n##' 
@param minSpeedIncreaseWide numeric value or \\code{NULL}. If not \\code{NULL}, 
the following rules will be\n##' used to filter the wind profiles:\n##' \n##' 
\\itemize{\n##' \n##'   \\item{ differences of wind speeds between each point 
and the\n##' adjacend lower sampling points has to be larger then the value 
of\n##' \\code{minSpeedIncreaseWide}}\n##'\n##' }\n##'\n##' \\bold{Only Applies 
To \\code{wide==TRUE}}\n##' \n##' @param maxWindSpeedWide numeric value or 
\\code{null}. If not\n##' \\code{NULL}, wind profiles with wind speeds higher 
then\n##' \\code{maxWindSpeedWide} will be filtered out.\n##'\n##' \\bold{Only 
Applies To \\code{wide==TRUE}}\n##' \n##' @param maxWindSpeedOneWide Logical - 
if \\code{TRUE} the wind profiles will\n##' be standardised to wind speed at 
highest sampling point to 1 and\n##' the original wind speed will be stored in 
a field \\code{ua}\n##'\n##' \\bold{Only Applies To \\code{wide==TRUE}}\n##' 
\n##' @param minUstar minimum ustar value to be included in analysis. The 
default is 0.25. \\bold{REFERENCE NEEDED}\n##' \n##' @param WAI Wood Area Index 
- default value \\code{0}. numeric value to be added to the field\n##' 
\\code{lai}. \n##' @param sql sql statement to be used instread of \\code{wide} 
and\n##' \\code{onlyComplete}. The sql statement is evauated and the result 
is\n##' returned.\n##'\n##' \\bold{Only Applies To \\code{wide==TRUE}}\n##' 
\n##' @return data.frame containing the data. If the \\code{wide==TRUE},\n##' 
the class is also set to \\code{wsw}, if \\code{wide==FALSE} to\n##' 
\\code{wsl}\n##' @author Rainer M. Krug\n##' @export\nloadWS <- function(\n    
wide = TRUE,\n    onlyComplete = TRUE,\n    minSpeedIncreaseWide = 0,\n    
maxWindSpeedWide = 10,\n    maxWindSpeedOneWide = FALSE,\n    minUstar = 
0.25,\n    WAI = 0,\n    sql\n    ) {\n    if (wide) {\n        tbln <- 
\"WindSpeedLAI_w\"\n    } else {\n          tbln <- \"WindSpeedLAI_l\"\n      
}\n    try({    \n            db <- dbConnect(RSQLite::SQLite(), SQLITEDB)\n    
        if (missing(sql)) {\n                if (!onlyComplete) {\n             
       sql <- paste( \"SELECT * FROM\", tbln )            \n                } 
else {\n                      f <- c( \"LAI\", grep(\"^h.\", dbListFields(db, 
tbln), value=TRUE))\n                      f <- paste(f, \"IS NOT NULL\", 
collapse = \" AND \")\n                      sql <- paste( \"SELECT * FROM \", 
tbln, \"WHERE\", f, \"AND ustar >=\", minUstar)\n                  }\n          
  }\n            ws <- DBI::dbGetQuery(db, sql)\n        }    \n        )\n    
dbDisconnect(db)\n    ##\n    if (length(grep(\"date|time\", names(ws))) >= 2) 
{\n        ws$date <- as.Date(ws$date, format = \"%d/%m/%y\")\n        
ws$dateTime <- as.POSIXct(paste(ws$date, ws$time), format=\"%Y-%m-%d %H:%M\")\n 
       ##\n        ws <- ws[\n                 c(\n                     
\"date\",\n                     \"time\",\n                     \"dateTime\",\n 
                    grep(\"date|time|dateTime\", names(ws), invert=TRUE, 
value=TRUE)\n                     )\n                 ]\n        ##\n    }\n    
if (wide) {\n        class(ws) <- c(class(ws), \"wsw\")\n        h <- 
rownames(dfFromLong(ws[2,]))\n        if (!is.null(minSpeedIncreaseWide)) {\n   
         ws <- ws[\n                     ws[,h] %>%\n                         
as.matrix %>%\n                             t %>%\n                             
    diff %>%\n                                     data.frame %>%\n             
                            sapply(\n                                           
  X   = .,\n                                             FUN = . %>%\n          
                                       is_less_than(minSpeedIncreaseWide) %>%\n 
                                                    any\n                       
                      ) %>%\n                                             
not,\n                     ]\n        }\n        if 
(!is.null(maxWindSpeedWide)) {\n            ws <-\n                ws[\n        
           ws[,h] %>%\n                       apply(\n                          
 X   = .,\n                           MARGIN = 1,\n                           
FUN = max\n                           ) %>%\n                           
is_less_than(maxWindSpeedWide),\n                   ]\n        }\n        ua <- 
dfFromLong(ws[1,]) %>% extract(\"z\") %>% max %>% paste0(\"h\", .)\n        
ws$ua <- ws[[ua]]\n        if (maxWindSpeedOneWide) {\n            for (i in h) 
{\n                ws[i] <- ws[i] / ws[ua]   \n            }\n        }\n    } 
else {\n          class(ws) <- c(class(ws), \"wsl\")\n      }\n    if 
(!is.null(WAI)) {\n        ws$lai <- ws$lai + WAI\n    }\n    return(ws)\n}" 
nil) (6596 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*dfFromLong" 
dfFromLong:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/dfFromLong.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Extract the height from the column 
names in the database, where\n##' the column names of the height have to follow 
the format\n##' \\code{h[:digit:]}.\n##'\n##' Extract the height\n##' @title 
Extract height from column names\n##' @param x column names\n##' @return 
heights as encoded in the column names in the order as given\n##' @author 
Rainer M. Krug\n##' @export\ndfFromLong <- function(\n    x\n    ) {\n    hCols 
<- grep(\n        pattern = \"^h[[:digit:]]\",\n        x       = names(x),\n   
     value   = FALSE\n        )\n    h <- gsub(\"h\", \"\", names(x)[hCols])\n  
  h <- as.numeric(h)\n    u <- as.matrix(x[hCols])\n    if(is.vector(u)) {\n    
    result <- data.frame(\n            index = hCols,\n            z     = h,\n 
           u     = u\n            )\n    } else {  # is.matrix(u) == TRUE\n     
     result <- data.frame(\n              index = hCols,\n              z     = 
h,\n              u     = t(u)\n              )\n      }\n    rownames(result) 
<- names(x)[hCols]\n    return(result)\n}" nil) (6646 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLEL%20Generic%20function%20definition"
 wpLEL\ Generic\ function\ definition:1 ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLEL.R") (:exports . "both") (:results . "replace") 
(:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function to create 
\\code{wpLEL} object.\n##'\n##' The returned object of class \\code{wpLEL} 
contains the following fields:\n##' \\itemize{\n##'   
\\item{\\code{parametrization}} {parametrization used to create this object. 
Possible values are \"default\" and \"Mahat2013\"}\n##' \n##'   
\\item{\\code{dep}} {some info}\n##'   \\item{\\code{z0}} {some info}\n##'   
\\item{\\code{na}} {some info}\n##'   \\item{\\code{zjoint}} {some info}\n##'   
\\item{\\code{h}} {some info}\n##'   \\item{\\code{za}} {some info}\n##'   
\\item{\\code{z0sol}} {some info}\n##' \n##'   \\item{\\code{vk}} {some 
info}\n##'   \\item{\\code{ua}} {some info}\n##'   \\item{\\code{ustar}} {some 
info}\n##'   \\item{\\code{z0h}} {some info}\n##'   \\item{\\code{uzjoint}} 
{some info}\n##'   \\item{\\code{ustarsol}} {some info}\n##'\n##'   
\\item{\\code{noU}} {some info}\n##' }\n##' @title wpLEL\n##' @param x object 
from which to calculat the \\code{wpLEL} object\n##' @param ... optional 
arguments for the generic functions\n##' @return objerct of class 
\\code{wpLEL}\n##' @author Rainer M. Krug\n##' @export\nwpLEL <- function(x, 
...) UseMethod(\"wpLEL\")" nil) (6681 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*parameterOK" 
parameterOK:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/parmeterOK.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Check parameter for 
validity\n##'\n##' Check parameter for validity. If they are valid, the 
function\n##' returns \\code{TRUE}, if not, it returns the error messages.\n##' 
@title parameterOK\n##' @param z z\n##' @param ua ua\n##' @param dep dep\n##' 
@param z0 z0\n##' @param na na\n##' @param zjoint zjoint\n##' @param h h\n##' 
@param za za\n##' @param z0sol z0sol\n##' @return \\code{TRUE} if parameter are 
OK, otherwise a named\n##' \\code{character} vector where the names are the 
parameter which\n##' are not OK and the values the error messages to be 
used\n##' @author Rainer M. Krug\n##' @export\nparameterOK <- function(\n    
z,\n    ua,\n    dep,\n    z0,\n    na,\n    zjoint,\n    h,\n    za,\n    
z0sol\n    ) {\n    result <- NULL\n    ## z      0 <= z\n    if (any( z < 0 )) 
{\n        result <- c(result, z = \"All z have to be larger or equal than 
zero!\\n\")\n    }\n    ## ua     0 <= ua\n    if (ua < 0 ) {\n        result 
<- c(result, ua = \"ua has to be larger or equal than zero!\\n\")\n    }\n    
## dep    0 <= dep < h\n    if ((dep < 0) | (dep >= h) ) {\n        result <- 
c(result, dep = \"dep has to be larger or equal than zero and smaller than 
h!\\n\")\n    }\n    ## z0     0 < z0 <= h\n        if ((z0 <= 0) | (z0 > h)) 
{\n        result <- c(result, z0 = \"z0 has to be larger than zero and smaller 
or equal than h!\\n\")\n    } \n    ## na    0 < na\n    if (na < 0 ) {\n       
 result <- c(result, na = \"na has to be larger or equal than zero!\\n\")\n    
} \n    ## zjoint\n    if ((zjoint < 0) | (zjoint > h)) {\n        result <- 
c(result, zjoint = \"zjoint has to larger or equal than 0 and smaller or equal 
than h!\\n\")\n    }\n    ## h     h >= 0\n    if (h < 0 ) {\n        result <- 
c(result, h = \"h has to be larger or equal than zero!\\n\")\n    }\n    ## za  
  za > h\n    if (za <= h ) {\n        result <- c(result, za = \"za has to be 
larger than h!\\n\")\n    }\n    ## z0sol  0 < z0sol POSSIBLY < h/10 ???\n    
if (z0sol <= 0 ) {\n        result <- c(result, z0sol = \"z0sol has to be 
larger than zero!\\n\")\n    }\n    ## ###\n    ##  dep, z0, h   dep + z0 < h\n 
   if ((dep + z0) > h) {\n        result <- c(result,  \"(dep + z0) has to be 
smaller than h!\\n\")\n    }\n    \n    if (is.null(result)) {\n        result 
<- TRUE\n    }\n    return(result)\n}" nil) (6775 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELDefault" 
wpLELDefault ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELDefault.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape\n##'\n##' Creates Log-Exp-Log shaped wind profile oblect \\code{wpLEL} 
based on input parameter.\n##' @title Log-Exp-Log wind profile\n##' @param z 
height above ground\n##' @param ua wind speed at highest point of z\n##' @param 
dep zero-plane displacement height. The argument can be a\n##' numeric value or 
a function which is evaluated in the context of\n##' the function, i.e. can use 
all arguments to calculate\n##' \\code{dep}. The last argument has to be 
\\code{...}. An example for\n##' the usage of a function would be the 
parametrisation by Mahat\n##' 2013:\n##'\n##' dep = function(LAI, ...) {h * 
(0.05 + (LAI^0.02)/2 + (y-1)/20) }\n##'\n##' where \\code{h} will be the 
argument \\code{h} and \\code{LAI} and\n##' \\code{y} need to be added as an 
additional argument when calling\n##' \\code{wpLELDefault}.\n##'\n##' The 
argument \\code{...} is needed at the end as all arguments in\n##' the function 
\\code{wpLELDefault} are passed on tho thie function\n##' as 
\\code{...}.\n##'\n##' When using a function, it should be taken care to set 
the argument\n##' \\code{parametrization} accordingly (in this example\n##' 
\"Mahat\") to adjust further analysis accordingly!\n##' @param z0 roughness 
length at canopy level. The argument can be a\n##' numeric value or a function 
which is evaluated in the context of\n##' the function, i.e. can use all 
arguments to calculate\n##' \\code{z0}. The last argument has to be 
\\code{...}. An example for\n##' the usage of a function would be the 
parametrisation by Mahat\n##' 2013:\n##'\n##' z0 = function(LAI, ...) {h * 
(0.23 - (LAI^0.25)/10 + (y-1)/67) }\n##'\n##' where \\code{h} will be the 
argument \\code{h} and \\code{LAI} and\n##' \\code{y} need to be added as an 
additional argument when calling\n##' \\code{wpLELDefault}.\n##'\n##' The 
argument \\code{...} is needed at the end as all arguments in\n##' the function 
\\code{wpLELDefault} are passed on tho thie function\n##' as 
\\code{...}.\n##'\n##' When using a function, it should be taken care to set 
the\n##' argument \\code{parametrization} accordingly (in this\n##' example 
\"Mahat\") to adjust further analysis accordingly!\n##' @param na exponential 
decay coefficient\n##' @param check default \\code{TRUE}. If \\code{TRUE}, 
parameter will\n##' be cecked, if \\code{FALSE} not. MAinly for internal 
usage.\n##' @param ... further argumewnts which will be passed to the user\n##' 
defined function \\code{dep} and \\code{z0}.\n##' @param zjoint height at which 
the logarithmic changes to\n##' exponential (\"lower canopy end\")\n##' @param 
h canopy height h\n##' @param za ???????\n##' @param z0sol roughness length at 
soil level (???????)\n##' @param noU if \\code{TRUE}, do \\bold{not} calculate 
and return u\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer M. 
Krug\n##' @export\n##' @references NEEDED!!!\nwpLELDefault <- function(\n    
z,\n    ua,\n    dep,\n    z0,\n    na, #    = 7,\n    zjoint,\n    h,  #    = 
28,\n    za, #    = 37,\n    z0sol,# = 0.001,\n    noU   = FALSE,\n    check = 
TRUE\n    ){ \n    vk <- 0.41\n    \n    ok <- ifelse(\n        check,\n        
parameterOK(\n            z      = z,\n            ua     = ua,\n            
dep    = dep,\n            z0     = z0,\n            na     = na,\n            
zjoint = zjoint,\n            h      = h,\n            za     = za,\n           
 z0sol  = z0sol\n            ),\n        TRUE\n        )\n\n    if 
(!isTRUE(ok)) {\n        stop(ok)\n    }\n    \n    ## profil5.m l29 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::29]]\n    ## 
ustar =  ua * vk / log( (za  - dep) / z0) \n    ustar    <- ua * vk / log( (za 
- dep) / z0)\n\n    ## profil5.m l30 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::30]]\n    ## z0h 
= z0 * exp( -6.27 * vk * ( ustar^(1/3) ) ); % Calcul de Z0h (Thom)\n    z0h   
<- z0 * exp( -6.27 * vk * ( ustar^(1/3) ) )\n\n    ## profil5.m l32 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::32]]\n    ##     
               zjoint  = z0h + dep;\n    ## if (missing(zjoint)) {zjoint <- z0h 
+ dep}\n\n    ## profil5.m l33 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::33]]\n    ## 
uzjoint = ustar / vk  * log( (hauteur - dep)/z0 ) * exp( - na * (1 - 
zjoint/hauteur) );\n    uzjoint  <- (ustar /  vk) * log( (h       - dep)/z0 ) * 
exp( - na * (1 - zjoint/h      ) )\n\n    ## profil5.m l34 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::34]]\n    ## 
ustarsol = uzjoint * vk / log( (zjoint/z0sol))\n    ustarsol <- ifelse(\n       
 (zjoint == 0),\n        as.numeric(NA),\n        uzjoint * vk / log( zjoint / 
z0sol )\n        )\n    \n    ##\n    result <- list(\n        z = NA,\n        
u = NA,\n        u.onlyTop = NA\n        )\n\n    if (!noU) {\n        result$z 
<- as.numeric(z)\n        ##\n        result$u <- as.numeric(\n            
sapply(\n                z,\n                function(z) {\n                    
if (z >= h) {\n                        ## profil5.m l36 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::37]]\n           
             u <-  ( ustar/vk ) * log( (z-dep) / z0 )\n                    } 
else if (z >= zjoint) {\n                          ## profil5.m l40 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::41]]\n           
               uh <- ( ustar/vk ) * log( (h-dep) / z0 )\n                       
   u <- uh * exp( -na*(1-(z/h)) )\n                      } else if (z >= 0) {\n 
                           ## profil5.m l42 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::42]]\n           
                 u <- ( ustarsol/vk ) * log( (z     ) / z0sol )\n               
         } else {\n                              u <- NA\n                      
    }\n                    return(u)\n                }\n                )\n    
        )\n        names(result$u) <- paste0(\"h\", z)\n        ##\n        
result$u.onlyTop = as.numeric(\n            sapply(\n                z,\n       
         function(z) {\n                    zd <- ((z-dep) / z0)\n              
      if (zd < 0){\n                        u <- NA\n                    } else 
{\n                          u <- ( ustar/vk ) * log( (z-dep) / z0 )\n          
            }\n                    if (!is.na(u)) {\n                        if 
(u < 0) {\n                            u <- NA\n                        }\n     
               }\n                    return(u)\n                }\n            
    )\n            )\n    }\n    ##\n    result$parametrization <- 
\"default\"\n    result$dep       <- as.numeric(dep)\n    result$z0        <- 
as.numeric(z0)\n    result$na        <- as.numeric(na)\n    result$zjoint    <- 
as.numeric(zjoint)\n    result$h         <- as.numeric(h)\n    result$za        
<- as.numeric(za)\n    result$z0sol     <- as.numeric(z0sol)\n    \n    
result$vk        <- as.numeric(vk)\n    result$ua        <- as.numeric(ua)\n    
result$ustar     <- as.numeric(ustar)\n    result$z0h       <- 
as.numeric(z0h)\n    result$uzjoint   <- as.numeric(uzjoint)\n    
result$ustarsol  <- as.numeric(ustarsol)\n    ##\n    result$noU       <- noU\n 
   result$check     <- check\n    ##\n    class(result) <- c(\"wpLEL\")\n    
return(result)\n}" nil) (6981 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELMahat" 
wpLEL\.mahat ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELMahat.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape using Mahat parametrisation\n##'\n##' Creates Log-Exp-Log shaped wind 
profile oblect \\code{wpLEL} based on input parameter.\n##' @title Log-Exp-Log 
wind profile based on Mahat parametrization\n##' @param z height above 
ground\n##' @param ua wind speed at highest point of z\n##' @param na 
exponential decay coefficient\n##' @param zjoint height at which the 
logarithmic changes to\n##' exponential (\"lower canopy end\")\n##' @param h 
canopy height h\n##' @param za ???????\n##' @param z0sol roughness length at 
soil level (???????)\n##' @param noU if \\code{TRUE}, do \\bold{not} calculate 
and return u\n##' @param LAI Leaf Area Index to be used for the calculation of 
\\code{dep}\n##' @param y integer indicating three basic forest profiles\n##' 
\\itemize{\n##'   \\item{y = 1} : {young pine}\n##'   \\item{y = 2} : {leafed 
decideous tree}\n##'   \\item{y = 3} : {old pine with long stems and clumping 
at the top}\n##' }\n##' @param check default \\code{TRUE}. If \\code{TRUE}, 
parameter will\n##' be cecked, if \\code{FALSE} not. MAinly for internal 
usage.\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer M. 
Krug\n##' @export\n##' @references NEEDED!!!\nwpLELMahat <- function(\n    z,\n 
   ua,\n    na,\n    zjoint,\n    h,\n    za,\n    z0sol,\n    LAI,\n    y,\n   
 noU = FALSE,\n    check = TRUE\n){ \n    depFUN <- function(LAI, ...) {h * 
(0.05 + (LAI^0.02)/2 + (y-1)/20) }\n    dep <- depFUN(LAI, h, y)\n    ##\n    
z0FUN <- function(LAI, ...) {h * (0.23 - (LAI^0.25)/10 + (y-1)/67) }\n    z0 <- 
z0FUN(LAI, h, y)\n    ##\n    ok <- ifelse(\n        check,\n        
parameterOK(\n            z      = z,\n            ua     = ua,\n            
dep    = dep,\n            z0     = z0,\n            na     = na,\n            
zjoint = zjoint,\n            h      = h,\n            za     = za,\n           
 z0sol  = z0sol\n            ),\n        TRUE\n        )\n\n    if 
(!isTRUE(ok)) {\n        stop(ok)\n    }\n    ##\n    result <- wpLELDefault(\n 
       z      = z,\n        ua     = ua,\n        dep    = dep,\n        z0     
= z0,\n        na     = na,\n        zjoint = zjoint,\n        h      = h,\n    
    za     = za,\n        z0sol  = z0sol,\n        noU    = noU,\n        check 
 = FALSE\n        )\n    ##\n    result$z0FUN  <- z0FUN\n    result$depFUN <- 
depFUN\n    result$LAI    <- as.numeric(LAI)\n    result$y      <- 
as.numeric(y)\n    result$check  <- check\n    ##\n    result$parametrization 
<- \"mahat\"\n    ##\n    return(result)\n}" nil) (7084 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELLE" wpLELLE 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/R/wpLELLE.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Wind 
speed profile using Log-Exp shape\n##'\n##' Creates Log-Exp shaped wind profile 
oblect \\code{wpLEL} based on\n##' input parameter. Uses \\code{wpLELDefault()} 
with \\code{zjoint=0}\n##' and \\code{z0sol=NA}.\n##' @title Log-Exp wind 
profile\n##' @param z height above ground\n##' @param ua wind speed at highest 
point of z\n##' @param dep zero-plane displacement height. The argument can be 
a\n##' numeric value or a function which is evaluated in the context of\n##' 
the function, i.e. can use all arguments to calculate\n##' \\code{dep}. The 
last argument has to be \\code{...}. An example for\n##' the usage of a 
function would be the parametrisation by Mahat\n##' 2013:\n##'\n##' dep = 
function(LAI, ...) {h * (0.05 + (LAI^0.02)/2 + (y-1)/20) }\n##'\n##' where 
\\code{h} will be the argument \\code{h} and \\code{LAI} and\n##' \\code{y} 
need to be added as an additional argument when calling\n##' 
\\code{wpLELDefault}.\n##'\n##' The argument \\code{...} is needed at the end 
as all arguments in\n##' the function \\code{wpLELDefault} are passed on tho 
thie function\n##' as \\code{...}.\n##'\n##' When using a function, it should 
be taken care to set the argument\n##' \\code{parametrization} accordingly (in 
this example\n##' \"Mahat\") to adjust further analysis accordingly!\n##' 
@param z0 roughness length at canopy level. The argument can be a\n##' numeric 
value or a function which is evaluated in the context of\n##' the function, 
i.e. can use all arguments to calculate\n##' \\code{z0}. The last argument has 
to be \\code{...}. An example for\n##' the usage of a function would be the 
parametrisation by Mahat\n##' 2013:\n##'\n##' z0 = function(LAI, ...) {h * 
(0.23 - (LAI^0.25)/10 + (y-1)/67) }\n##'\n##' where \\code{h} will be the 
argument \\code{h} and \\code{LAI} and\n##' \\code{y} need to be added as an 
additional argument when calling\n##' \\code{wpLELDefault}.\n##'\n##' The 
argument \\code{...} is needed at the end as all arguments in\n##' the function 
\\code{wpLELDefault} are passed on tho thie function\n##' as 
\\code{...}.\n##'\n##' When using a function, it should be taken care to set 
the\n##' argument \\code{parametrization} accordingly (in this\n##' example 
\"Mahat\") to adjust further analysis accordingly!\n##' @param na exponential 
decay coefficient\n##' @param h canopy height h\n##' @param za ???????\n##' 
@param noU if \\code{TRUE}, do \\bold{not} calculate and return u\n##' @param 
... further argumewnts which will be passed to the user\n##' defined function 
\\code{dep} and \\code{z0}.\n##' @param check default \\code{TRUE}. If 
\\code{TRUE}, parameter will\n##' be cecked, if \\code{FALSE} not. MAinly for 
internal usage.\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer 
M. Krug\n##' @export\n##' @references NEEDED!!!\nwpLELLE <- function(\n    z,\n 
   ua,\n    dep,\n    z0,\n    na,\n    h,\n    za,\n    noU = FALSE,\n    
check = TRUE\n    ){\n    zjoint <-  0\n    z0sol <- 0.1\n    ##\n    ok <- 
ifelse(\n        check,\n        parameterOK(\n            z      = z,\n        
    ua     = ua,\n            dep    = dep,\n            z0     = z0,\n         
   na     = na,\n            zjoint = zjoint,\n            h      = h,\n        
    za     = za,\n            z0sol  = z0sol\n            ),\n        TRUE\n    
    )\n\n    if (!isTRUE(ok)) {\n        stop(ok)\n    }\n    ##\n    result <- 
wpLELDefault(\n        z      = z,\n        ua     = ua,\n        dep    = 
dep,\n        z0     = z0,\n        na     = na,\n        zjoint = zjoint,\n    
    h      = h,\n        za     = za,\n        z0sol  = z0sol,\n        noU    
= noU,\n        check  = TRUE\n        )\n    ##\n    result$check  <- check\n  
  result$parametrization <- \"LE\"\n    return(result)\n}" nil) (7204 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELMahatLE" 
wpLELMahatLE ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELMahatLE.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape using Mahat parametrisation\n##'\n##' Creates Log-Exp-Log shaped wind 
profile oblect \\code{wpLEL} based on input parameter.\n##' @title Log-Exp-Log 
wind profile based on Mahat parametrization\n##' @param z height above 
ground\n##' @param ua wind speed at highest point of z\n##' @param na 
exponential decay coefficient\n##' @param h canopy height h\n##' @param za 
???????\n##' @param z0sol roughness length at soil level (???????)\n##' @param 
LAI Leaf Area Index to be used for the calculation of \\code{dep}\n##' @param y 
integer indicating three basic forest profiles\n##' \\itemize{\n##'   \\item{y 
= 1} : {young pine}\n##'   \\item{y = 2} : {leafed decideous tree}\n##'   
\\item{y = 3} : {old pine with long stems and clumping at the top}\n##' }\n##' 
@param noU if \\code{TRUE}, do \\bold{not} calculate and return u\n##' @param 
check default \\code{TRUE}. If \\code{TRUE}, parameter will\n##' be cecked, if 
\\code{FALSE} not. MAinly for internal usage.\n##' @return Object of class 
\\code{wpLEL}.\n##' @author Rainer M. Krug\n##' @export\n##' @references 
NEEDED!!!\nwpLELMahatLE <- function(\n    z,\n    ua,\n    na,\n    h,\n    
za,\n    z0sol,\n    LAI,\n    y,\n    noU = FALSE,\n    check = TRUE\n){ \n    
depFUN <- function(LAI, h, y) {h * (0.05 + (LAI^0.02)/2 + (y-1)/20) }\n    dep 
<- depFUN(LAI, h, y)\n    z0FUN  <- function(LAI, h, y) {h * (0.23 - 
(LAI^0.25)/10 + (y-1)/67) }\n    z0 <- z0FUN(LAI, h, y)\n    zjoint <-  0\n    
z0sol <- 0.1\n    ##\n    ok <- ifelse(\n        check,\n        parameterOK(\n 
           z      = z,\n            ua     = ua,\n            dep    = dep,\n   
         z0     = z0,\n            na     = na,\n            zjoint = zjoint,\n 
           h      = h,\n            za     = za,\n            z0sol  = z0sol\n  
          ),\n        TRUE\n        )\n    if (!isTRUE(ok)) {\n        
stop(ok)\n    }\n    ##\n    result <- wpLELDefault(\n        z      = z,\n     
   ua     = ua,\n        dep    = dep,\n        z0     = z0,\n        na     = 
na,\n        zjoint = zjoint,\n        h      = h,\n        za     = za,\n      
  z0sol  = z0sol,\n        noU    = noU,\n        check  = FALSE\n    )\n    
##\n    result$depFUN <- depFUN\n    result$z0FUN <- z0FUN\n    result$LAI <- 
as.numeric(LAI)\n    result$y   <- as.numeric(y)\n    result$check <- check\n   
 result$parametrization <- \"mahatLE\"\n    ##\n    return(result)\n}" nil) 
(7307 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELCastanea" 
wpLELCastanea ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELCastanea.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape\n##'\n##' Creates Log-Exp-Log shaped wind profile oblect \\code{wpLEL} 
based on input parameter.\n##' @title Log-Exp-Log wind profile\n##' @param z 
height above ground\n##' @param ua wind speed at highest point of z\n##' @param 
zjoint height at which the logarithmic changes to\n##' exponential (\"lower 
canopy end\")\n##' @param h canopy height h\n##' @param za ???????\n##' @param 
z0sol roughness length at soil level (???????)\n##' @param LAI Leaf Area 
Index\n##' @param WAI Wood Area Index, default=1.1\n##' @param noU if 
\\code{TRUE}, do \\bold{not} calculate and return u\n##' @param check default 
\\code{TRUE}. If \\code{TRUE}, parameter will\n##' be cecked, if \\code{FALSE} 
not. MAinly for internal usage.\n##' @return Object of class 
\\code{wpLEL}.\n##' @author Rainer M. Krug\n##' @export\n##' @references 
NEEDED!!!\nwpLELCastanea <- function(\n    z,\n    ua,\n    zjoint,\n    h,\n   
 za,\n    z0sol,\n    LAI,\n    WAI = 1.1,\n    noU   = FALSE,\n    check = 
TRUE\n){\n    depFUN <- function(h) {(2/3) * h}\n    dep <- depFUN(h)           
         # Oke 1972\n    ##\n    z0FUN <- function(h) {0.1 * h}\n    z0  <- 
z0FUN(h)                      # Granier\n    ##\n    naFUN <- function(LAI, 
WAI) {\n        na <- 2.6 * (LAI + WAI)^0.36\n        if (na > 4) {\n           
 na <- 4\n        }\n        return(na)\n    }\n    na <- naFUN(LAI, WAI)\n    
##\n    ok <- ifelse(\n        check,\n        parameterOK(\n            z      
= z,\n            ua     = ua,\n            dep    = dep,\n            z0     = 
z0,\n            na     = na,\n            zjoint = zjoint,\n            h      
= h,\n            za     = za,\n            z0sol  = z0sol\n            ),\n    
    TRUE\n        )\n    if (!isTRUE(ok)) {\n        stop(ok)\n    }\n    ##\n  
  result <- wpLELDefault(\n        z      = z,\n        ua     = ua,   \n       
 dep    = na,\n        z0     = z0,\n        na     = na,\n        zjoint = 
zjoint,\n        h      = h, \n        za     = za,\n        z0sol  = z0sol, \n 
       noU    = noU,\n        check  = FALSE\n        )\n    result$depFUN <- 
depFUN\n    result$z0FUN <- z0FUN\n    result$naFUN <- naFUN\n    result$LAI <- 
as.numeric(LAI)\n    result$WAI <- as.numeric(WAI)\n    result$check <- check\n 
   result$parametrization <- \"castanea\"\n    return(result)\n}" nil) (7415 
nil "file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELOwnFree" 
wpLELOwnFree ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELOwnFree.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape using ownFree parametrisation\n##'\n##' Creates Log-Exp-Log shaped wind 
profile oblect \\code{wpLEL} based on input parameter.\n##' dep, z0, na and 
zoint are parametrized using:\n##'\n##' x = h * ( x.a + ( LAI ^ x.b ) / x.c 
)\n##'\n##' where x is dep, z0, na and zjoint respectively.\n##' \n##' @title 
Log-Exp-Log wind profile based on Mahat parametrization\n##' @param z height 
above ground\n##' @param ua wind speed at highest point of z\n##' @param h 
canopy height h\n##' @param za za\n##' @param z0sol roughness length at soil 
level\n##' @param dep.a see Details\n##' @param dep.b see Details\n##' @param 
dep.c see Details\n##' @param z0.a see Details\n##' @param z0.b see 
Details\n##' @param z0.c see Details\n##' @param na.a see Details\n##' @param 
na.b see Details\n##' @param na.c see Details\n##' @param zjoint.a see 
Details\n##' @param zjoint.b see Details\n##' @param zjoint.c see Details\n##' 
@param LAI Leaf Area Index to be used for the calculation of \\code{dep}\n##' 
@param noU if \\code{TRUE}, do \\bold{not} calculate and return u\n##' @param 
check default \\code{TRUE}. If \\code{TRUE}, parameter will\n##' be cecked, if 
\\code{FALSE} not. MAinly for internal usage.\n##' @param na exponential decay 
coefficient\n##' @param zjoint height at which the logarithmic changes to\n##' 
exponential (\"lower canopy end\")\n##' @return Object of class 
\\code{wpLEL}.\n##' @author Rainer M. Krug\n##' @export\n##' @references 
NEEDED!!!\nwpLELOwnFree <- function(\n    z,\n    ua,\n\n    h,\n    za,\n    
z0sol,\n\n    dep.a,    dep.b,    dep.c,\n    z0.a,     z0.b,     z0.c,\n    
na.a,     na.b,     na.c,\n    zjoint.a, zjoint.b, zjoint.c,\n\n    LAI,\n    
noU = FALSE,\n    check = TRUE\n    ){ \n    depFUN    <- function(LAI, h,    
dep.a,    dep.b,    dep.c) { h * (   dep.a + ( LAI ^    dep.b ) /    dep.c ) 
}\n    z0FUN     <- function(LAI, h,     z0.a,     z0.b,     z0.c) { h * (    
z0.a + ( LAI ^     z0.b ) /     z0.c ) }\n    naFUN     <- function(LAI, h,     
na.a,     na.b,     na.c) { h * (    na.a + ( LAI ^     na.b ) /     na.c ) }\n 
   zjointFUN <- function(LAI, h, zjoint.a, zjoint.b, zjoint.c) { h * (zjoint.a 
+ ( LAI ^ zjoint.b ) / zjoint.c ) }\n    ##\n    dep    <- depFUN(LAI, h,    
dep.a,    dep.b,    dep.c)\n    z0     <- depFUN(LAI, h,     z0.a,     z0.b,    
 z0.c)\n    na     <- depFUN(LAI, h,     na.a,     na.b,     na.c)\n    zjoint 
<- zjointFUN(LAI, h, zjoint.a, zjoint.b, zjoint.c)\n    ##\n    ok <- ifelse(\n 
       check,\n        parameterOK(\n            z      = z,\n            ua    
 = ua,\n            dep    = dep,\n            z0     = z0,\n            na     
= na,\n            zjoint = zjoint,\n            h      = h,\n            za    
 = za,\n            z0sol  = z0sol\n            ),\n        TRUE\n        )\n   
 if (!isTRUE(ok)) {\n        stop(ok)\n    }\n    ##\n    result <- 
wpLELDefault(\n        z = z,\n        ua = ua,\n        dep    = dep,\n        
z0     = z0,\n        na     = na,\n        zjoint = zjoint,\n        h      = 
h,\n        za     = za,\n        z0sol  = z0sol,\n        noU    = noU,\n      
  check  = FALSE\n        )\n    ##\n    result$depFUN <- depFUN\n    
result$dep.a  <- dep.a\n    result$dep.b  <- dep.b\n    result$dep.c  <- 
dep.c\n    ##\n    result$naFUN <- naFUN\n    result$na.a  <- na.a\n    
result$na.b  <- na.b\n    result$na.c  <- na.c\n    ##\n    result$z0FUN <- 
z0FUN\n    result$z0.a  <- z0.a\n    result$z0.b  <- z0.b\n    result$z0.c  <- 
z0.c\n    ##\n    result$zjointFUN <- zjointFUN\n    result$zjoint.a  <- 
zjoint.a\n    result$zjoint.b  <- zjoint.b\n    result$zjoint.c  <- zjoint.c\n  
  ##\n    result$LAI <- as.numeric(LAI)\n    result$check <- check\n    
result$parametrization <- \"ownFree\"\n    ##\n    return(result)\n}" nil) 
(7547 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLEL.wpLEL" 
wpLEL\.wpLEL:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLEL.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Creates a new \\code{wpLEL} object 
from a \\code{wpLEL} object\n##'\n##' \n##' Creates an \\code{wpLEL} object 
from a \\code{wpLEL} object by\n##' calling \\code{wpLELDefault()} with the 
arguments in \\code{...} given\n##' arguments and the from \\code{x} extracted 
arguments.\n##' @title Log-Exp-Log wind profile\n##' @param x object of class 
\\code{wpLEL} to be used as source\n##' for the parameter to create the 
\\code{wpLEL} object\n##' @param ... \\bold{named} arguments which will be used 
to create the\n##' new \\code{wpLEL} object using the \\code{wpLELDefault} 
function.\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer M. 
Krug\n##' @export\nwpLEL.wpLEL <- function(\n    x,\n    ...\n){\n    iff <- 
function(test, yes, no) {\n        if (test) {\n            yes\n        } else 
{\n            no\n        }\n    }\n    dot <- list(...)\n    u <- switch(\n   
     x$parametrization,\n        \"default\" = wpLELDefault( \n            z    
  = iff(exists(\"z\",      dot), dot[[\"z\"]],      x[[\"z\"]]),\n            
ua     = iff(exists(\"ua\",     dot), dot[[\"ua\"]],     x[[\"ua\"]]),\n        
    dep    = iff(exists(\"dep\",    dot), dot[[\"dep\"]],    
x[[\"depOrg\"]]),\n            z0     = iff(exists(\"z0\",     dot), 
dot[[\"z0\"]],     x[[\"z0Org\"]]),\n            na     = iff(exists(\"na\",    
 dot), dot[[\"na\"]],     x[[\"na\"]]),\n            zjoint = 
iff(exists(\"zjoint\", dot), dot[[\"zjoint\"]], x[[\"zjoint\"]]),\n            
h      = iff(exists(\"h\",      dot), dot[[\"h\"]],      x[[\"h\"]]),\n         
   za     = iff(exists(\"za\",     dot), dot[[\"za\"]],     x[[\"za\"]]),\n     
       z0sol  = iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  
x[[\"z0sol\"]]),\n            noU    = iff(exists(\"noU\",    dot), 
dot[[\"noU\"]],    x[[\"noU\"]])\n        ),\n        \"mahat\"   = 
wpLELMahat(\n            z      = iff(exists(\"z\",      dot), dot[[\"z\"]],    
  x[[\"z\"]]),\n            ua     = iff(exists(\"ua\",     dot), 
dot[[\"ua\"]],     x[[\"ua\"]]),\n            na     = iff(exists(\"na\",     
dot), dot[[\"na\"]],     x[[\"na\"]]),\n            zjoint = 
iff(exists(\"zjoint\", dot), dot[[\"zjoint\"]], x[[\"zjoint\"]]),\n            
h      = iff(exists(\"h\",      dot), dot[[\"h\"]],      x[[\"h\"]]),\n         
   za     = iff(exists(\"za\",     dot), dot[[\"za\"]],     x[[\"za\"]]),\n     
       z0sol  = iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  
x[[\"z0sol\"]]),\n            noU    = iff(exists(\"noU\",    dot), 
dot[[\"noU\"]],    x[[\"noU\"]]),\n            LAI    = iff(exists(\"LAI\",    
dot), dot[[\"LAI\"]],    x[[\"LAI\"]]),\n            y      = iff(exists(\"y\", 
     dot), dot[[\"y\"]],      x[[\"y\"]])\n        ),\n        \"LE\"      = 
wpLELLE(\n            z      = iff(exists(\"z\",     dot),  dot[[\"z\"]],      
x[[\"z\"]]),\n            ua     = iff(exists(\"ua\",    dot),  dot[[\"ua\"]],  
   x[[\"ua\"]]),\n            dep    = iff(exists(\"dep\",   dot),  
dot[[\"dep\"]],    x[[\"depOrg\"]]),\n            z0     = iff(exists(\"z0\",   
 dot),  dot[[\"z0\"]],     x[[\"z0Org\"]]),\n            na     = 
iff(exists(\"na\",    dot),  dot[[\"na\"]],     x[[\"na\"]]),\n            h    
  = iff(exists(\"h\",     dot),  dot[[\"h\"]],      x[[\"h\"]]),\n            
za     = iff(exists(\"za\",    dot),  dot[[\"za\"]],     x[[\"za\"]]),\n        
    noU    = iff(exists(\"noU\",   dot),  dot[[\"noU\"]],    x[[\"noU\"]])\n    
    ),\n        \"mahatLE\" = wpLELMahatLE(\n            z      = 
iff(exists(\"z\",      dot), dot[[\"z\"]],      x[[\"z\"]]),\n            ua    
 = iff(exists(\"ua\",     dot), dot[[\"ua\"]],     x[[\"ua\"]]),\n            
na     = iff(exists(\"na\",     dot), dot[[\"na\"]],     x[[\"na\"]]),\n        
    h      = iff(exists(\"h\",      dot), dot[[\"h\"]],      x[[\"h\"]]),\n     
       za     = iff(exists(\"za\",     dot), dot[[\"za\"]],     x[[\"za\"]]),\n 
           z0sol  = iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  
x[[\"z0sol\"]]),\n            noU    = iff(exists(\"noU\",    dot), 
dot[[\"noU\"]],    x[[\"noU\"]]),\n            LAI    = iff(exists(\"LAI\",    
dot), dot[[\"LAI\"]],    x[[\"LAI\"]]),\n            y      = iff(exists(\"y\", 
     dot), dot[[\"y\"]],      x[[\"y\"]])\n        ),\n        \"castanea\" = 
wpLELCastanea(\n            z      = iff(exists(\"z\",      dot), dot[[\"z\"]], 
     x[[\"z\"]]),\n            ua     = iff(exists(\"ua\",     dot), 
dot[[\"ua\"]],     x[[\"ua\"]]),\n            zjoint = iff(exists(\"zjoint\", 
dot), dot[[\"zjoint\"]], x[[\"zjoint\"]]),\n            h      = 
iff(exists(\"h\",      dot), dot[[\"h\"]],      x[[\"h\"]]),\n            za    
 = iff(exists(\"za\",     dot), dot[[\"za\"]],     x[[\"za\"]]),\n            
z0sol  = iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  x[[\"z0sol\"]]),\n     
       LAI    = iff(exists(\"LAI\",    dot), dot[[\"LAI\"]],    
x[[\"LAI\"]]),\n            WAI    = iff(exists(\"WAI\",    dot), 
dot[[\"WAI\"]],    x[[\"WAI\"]])\n          ),\n        \"ownFree\" = 
wpLELOwnFree(\n            z      = iff(exists(\"z\",      dot), dot[[\"z\"]],  
    x[[\"z\"]]),\n            ua     = iff(exists(\"ua\",     dot), 
dot[[\"ua\"]],     x[[\"ua\"]]),\n            h      = iff(exists(\"h\",      
dot), dot[[\"h\"]],      x[[\"h\"]]),\n            za     = iff(exists(\"za\",  
   dot), dot[[\"za\"]],     x[[\"za\"]]),\n            z0sol  = 
iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  x[[\"z0sol\"]]),\n            
\n            dep.a  = iff(exists(\"dep.a\",  dot), dot[[\"dep.a\"]],  
x[[\"dep.a\"]]),\n            dep.b  = iff(exists(\"dep.b\",  dot), 
dot[[\"dep.b\"]],  x[[\"dep.b\"]]),\n            dep.c  = iff(exists(\"dep.c\", 
 dot), dot[[\"dep.c\"]],  x[[\"dep.c\"]]),\n\n            z0.a  = 
iff(exists(\"z0.a\",    dot), dot[[\"z0.a\"]],   x[[\"z0.a\"]]),\n            
z0.b  = iff(exists(\"z0.b\",    dot), dot[[\"z0.b\"]],   x[[\"z0.b\"]]),\n      
      z0.c  = iff(exists(\"z0.c\",    dot), dot[[\"z0.c\"]],   
x[[\"z0.c\"]]),\n\n            na.a  = iff(exists(\"na.a\",    dot), 
dot[[\"na.a\"]],   x[[\"na.a\"]]),\n            na.b  = iff(exists(\"na.b\",    
dot), dot[[\"na.b\"]],   x[[\"na.b\"]]),\n            na.c  = 
iff(exists(\"na.c\",    dot), dot[[\"na.c\"]],   x[[\"na.c\"]]),\n\n            
zjoint.a  = iff(exists(\"zjoint.a\", dot), dot[[\"zjoint.a\"]], 
x[[\"zjoint.a\"]]),\n            zjoint.b  = iff(exists(\"zjoint.b\", dot), 
dot[[\"zjoint.b\"]], x[[\"zjoint.b\"]]),\n            zjoint.c  = 
iff(exists(\"zjoint.c\", dot), dot[[\"zjoint.c\"]], x[[\"zjoint.c\"]]),\n\n     
       noU    = iff(exists(\"noU\",    dot), dot[[\"noU\"]],    
x[[\"noU\"]]),\n            LAI    = iff(exists(\"LAI\",    dot), 
dot[[\"LAI\"]],    x[[\"LAI\"]])\n          ),\n        stop(\"No valid 
parametrization\")\n    )\n    return(u)\n}" nil) (7668 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLEL.wpLELFit" 
wpLEL\.wpLELFit:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLEL.wpLELFit.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Creates an \\code{wpLEL} object 
from a \\code{wpLELFit} object\n##'\n##' \n##' Creates an \\code{wpLEL} object 
from a \\code{wpLELFit} object by\n##' calling \\code{wpLELDefault()} with the 
extracted\n##' parameter.\n##' @title Log-Exp-Log wind profile\n##' @param x 
object of class \\code{wpLELFit} to be used as source\n##' for the parameter to 
ctreate the \\code{wpLEL} object\n##' @param ... additional arguments which are 
discarded\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer M. 
Krug\n##' @export\nwpLEL.wpLELFit <- function(\n    x,\n    ...\n){ \n    
return(x$wp)\n}" nil) (7695 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*plot.wpLEL" 
plot\.wpLEL:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/plot.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Plot \\code{wpLEL} object\n##'\n##' 
Generic function to plot \\code{wpLEL} object\n##' @param x object of class 
\\code{wpLEL} to be plotted\n##' @param z numeric vector at which the line 
should be calculated. If\n##' missing, \\code{x$z} will be used. the more 
points, the smoother\n##' the line.\n##' @param xlab x label\n##' @param ylab y 
label\n##' @param plotWPValues if \\code{TRUE}, the values and value lines 
are\n##' plotted\n##' @param plotWPPoints if \\code{TRUE}, the points in 
\\code{x$u; x$z}\n##' are plotted\n##' @param plotWPLines if \\code{TRUE}, the 
wind profile line is plotted\n##' @param add if \\code{TRUE}, the plot wil be 
added to an existing plot\n##' @param ... optional arguments for \\code{plot} 
method\n##' @return incisible NULL\n##' @author Rainer M. Krug\n##' 
@export\nplot.wpLEL <- function(\n    x,\n    z,\n    xlab = \"Wind Speed 
(m/s)\",\n    ylab = \"Height above ground (m)\",\n    plotWPValues = TRUE,\n   
 plotWPPoints = TRUE,\n    plotWPLines  = TRUE,\n    add = FALSE,\n    ...\n) 
{\n    if (missing(z)) {z <- x$z}\n    u <- wpLEL(x, z=z)\n    ## setup plot if 
!add\n    if (!add) {\n        plot(\n            x   = c(0, max(x$u, u$u)),\n  
          y   = c(0, max(x$z, u$z)),\n            type= \"n\",\n            
xlab = xlab,\n            ylab = ylab\n        )\n    }\n    ## plot points\n   
 points(\n        x   = x$u,\n        y   = x$z,\n        type= 
ifelse(plotWPPoints, \"p\", \"n\"),\n        ...\n    )\n    lines(\n        x 
= u$u.onlyTop,\n        y = u$z,\n        type = ifelse(plotWPLines, \"l\", 
\"n\"),\n        lty = \"dotted\",\n        col = \"blue\"\n    )\n    lines(\n 
       x = u$u,\n        y = u$z,\n        type = ifelse(plotWPLines, \"l\", 
\"n\"),\n        lty = \"solid\",\n        col = \"black\"\n    )\n    if 
(plotWPValues) {\n        mx <- par(\"usr\")[2]\n        with(\n            
x,\n            {\n                arrows(\n                    x0 = c(0, 0, 0 
,0 ,0),\n                    y0 = c(z0+dep, za, h, dep, zjoint),\n              
      x1 = c(4, 4, 4 ,4 ,4 ,4),\n                    y1 = c(z0+dep, za, h, dep, 
zjoint),\n                    length = 0,\n                    col = 
\"grey\",\n                    lty = \"dotted\"\n                )\n            
    text(mx, z0,     paste('z0',      round(z0, 2),     sep=\" = \" ), pos = 
2)\n                text(mx, za,     paste('za',      round(za, 2),     sep=\" 
= \" ), pos = 2)\n                text(mx, h,      paste('hauteur', round(h, 
2),      sep=\" = \" ), pos = 2)\n                text(mx, dep,    paste('dep', 
    round(dep, 2),    sep=\" = \" ), pos = 2)\n                text(mx, zjoint, 
paste('zjoint',  round(zjoint, 2), sep=\" = \" ), pos = 2)\n            }\n     
   )\n    }\n    invisible(NULL)\n}" nil) (7786 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*print.wpLEL" 
print\.wpLEL:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/print.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function to print 
\\code{wpLEL}\n##'\n##' This function prints a \\code{wpLEL} object\n##' @param 
x object of class \\code{wpLEL} to be printed\n##' @param ... optional 
arguments for \\code{print} method\n##' @return NULL\n##' @author Rainer M. 
Krug\n##' @export\nprint.wpLEL <- function(\n    x,\n    ...\n    ) {\n    
print.default(x)\n    invisible(x)\n}" nil) (7814 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.default.single"
 fitOptim\.wpLEL\.default\.single ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.default.single.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting 
of \\code{wpLEL} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values\n##' (\\code{u} and \\code{z}) to a \\code{link{wpLEL}} wind 
profile.\n##' @title fitOptim.wpLEL.default.single\n##' @param z height at 
which wind speeds are measured\n##' @param u wind speed at heights 
\\code{z}\n##' @param LAI Leaf Area Index\n##' @param initial Initial values 
for the parameters to be optimized\n##' over (will be passed on to the 
\\code{\\link{optim}} function as\n##' \\code{par}). The parameter are in the 
order of \\code{dep},\n##' \\code{z0}, \\code{na}, \\code{zjoint}. The default 
value is\n##' \\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param h 
constant value for \\code{h} which will be passed to the\n##' function 
\\code{wpLELDefault()}\n##' @param za constant value for \\code{za} which will 
be passed to the\n##' function \\code{wpLELDefault()}\n##' @param z0sol 
constant value for \\code{z0sol} which will be passed\n##' to the function 
\\code{wpLELDefault()}\n##' @param ... further arguments for \\code{optim}. 
These can be\n##' \\code{gr}, \\code{method}, \\code{lower, upper}, 
\\code{control} or\n##' \\code{hessian}\n##' @return object of class 
\\code{wpLELFit}. The class contains the followig elements:\n##' 
\\itemize{\n##'   \\item{\\code{method}} {name of function used for 
fitting}\n##'   \\item{\\code{initial}} {initial values for fit}\n##'   
\\item{\\code{dot}} {arguments passed as \\code{...} passed on to optimisation 
function, here \\code{\\link{optim}}}\n##'   \\item{\\code{z}} {observed 
heights}\n##'   \\item{\\code{u}} {observefd wind speed at height 
\\code{z}}\n##'   \\item{\\code{fit}} {result returned from fit, here the 
function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted wind profile 
of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.default.single <- function(\n    z,\n    u,\n    LAI,\n 
   initial = c(dep=25, z0=0.8*28,  na=9, zjoint=0.2*2),\n    h      = 28,\n    
za     = 37,\n    z0sol  = 0.001,\n    ...\n    ) {\n    ## Function to be 
minimised\n    wpLELMin <- function(par, z, u, ua, h, za, z0sol) {\n        if 
(\n            isTRUE(\n                parameterOK(\n                    z     
 = z,\n                    ua     = ua,\n                    dep    = par[1], # 
par$dep,\n                    z0     = par[2], # par$z0,\n                    
na     = par[3], # par$na,\n                    zjoint = par[4], # par$zjoint\n 
                   h      = h,\n                    za     = za,\n              
      z0sol  = z0sol\n                    )\n                )\n            ) 
{\n            p <- wpLELDefault(\n                z      = z,\n                
ua     = ua,\n                dep    = par[1], # par$dep,\n                z0   
  = par[2], # par$z0,\n                na     = par[3], # par$na,\n             
   zjoint = par[4], # par$zjoint\n                h      = h,\n                
za     = za,\n                z0sol  = z0sol,\n                check = FALSE\n  
              )\n            result <- sum( ( (p$u - u)^2 ) / length(u) )\n     
   } else {\n              result <- NA\n          }\n        return( result 
)\n    } \n\n    ua <- u[length(u)]\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.default.single\"\n    result$initial <-  initial\n    
result$dot <- list(...)\n    result$z <- z\n    result$u <- u\n    result$fit 
<- optim(\n        par = c(\n            initial[\"dep\"],\n            
initial[\"z0\"],\n            initial[\"na\"],\n            
initial[\"zjoint\"]\n            ),\n        fn    = wpLELMin,\n        z     = 
z,\n        u     = u,\n        ua    = ua,\n        h     = h,\n        za    
= za,\n        z0sol = z0sol,\n        ...\n        )\n    result$wp <- 
wpLELDefault(\n        z      = z,\n        ua     = ua,\n        dep    = 
result$fit$par[\"dep\"],\n        z0     = result$fit$par[\"z0\"],\n        na  
   = result$fit$par[\"na\"],\n        zjoint = result$fit$par[\"zjoint\"],\n    
    h      = h,\n        za     = za,\n        z0sol  = z0sol\n        )\n\n    
class(result) <- c(class(result), \"wpLELFit\")\n    return(result)\n}" nil) 
(7942 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.mahat.single"
 fitOptim\.wpLEL\.mahat\.single ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.mahat.single.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting of 
\\code{wpLEL.mahat} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values\n##' (\\code{u} and \\code{z}) to a \\code{link{wpLEL.mahat}} wind 
profile.\n##' @title fitOptim.wpLEL.mahat.single\n##' @param z height at which 
wind speeds are measured\n##' @param u wind speed at heights \\code{z}\n##' 
@param LAI Leaf area index\n##' @param h constant value for \\code{h} which 
will be passed to the\n##' function \\code{wpLELDefault()}\n##' @param za 
constant value for \\code{za} which will be passed to the\n##' function 
\\code{wpLELDefault()}\n##' @param z0sol constant value for \\code{z0sol} which 
will be passed\n##' to the function \\code{wpLELDefault()}\n##' @param initial 
Initial values for the parameters to be optimized\n##' over (will be passed on 
to the \\code{\\link{optim}} function as\n##' \\code{par}). The parameter are 
in the order of \\code{dep},\n##' \\code{z0}, \\code{na}, \\code{zjoint}. The 
default value is\n##' \\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param 
... further arguments for \\code{optim}. These can be\n##' \\code{gr}, 
\\code{method}, \\code{lower, upper}, \\code{control} or\n##' 
\\code{hessian}\n##' @return object of class \\code{wpLELFit}. The class 
contains the followig elements:\n##' \\itemize{\n##'   \\item{\\code{method}} 
{name of function used for fitting}\n##'   \\item{\\code{initial}} {initial 
values for fit}\n##'   \\item{\\code{dot}} {arguments passed as \\code{...} 
passed on to optimisation function, here \\code{\\link{optim}}}\n##'   
\\item{\\code{z}} {observed heights}\n##'   \\item{\\code{u}} {observefd wind 
speed at height \\code{z}}\n##'   \\item{\\code{fit}} {result returned from 
fit, here the function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted 
wind profile of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.mahat.single <- function(\n    z,\n    u,\n    LAI,\n   
 initial = c(na=9, zjoint=0.2*2, y=3),\n    h      = 28,\n    za     = 37,\n    
z0sol  = 0.001,\n    ...\n) {\n    wpLELMin <- function(par, z, u, ua, h, za, 
z0sol, LAI) {\n        result <- NA\n        try({\n                p <- 
wpLELMahat(\n                    z      = z,\n                    ua     = 
ua,\n                    na     = par[1], # na\n                    zjoint = 
par[2], # zjoint\n                    h      = h,\n                    za     = 
za,\n                    z0sol  = z0sol,\n                    LAI    = LAI,\n   
                 y      = par[3]  # y\n                    )\n                
result <- sum( ( (p$u - u)^2 ) / length(u) )\n            },\n            
silent = TRUE\n            )\n        return( result )\n    }\n\n    ua <- 
u[length(u)]\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.mahat.single\"\n    result$initial <-  initial\n    result$dot 
<- list(...)\n    result$z <- z\n    result$u <- u\n    result$fit <- optim(\n  
      par = c(\n            initial[\"na\"],\n            
initial[\"zjoint\"],\n            initial[\"y\"]\n        ),\n        fn    = 
wpLELMin,\n        z     = z,\n        u     = u,\n        ua    = ua,\n        
h     = h,\n        za    = za,\n        z0sol = z0sol,\n        LAI   = LAI,\n 
       ...\n    )\n    result$wp <- wpLELMahat(\n        z      = z,\n        
ua     = ua,\n        na     = result$fit$par[\"na\"],\n        zjoint = 
result$fit$par[\"zjoint\"],\n        h      = h,\n        za     = za,\n        
z0sol  = z0sol,\n        LAI    = LAI,\n        y      = 
result$fit$par[\"y\"]\n    )\n\n    class(result) <- c(class(result), 
\"wpLELFit\")\n    return(result)\n}" nil) (8053 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.LE.single"
 fitOptim\.wpLEL\.LE\.single ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.LE.single.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting of 
\\code{wpLEL} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values (\\code{u} and \\code{z}) to a \\code{link{wpLEL}} wind profile.\n##' 
@title fitOptim.wpLEL.LE.single\n##' @param z height at which wind speeds are 
measured\n##' @param u wind speed at heights \\code{z}\n##' @param LAI Leaf 
Area Index\n##' @param initial Initial values for the parameters to be 
optimized\n##' over (will be passed on to the \\code{\\link{optim}} function 
as\n##' \\code{par}). The parameter are in the order of \\code{dep},\n##' 
\\code{z0}, \\code{na}, \\code{zjoint}. The default value is\n##' 
\\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param h constant value for 
\\code{h} which will be passed to the\n##' function \\code{wpLELDefault()}\n##' 
@param za constant value for \\code{za} which will be passed to the\n##' 
function \\code{wpLELDefault()}\n##' @param ... further arguments for 
\\code{optim}. These can be\n##' \\code{gr}, \\code{method}, \\code{lower, 
upper}, \\code{control} or\n##' \\code{hessian}\n##' @return object of class 
\\code{wpLELFit}. The class contains the followig elements:\n##' 
\\itemize{\n##'   \\item{\\code{method}} {name of function used for 
fitting}\n##'   \\item{\\code{initial}} {initial values for fit}\n##'   
\\item{\\code{dot}} {arguments passed as \\code{...} passed on to optimisation 
function, here \\code{\\link{optim}}}\n##'   \\item{\\code{z}} {observed 
heights}\n##'   \\item{\\code{u}} {observefd wind speed at height 
\\code{z}}\n##'   \\item{\\code{fit}} {result returned from fit, here the 
function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted wind profile 
of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.LE.single <- function(\n    z,\n    u,\n    LAI,\n    
initial = c(dep=25, z0=0.8*28,  na=9),\n    h      = 28,\n    za     = 37,\n    
...\n) {\n    wpLELMin <- function(par, z, u, ua, h, za) {\n        result <- 
NA\n        try({\n                p <- wpLELLE(\n                    z      = 
z,\n                    ua     = ua,\n                    dep    = par[1], # 
par$dep,\n                    z0     = par[2], # par$z0,\n                    
na     = par[3], # par$na,\n                    h      = h,\n                   
 za     = za\n                    )\n                result <-  sum( ( (p$u - 
u)^2 ) / length(u) )\n            },\n            silent = TRUE\n            
)\n        return( result )\n    }\n\n    ua <- u[length(u)]\n    result <- 
list()\n    result$method <- \"fitOptim.wpLEL.LE.single\"\n    result$initial 
<-  initial\n    result$dot <- list(...)\n    result$z <- z\n    result$u <- 
u\n    result$fit <- optim(\n        par = c(\n            initial[\"dep\"],\n  
          initial[\"z0\"],\n            initial[\"na\"]\n        ),\n        fn 
    = wpLELMin,\n        z      = z,\n        u      = u,\n        ua     = 
ua,\n        h      = h,\n        za     = za,\n##        z0sol  = z0sol,\n     
   ...\n    )\n    result$wp <- wpLELLE(\n        z      = z,\n        ua     = 
ua,\n        dep    = result$fit$par[\"dep\"],\n        z0     = 
result$fit$par[\"z0\"],\n        na     = result$fit$par[\"na\"],\n        h    
  = h,\n        za     = za\n    )\n\n    class(result) <- c(class(result), 
\"wpLELFit\")\n    return(result)\n}" nil) (8157 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.mahatLE.single"
 fitOptim\.wpLEL\.mahatLE\.single ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.mahatLE.single.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting 
of \\code{wpLEL.mahatLE} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values\n##' (\\code{u} and \\code{z}) to a \\code{link{wpLEL.mahatLE}} wind 
profile.\n##' @title fitOptim.wpLEL.mahatLE.single\n##' @param z height at 
which wind speeds are measured\n##' @param u wind speed at heights 
\\code{z}\n##' @param LAI Leaf Area Index\n##' @param h constant value for 
\\code{h} which will be passed to the\n##' function \\code{wpLELDefault()}\n##' 
@param za constant value for \\code{za} which will be passed to the\n##' 
function \\code{wpLELDefault()}\n##' @param z0sol constant value for 
\\code{z0sol} which will be passed\n##' to the function 
\\code{wpLELDefault()}\n##' @param initial Initial values for the parameters to 
be optimized\n##' over (will be passed on to the \\code{\\link{optim}} function 
as\n##' \\code{par}). The parameter are in the order of \\code{dep},\n##' 
\\code{z0}, \\code{na}, \\code{zjoint}. The default value is\n##' 
\\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param ... further arguments 
for \\code{optim}. These can be\n##' \\code{gr}, \\code{method}, \\code{lower, 
upper}, \\code{control} or\n##' \\code{hessian}\n##' @return object of class 
\\code{wpLELFit}. The class contains the followig elements:\n##' 
\\itemize{\n##'   \\item{\\code{method}} {name of function used for 
fitting}\n##'   \\item{\\code{initial}} {initial values for fit}\n##'   
\\item{\\code{dot}} {arguments passed as \\code{...} passed on to optimisation 
function, here \\code{\\link{optim}}}\n##'   \\item{\\code{z}} {observed 
heights}\n##'   \\item{\\code{u}} {observefd wind speed at height 
\\code{z}}\n##'   \\item{\\code{fit}} {result returned from fit, here the 
function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted wind profile 
of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.mahatLE.single <- function(\n    z,\n    u,\n    LAI,\n 
   initial = c(na=9, y=3),\n    h      = 28,\n    za     = 37,\n    z0sol  = 
0.001,\n    ...\n) {\n    wpLELMin <- function(par, z, u, ua, h, za, z0sol, 
LAI) {\n        result <- NA\n        try({\n                p <- 
wpLELMahatLE(\n                    z      = z,\n                    ua     = 
ua,\n                    na     = par[1], # na\n                    h      = 
h,\n                    za     = za,\n                    LAI    = LAI,\n       
             y      = par[2]  # y\n                    )\n                
result <- sum( ( (p$u - u)^2 ) / length(u) )\n            },\n            
silent = TRUE\n            )\n        return( result )\n    }\n\n    ua <- 
u[length(u)]\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.mahatLE.single\"\n    result$initial <-  initial\n    
result$dot <- list(...)\n    result$z <- z\n    result$u <- u\n    result$fit 
<- optim(\n        par = c(\n            initial[\"na\"],\n            
initial[\"y\"]\n        ),\n        fn    = wpLELMin,\n        z     = z,\n     
   u     = u,\n        ua    = ua,\n        h     = h,\n        za    = za,\n   
     z0sol  = z0sol,\n        LAI   = LAI,\n        ...\n    )\n    result$wp 
<- wpLELMahatLE(\n        z      = z,\n        ua     = ua,\n        na     = 
result$fit$par[\"na\"],\n        h      = h,\n        za     = za,\n        
z0sol  = z0sol,\n        LAI    = LAI,\n        y      = 
result$fit$par[\"y\"]\n    )\n\n    class(result) <- c(class(result), 
\"wpLELFit\")\n    return(result)\n}" nil) (8264 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.castanea.single"
 fitOptim\.wpLEL\.castanea\.single ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.castanea.single.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting 
of \\code{wpLEL} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values\n##' (\\code{u} and \\code{z}) to a \\code{link{wpLEL}} wind 
profile.\n##' @title fitOptim.wpLEL.castanea.single\n##' @param z height at 
which wind speeds are measured\n##' @param u wind speed at heights 
\\code{z}\n##' @param LAI Leaf Area Index\n##' @param initial Initial values 
for the parameters to be optimized\n##' over (will be passed on to the 
\\code{\\link{optim}} function as\n##' \\code{par}). The parameter are in the 
order of \\code{dep},\n##' \\code{z0}, \\code{na}, \\code{zjoint}. The default 
value is\n##' \\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param h 
constant value for \\code{h} which will be passed to the\n##' function 
\\code{wpLELDefault()}\n##' @param za constant value for \\code{za} which will 
be passed to the\n##' function \\code{wpLELDefault()}\n##' @param z0sol 
constant value for \\code{z0sol} which will be passed\n##' to the function 
\\code{wpLELDefault()}\n##' @param ... further arguments for \\code{optim}. 
These can be\n##' \\code{gr}, \\code{method}, \\code{lower, upper}, 
\\code{control} or\n##' \\code{hessian}\n##' @return object of class 
\\code{wpLELFit}. The class contains the followig elements:\n##' 
\\itemize{\n##'   \\item{\\code{method}} {name of function used for 
fitting}\n##'   \\item{\\code{initial}} {initial values for fit}\n##'   
\\item{\\code{dot}} {arguments passed as \\code{...} passed on to optimisation 
function, here \\code{\\link{optim}}}\n##'   \\item{\\code{z}} {observed 
heights}\n##'   \\item{\\code{u}} {observefd wind speed at height 
\\code{z}}\n##'   \\item{\\code{fit}} {result returned from fit, here the 
function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted wind profile 
of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.castanea.single <- function(\n    z,\n    u,\n    
LAI,\n    initial = c(zjoint=0.2*2),\n    h      = 28,\n    za     = 37,\n    
z0sol  = 0.001,\n    ...\n) {\n    wpLELMin <- function(par, z, u, ua, h, za, 
z0sol, LAI) {\n        result <- NA\n        try({\n                p <- 
wpLELCastanea(\n                    z      = z,\n                    ua     = 
ua,\n                    zjoint = par[1], # par$zjoint\n                    h   
   = h,\n                    za     = za,\n                    z0sol  = 
z0sol,\n                    LAI=LAI\n                    )\n                
result <- sum( ( (p$u - u)^2 ) / length(u) )\n            },\n            
silent = TRUE\n            )\n        return( result )\n    }\n\n    ua <- 
u[length(u)]\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.castanea.single\"\n    result$initial <-  initial\n    
result$dot <- list(...)\n    result$z <- z\n    result$u <- u\n    result$fit 
<- optim(\n        par = c(\n            initial[\"zjoint\"]\n        ),\n      
  fn    = wpLELMin,\n        z     = z,\n        u     = u,\n        ua    = 
ua,\n        h     = h,\n        za    = za,\n        z0sol = z0sol,\n        
LAI   = LAI,\n        ...\n    )\n    result$wp <- wpLELCastanea(\n        z    
  = z,\n        ua     = ua,\n        zjoint = result$fit$par[\"zjoint\"],\n    
    h      = h,\n        za     = za,\n        z0sol  = z0sol,\n        LAI    
= LAI\n    )\n\n    class(result) <- c(class(result), \"wpLELFit\")\n    
return(result)\n}" nil) (8370 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.default.multiple"
 fitOptim\.wpLEL\.default\.multiple ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.default.multiple.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' The 
function loads individual wind profiles using the function\n##' \\code{loadWS} 
and fits each one using the function\n##' \\code{FUN}. The results are stored 
in \\code{./cache}.\n##'\n##' Load all wind profiles using \\code{loadWS()} and 
fit each single\n##' one using the function provided in \\code{FUN}. Results 
are cached.\n##' @title fitOptim.wpLEL.ownFree.multiple\n##' @param wso Wind 
speed profiles in the format as read from \\code{loadWS(wide=TRUE, ...)}\n##' 
@param initial initial\n##' @param h h\n##' @param za za\n##' @param z0sol 
z0sol \n##' @param silentError sielence error message during fitting. 
Fitting\n##' is done in a \\code{try()} block so this is purely cosmetical 
and\n##' affects the verbosity.\n##' @param ... additional arguments to be 
passed on to \\code{optim()}\n##' @return an oject of class \\code{wpFit} 
containing the result of\n##' the fit.\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.default.multiple <- function(\n    wso,\n    initial = 
c(dep=25, z0=0.8*28,  na=9, zjoint=0.2*2),\n    h      = 28,\n    za     = 
37,\n    z0sol  = 0.001,\n    silentError = TRUE,\n    ...\n    ) {\n\n    ## 
Function to be minimised\n    minFUN <- function(\n        par,\n        ## ## 
passed in par:\n        ##    dep\n        ##     z0\n        ##     na\n       
 ## zjoint\n        ## ## passed in the other arguments:\n        z,\n        
h, za, z0sol,\n        ## the data to be fitted to\n        wsFit\n        ) 
{\n        mse <- sapply(\n            wsFit,\n            function(u) {\n      
          p <- NULL\n                try( {\n                        p <- 
wpLELDefault(\n                            z = z,\n                            
ua = u[length(u)],\n                            ##\n                            
h = h,\n                            za = za,\n                            z0sol 
= z0sol,\n                            ##  \n                            dep    
= par[1],\n                            z0     = par[2],\n                       
     na     = par[3],\n                            zjoint = par[4]\n            
                )\n                    },\n                    silent = 
silentError\n                    )\n                if (!is.null(p)) {\n        
            result <- sum( ( (p$u - u[-(1:2)])^2 ) / length(p$u) )  \n          
      } else {\n                      result <-  NA\n                  }\n      
          return( result )\n            }\n            )\n        mse <- 
mse[!is.na(mse)]\n        if (length(mse) > 0) {\n            mse <- sum( ( 
mse^2 ) / length(mse), na.rm=TRUE )\n        } else {\n              mse <- 
NA\n          }\n        return(mse)\n    }\n    \n    ## construct result 
list\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.default.multiple\"\n    result$initial <- initial\n    
result$dot <- list(...)\n    ## result$z <- z\n    ## result$u <- u\n    ## Do 
the optimisation\n    z <- as.numeric(gsub(\"h\", \"\", 
row.names(wso)[-c(1:2)]))\n    result$fit <- optim(\n        par = initial,\n   
     fn  = minFUN,\n        ##\n        z      = z,\n        h      = h,\n      
  za     = za,\n        z0sol  = z0sol,\n        ##\n        wsFit  = wso,\n    
    ...\n        )\n    ## calculate sample wind profile\n    if ( (length(z) > 
0) & (is.numeric(z)) ) {\n        z <- seq(0.1, max(z), 0.1)\n    } else {\n    
      z <- seq(0.1, 37, 0.1)\n      }\n    result$wp <- wpLELDefault(\n        
z      = z,\n        ua     = mean(wso[2,][[1]]),\n        dep    = 
result$fit$par[\"dep\"],\n        z0     = result$fit$par[\"z0\"],\n        na  
   = result$fit$par[\"na\"],\n        zjoint = result$fit$par[\"zjoint\"],\n    
    h      = h,\n        za     = za,\n        z0sol  = z0sol\n    )\n    ##\n  
  \n    class(result) <- c(class(result), \"wpLELFit\")\n    return(result)\n}" 
nil) (8502 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.mahat.multiple"
 fitOptim\.wpLEL\.mahat\.multiple ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.mahat.multiple.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' The 
function loads individual wind profiles using the function\n##' \\code{loadWS} 
and fits each one using the function\n##' \\code{FUN}. The results are stored 
in \\code{./cache}.\n##'\n##' Load all wind profiles using \\code{loadWS()} and 
fit each single\n##' one using the function provided in \\code{FUN}. Results 
are cached.\n##' @title fitOptim.wpLEL.ownFree.multiple\n##' @param wso Wind 
speed profiles in the format as read from \\code{loadWS(wide=TRUE, ...)}\n##' 
@param initial initial parameter values for fit \n##' @param h height\n##' 
@param za za\n##' @param z0sol z0sol\n##' @param silentError sielence error 
message during fitting. Fitting\n##' is done in a \\code{try()} block so this 
is purely cosmetical and\n##' affects the verbosity.\n##' @param ... additional 
values to be passed on to \\code{optim}\n##' @return an object of class 
\\code{wpFit} containing the result of\n##' the fit.\n##' @author Rainer M. 
Krug\n##' @export\nfitOptim.wpLEL.mahat.multiple <- function(\n    wso,\n    
initial = c(na=9, zjoint=0.2*2, y=3),\n    h      = 28,\n    za     = 37,\n    
z0sol  = 0.001,\n    silentError = TRUE,\n    ...\n    ) {\n    \n    ## 
Function to be minimised\n    minFUN <- function(\n        par,\n        ## ## 
passed in par:\n        ##  na\n        ##  zjoint\n        ##  y\n        ## 
## passed in the other arguments:\n        z,\n        h, za, z0sol,\n        
## the data to be fitted to\n        wsFit\n        ) {\n        mse <- 
sapply(\n            wsFit,\n            function(u) {\n                p <- 
NULL\n                try( {\n                        p <- wpLELMahat(\n        
                    z     = z,\n                            ua    = 
u[length(u)],\n                            na     = par[1],\n                   
         zjoint = par[2],\n                            h     = h,\n             
               za    = za,\n                            z0sol = z0sol,\n        
                    LAI    = u[[1]],\n                            y      = 
par[3]\n                            )\n                    },\n                 
   silent = silentError\n                    )\n                if 
(!is.null(p)) {\n                    result <- sum( ( (p$u - u[-(1:2)])^2 ) / 
length(p$u) )  \n                } else {\n                      result <-  
NA\n                  }\n                return( result )\n            }\n      
      )\n        mse <- mse[!is.na(mse)]\n        if (length(mse) > 0) {\n      
      mse <- sum( ( mse^2 ) / length(mse), na.rm=TRUE )\n        } else {\n     
         mse <- NA\n          }\n        return(mse)\n    }\n    \n    ## 
construct result list\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.mahat.multiple\"\n    result$initial <- initial\n    
result$dot <- list(...)\n    ## result$z <- z\n    ## result$u <- u\n    ## Do 
the optimisation\n    z <- as.numeric(gsub(\"h\", \"\", 
row.names(wso)[-c(1:2)]))\n    result$fit <- optim(\n        par = initial,\n   
     fn  = minFUN,\n        ##\n        z      = z,\n        h      = h,\n      
  za     = za,\n        z0sol  = z0sol,\n        ##\n        wsFit  = wso,\n    
    ...\n        )\n    ## calculate sample wind profile\n    if ( (length(z) > 
0) & (is.numeric(z)) ) {\n        z <- seq(0.1, max(z), 0.1)\n    } else {\n    
      z <- seq(0.1, 37, 0.1)\n      }\n    result$wp <- wpLELMahat(\n        z  
    = z,\n        ua     = mean(as.numeric(wso[2,])),\n        na     = 
result$fit$par[\"na\"],\n        zjoint = result$fit$par[\"zjoint\"],\n        
h      = h,\n        za     = za,\n        z0sol  = z0sol,\n        LAI    = 
mean(as.numeric(wso[1,])),\n        y      = result$fit$par[\"y\"]\n    )\n    
##\n    \n    class(result) <- c(class(result), \"wpLELFit\")\n    
return(result)\n}" nil) (8634 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.ownFree.multiple"
 fitOptim\.wpLEL\.ownFree\.multiple ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.ownFree.multiple.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' The 
function loads individual wind profiles using the function\n##' \\code{loadWS} 
and fits each one using the function\n##' \\code{FUN}. The results are stored 
in \\code{./cache}.\n##'\n##' Load all wind profiles using \\code{loadWS()} and 
fit each single\n##' one using the function provided in \\code{FUN}. Results 
are cached.\n##' @title fitOptim.wpLEL.ownFree.multiple\n##' @param wso Wind 
speed profiles in the format as read from \\code{loadWS(wide=TRUE, ...)}\n##' 
@param initial initial parameter values for \\code{optim()}\n##' @param z0 
z0\n##' @param na na\n##' @param zjoint zjoint \n##' @param h h\n##' @param za 
za\n##' @param z0sol z0sol\n##' @param silentError sielence error message 
during fitting. Fitting\n##' is done in a \\code{try()} block so this is purely 
cosmetical and\n##' affects the verbosity.\n##' @param ... additional 
argumaents to be passed to \\code{optim}\n##' @return an oject of class 
\\code{wpFit} containing the result of\n##' the fit.\n##' @author Rainer M. 
Krug\n##' @export\nfitOptim.wpLEL.ownFree.multiple <- function(\n    wso,\n    
initial = unlist(\n        list(\n            dep    = c(a=0.5,  b=0.02, 
c=-2),\n            z0     = c(a=0.23, b=0.25, c=10),\n            na     = 
c(a=0.23, b=0.25, c=10),\n            zjoint = c(a=0.23, b=0.25, c=10)\n        
    )\n        ),\n    h      = 28,\n    za     = 37,\n    z0sol  = 0.001,\n    
silentError = TRUE,\n    ...\n    ) {\n\n    ## Function to be minimised\n    
minFUN <- function(\n        par,\n        ## ## passed in par:\n        ##    
dep.a,    dep.b,    dep.c,\n        ##     z0.a,     z0.b,     z0.c,\n        
##     na.a,     na.b,     na.c,\n        ## zjoint.a, zjoint.b, zjoint.c,\n    
    ## ## passed in the other arguments:\n        z,\n        h, za, z0sol,\n   
     ## the data to be fitted to\n        wsFit\n        ) {\n        mse <- 
sapply(\n            wsFit,\n            function(u) {\n                p <- 
NULL\n                try( {\n                        p <- wpLELOwnFree(\n      
                      z = z,\n                            ua = u[length(u)],\n  
                          ##\n                            h = h,\n              
              za = za,\n                            z0sol = z0sol,\n            
                ##  .a       .b       .c\n                            dep.a =   
 par[ 1],    dep.b = par[ 2],    dep.c = par[ 3],\n                            
z0.a =     par[ 4],     z0.b = par[ 5],     z0.c = par[ 6],\n                   
         na.a =     par[ 7],     na.b = par[ 8],     na.c = par[ 9],\n          
                  zjoint.a = par[10], zjoint.b = par[11], zjoint.c = par[12],\n 
                           LAI = u[[1]]\n                            )\n        
            },\n                    silent = silentError\n                    
)\n                if (!is.null(p)) {\n                    result <- sum( ( 
(p$u - u[-(1:2)])^2 ) / length(p$u) )  \n                } else {\n             
         result <-  NA\n                  }\n                return( result )\n 
           }\n            )\n        ## maxMse <- quantile(mse, probs=c(0, (1 - 
exclHighMseProp), 0.5, 1))\n        ## mse <- mse[mse <= maxMse[2]]\n        
mse <- mse[!is.na(mse)]\n        if (length(mse) > 0) {\n            mse <- 
sum( ( mse^2 ) / length(mse), na.rm=TRUE )\n        } else {\n              mse 
<- NA\n          }\n        ## print(mse)\n        return(mse)\n    }\n    \n   
 ## construct result list\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.ownFree.multiple\"\n    result$initial <- initial\n    
result$dot <- list(...)\n    result$wpLELParameter <- list(\n        h      = 
h,\n        za     = za,\n        z0sol  = z0sol\n        )\n    ## result$z <- 
z\n    ## result$u <- u\n    ## Do the optimisation\n    z <- 
as.numeric(gsub(\"h\", \"\", row.names(wso)[-c(1:2)]))\n    result$fit <- 
optim(\n        par = initial,\n        fn  = minFUN,\n        ##\n        z    
  = z,\n        h      = h,\n        za     = za,\n        z0sol  = z0sol,\n    
    ##\n        wsFit  = wso,\n        ...\n        )\n    ## calculate sample 
wind profile\n    if ( (length(z) > 0) & (is.numeric(z)) ) {\n        z <- 
seq(0.1, max(z), 0.1)\n    } else {\n          z <- seq(0.1, 37, 0.1)\n      
}\n    \n    class(result) <- c(class(result), \"wpLELFit\")\n    
return(result)\n}" nil) (8772 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*Goodness%20of%20fit%20for%20wpLELFit"
 Goodness\ of\ fit\ for\ wpLELFit:1 ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/gof.wpLELfit.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Calculate goodnes of fit of fit 
compared to object of class \\code{wpLELFit}\n##'\n##' Uses gofFun to calculate 
the goodnes of fit between \\code{fit} and\n##' the observed wind profile 
\\code{wp}\n##' \n##' @title gof.wpLELfit\n##' @param fit fit of the wind 
profile of the type \\code{wpLELFit}\n##' @param wp wind profile as returned in 
the wide format of \\code{loadWS}\n##' @param gofFun function returning the 
goodnes of fit.\n##' @param silentError sielence error message during fitting. 
Fitting\n##' is done in a \\code{try()} block so this is purely cosmetical 
and\n##' affects the verbosity.\n##' This function accepts the two argumentsa 
\\code{obs, exp}.\n##' These can be assumed of being of the same length. An 
example is the =default function:\n##' \n##'  \\code{ function(obs, exp){ sum( 
( (exp - obs)^2 ) / length(obs) ) } }\n##' \n##' @return vector of the goodnes 
of fit values, one per row in \\code{wp}\n##' @author Rainer M. Krug\n##' 
@export\ngof.wpLELFit <- function(\n    fit,\n    wp,\n    gofFun = 
function(obs, exp){ sum( ( (exp - obs)^2 ) / length(obs), na.rm=TRUE ) },\n    
silentError = TRUE\n    ) {\n    gofs <- sapply(\n        1:nrow(wp),\n        
function(i) {\n            o <- dfFromLong(wp[i,])\n            
names(o)[ncol(o)] <- \"ws\"\n            gof <- NA\n            try( {\n        
            e <- wpLEL(\n                        fit$wp,\n                      
  z   = o$z,\n                        ua  = wp[i, \"ua\"],\n                    
    LAI = wp[i,\"lai\"]\n                        )\n                    gof <- 
gofFun(\n                        obs = o$ws,\n                        exp = 
e$u\n                        )\n                    gof\n                },\n   
             silent = silentError\n                )\n            
return(gof)\n\n        }\n        )\n}" nil) (8832 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*plot.wpLELFit" 
plot\.wpLELFit:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/plot.wpLELFit.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function to plot 
\\code{wpLELFit}\n##'\n##' This function a \\code{wpLELFit} object by plotting 
the fitted line\n##' smoothly and adding the original points to the graph.\n##' 
@param x object of class \\code{wpLELFit} to be plotted \n##' @param z numeric 
vector at which the line should be calculated. If\n##' missing, \\code{x$z} 
will be used. the more points, the smoother\n##' the line.\n##' @param 
plotWPValues if \\code{TRUE}, the values and value lines are\n##' drawn\n##' 
@param plotWPLines if \\code{TRUE}, the lines of the profile are drawn\n##' 
@param plotOrgPoints if \\code{TRUE}, the original points are drawn\n##' @param 
add if \\code{TRUE}, the plot wil be added to an existing plot\n##' @param ... 
additional arguments for plotting the \\bold{original} points of the fit using 
the \\code{poiunts} function\n##' are plotted\n##' @return NULL\n##' @author 
Rainer M. Krug\n##' @export\nplot.wpLELFit <- function(\n    x,\n    z,\n    
plotWPValues = TRUE,\n    plotWPLines  = TRUE,\n    plotOrgPoints = TRUE,\n    
add = FALSE,\n    ...\n    ) {\n    xu <- x$wp\n    ## plot values (dep, ...)\n 
   plot.wpLEL(\n        xu,\n        z,\n        plotWPValues = plotWPValues,\n 
       plotWPPoints = FALSE,\n        plotWPLines  = FALSE,\n        add = 
add\n        )\n    ## plot fitted lines \n    plot.wpLEL(\n        xu,\n       
 z,\n        plotWPValues = FALSE,\n        plotWPPoints = FALSE,\n        
plotWPLines  = plotWPLines,\n        add = TRUE\n        )\n    ## plot 
original points    \n    points(\n        x$u,\n        x$z,\n        type = 
ifelse(plotOrgPoints, \"p\", \"n\"),\n        ...\n        )\n}" nil) (8890 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*print.wpLELFit" 
print\.wpLELFit:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/print.wpLELFit.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function to print 
\\code{wpLELFit}\n##'\n##' This function prints a \\code{wpLELFit} object\n##' 
@param x object of class \\code{wpLELFit} to be printed\n##' @param ... 
optional arguments for \\code{print} method\n##' @return NULL\n##' @author 
Rainer M. Krug\n##' @export\nprint.wpLELFit <- function(\n    x,\n    ...\n    
) {\n    print.default(x)\n    invisible(x)\n}" nil) (8920 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpFitEach" 
wpFitEach ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpFitEach.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' The function loads individual wind 
profiles using the function\n##' \\code{loadWS} and fits each one using the 
function\n##' \\code{FUN}. The results are stored in \\code{./cache}.\n##'\n##' 
Load all wind profiles using \\code{loadWS()} and fit each single\n##' one 
using the function provided in \\code{FUN}. Results are cached.\n##' @title 
wpLELFitEach\n##' @param new if \\code{TRUE} the cache is re-created - if\n##' 
\\code{FALSE} the results are read from the cache.\n##' @param suffix suffix 
for cache\n##' @param FUN name of the function to be used for fitting. It has 
to\n##' take the arguments \\code{z} and \\code{u}, but can also take\n##' 
additional arguments.\n##' @param cores number of cores to be used for analysis 
- defaults to the number of cores mius one, but is at least 1.\n##' @param 
minSpeedIncreaseWide minimum wind speed difference - see \\link{loadWS} for 
details\n##' @param maxWindSpeedWide maximum wind speed - see \\link{loadWS} 
for details\n##' @param maxWindSpeedOneWide standardise highest sampled wind 
speed to one - see \\link{loadWS} for details\n##' @param WAI Wood Area Index, 
argument \\code{WAI} of function\n##' \\code{loadWS()}. Will be added to lai 
from raw data.\n##' @param selectWPFit a function returning \\bold{a vector} 
where each\n##' element represents the indices of loaded wind profiles which 
will\n##' be used for fitting the parameter. The function takes one value,\n##' 
i.e. \\code{wso} which is the \\code{data.frame} of the loaded wind\n##' 
profiles, as returned by the function\n##'\n##' code{\n##'           wso <- 
loadWS(\n##'              wide         = TRUE,\n##'              onlyComplete = 
TRUE,\n##'              minSpeedIncreaseWide,\n##'              
maxWindSpeedWide,\n##'              maxWindSpeedOneWide,\n##'              WAI 
= WAI\n##'              )\n##' }\n##'\n##' Examples are:\n##'\n##' 
\\code{selectWPFit = function(wso){TRUE}}\n##'\n##' which would select all 
elements in \\code{wso}.This is the default.\n##' \n##' \\code{selectWPFit = 
function(wso){sample(1:nrow(wso), 100)}}\n##' \n##' which would create vector 
of 100 randomly selected wind profiles\n##' \\bold{selected} for fitting 
or\n##'\n##' \\code{selectWPFit = function(wso){-sample(1:nrow(wso), 
500)}}\n##'\n##' which would create vector of 500 randomly selected wind 
profiles\n##' \\bold{excluded} from fitting\n##'\n##' @param ... additional 
arguments passed to FUN\n##' @return an oject of class \\code{wpLELFitList} 
(i.e. \\code{list}) of\n##' the length of the number wind profiles to fit. Each 
element\n##' contains the result of an individual fit.\n##' @author Rainer M. 
Krug\n##' @export\nwpFitEach <- function(\n    new = FALSE,\n    suffix = 
\"\",\n    FUN = \"wpLEFitSingle\",\n    cores = detectCores() - 1,\n    
minSpeedIncreaseWide = 0,\n    maxWindSpeedWide = 10,\n    maxWindSpeedOneWide 
= FALSE,\n    WAI = 0,\n    selectWPFit = function(wso) { TRUE },\n    ...\n    
) {\n    if (cores==0) {\n        cores <- 1\n    }\n    fn <- paste0(CACHE, 
\"/wpFitEach.\", FUN, suffix, \".rds\")\n    FUN <- get(FUN)\n    if (new) {\n  
      unlink(fn)\n    }\n    if (file.exists(fn)) {\n        dat <- 
readRDS(fn)\n    } else {\n          ## Load wind priofile data\n          wso 
<- loadWS(\n              wide         = TRUE,\n              onlyComplete = 
TRUE,\n              minSpeedIncreaseWide,\n              maxWindSpeedWide,\n   
           maxWindSpeedOneWide,\n              WAI = WAI\n              )\n     
     \n          ## #################################\n          ## From now 
on, LAI (later u[[1]]) is LAI = LAI + WAI)\n          ## 
#################################\n\n          ## Get indices for fitting. Must 
only be done once as the\n          ## functions might contain random number 
generation!\n          indFit <- selectWPFit(wso)\n\n          ## Save 
\"metadata\"\n          ## construct result list\n          md <- list()\n      
    md$method <- \"wpFitEach\"\n          md$FUN <- FUN\n          
md$loadWSParm <- list(\n              minSpeedIncreaseWide = 
minSpeedIncreaseWide,\n              maxWindSpeedWide = maxWindSpeedWide,\n     
         maxWindSpeedOneWide = maxWindSpeedOneWide,\n              WAI = WAI\n  
            )\n          md$selectWPFit <- list(\n              fun = 
selectWPFit,\n              indices = indFit\n              )\n          md$dot 
<- list(...)\n          saveRDS(md, paste0(fn, \".metadata.rds\"))\n          
\n          z <- dfFromLong(wso[1,])$z        \n          ws <- 
wso[,grep(\"^h[[:digit:]]\", names(wso))]\n          ws <- cbind(ua=wso$ua, 
ws)\n          ws <- cbind(lai=wso$lai, ws)\n          ws <- 
as.data.frame(t(ws))\n         \n          ##\n          i <- 0\n          no 
<- ceiling(ncol(ws) / cores)\n          dat <- mclapply(\n              
ws[,indFit],\n              function(u) {\n                  f <- FUN(\n        
              z = z,\n                      u = u[-(1:2)],\n                    
  LAI = u[1],\n                      ...\n                      )\n             
     if (!is.null(f)) {\n                      f$lai <- u[1]\n                  
    f$ua <- u[2]\n                  }\n                  i <<- i + 1\n          
        if (round(i, -2)==i){\n                      cat(i, \"\\tof about\\t\", 
no, \"\\r\")\n                  }\n                  return(f)\n              
},\n              mc.cores = cores\n              )\n          class(dat) <- 
c(\"wpLELFitList\", class(dat))\n          saveRDS(dat, fn)\n      }\n    if 
(!(\"wpLELFitList\" %in% class(dat))) {\n        class(dat) <- 
c(\"wpLELFitList\", class(dat))\n    }\n    return(dat)\n}" nil) (9085 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpFitMultiple" 
wpFitMultiple ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpFitMultiple.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' The function loads individual wind 
profiles using the function\n##' \\code{loadWS} and fits each one using the 
function\n##' \\code{FUN}. The results are stored in \\code{./cache}.\n##'\n##' 
Load all wind profiles using \\code{loadWS()} and fit each single\n##' one 
using the function provided in \\code{FUN}. Results are cached.\n##' @title 
wpLELFitEach\n##' @param new if \\code{TRUE} the cache is re-created - if\n##' 
\\code{FALSE} the results are read from the cache.\n##' @param suffix suffix 
for cache\n##' @param FUN Name of function to be used for fitting TODO\n##' 
@param cores number of cores to be used for analysis - defaults to the number 
of cores mius one, but is at least 1.\n##' @param minSpeedIncreaseWide minimum 
wind speed difference - see \\link{loadWS} for details\n##' @param 
maxWindSpeedWide maximum wind speed - see \\link{loadWS} for details\n##' 
@param maxWindSpeedOneWide standardise highest sampled wind speed to one - see 
\\link{loadWS} for details\n##' @param WAI Wood Area Index, argument 
\\code{WAI} of function\n##' \\code{loadWS()}. Will be added to lai from raw 
data.\n##' @param minUstar minimum value of ustar for wind profiles to be\n##' 
included. Values smaller than 0 will include all wind profiles.\n##' @param 
selectWPFit a function returning \\bold{a list} where each\n##' element of the 
list represents the indices of loaded wind profiles\n##' which will be used for 
fitting the parameter. The function takes\n##' one value, i.e. \\code{wso} 
which is the \\code{data.frame} of the\n##' loaded wind profiles, as returned 
by the function\n##'\n##' code{\n##'           wso <- loadWS(\n##'              
wide         = TRUE,\n##'              onlyComplete = TRUE,\n##'              
minSpeedIncreaseWide,\n##'              maxWindSpeedWide,\n##'              
maxWindSpeedOneWide,\n##'              WAI = WAI\n##'              )\n##' 
}\n##'\n##' An exapmle is\n##'\n##' \\code{selectWPFit = 
function(wso){lapply(1:5, function(x){sample(1:nrow(wso), 100)})}}\n##' \n##' 
which would create a list of 5 elements where each consists of 100\n##' 
randomly selected wind profiles \\bold{selected} for fitting or\n##'\n##' 
\\code{selectWPFit = function(wso){lapply(1:10, 
function(x){-sample(1:nrow(wso), 500)})}}\n##'\n##' which would create a list 
of 10 elements where each consists of 500\n##' randomly selected wind profiles 
\\bold{excluded} from fitting\n##'\n##' @param ... additional parameter passed 
to FUN ( mainly for the function \\code{optim()} )\n##' @return an oject of 
class \\code{wpLELFitList} (i.e. \\code{list}) of\n##' the length of the number 
wind profiles to fit. Each element\n##' contains the result of an individual 
fit.\n##' @author Rainer M. Krug\n##' @export\nwpFitMultiple <- function(\n    
new = FALSE,\n    suffix = \"\",\n    FUN = 
\"fitOptim.wpLEL.ownFree.multiple\",\n    cores = detectCores() - 1,\n    
minSpeedIncreaseWide = 0,\n    maxWindSpeedWide = 10,\n    maxWindSpeedOneWide 
= FALSE,\n    minUstar = 0.25,\n    WAI = 0,\n    selectWPFit = function(wso) { 
lapply(1:5, function(x){sample(1:nrow(wso), 100)}) },\n    ...\n    ) {\n    if 
(cores==0) {\n        cores <- 1\n    }\n    fn <- paste0(CACHE, 
\"/wpFitMultiple.\", FUN, suffix, \".rds\")\n    FUN <- get(FUN)\n    if (new) 
{\n        unlink(fn)\n    }\n    if (file.exists(fn)) {\n        dat <- 
readRDS(fn)\n    } else {\n\n          ## Load Wind Profiles\n          wso <- 
loadWS(\n              wide         = TRUE,\n              onlyComplete = 
TRUE,\n              minSpeedIncreaseWide = minSpeedIncreaseWide,\n             
 maxWindSpeedWide = maxWindSpeedWide,\n              maxWindSpeedOneWide = 
maxWindSpeedOneWide,\n              minUstar = minUstar,\n              WAI = 
WAI\n              )\n          \n          ## 
#################################\n          ## From now on, LAI (later u[[1]]) 
is LAI = LAI + WAI)\n          ## #################################\n\n         
 ## Get indices for fitting. Must only be done once as the\n          ## 
functions might contain random number generation!\n          indFit <- 
selectWPFit(wso)\n\n          ## Save \"metadata\"\n          ## construct 
result list\n          md <- list()\n          md$method <- \"wpFitMultiple\"\n 
         md$FUN <- FUN\n          md$loadWSParm <- list(\n              
minSpeedIncreaseWide = minSpeedIncreaseWide,\n              maxWindSpeedWide = 
maxWindSpeedWide,\n              maxWindSpeedOneWide = maxWindSpeedOneWide,\n   
           minUstar = minUstar,\n              WAI = WAI\n              )\n     
     md$selectWPFit <- list(\n              fun = selectWPFit,\n              
indices = indFit\n              )\n          md$dot <- list(...)\n          
saveRDS(md, paste0(fn, \".metadata.rds\"))\n          \n          ## Format the 
data\n          z <- dfFromLong(wso[1,])$z        \n          ws <- 
wso[,grep(\"^h[[:digit:]]\", names(wso))]\n          ws <- cbind(ua=wso$ua, 
ws)\n          ws <- cbind(lai=wso$lai, ws)\n          ws <- 
as.data.frame(t(ws))\n\n          ## Do the fitting\n          i <- 0\n         
 no <- ceiling(ncol(ws) / cores)\n          dat <- mclapply(\n              
indFit,\n              function(s) {\n                  f <- FUN(\n             
         wso = ws[,s],\n                      ...\n                      )\n    
              i <<- i + 1\n                  if (round(i, -2)==i){\n            
          cat(i, \"\\tof about\\t\", no, \"\\r\")\n                  }\n        
          return(f)\n              },\n              mc.cores = cores\n         
     )\n          class(dat) <- c(\"wpLELFitList\", class(dat))\n          
saveRDS(dat, fn)\n      }\n    if (!(\"wpLELFitList\" %in% class(dat))) {\n     
   class(dat) <- c(\"wpLELFitList\", class(dat))\n    }\n    return(dat)\n}" 
nil) (9242 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*plot.wpLELFitList" 
plot\.wpLELFitList:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/plot.wpLELFitList.R") (:exports . "both") (:results 
. "replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . 
"yes") (:tangle-mode . 292) (:hlines . "no")) "##' Generic function to plot 
\\code{wpLELFitList}\n##'\n##' This function plots an \\code{wpLELFitList} 
object by plotting the\n##' lines of each fit on each other. The indices can be 
specified by\n##' using y.\n##' @param x object of class \\code{wpLELFitList} 
to be plotted \n##' @param y default \\code{NULL}; numeric vector of indices 
specifying\n##' the fits in \\code{x} to be plotted. If \\code{NULL} all will 
be plotted.\n##' @param ... optional arguments for \\code{plot} method\n##' 
@return NULL\n##' @author Rainer M. Krug\n##' @export\nplot.wpLELFitList <- 
function(\n    x,\n    y = NULL,\n    ...\n    ) {\n    if (is.null(y)) {\n     
   y <-  1:length(x)\n    }\n    plot(\n        x[[1]],\n        add = FALSE,\n 
       ...\n        )\n    ##\n    for (i in y[-1]) {\n        plot(\n          
  x[[i]],\n            add = TRUE,\n            ...\n            )\n    }\n    
invisible()\n}" nil) (9283 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*print.wpLELFitList"
 print\.wpLELFitList:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/print.wpLELFitList.R") (:exports . "both") (:results 
. "replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . 
"yes") (:tangle-mode . 292) (:hlines . "no")) "##' Generic function to print 
\\code{wpLELFitList}\n##'\n##' This function prints a \\code{wpLELFitList} 
object\n##' @param x object of class \\code{wpLELFitList} to be printed\n##' 
@param ... optional arguments for \\code{print} method\n##' @return NULL\n##' 
@author Rainer M. Krug\n##' @export\nprint.wpLELFitList <- function(\n    x,\n  
  ...\n) {\n    cat( \"Number of fits: \" )\n    cat(length(x), \"\\n\")\n    
invisible(x)\n}" nil) (9311 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*airRest%20Generic%20function%20definition"
 airRest\ Generic\ function\ definition:1 ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/airRest.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "airRest <- function(x, zsource) 
UseMethod(\"airRest\")" nil) (9318 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*airRest.wpLEL" 
airRest\.wpLEL ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/airRest.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function for 
\\code{airRest} to calculate aerial resistance\n##'\n##' Calculate aerial 
resistance based on \\code{wpLEL} object\n##' @param x object of class 
\\code{wpLEL}\n##' @param zsource if \\code{NULL} (default), \\code{zsource = 
z0 + dep}, unless the numerical value\n##' @return object of class 
\\code{airRest}.\n##' This object contains the following elements:\n##' 
\\itemize{\n##'   \\item{method} : {the method used to generate the aerial 
profile (the name of this function)}\n##'   \\item{wp}  : {the wind profile on 
which the aerial resistance is based}\n##'   \\item{I1}  : {aerial resistance 
top log profile}\n##'   \\item{I2}  : {aerial resistance from h to 
zsource}\n##'   \\item{I3}  : {aerial resistance for exp profile}\n##'   
\\item{I4}  : {aerial resistance lower exp profile}\n##'   \\item{ras} : 
{aerial resistance from z0sol to top}\n##'   \\item{rac} : {aerial resistance 
from zsource to za}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nairRest.wpLEL <- function(\n    x,\n    zsource = NULL\n) {\n    ## 
resistance top log profile\n    ## LEL - from za (very top) to dep (above 
canopy, log profile)\n    ## LE  - from za (very top) to dep (above canopy, log 
profile)\n    I1 <- 1 / (x$vk*x$ustar) * log( (x$za-x$dep)/(x$h-x$dep) )\n\n    
## resistance for exp profile\n    ## LEL - from dep to zjoint (into canopy, 
exp profile)\n    ## LE  - from dep to z0sol (into canopy, exp profile)\n    if 
(x$zjoint == 0) {\n        ## log-exp profile\n        I3 <- ( 1 / 
(x$vk*x$ustar) ) * ( x$h/(x$na*(x$h-x$dep)) ) * ( exp( x$na * (1 - x$z0sol/x$h) 
) - 1 )\n    } else {\n        ## log-exp-log profile\n        I3 <- ( 1 / 
(x$vk*x$ustar) ) * ( x$h/(x$na*(x$h-x$dep)) ) * ( exp( x$na * (1 - 
x$zjoint/x$h) ) - 1 )\n    }\n\n    ## resistance lower exp profile\n    ## LEL 
- from zjoint to z0sol\n    ## LE  - 0\n    if (x$zjoint == 0) {\n        ## 
log-exp profile\n        I4 <- 0\n    } else {\n        ## log-exp-log 
profile\n        I4 <- 1 / (x$vk*x$ustarsol) * log( x$zjoint/x$z0sol )\n    }\n 
   ##\n\n    ## resistance from z0sol to za\n    ras = I1 + I3 + I4\n\n\n    ## 
resistance from h to zsource (into canopy, exp profile or exp-log profile 
depending if zsource > zjoint or not)\n    ## LEL (zsource > zjoint) - exp 
profile\n    ## LEL (zsource < zjoint) - exp & log profile\n    ## LE  - exp 
profile\n    if (is.null(zsource)) {\n        zsource <- x$z0 + x$dep   \n    
}\n    if (x$zjoint==0) {\n        ## log-exp profile\n        I2 <- ( 1 / 
(x$vk*x$ustar) ) * ( x$h/(x$na*(x$h-x$dep)) ) * ( exp(x$na*(1 - zsource/x$h)) - 
1 )\n    } else {\n        ## log-exp-log profile\n        if (zsource < 
x$zjoint) {# never happen\n            I2_1 <- ( 1/(x$vk*x$ustar)    ) * ( 
x$h/(x$na*(x$h-x$dep)) ) * ( exp(x$na*(1 - x$zjoint/x$h)) - 1 )\n            
I2_2 <- ( 1/(x$vk*x$ustarsol) ) * ( log(x$zjoint/zsource) )\n            I2 <- 
I2_1 + I2_2\n        } else {\n            I2 <- ( 1 / (x$vk*x$ustar) ) * ( 
x$h/(x$na*(x$h-x$dep)) ) * ( exp(x$na*(1- (zsource)/x$h)) - 1 )\n        }\n    
}\n    ##\n    ## resistance from zsource to za\n    rac <- I1 + I2\n\n    ar 
<- list()\n    ar$method <- \"airRest.wpLEL\"\n    ar$wp <- x\n    ar$I1 <- 
I1\n    ar$I2 <- I2\n    ar$I3 <- I3\n    ar$I4 <- I4\n    ar$ras <- ras\n    
ar$rac <- rac\n    class(ar) <- \"airRest\"\n    return(ar)\n}" nil) (9414 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*plot.arLEL" 
plot\.arLEL:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/plot.arLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "plot.arLEL <- function(\n    x,\n    
plotWPPoints = TRUE,\n    plotWPValues = TRUE,\n    plotARValues = TRUE,\n    
...\n) {\n    plot.wpLEL(\n        x,\n        plotWPPoints = plotWPPoints,\n   
     plotWPValues = plotWPValues,\n        ...\n    )\n    if (plotARValues) 
{\n        mx <- par(\"usr\")[2]\n        with(\n            x,\n            
{\n                ## arrows(\n                ##     x0 = c(0, 0, 0 ,0 ,0 
,0),\n                ##     y0 = c(z0+dep, za, h, hsource, dep, zjoint),\n     
           ##     x1 = c(4, 4, 4 ,4 ,4 ,4),\n                ##     y1 = 
c(z0+dep, za, h, hsource, dep, zjoint),\n                ##     length = 0,\n   
             ##     col = \"grey\",\n                ##     lty = \"dotted\"\n  
              ## )\n                \n                \n                
text(mx*0.4,  (za+h)/2.,      paste(\"R1=\", round(R1, 2)                       
               ) )\n                text(mx*0.65, (z0h+dep+h)/2., 
paste(\"R2z0h=\", round(R2z0h, 2), \"R2z0=\", round(R2z0, 2)       ) )\n        
        text(mx*0.6,  (z0+h)/2.,      paste(\"R3=\", round(R3, 2)               
                       ) )\n                text(mx*0.6,  (2*z0+h)/3.,    
paste(\"R4log=\", round(R4log, 2), \"R4exp=\", round(R4exp, 2)     ) )\n        
        text(mx*0.5,  2,              paste(\"racz0h=\", round(racz0h, 2), 
\"racz0=\", round(racz0, 2)   ) )\n                text(mx*0.5,  1,             
 paste(\"raslog=\", round(raslog, 2), \"rasexp=\", round(rasexp, 2) ) )\n       
     }\n        )\n    }\n    invisible(NULL)\n}" nil) (9464 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*evapoTrans%20Generic%20function%20definition"
 evapoTrans\ Generic\ function\ definition:1 ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/evapoTrans.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "evapoTrans <- function(x) 
UseMethod(\"evapoTrans\")" nil) (9471 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*evapoTrans.default"
 evapoTrans\.default:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/evapoTrans.default.R") (:exports . "both") (:results 
. "replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . 
"yes") (:tangle-mode . 292) (:hlines . "no")) "evapoTrans.default <- 
function(\n    ras,\n    rac,\n    Ta     = 20,\n    frach  = 1,\n    Rnhsol = 
600,\n    RH     = 50, # deltae = 5,\n    gsol   = 0.001\n) {\n    ## mb 
(Monteith, 1990)\n    es     <- 6.1078 * exp( 17.269 * Ta/(Ta+ 237.3) ) # mb\n  
  ea     <- es * RH/100\n    deltae <- es - ea\n    Landah <- -2.37273 * Ta + 
2501                    # J.g-1\n    Cph    <- 1.01                             
       # J.g-1.degreeC-1\n    Rauh   <- -4.111 * Ta + 1289.764                  
# g/m3\n    Psyh   <- Rauh * Cph * 8.31 * (Ta + 273.15) / (100*18*Landah)  #  
mb.degreeC-1\n    deltah <- Landah * 18 * es / ( 8.31 * (Ta + 273.15)^2 )       
 #  mb.degreetC-1 Monteith p.10\n    \n    ##  ETR du sol\n    ETRhrsol <- 
frach * 3.6 *\n        (deltah * Rnhsol) /\n            (Landah * (deltah + 
Psyh * (1 + 1/(gsol * ras) )))\n    ETRhcsol <- frach * 3.6 *\n        (Rauh * 
Cph * deltae/ras) /\n            (Landah * (deltah + Psyh * (1 + 1/(gsol * ras) 
)))\n    ETRhsol  <- ETRhrsol+ETRhcsol\n\n    ##  ETP couvert\n    ETPch    <- 
frach * 3.6 *\n        (Rauh * Cph * deltae / rac) /\n            ( Landah * 
(deltah + Psyh) )\n    etp <- list(\n        etrHrsol = ETRhrsol,\n        
etrHcsol = ETRhcsol,\n        etrHsol  = ETRhsol,\n        etpCh    = ETPch\n   
 )\n    etp$input <- list(\n        ras    = ras,\n        rac    = rac,\n      
  Ta     = Ta,\n        frach  = frach,\n        Rnhsol = Rnhsol,\n        RH   
  = RH,\n        gsol   = gsol\n    )\n    class(etp) <- c(\"evapoTrans\", 
\"list\")\n    attr(etp, \"method\") <- \"default\"\n    return( etp )\n}" nil) 
(9530 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*evapoTrans.airRest"
 evapoTrans\.airRest:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/evapoTrans.airRest.R") (:exports . "both") (:results 
. "replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . 
"yes") (:tangle-mode . 292) (:hlines . "no")) "evapoTrans.airRest <- 
function(\n    x,\n    Ta     = 20,\n    frach  = 1,\n    Rnhsol = 600,\n    RH 
    = 50, # deltae = 5,\n    gsol   = 0.001\n) {\n    etp <- 
evapoTrans.default(\n        ras    = x$ras,\n        rac    = x$rac,\n        
Ta     = Ta,\n        frach  = frach,\n        Rnhsol = Rnhsol,\n        RH     
= RH,\n        gsol   = gsol\n    )\n    etp$input$airRest <- x\n    attr(etp, 
\"method\") <- \"airRest\"\n    return( etp )\n}" nil) (9559 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*evapoTrans.wpLEL" 
evapoTrans\.wpLEL:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/evapoTrans.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "evapoTrans.wpLEL <- function(\n    x,\n 
   Ta     = 20,\n    frach  = 1,\n    Rnhsol = 600,\n    RH     = 50, # deltae 
= 5,\n    gsol   = 0.001\n) {\n    etp <- evapoTrans.airRest(\n        x      = 
airRest(x),\n        Ta     = Ta,\n        frach  = frach,\n        Rnhsol = 
Rnhsol,\n        RH     = RH,\n        gsol   = gsol\n    )\n    attr(etp, 
\"method\") <- \"wpLEL\"\n    return( etp )\n}" nil) (9588 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*lhc.etp.R" 
lhc\.etp ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/lhc.etp.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Create latin hypercube based on the 
object \\code{x} of class\n##' \\code{wpLEL} and calculates the aeril 
resistance.\n##'\n##' Create latin hypercube based on the object \\code{x} of 
class\n##' \\code{wpLEL}. The object \\code{x} is used at a template to fill 
in\n##' Create latin hypercube based on the object \\code{x} of class\n##' 
\\code{wpLEL} and calculates the aeril resistance.\n##'\n##' Create latin 
hypercube based on the object \\code{x} of class\n##' \\code{wpLEL}. The object 
\\code{x} is used at a template to fill in\n##' the missing values.\n##' @title 
lhc.wpLEL\n##' @param x object of type \\code{wpLEL} which will be used as 
a\n##' template for the returned Latin Hyper Cube \n##' @param n size of Latin 
Hypercube sample\n##' @param Min list of named named elements for minimum value 
of each column in the\n##' Latin Hypercube. \\code{names(Min)} has to be the 
same as \\code{names(Max)}!\n##' @param Max list of named named elements for 
maximum values for each column in the\n##' Latin Hypercube. \\code{names(Min)} 
has to be the same as \\code{names(Max)}!\n##' @param suffix suffix for file in 
cache\n##' @param new if \\code{TRUE} the cache is recreated, if \\code{FALSE}, 
the\n##' default, the cached values will be read\n##' @param cores number of 
cores to be used for the evaluation\n##' @return returns Latin Hypercube 
\\code{data.frame}\n##' @author Rainer M. Krug\n##' @export\nlhc.etp <- 
function(\n    x,\n    n,\n    Min,\n    Max,\n    suffix,\n    new  = FALSE,\n 
   cores = parallel::detectCores() - 1\n) {\n    if (missing(suffix)) {\n       
 suffix <- paste0(\".\", paste(names(Min), sep = \"\", collapse=\"-\"))\n    } 
else {\n        suffix <- paste0(\".\", paste(names(Min), sep = \"\", 
collapse=\"-\"), suffix)\n    }\n    fn <- paste0(CACHE, \"/lhc.etp.\", 
x$parametrization, suffix, \".rds\")\n    if (new) {\n        unlink(fn)\n    
}\n    if (file.exists(fn)) {\n        result <- readRDS(fn)\n    } else {\n    
    if (length(Min) != length(Max)) {stop(\"Min and Max have to have the same 
length!\")}\n        if (!all.equal(names(Min), names(Max) )) {stop(\"Min and 
Max have to have the same names!\")}\n        ## Build random Latin Hypercube\n 
       dat <- lhs::randomLHS(n=n, k=length(Min))\n        colnames(dat) <- 
names(Min)\n        ## Transform the 0..1 values to the selected range\n        
dat <- sweep(\n            x = dat,\n            MARGIN = 2,\n            
Max-Min,\n            '*'\n        )\n        dat <- sweep(\n            x = 
dat,\n            MARGIN = 2,\n            Min,\n            '+'\n        )\n   
     ## ## Exculde cases where conditions 6) and 7) are not met\n        ## if 
(all(c(\"z0\", \"dep\", \"zjoint\") %in% names(Min))) {\n        ##     depz0 
<- dat[,\"dep\"] + dat[,\"z0\"]\n        ##     i <- depz0 < h & depz0 > 
dat[,\"zjoint\"]\n        ##     dat <- dat[i,]\n        ## }\n\n        dat <- 
as.data.frame(t(dat))\n        ##\n        wphelp <- function(...) 
{wpLEL.wpLEL(x, ...)}\n        no <- ceiling(ncol(dat) / cores)\n        i <- 
0\n        result <- mclapply(\n            dat,\n            function(s) {\n   
             names(s) <- rownames(dat)\n                s <- as.list(s)\n       
         s$wp <- do.call(wphelp, s)\n                \n                depz0 <- 
s$wp[[\"dep\"]] + s$wp[[\"z0\"]]\n                if (depz0 < s$wp[[\"h\"]] & 
depz0 > s$wp[[\"zjoint\"]]) {\n                    ar <- airRest(s$wp)\n        
            etp <- evapoTrans.airRest(\n                        x      = ar,\n  
                      Ta     = s[[\"Ta\"]],\n                        frach  = 
1,\n                        Rnhsol = s[[\"Rnhsol\"]],\n                        
RH     = s[[\"RH\"]],\n                        gsol   = s[[\"gsol\"]]\n         
           )\n                    ##\n                    s$I1  <- ar$I1\n      
              s$I2  <- ar$I2\n                    s$I3  <- ar$I3\n              
      s$I4  <- ar$I4\n                    s$ras <- ar$ras\n                    
s$rac <- ar$rac\n                    ##\n                    s$etrHrsol <- 
etp$etrHrsol\n                    s$etrHcsol <- etp$etrHcsol\n                  
  s$etrHsol  <- etp$etrHsol\n                    s$etpCh    <- etp$etpCh\n      
              class(s) = c(\"lhcAirRest\", class(s))\n                } else 
{\n                    s <- NULL\n                }\n                i <<- i + 
1\n                if (round(i, -2) == i) {\n                    cat(i, \"\\t 
of about \\t\", no, \"\\t\\t\\r\")\n                }\n                
return(s)\n            },\n            mc.cores = cores\n        )\n        
cat(\"\\n\")\n        result <- result[!sapply(result, is.null)]\n        
saveRDS(result, fn)\n    }\n    return(result)\n}" nil) (9720 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*tests" tests:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./tests/wpLELTest.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "## 
stopifnot(require(energyBalance))\n\n## Tolerance for numerical 
comparisons\nepsilon <- 1.0e-9\n\nua <- 3.136\nza <- 37\nz <- seq(\n    from = 
0,\n    to   = za,\n    by   = 0.1\n)\n\n## Test 1\nu <- wpLEL(\n    z,\n    ua 
     = ua,\n    dep = 14,\n    z0 = 2.8,\n    na = 7,\n    zjoint = 14.31625,\n 
   h = 28,\n    za = 37,\n    z0sol = 0.01\n)\nu.s <- 
readRDS(\"./tests/u.rds\")\nstopifnot( max(abs(unlist(u) - unlist(u.s)), 
na.rm=TRUE ) < epsilon)\n\nu <- airRest(u)\nu.s <- 
readRDS(\"./tests/u.ar.rds\")\nstopifnot( max(abs(unlist(u) - unlist(u.s)), 
na.rm=TRUE ) < epsilon)\n\n## Test 2\nWAI <- 0.5\nLAI <- 0\nu1 <- wpLEL(\n    
z,\n    ua  = ua,\n    dep = function(PAI) {1.1*h*log(1+(Cd*PAI)^0.25)},\n    
PAI = WAI + LAI\n)\nu1.s <- readRDS(\"./tests/u1.rds\")\nstopifnot( 
max(abs(unlist(u1) - unlist(u1.s)), na.rm=TRUE ) < epsilon)\n\nu1 <- 
airRest(u1)\nu1.s <- readRDS(\"./tests/u1.ar.rds\")\nstopifnot( 
max(abs(unlist(u1) - unlist(u1.s)), na.rm=TRUE ) < epsilon)\n\n## Test 3\nWAI 
<- 0.5\nLAI <- 6\nu2 <- wpLEL(\n    z,\n    ua  = ua,\n    dep = function(PAI) 
{1.1*h*log(1+(Cd*PAI)^0.25)},\n    PAI = WAI + LAI\n)\nu2.s <- 
readRDS(\"./tests/u2.rds\")\nstopifnot( max(abs(unlist(u2) - unlist(u2.s)), 
na.rm=TRUE ) < epsilon)\n\nu2 <- airRest(u2)\nu2.s <- 
readRDS(\"./tests/u2.ar.rds\")\nstopifnot( max(abs(unlist(u2) - unlist(u2.s)), 
na.rm=TRUE ) < epsilon)" nil) (9828 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*Package%20Documentation"
 Package\ Documentation:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalancePaper/R/EnergyBalancePaper.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "#' 
EnergyBalancePaper: Companion package for paper\n#'\n#' Companion package for 
the paper \\bold{TO BE ADDED} This packagee\n#' contains thew data and the 
functions used to analyse the date and\n#' to create the plots in the paper.  
In addition it also contains\n#' further scripts for analysis and plots not 
included in the paper.\n#' \n#' @section EnergyBalancePaper functions and 
data:\n#' Data: To Be added  ...\n#' Functions: To Be added  ...\n#'\n#' 
@docType package\n#' @name EnergyBalancePaper\nNULL\n#> NULL" nil) (9847 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*plotByLAI" 
plotByLAI:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalancePaper/R/plotByLAI.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "plotByLAI <- function(x, lai, pars, 
lower, upper, ...){\n    i <- (x >= lower & x <= upper)\n    plot(\n        x = 
c(lower, upper),\n        y = c(-0.5, 8),\n        type = \"n\",\n        xlab 
= x,\n        ylab = \"round(LAI)\",\n        axes = FALSE,\n        ...\n    
)\n    ## abline(v = initial[x], col=\"blue\")\n    box()\n    axis(1)\n    
axis(\n        2,\n        at=0:7,\n        labels=c(\"0.5\", \"1.5\", \"2.5\", 
\"3.5\", \"4.5\", \"5.5\", \"6.5\", \"7\"),\n        las = 1\n    )\n    bp <- 
boxplot(\n        x[i] ~ round(lai[i]),\n        plot = FALSE\n    )\n    
bxp(\n        bp,\n        horizontal = TRUE,\n        notch = TRUE,\n        
at = as.numeric(bp$names),\n        axes = FALSE,\n        add = TRUE\n    
)\n}" nil) ...))
  #[(by-lang) "address@hidden   \"A\206.      .\307\306       
.\"A\203#.\310\306      .\"A!\206$.     \311P!.
\312.\313\314\n\"-\207" [by-lang lang specs org-babel-tangle-lang-exts ext 
org-src-lang-modes assoc intern symbol-name "-mode" nil mapc #[(spec) 
"\306\211.\307!.\310!\211.G\311V\205.\n).\312!.    \313\230\203%.\314\315 
!\2027.  \316\230\203/.\317\2027.        G\311V\2057.    \211.\205P.,\203O.    
 \313\230\203O.
\320.,Q\202P.
\211.-\2054.\321!\322.-!..\211./\203w..\203w./\316\230\204w.\323..\324\"\210*\325.-!\203\217.-\326\327.0\"\235\204\217.\330.-!\210\331\332!.1r.1q\210\333\216\334.2!\203\247.\317\335\336\217\210\203\277.-.3\235\204\277.\337Pc\210.-.3B.3\340.4!\210\341
 
.5\331\332!.6r.6q\210\342\216\325.-!\203\340.\343.-!\210db\210\344\345\346.48\"A\316\230\204\371.`eU\204\371.\337c\210.5c\210\347\317\211.-#\210.\203.\f\204.\350.7T.7.-\fB.8\351.8.0\352\353$\203+.0\2023.8.0B\211.0)..\207"
 [get-spec tangle sheb she-bang tangle-mode base-name #[(name) "\302\303 
8\"A\207" [name spec assoc 4] 4] :tangle :shebang 0 :tangle-mode "yes" 
file-name-sans-extension buffer-file-name "no" nil "." :mkdirp 
file-name-directory make-directory parents file-exists-p mapcar car delete-file 
generate-new-buffer " *temp*" ((byte-code "\301!\203\n.\302!\210\301\207" 
[temp-buffer buffer-name kill-buffer] 2)) fboundp (funcall lang-f) ((error)) 
"\n" org-babel-spec-to-string buffer-string ((byte-code 
"\301!\203\n.\302!\210\301\207" [temp-buffer buffer-name kill-buffer] 2)) 
insert-file-contents assoc :padline 4 write-region 493 cl-member :test #[(a b) 
"@   @\232\207" [a b] 2] ext file-name fnd m path-collector temp-buffer ...] 
6] lang-f she-banged] 5](("R" (5939 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*CACHE" CACHE:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/data/fileNames.R") 
(:exports . "both") (:results . "replace") (:session . "*R.EnergyBalance*") 
(:eval . "never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) 
"CACHE <- file.path( \".\", \"cache\")\nSQLITEDB  <- file.path(CACHE, 
\"energyBalance.sqlite\")" nil) (5950 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*Package%20Documentation"
 Package\ Documentation:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/EnergyBalance.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "#' EnergyBalance: A package for 
computating wind profiles and\n#' aerodynamic resistances.\n#'\n#' The 
EnergyBalance package provides functiuons to\n#' fit wind profiles, calculate 
the aerial resistance and plot the profiles.\n#' \n#' @section EnergyBalance 
functions:\n#' To Be added  ...\n#'\n#' @docType package\n#' @name 
EnergyBalance\n#' @importFrom parallel detectCores\n#' @importFrom parallel 
mclapply\n#' @importFrom lhs randomLHS\n#' @importFrom RSQLite SQLite\n#' 
@import DBI\n#' @import magrittr\nNULL\n#> NULL" nil) (5973 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*CACHE" CACHE:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/R/CACHE.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "#' Cache for 
computations in package\n#'\n#' CACHE to be used for the computations. The 
cac=he holde =temporary\n#' as well as final results of the computations which 
are saved\n#' automatically to avoid re-computqtion. \n#' \n#' @format 
Character vector of length one.\n#' @name CACHE\n#' @docType data\nNULL" nil) 
(5986 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*SQLITEDB" 
SQLITEDB:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/SQLITEDB.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "#' SQLite Database with processed input 
data\n#'\n#' File name and path to the sqlite database which holds the 
processed\n#' wind speeds and LAI and the indices to increase access speed.\n#' 
\n#' @format Character vector of length one.\n#' @name SQLITEDB\n#' @docType 
data\nNULL" nil) (6000 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*getplotlim" 
getplotlim:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/getplotlim.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Return the limits of the 
plot\n##'\n##' Return the limits, as set by \\code{xlim = } and \\code{ylim = 
}. \n##' @param lim if \\code{xlim} or \\code{ylim} return the 
xorresponding\n##' limits, if code{xlimylim} retur list with each limit as 
an\n##' element.\n##' @return either vector with two elements containing the x 
or y\n##' limits or a list of two elements, xlim and ylim.\n##' @author Rainer 
M. Krug\n##' @export\ngetplotlim<-function(lim = c(\"xlim\", \"ylim\")) {\n    
usr <- par('usr')\n    xr <- (usr[2] - usr[1]) / 27 # 27 = (100 + 2*4) / 4\n    
yr <- (usr[4] - usr[3]) / 27\n    return(\n        switch(\n            EXPR = 
paste(sort(lim), collapse=\"\"),\n            xlim = c(usr[1] + xr, usr[2] - 
xr),\n            ylim = c(usr[3] + yr, usr[4] - yr),\n            xlimylim = 
list(\n                xlim = c(usr[1] + xr, usr[2] - xr),\n                
ylim = c(usr[3] + yr, usr[4] - yr)\n                ),\n            
stop(\"Invalid value for lim!\")\n            )        \n        )\n}" nil) 
(6032 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*Input%20data%20directory%20discovery%20functions"
 Input\ data\ directory\ discovery\ functions:1 ((:colname-names) 
(:rowname-names) (:result-params "replace") (:result-type . value) (:comments . 
"link") (:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") 
(:tangle . "./package/EnergyBalance/R/inputDataDir.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Returns input 
data dir\n##'\n##' Returns input data dir (the directory with the wind and 
LAI\n##' input files are located in).  If the package 
\\code{EnergyBalancePaper} is\n##' installed, the data included in this package 
is returned,\n##' otherwist the directory \\code{paste0{getwd(), 
\"/inputdata\"}} is\n##' returned.\n##' \n##' @title inputDataDir\n##' @return 
input data directory for win=d and LAI data\n##' @author Rainer M. Krug\n##' 
@export\ninputDataDir <- function() {\n    file.path(\n        ifelse(\n        
    \"package:EnergyBalancePaper\" %in% search(),\n            
system.file(package = \"EnergyBalancePaper\"),\n            getwd()\n           
 ),\n        \"inputdata\"\n        )\n}" nil) (6120 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*importVentToDB" 
importVentToDB:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/importVentToDB.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Import wind data\n##'\n##' Import 
data into sqlite db and fit =default= to each wind profile\n##' to obtain the 
parameters, e.g. ustar for selecting.\n##' @param h canopy height in meter. 
Needed for estimate of ustar (u*)\n##' @param fn file name of wind date\n##' 
@return invisible \\code{NULL}\n##' @author Rainer M. Krug\n##' 
@export\nimportVentToDB <- function(fn, h) {\n    wsw <- read.csv(\n        
file = fn,\n        stringsAsFactors = FALSE,\n        header = TRUE\n        
)\n    names(wsw) <- c(\n        \"date\",\n        \"time\",\n        
\"julien\",\n        \"h03\",\n        \"h11\",\n        \"h17\",\n        
\"h23\",\n        \"h29\",\n        \"h37\"\n        )\n    ## Add columns for 
wpLELDefault parameter values\n    wsw$ua <- NA\n    wsw$dep <- NA\n    wsw$z0 
<- NA\n    wsw$na <- NA\n    wsw$zjoint <- NA\n    wsw$h <- NA\n    wsw$za <- 
NA\n    wsw$ustar <- NA\n    ## Fit wpLELDefault and save parameter\n\n    for 
(i in 1:nrow(wsw)) {\n        if(floor(i/20)*20 == i) { cat(i, \" \") }\n       
 wp <- dfFromLong(wsw[i,])\n        if ( !any( is.na( c(wp$z, wp[,3]) ) ) ){\n  
          wpf <- fitOptim.wpLEL.default.single(\n                z = wp$z,\n    
            u = wp[,3],\n                ##                lower   = c(dep=0,  
z0=0.001, na=0.01, zjoint=0),\n                initial = c(dep=2,  z0=2,     
na=2,    zjoint=3)\n                ##                upper   = c(dep=27, z0=h, 
    na=20,   zjoint=h),\n                ##                method  = 
\"L-BFGS-B\"\n                )\n            wsw$ua[i]     <- 
wpf$wp[[\"ua\"]]\n            wsw$dep[i]    <- wpf$fit$par[[\"dep\"]]\n         
   wsw$z0[i]     <- wpf$fit$par[[\"z0\"]]\n            wsw$na[i]     <- 
wpf$fit$par[[\"na\"]]\n            wsw$zjoint[i] <- wpf$fit$par[[\"zjoint\"]]\n 
           wsw$h[i]      <- wpf$wp[[\"h\"]]\n            wsw$za[i]     <- 
wpf$wp[[\"za\"]]\n            wsw$ustar[i]  <- wpf$wp[[\"ustar\"]]\n        }\n 
   }\n    \n    wsl <- data.frame(\n        date   = wsw$date,\n        time   
= wsw$time,\n        julien = wsw$julien,\n        z      = rep(\n            
c(3,11,17,23,29,37),\n            times = rep( nrow(wsw), 6 )\n            ),\n 
       ws     = c(\n            wsw$h03,\n            wsw$h11,\n            
wsw$h17,\n            wsw$h23,\n            wsw$h29,\n            wsw$h37\n     
       ),\n        ua     = wsw$ua,\n        dep    = wsw$dep,\n        z0     
= wsw$z0,\n        na     = wsw$na,\n        zjoint = wsw$zjoint,\n        h    
  = wsw$h,\n        za     = wsw$za,\n        ustar  = wsw$ustar\n        )\n   
 ##\n    db <- DBI::dbConnect(RSQLite::SQLite(), SQLITEDB)\n    try({\n         
   ## WindSpeed_w\n            DBI::dbWriteTable(db, \"WindSpeed_w\", wsw, 
overwrite=TRUE)\n            DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX wsw_dt 
ON WindSpeed_w (date,   time)\")\n            DBI::dbGetQuery(db, \"CREATE 
UNIQUE INDEX wsw_jt ON WindSpeed_w (julien, time)\")\n            
DBI::dbGetQuery(db, \"CREATE INDEX wsw_date   ON WindSpeed_w (date  )\")\n      
      DBI::dbGetQuery(db, \"CREATE INDEX wsw_time   ON WindSpeed_w (time  
)\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wsw_julien ON WindSpeed_w 
(julien)\")\n            ## WindSpeed_l\n            DBI::dbWriteTable(db, 
\"WindSpeed_l\", wsl, overwrite=TRUE)\n            DBI::dbGetQuery(db, \"CREATE 
UNIQUE INDEX wsl_dth ON WindSpeed_l (date,   time, z)\")\n            
DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX wsl_jth ON WindSpeed_l (julien, time, 
z)\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wsl_date   ON WindSpeed_l 
(date  )\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wsl_time   ON 
WindSpeed_l (time  )\")\n            DBI::dbGetQuery(db, \"CREATE INDEX 
wsl_julien ON WindSpeed_l (julien)\")\n            DBI::dbGetQuery(db, \"CREATE 
INDEX wsl_h      ON WindSpeed_l (h     )\")\n        }\n        )\n    
DBI::dbDisconnect(db)\n    invisible()\n}" nil) (6245 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*importLAIToDB" 
importLAIToDB:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/importLAIToDB.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Import LAI data\n##'\n##' Import 
LAI data into sqlite db\n##' @param fn file name of LAI data\n##' @return 
invisible \\code{NULL}\n##' @author Rainer M. Krug\n##' @export\nimportLAIToDB 
<- function(fn) {\n    lai <- read.csv(\n        file =  fn,\n        
stringsAsFactors = FALSE,\n        header = TRUE\n    )\n    names(lai) <- c(\n 
       \"doy\",\n        \"lai\"\n    )\n    ##\n    db <- 
DBI::dbConnect(RSQLite::SQLite(), SQLITEDB)\n    try(\n        {\n            
DBI::dbWriteTable(db, \"LeafAreaIndex\", lai, overwrite=TRUE)\n            
DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX lai_doy ON LeafAreaIndex (doy)\")\n   
         DBI::dbGetQuery(db, \"CREATE INDEX lai_h ON LeafAreaIndex (lai)\")\n   
     }\n    )\n    DBI::dbDisconnect(db)\n}" nil) (6353 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*createWsLAI" 
createWsLAI:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/createWsLAI.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Finalize sqlight databaes of input 
data\n##'\n##' Create combined wind speed and LAI table and associated indices 
in sqlite database.\n##' @return invisible \\code{NULL}\n##' @author Rainer M. 
Krug\n##' @export\ncreateWsLAI <- function(\n    ){\n    sql_l <- paste(\n      
  \"CREATE TABLE\",\n        \"  WindSpeedLAI_l\",\n        \"AS SELECT\",\n    
    \"  WindSpeed_l.*, LeafAreaIndex.lai AS lai\",\n        \"FROM\", \n        
\"  WindSpeed_l\",\n        \"LEFT OUTER JOIN\",\n        \"  
LeafAreaIndex\",\n        \"ON\",\n        \" julien=DOY\"\n    )\n    sql_w <- 
paste(\n        \"CREATE TABLE\",\n        \"  WindSpeedLAI_w\",\n        \"AS 
SELECT\",\n        \"  WindSpeed_w.*, LeafAreaIndex.lai AS lai\",\n        
\"FROM\", \n        \"  WindSpeed_w\",\n        \"LEFT OUTER JOIN\",\n        
\"  LeafAreaIndex\",\n        \"ON\",\n        \" julien=DOY\"\n    )\n    db 
<- DBI::dbConnect(RSQLite::SQLite(), SQLITEDB)\n    try({\n            ##\n     
       DBI::dbGetQuery( conn = db, statement = \"DROP TABLE IF EXISTS 
WindSpeedLAI_l\")\n            DBI::dbGetQuery( conn = db, statement = sql_l)\n 
           DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX wslail_dth ON 
WindSpeedLAI_l (date, time, z)\")\n            DBI::dbGetQuery(db, \"CREATE 
UNIQUE INDEX wslail_jth ON WindSpeedLAI_l (julien, time, z)\")\n            
DBI::dbGetQuery(db, \"CREATE INDEX wslail_date   ON WindSpeedLAI_l (date  
)\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wslail_time   ON 
WindSpeedLAI_l (time  )\")\n            DBI::dbGetQuery(db, \"CREATE INDEX 
wslail_julien ON WindSpeedLAI_l (julien)\")\n            DBI::dbGetQuery(db, 
\"CREATE INDEX wslail_h      ON WindSpeedLAI_l (z     )\")\n            
DBI::dbGetQuery(db, \"CREATE INDEX wslail_lai    ON WindSpeedLAI_l (lai)\")\n   
         DBI::dbGetQuery(db, \"CREATE INDEX wslail_ustar  ON WindSpeedLAI_l 
(ustar)\")\n            ##\n            DBI::dbGetQuery( conn = db, statement = 
\"DROP TABLE IF EXISTS WindSpeedLAI_w\")\n            DBI::dbGetQuery( conn = 
db, statement = sql_w)\n            DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX 
wslaiw_dth ON WindSpeedLAI_w (date, time)\")\n            DBI::dbGetQuery(db, 
\"CREATE UNIQUE INDEX wslaiw_jth ON WindSpeedLAI_w (julien, time)\")\n          
  DBI::dbGetQuery(db, \"CREATE INDEX wslaiw_date   ON WindSpeedLAI_w (date  
)\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wslaiw_time   ON 
WindSpeedLAI_w (time  )\")\n            DBI::dbGetQuery(db, \"CREATE INDEX 
wslaiw_julien ON WindSpeedLAI_w (julien)\")\n            DBI::dbGetQuery(db, 
\"CREATE INDEX wslaiw_lai    ON WindSpeedLAI_w (lai)\")\n            
DBI::dbGetQuery(db, \"CREATE INDEX wslaiw_ustar  ON WindSpeedLAI_w (ustar)\")\n 
       }\n    )\n    DBI::dbDisconnect(db)\n    invisible(NULL)\n}" nil) (6421 
nil "file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*createCache" 
createCache:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/createCache.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Re-create \\code{CACHE}\n##'\n##' 
Deletes all files in the cache (directory \\code{CACHE}) and re-creates 
them\n##' @title Recreate files in cache\n##' @name createCache\n##' @return 
invisible NULL\n##' @author Rainer M. Krug\n##' @export\n##' @param fnVent file 
name of Wind Profile csv file\n##' @param fnLAI file name of LAI csv file\n##' 
@param h height, needed for wind profile fit to obtain u^*\ncreateCache <- 
function(fnVent, fnLAI, h) {\n    dir.create(CACHE, showWarnings = FALSE)\n    
unlink(SQLITEDB)\n    importVentToDB(fnVent, h)\n    importLAIToDB(fnLAI)\n    
createWsLAI()\n    invisible(NULL)\n}" nil) (6446 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*loadWS" loadWS:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/R/loadWS.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' 
Depending on the values of the arguments, different datasets are\n##' loaded, 
but all contain wind speed at different heights and lai\n##' data.  The sql 
argument can be used to specify different\n##' conditions for the data 
returned.\n##'\n##' Loads wind speed data from sql database in cache\n##' 
@title Load wind speed data\n##' @param wide if TRUE, load wide format, if 
FALSE long format\n##' @param onlyComplete if \\code{TRUE}, load only 
datapoints without missing\n##' data in wind \\code{h*} and \\code{LAI}.\n##' 
@param minSpeedIncreaseWide numeric value or \\code{NULL}. If not \\code{NULL}, 
the following rules will be\n##' used to filter the wind profiles:\n##' \n##' 
\\itemize{\n##' \n##'   \\item{ differences of wind speeds between each point 
and the\n##' adjacend lower sampling points has to be larger then the value 
of\n##' \\code{minSpeedIncreaseWide}}\n##'\n##' }\n##'\n##' \\bold{Only Applies 
To \\code{wide==TRUE}}\n##' \n##' @param maxWindSpeedWide numeric value or 
\\code{null}. If not\n##' \\code{NULL}, wind profiles with wind speeds higher 
then\n##' \\code{maxWindSpeedWide} will be filtered out.\n##'\n##' \\bold{Only 
Applies To \\code{wide==TRUE}}\n##' \n##' @param maxWindSpeedOneWide Logical - 
if \\code{TRUE} the wind profiles will\n##' be standardised to wind speed at 
highest sampling point to 1 and\n##' the original wind speed will be stored in 
a field \\code{ua}\n##'\n##' \\bold{Only Applies To \\code{wide==TRUE}}\n##' 
\n##' @param minUstar minimum ustar value to be included in analysis. The 
default is 0.25. \\bold{REFERENCE NEEDED}\n##' \n##' @param WAI Wood Area Index 
- default value \\code{0}. numeric value to be added to the field\n##' 
\\code{lai}. \n##' @param sql sql statement to be used instread of \\code{wide} 
and\n##' \\code{onlyComplete}. The sql statement is evauated and the result 
is\n##' returned.\n##'\n##' \\bold{Only Applies To \\code{wide==TRUE}}\n##' 
\n##' @return data.frame containing the data. If the \\code{wide==TRUE},\n##' 
the class is also set to \\code{wsw}, if \\code{wide==FALSE} to\n##' 
\\code{wsl}\n##' @author Rainer M. Krug\n##' @export\nloadWS <- function(\n    
wide = TRUE,\n    onlyComplete = TRUE,\n    minSpeedIncreaseWide = 0,\n    
maxWindSpeedWide = 10,\n    maxWindSpeedOneWide = FALSE,\n    minUstar = 
0.25,\n    WAI = 0,\n    sql\n    ) {\n    if (wide) {\n        tbln <- 
\"WindSpeedLAI_w\"\n    } else {\n          tbln <- \"WindSpeedLAI_l\"\n      
}\n    try({    \n            db <- dbConnect(RSQLite::SQLite(), SQLITEDB)\n    
        if (missing(sql)) {\n                if (!onlyComplete) {\n             
       sql <- paste( \"SELECT * FROM\", tbln )            \n                } 
else {\n                      f <- c( \"LAI\", grep(\"^h.\", dbListFields(db, 
tbln), value=TRUE))\n                      f <- paste(f, \"IS NOT NULL\", 
collapse = \" AND \")\n                      sql <- paste( \"SELECT * FROM \", 
tbln, \"WHERE\", f, \"AND ustar >=\", minUstar)\n                  }\n          
  }\n            ws <- DBI::dbGetQuery(db, sql)\n        }    \n        )\n    
dbDisconnect(db)\n    ##\n    if (length(grep(\"date|time\", names(ws))) >= 2) 
{\n        ws$date <- as.Date(ws$date, format = \"%d/%m/%y\")\n        
ws$dateTime <- as.POSIXct(paste(ws$date, ws$time), format=\"%Y-%m-%d %H:%M\")\n 
       ##\n        ws <- ws[\n                 c(\n                     
\"date\",\n                     \"time\",\n                     \"dateTime\",\n 
                    grep(\"date|time|dateTime\", names(ws), invert=TRUE, 
value=TRUE)\n                     )\n                 ]\n        ##\n    }\n    
if (wide) {\n        class(ws) <- c(class(ws), \"wsw\")\n        h <- 
rownames(dfFromLong(ws[2,]))\n        if (!is.null(minSpeedIncreaseWide)) {\n   
         ws <- ws[\n                     ws[,h] %>%\n                         
as.matrix %>%\n                             t %>%\n                             
    diff %>%\n                                     data.frame %>%\n             
                            sapply(\n                                           
  X   = .,\n                                             FUN = . %>%\n          
                                       is_less_than(minSpeedIncreaseWide) %>%\n 
                                                    any\n                       
                      ) %>%\n                                             
not,\n                     ]\n        }\n        if 
(!is.null(maxWindSpeedWide)) {\n            ws <-\n                ws[\n        
           ws[,h] %>%\n                       apply(\n                          
 X   = .,\n                           MARGIN = 1,\n                           
FUN = max\n                           ) %>%\n                           
is_less_than(maxWindSpeedWide),\n                   ]\n        }\n        ua <- 
dfFromLong(ws[1,]) %>% extract(\"z\") %>% max %>% paste0(\"h\", .)\n        
ws$ua <- ws[[ua]]\n        if (maxWindSpeedOneWide) {\n            for (i in h) 
{\n                ws[i] <- ws[i] / ws[ua]   \n            }\n        }\n    } 
else {\n          class(ws) <- c(class(ws), \"wsl\")\n      }\n    if 
(!is.null(WAI)) {\n        ws$lai <- ws$lai + WAI\n    }\n    return(ws)\n}" 
nil) (6596 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*dfFromLong" 
dfFromLong:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/dfFromLong.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Extract the height from the column 
names in the database, where\n##' the column names of the height have to follow 
the format\n##' \\code{h[:digit:]}.\n##'\n##' Extract the height\n##' @title 
Extract height from column names\n##' @param x column names\n##' @return 
heights as encoded in the column names in the order as given\n##' @author 
Rainer M. Krug\n##' @export\ndfFromLong <- function(\n    x\n    ) {\n    hCols 
<- grep(\n        pattern = \"^h[[:digit:]]\",\n        x       = names(x),\n   
     value   = FALSE\n        )\n    h <- gsub(\"h\", \"\", names(x)[hCols])\n  
  h <- as.numeric(h)\n    u <- as.matrix(x[hCols])\n    if(is.vector(u)) {\n    
    result <- data.frame(\n            index = hCols,\n            z     = h,\n 
           u     = u\n            )\n    } else {  # is.matrix(u) == TRUE\n     
     result <- data.frame(\n              index = hCols,\n              z     = 
h,\n              u     = t(u)\n              )\n      }\n    rownames(result) 
<- names(x)[hCols]\n    return(result)\n}" nil) (6646 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLEL%20Generic%20function%20definition"
 wpLEL\ Generic\ function\ definition:1 ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLEL.R") (:exports . "both") (:results . "replace") 
(:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function to create 
\\code{wpLEL} object.\n##'\n##' The returned object of class \\code{wpLEL} 
contains the following fields:\n##' \\itemize{\n##'   
\\item{\\code{parametrization}} {parametrization used to create this object. 
Possible values are \"default\" and \"Mahat2013\"}\n##' \n##'   
\\item{\\code{dep}} {some info}\n##'   \\item{\\code{z0}} {some info}\n##'   
\\item{\\code{na}} {some info}\n##'   \\item{\\code{zjoint}} {some info}\n##'   
\\item{\\code{h}} {some info}\n##'   \\item{\\code{za}} {some info}\n##'   
\\item{\\code{z0sol}} {some info}\n##' \n##'   \\item{\\code{vk}} {some 
info}\n##'   \\item{\\code{ua}} {some info}\n##'   \\item{\\code{ustar}} {some 
info}\n##'   \\item{\\code{z0h}} {some info}\n##'   \\item{\\code{uzjoint}} 
{some info}\n##'   \\item{\\code{ustarsol}} {some info}\n##'\n##'   
\\item{\\code{noU}} {some info}\n##' }\n##' @title wpLEL\n##' @param x object 
from which to calculat the \\code{wpLEL} object\n##' @param ... optional 
arguments for the generic functions\n##' @return objerct of class 
\\code{wpLEL}\n##' @author Rainer M. Krug\n##' @export\nwpLEL <- function(x, 
...) UseMethod(\"wpLEL\")" nil) (6681 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*parameterOK" 
parameterOK:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/parmeterOK.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Check parameter for 
validity\n##'\n##' Check parameter for validity. If they are valid, the 
function\n##' returns \\code{TRUE}, if not, it returns the error messages.\n##' 
@title parameterOK\n##' @param z z\n##' @param ua ua\n##' @param dep dep\n##' 
@param z0 z0\n##' @param na na\n##' @param zjoint zjoint\n##' @param h h\n##' 
@param za za\n##' @param z0sol z0sol\n##' @return \\code{TRUE} if parameter are 
OK, otherwise a named\n##' \\code{character} vector where the names are the 
parameter which\n##' are not OK and the values the error messages to be 
used\n##' @author Rainer M. Krug\n##' @export\nparameterOK <- function(\n    
z,\n    ua,\n    dep,\n    z0,\n    na,\n    zjoint,\n    h,\n    za,\n    
z0sol\n    ) {\n    result <- NULL\n    ## z      0 <= z\n    if (any( z < 0 )) 
{\n        result <- c(result, z = \"All z have to be larger or equal than 
zero!\\n\")\n    }\n    ## ua     0 <= ua\n    if (ua < 0 ) {\n        result 
<- c(result, ua = \"ua has to be larger or equal than zero!\\n\")\n    }\n    
## dep    0 <= dep < h\n    if ((dep < 0) | (dep >= h) ) {\n        result <- 
c(result, dep = \"dep has to be larger or equal than zero and smaller than 
h!\\n\")\n    }\n    ## z0     0 < z0 <= h\n        if ((z0 <= 0) | (z0 > h)) 
{\n        result <- c(result, z0 = \"z0 has to be larger than zero and smaller 
or equal than h!\\n\")\n    } \n    ## na    0 < na\n    if (na < 0 ) {\n       
 result <- c(result, na = \"na has to be larger or equal than zero!\\n\")\n    
} \n    ## zjoint\n    if ((zjoint < 0) | (zjoint > h)) {\n        result <- 
c(result, zjoint = \"zjoint has to larger or equal than 0 and smaller or equal 
than h!\\n\")\n    }\n    ## h     h >= 0\n    if (h < 0 ) {\n        result <- 
c(result, h = \"h has to be larger or equal than zero!\\n\")\n    }\n    ## za  
  za > h\n    if (za <= h ) {\n        result <- c(result, za = \"za has to be 
larger than h!\\n\")\n    }\n    ## z0sol  0 < z0sol POSSIBLY < h/10 ???\n    
if (z0sol <= 0 ) {\n        result <- c(result, z0sol = \"z0sol has to be 
larger than zero!\\n\")\n    }\n    ## ###\n    ##  dep, z0, h   dep + z0 < h\n 
   if ((dep + z0) > h) {\n        result <- c(result,  \"(dep + z0) has to be 
smaller than h!\\n\")\n    }\n    \n    if (is.null(result)) {\n        result 
<- TRUE\n    }\n    return(result)\n}" nil) (6775 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELDefault" 
wpLELDefault ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELDefault.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape\n##'\n##' Creates Log-Exp-Log shaped wind profile oblect \\code{wpLEL} 
based on input parameter.\n##' @title Log-Exp-Log wind profile\n##' @param z 
height above ground\n##' @param ua wind speed at highest point of z\n##' @param 
dep zero-plane displacement height. The argument can be a\n##' numeric value or 
a function which is evaluated in the context of\n##' the function, i.e. can use 
all arguments to calculate\n##' \\code{dep}. The last argument has to be 
\\code{...}. An example for\n##' the usage of a function would be the 
parametrisation by Mahat\n##' 2013:\n##'\n##' dep = function(LAI, ...) {h * 
(0.05 + (LAI^0.02)/2 + (y-1)/20) }\n##'\n##' where \\code{h} will be the 
argument \\code{h} and \\code{LAI} and\n##' \\code{y} need to be added as an 
additional argument when calling\n##' \\code{wpLELDefault}.\n##'\n##' The 
argument \\code{...} is needed at the end as all arguments in\n##' the function 
\\code{wpLELDefault} are passed on tho thie function\n##' as 
\\code{...}.\n##'\n##' When using a function, it should be taken care to set 
the argument\n##' \\code{parametrization} accordingly (in this example\n##' 
\"Mahat\") to adjust further analysis accordingly!\n##' @param z0 roughness 
length at canopy level. The argument can be a\n##' numeric value or a function 
which is evaluated in the context of\n##' the function, i.e. can use all 
arguments to calculate\n##' \\code{z0}. The last argument has to be 
\\code{...}. An example for\n##' the usage of a function would be the 
parametrisation by Mahat\n##' 2013:\n##'\n##' z0 = function(LAI, ...) {h * 
(0.23 - (LAI^0.25)/10 + (y-1)/67) }\n##'\n##' where \\code{h} will be the 
argument \\code{h} and \\code{LAI} and\n##' \\code{y} need to be added as an 
additional argument when calling\n##' \\code{wpLELDefault}.\n##'\n##' The 
argument \\code{...} is needed at the end as all arguments in\n##' the function 
\\code{wpLELDefault} are passed on tho thie function\n##' as 
\\code{...}.\n##'\n##' When using a function, it should be taken care to set 
the\n##' argument \\code{parametrization} accordingly (in this\n##' example 
\"Mahat\") to adjust further analysis accordingly!\n##' @param na exponential 
decay coefficient\n##' @param check default \\code{TRUE}. If \\code{TRUE}, 
parameter will\n##' be cecked, if \\code{FALSE} not. MAinly for internal 
usage.\n##' @param ... further argumewnts which will be passed to the user\n##' 
defined function \\code{dep} and \\code{z0}.\n##' @param zjoint height at which 
the logarithmic changes to\n##' exponential (\"lower canopy end\")\n##' @param 
h canopy height h\n##' @param za ???????\n##' @param z0sol roughness length at 
soil level (???????)\n##' @param noU if \\code{TRUE}, do \\bold{not} calculate 
and return u\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer M. 
Krug\n##' @export\n##' @references NEEDED!!!\nwpLELDefault <- function(\n    
z,\n    ua,\n    dep,\n    z0,\n    na, #    = 7,\n    zjoint,\n    h,  #    = 
28,\n    za, #    = 37,\n    z0sol,# = 0.001,\n    noU   = FALSE,\n    check = 
TRUE\n    ){ \n    vk <- 0.41\n    \n    ok <- ifelse(\n        check,\n        
parameterOK(\n            z      = z,\n            ua     = ua,\n            
dep    = dep,\n            z0     = z0,\n            na     = na,\n            
zjoint = zjoint,\n            h      = h,\n            za     = za,\n           
 z0sol  = z0sol\n            ),\n        TRUE\n        )\n\n    if 
(!isTRUE(ok)) {\n        stop(ok)\n    }\n    \n    ## profil5.m l29 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::29]]\n    ## 
ustar =  ua * vk / log( (za  - dep) / z0) \n    ustar    <- ua * vk / log( (za 
- dep) / z0)\n\n    ## profil5.m l30 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::30]]\n    ## z0h 
= z0 * exp( -6.27 * vk * ( ustar^(1/3) ) ); % Calcul de Z0h (Thom)\n    z0h   
<- z0 * exp( -6.27 * vk * ( ustar^(1/3) ) )\n\n    ## profil5.m l32 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::32]]\n    ##     
               zjoint  = z0h + dep;\n    ## if (missing(zjoint)) {zjoint <- z0h 
+ dep}\n\n    ## profil5.m l33 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::33]]\n    ## 
uzjoint = ustar / vk  * log( (hauteur - dep)/z0 ) * exp( - na * (1 - 
zjoint/hauteur) );\n    uzjoint  <- (ustar /  vk) * log( (h       - dep)/z0 ) * 
exp( - na * (1 - zjoint/h      ) )\n\n    ## profil5.m l34 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::34]]\n    ## 
ustarsol = uzjoint * vk / log( (zjoint/z0sol))\n    ustarsol <- ifelse(\n       
 (zjoint == 0),\n        as.numeric(NA),\n        uzjoint * vk / log( zjoint / 
z0sol )\n        )\n    \n    ##\n    result <- list(\n        z = NA,\n        
u = NA,\n        u.onlyTop = NA\n        )\n\n    if (!noU) {\n        result$z 
<- as.numeric(z)\n        ##\n        result$u <- as.numeric(\n            
sapply(\n                z,\n                function(z) {\n                    
if (z >= h) {\n                        ## profil5.m l36 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::37]]\n           
             u <-  ( ustar/vk ) * log( (z-dep) / z0 )\n                    } 
else if (z >= zjoint) {\n                          ## profil5.m l40 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::41]]\n           
               uh <- ( ustar/vk ) * log( (h-dep) / z0 )\n                       
   u <- uh * exp( -na*(1-(z/h)) )\n                      } else if (z >= 0) {\n 
                           ## profil5.m l42 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::42]]\n           
                 u <- ( ustarsol/vk ) * log( (z     ) / z0sol )\n               
         } else {\n                              u <- NA\n                      
    }\n                    return(u)\n                }\n                )\n    
        )\n        names(result$u) <- paste0(\"h\", z)\n        ##\n        
result$u.onlyTop = as.numeric(\n            sapply(\n                z,\n       
         function(z) {\n                    zd <- ((z-dep) / z0)\n              
      if (zd < 0){\n                        u <- NA\n                    } else 
{\n                          u <- ( ustar/vk ) * log( (z-dep) / z0 )\n          
            }\n                    if (!is.na(u)) {\n                        if 
(u < 0) {\n                            u <- NA\n                        }\n     
               }\n                    return(u)\n                }\n            
    )\n            )\n    }\n    ##\n    result$parametrization <- 
\"default\"\n    result$dep       <- as.numeric(dep)\n    result$z0        <- 
as.numeric(z0)\n    result$na        <- as.numeric(na)\n    result$zjoint    <- 
as.numeric(zjoint)\n    result$h         <- as.numeric(h)\n    result$za        
<- as.numeric(za)\n    result$z0sol     <- as.numeric(z0sol)\n    \n    
result$vk        <- as.numeric(vk)\n    result$ua        <- as.numeric(ua)\n    
result$ustar     <- as.numeric(ustar)\n    result$z0h       <- 
as.numeric(z0h)\n    result$uzjoint   <- as.numeric(uzjoint)\n    
result$ustarsol  <- as.numeric(ustarsol)\n    ##\n    result$noU       <- noU\n 
   result$check     <- check\n    ##\n    class(result) <- c(\"wpLEL\")\n    
return(result)\n}" nil) (6981 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELMahat" 
wpLEL\.mahat ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELMahat.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape using Mahat parametrisation\n##'\n##' Creates Log-Exp-Log shaped wind 
profile oblect \\code{wpLEL} based on input parameter.\n##' @title Log-Exp-Log 
wind profile based on Mahat parametrization\n##' @param z height above 
ground\n##' @param ua wind speed at highest point of z\n##' @param na 
exponential decay coefficient\n##' @param zjoint height at which the 
logarithmic changes to\n##' exponential (\"lower canopy end\")\n##' @param h 
canopy height h\n##' @param za ???????\n##' @param z0sol roughness length at 
soil level (???????)\n##' @param noU if \\code{TRUE}, do \\bold{not} calculate 
and return u\n##' @param LAI Leaf Area Index to be used for the calculation of 
\\code{dep}\n##' @param y integer indicating three basic forest profiles\n##' 
\\itemize{\n##'   \\item{y = 1} : {young pine}\n##'   \\item{y = 2} : {leafed 
decideous tree}\n##'   \\item{y = 3} : {old pine with long stems and clumping 
at the top}\n##' }\n##' @param check default \\code{TRUE}. If \\code{TRUE}, 
parameter will\n##' be cecked, if \\code{FALSE} not. MAinly for internal 
usage.\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer M. 
Krug\n##' @export\n##' @references NEEDED!!!\nwpLELMahat <- function(\n    z,\n 
   ua,\n    na,\n    zjoint,\n    h,\n    za,\n    z0sol,\n    LAI,\n    y,\n   
 noU = FALSE,\n    check = TRUE\n){ \n    depFUN <- function(LAI, ...) {h * 
(0.05 + (LAI^0.02)/2 + (y-1)/20) }\n    dep <- depFUN(LAI, h, y)\n    ##\n    
z0FUN <- function(LAI, ...) {h * (0.23 - (LAI^0.25)/10 + (y-1)/67) }\n    z0 <- 
z0FUN(LAI, h, y)\n    ##\n    ok <- ifelse(\n        check,\n        
parameterOK(\n            z      = z,\n            ua     = ua,\n            
dep    = dep,\n            z0     = z0,\n            na     = na,\n            
zjoint = zjoint,\n            h      = h,\n            za     = za,\n           
 z0sol  = z0sol\n            ),\n        TRUE\n        )\n\n    if 
(!isTRUE(ok)) {\n        stop(ok)\n    }\n    ##\n    result <- wpLELDefault(\n 
       z      = z,\n        ua     = ua,\n        dep    = dep,\n        z0     
= z0,\n        na     = na,\n        zjoint = zjoint,\n        h      = h,\n    
    za     = za,\n        z0sol  = z0sol,\n        noU    = noU,\n        check 
 = FALSE\n        )\n    ##\n    result$z0FUN  <- z0FUN\n    result$depFUN <- 
depFUN\n    result$LAI    <- as.numeric(LAI)\n    result$y      <- 
as.numeric(y)\n    result$check  <- check\n    ##\n    result$parametrization 
<- \"mahat\"\n    ##\n    return(result)\n}" nil) (7084 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELLE" wpLELLE 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/R/wpLELLE.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Wind 
speed profile using Log-Exp shape\n##'\n##' Creates Log-Exp shaped wind profile 
oblect \\code{wpLEL} based on\n##' input parameter. Uses \\code{wpLELDefault()} 
with \\code{zjoint=0}\n##' and \\code{z0sol=NA}.\n##' @title Log-Exp wind 
profile\n##' @param z height above ground\n##' @param ua wind speed at highest 
point of z\n##' @param dep zero-plane displacement height. The argument can be 
a\n##' numeric value or a function which is evaluated in the context of\n##' 
the function, i.e. can use all arguments to calculate\n##' \\code{dep}. The 
last argument has to be \\code{...}. An example for\n##' the usage of a 
function would be the parametrisation by Mahat\n##' 2013:\n##'\n##' dep = 
function(LAI, ...) {h * (0.05 + (LAI^0.02)/2 + (y-1)/20) }\n##'\n##' where 
\\code{h} will be the argument \\code{h} and \\code{LAI} and\n##' \\code{y} 
need to be added as an additional argument when calling\n##' 
\\code{wpLELDefault}.\n##'\n##' The argument \\code{...} is needed at the end 
as all arguments in\n##' the function \\code{wpLELDefault} are passed on tho 
thie function\n##' as \\code{...}.\n##'\n##' When using a function, it should 
be taken care to set the argument\n##' \\code{parametrization} accordingly (in 
this example\n##' \"Mahat\") to adjust further analysis accordingly!\n##' 
@param z0 roughness length at canopy level. The argument can be a\n##' numeric 
value or a function which is evaluated in the context of\n##' the function, 
i.e. can use all arguments to calculate\n##' \\code{z0}. The last argument has 
to be \\code{...}. An example for\n##' the usage of a function would be the 
parametrisation by Mahat\n##' 2013:\n##'\n##' z0 = function(LAI, ...) {h * 
(0.23 - (LAI^0.25)/10 + (y-1)/67) }\n##'\n##' where \\code{h} will be the 
argument \\code{h} and \\code{LAI} and\n##' \\code{y} need to be added as an 
additional argument when calling\n##' \\code{wpLELDefault}.\n##'\n##' The 
argument \\code{...} is needed at the end as all arguments in\n##' the function 
\\code{wpLELDefault} are passed on tho thie function\n##' as 
\\code{...}.\n##'\n##' When using a function, it should be taken care to set 
the\n##' argument \\code{parametrization} accordingly (in this\n##' example 
\"Mahat\") to adjust further analysis accordingly!\n##' @param na exponential 
decay coefficient\n##' @param h canopy height h\n##' @param za ???????\n##' 
@param noU if \\code{TRUE}, do \\bold{not} calculate and return u\n##' @param 
... further argumewnts which will be passed to the user\n##' defined function 
\\code{dep} and \\code{z0}.\n##' @param check default \\code{TRUE}. If 
\\code{TRUE}, parameter will\n##' be cecked, if \\code{FALSE} not. MAinly for 
internal usage.\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer 
M. Krug\n##' @export\n##' @references NEEDED!!!\nwpLELLE <- function(\n    z,\n 
   ua,\n    dep,\n    z0,\n    na,\n    h,\n    za,\n    noU = FALSE,\n    
check = TRUE\n    ){\n    zjoint <-  0\n    z0sol <- 0.1\n    ##\n    ok <- 
ifelse(\n        check,\n        parameterOK(\n            z      = z,\n        
    ua     = ua,\n            dep    = dep,\n            z0     = z0,\n         
   na     = na,\n            zjoint = zjoint,\n            h      = h,\n        
    za     = za,\n            z0sol  = z0sol\n            ),\n        TRUE\n    
    )\n\n    if (!isTRUE(ok)) {\n        stop(ok)\n    }\n    ##\n    result <- 
wpLELDefault(\n        z      = z,\n        ua     = ua,\n        dep    = 
dep,\n        z0     = z0,\n        na     = na,\n        zjoint = zjoint,\n    
    h      = h,\n        za     = za,\n        z0sol  = z0sol,\n        noU    
= noU,\n        check  = TRUE\n        )\n    ##\n    result$check  <- check\n  
  result$parametrization <- \"LE\"\n    return(result)\n}" nil) (7204 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELMahatLE" 
wpLELMahatLE ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELMahatLE.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape using Mahat parametrisation\n##'\n##' Creates Log-Exp-Log shaped wind 
profile oblect \\code{wpLEL} based on input parameter.\n##' @title Log-Exp-Log 
wind profile based on Mahat parametrization\n##' @param z height above 
ground\n##' @param ua wind speed at highest point of z\n##' @param na 
exponential decay coefficient\n##' @param h canopy height h\n##' @param za 
???????\n##' @param z0sol roughness length at soil level (???????)\n##' @param 
LAI Leaf Area Index to be used for the calculation of \\code{dep}\n##' @param y 
integer indicating three basic forest profiles\n##' \\itemize{\n##'   \\item{y 
= 1} : {young pine}\n##'   \\item{y = 2} : {leafed decideous tree}\n##'   
\\item{y = 3} : {old pine with long stems and clumping at the top}\n##' }\n##' 
@param noU if \\code{TRUE}, do \\bold{not} calculate and return u\n##' @param 
check default \\code{TRUE}. If \\code{TRUE}, parameter will\n##' be cecked, if 
\\code{FALSE} not. MAinly for internal usage.\n##' @return Object of class 
\\code{wpLEL}.\n##' @author Rainer M. Krug\n##' @export\n##' @references 
NEEDED!!!\nwpLELMahatLE <- function(\n    z,\n    ua,\n    na,\n    h,\n    
za,\n    z0sol,\n    LAI,\n    y,\n    noU = FALSE,\n    check = TRUE\n){ \n    
depFUN <- function(LAI, h, y) {h * (0.05 + (LAI^0.02)/2 + (y-1)/20) }\n    dep 
<- depFUN(LAI, h, y)\n    z0FUN  <- function(LAI, h, y) {h * (0.23 - 
(LAI^0.25)/10 + (y-1)/67) }\n    z0 <- z0FUN(LAI, h, y)\n    zjoint <-  0\n    
z0sol <- 0.1\n    ##\n    ok <- ifelse(\n        check,\n        parameterOK(\n 
           z      = z,\n            ua     = ua,\n            dep    = dep,\n   
         z0     = z0,\n            na     = na,\n            zjoint = zjoint,\n 
           h      = h,\n            za     = za,\n            z0sol  = z0sol\n  
          ),\n        TRUE\n        )\n    if (!isTRUE(ok)) {\n        
stop(ok)\n    }\n    ##\n    result <- wpLELDefault(\n        z      = z,\n     
   ua     = ua,\n        dep    = dep,\n        z0     = z0,\n        na     = 
na,\n        zjoint = zjoint,\n        h      = h,\n        za     = za,\n      
  z0sol  = z0sol,\n        noU    = noU,\n        check  = FALSE\n    )\n    
##\n    result$depFUN <- depFUN\n    result$z0FUN <- z0FUN\n    result$LAI <- 
as.numeric(LAI)\n    result$y   <- as.numeric(y)\n    result$check <- check\n   
 result$parametrization <- \"mahatLE\"\n    ##\n    return(result)\n}" nil) 
(7307 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELCastanea" 
wpLELCastanea ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELCastanea.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape\n##'\n##' Creates Log-Exp-Log shaped wind profile oblect \\code{wpLEL} 
based on input parameter.\n##' @title Log-Exp-Log wind profile\n##' @param z 
height above ground\n##' @param ua wind speed at highest point of z\n##' @param 
zjoint height at which the logarithmic changes to\n##' exponential (\"lower 
canopy end\")\n##' @param h canopy height h\n##' @param za ???????\n##' @param 
z0sol roughness length at soil level (???????)\n##' @param LAI Leaf Area 
Index\n##' @param WAI Wood Area Index, default=1.1\n##' @param noU if 
\\code{TRUE}, do \\bold{not} calculate and return u\n##' @param check default 
\\code{TRUE}. If \\code{TRUE}, parameter will\n##' be cecked, if \\code{FALSE} 
not. MAinly for internal usage.\n##' @return Object of class 
\\code{wpLEL}.\n##' @author Rainer M. Krug\n##' @export\n##' @references 
NEEDED!!!\nwpLELCastanea <- function(\n    z,\n    ua,\n    zjoint,\n    h,\n   
 za,\n    z0sol,\n    LAI,\n    WAI = 1.1,\n    noU   = FALSE,\n    check = 
TRUE\n){\n    depFUN <- function(h) {(2/3) * h}\n    dep <- depFUN(h)           
         # Oke 1972\n    ##\n    z0FUN <- function(h) {0.1 * h}\n    z0  <- 
z0FUN(h)                      # Granier\n    ##\n    naFUN <- function(LAI, 
WAI) {\n        na <- 2.6 * (LAI + WAI)^0.36\n        if (na > 4) {\n           
 na <- 4\n        }\n        return(na)\n    }\n    na <- naFUN(LAI, WAI)\n    
##\n    ok <- ifelse(\n        check,\n        parameterOK(\n            z      
= z,\n            ua     = ua,\n            dep    = dep,\n            z0     = 
z0,\n            na     = na,\n            zjoint = zjoint,\n            h      
= h,\n            za     = za,\n            z0sol  = z0sol\n            ),\n    
    TRUE\n        )\n    if (!isTRUE(ok)) {\n        stop(ok)\n    }\n    ##\n  
  result <- wpLELDefault(\n        z      = z,\n        ua     = ua,   \n       
 dep    = na,\n        z0     = z0,\n        na     = na,\n        zjoint = 
zjoint,\n        h      = h, \n        za     = za,\n        z0sol  = z0sol, \n 
       noU    = noU,\n        check  = FALSE\n        )\n    result$depFUN <- 
depFUN\n    result$z0FUN <- z0FUN\n    result$naFUN <- naFUN\n    result$LAI <- 
as.numeric(LAI)\n    result$WAI <- as.numeric(WAI)\n    result$check <- check\n 
   result$parametrization <- \"castanea\"\n    return(result)\n}" nil) (7415 
nil "file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELOwnFree" 
wpLELOwnFree ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELOwnFree.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape using ownFree parametrisation\n##'\n##' Creates Log-Exp-Log shaped wind 
profile oblect \\code{wpLEL} based on input parameter.\n##' dep, z0, na and 
zoint are parametrized using:\n##'\n##' x = h * ( x.a + ( LAI ^ x.b ) / x.c 
)\n##'\n##' where x is dep, z0, na and zjoint respectively.\n##' \n##' @title 
Log-Exp-Log wind profile based on Mahat parametrization\n##' @param z height 
above ground\n##' @param ua wind speed at highest point of z\n##' @param h 
canopy height h\n##' @param za za\n##' @param z0sol roughness length at soil 
level\n##' @param dep.a see Details\n##' @param dep.b see Details\n##' @param 
dep.c see Details\n##' @param z0.a see Details\n##' @param z0.b see 
Details\n##' @param z0.c see Details\n##' @param na.a see Details\n##' @param 
na.b see Details\n##' @param na.c see Details\n##' @param zjoint.a see 
Details\n##' @param zjoint.b see Details\n##' @param zjoint.c see Details\n##' 
@param LAI Leaf Area Index to be used for the calculation of \\code{dep}\n##' 
@param noU if \\code{TRUE}, do \\bold{not} calculate and return u\n##' @param 
check default \\code{TRUE}. If \\code{TRUE}, parameter will\n##' be cecked, if 
\\code{FALSE} not. MAinly for internal usage.\n##' @param na exponential decay 
coefficient\n##' @param zjoint height at which the logarithmic changes to\n##' 
exponential (\"lower canopy end\")\n##' @return Object of class 
\\code{wpLEL}.\n##' @author Rainer M. Krug\n##' @export\n##' @references 
NEEDED!!!\nwpLELOwnFree <- function(\n    z,\n    ua,\n\n    h,\n    za,\n    
z0sol,\n\n    dep.a,    dep.b,    dep.c,\n    z0.a,     z0.b,     z0.c,\n    
na.a,     na.b,     na.c,\n    zjoint.a, zjoint.b, zjoint.c,\n\n    LAI,\n    
noU = FALSE,\n    check = TRUE\n    ){ \n    depFUN    <- function(LAI, h,    
dep.a,    dep.b,    dep.c) { h * (   dep.a + ( LAI ^    dep.b ) /    dep.c ) 
}\n    z0FUN     <- function(LAI, h,     z0.a,     z0.b,     z0.c) { h * (    
z0.a + ( LAI ^     z0.b ) /     z0.c ) }\n    naFUN     <- function(LAI, h,     
na.a,     na.b,     na.c) { h * (    na.a + ( LAI ^     na.b ) /     na.c ) }\n 
   zjointFUN <- function(LAI, h, zjoint.a, zjoint.b, zjoint.c) { h * (zjoint.a 
+ ( LAI ^ zjoint.b ) / zjoint.c ) }\n    ##\n    dep    <- depFUN(LAI, h,    
dep.a,    dep.b,    dep.c)\n    z0     <- depFUN(LAI, h,     z0.a,     z0.b,    
 z0.c)\n    na     <- depFUN(LAI, h,     na.a,     na.b,     na.c)\n    zjoint 
<- zjointFUN(LAI, h, zjoint.a, zjoint.b, zjoint.c)\n    ##\n    ok <- ifelse(\n 
       check,\n        parameterOK(\n            z      = z,\n            ua    
 = ua,\n            dep    = dep,\n            z0     = z0,\n            na     
= na,\n            zjoint = zjoint,\n            h      = h,\n            za    
 = za,\n            z0sol  = z0sol\n            ),\n        TRUE\n        )\n   
 if (!isTRUE(ok)) {\n        stop(ok)\n    }\n    ##\n    result <- 
wpLELDefault(\n        z = z,\n        ua = ua,\n        dep    = dep,\n        
z0     = z0,\n        na     = na,\n        zjoint = zjoint,\n        h      = 
h,\n        za     = za,\n        z0sol  = z0sol,\n        noU    = noU,\n      
  check  = FALSE\n        )\n    ##\n    result$depFUN <- depFUN\n    
result$dep.a  <- dep.a\n    result$dep.b  <- dep.b\n    result$dep.c  <- 
dep.c\n    ##\n    result$naFUN <- naFUN\n    result$na.a  <- na.a\n    
result$na.b  <- na.b\n    result$na.c  <- na.c\n    ##\n    result$z0FUN <- 
z0FUN\n    result$z0.a  <- z0.a\n    result$z0.b  <- z0.b\n    result$z0.c  <- 
z0.c\n    ##\n    result$zjointFUN <- zjointFUN\n    result$zjoint.a  <- 
zjoint.a\n    result$zjoint.b  <- zjoint.b\n    result$zjoint.c  <- zjoint.c\n  
  ##\n    result$LAI <- as.numeric(LAI)\n    result$check <- check\n    
result$parametrization <- \"ownFree\"\n    ##\n    return(result)\n}" nil) 
(7547 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLEL.wpLEL" 
wpLEL\.wpLEL:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLEL.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Creates a new \\code{wpLEL} object 
from a \\code{wpLEL} object\n##'\n##' \n##' Creates an \\code{wpLEL} object 
from a \\code{wpLEL} object by\n##' calling \\code{wpLELDefault()} with the 
arguments in \\code{...} given\n##' arguments and the from \\code{x} extracted 
arguments.\n##' @title Log-Exp-Log wind profile\n##' @param x object of class 
\\code{wpLEL} to be used as source\n##' for the parameter to create the 
\\code{wpLEL} object\n##' @param ... \\bold{named} arguments which will be used 
to create the\n##' new \\code{wpLEL} object using the \\code{wpLELDefault} 
function.\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer M. 
Krug\n##' @export\nwpLEL.wpLEL <- function(\n    x,\n    ...\n){\n    iff <- 
function(test, yes, no) {\n        if (test) {\n            yes\n        } else 
{\n            no\n        }\n    }\n    dot <- list(...)\n    u <- switch(\n   
     x$parametrization,\n        \"default\" = wpLELDefault( \n            z    
  = iff(exists(\"z\",      dot), dot[[\"z\"]],      x[[\"z\"]]),\n            
ua     = iff(exists(\"ua\",     dot), dot[[\"ua\"]],     x[[\"ua\"]]),\n        
    dep    = iff(exists(\"dep\",    dot), dot[[\"dep\"]],    
x[[\"depOrg\"]]),\n            z0     = iff(exists(\"z0\",     dot), 
dot[[\"z0\"]],     x[[\"z0Org\"]]),\n            na     = iff(exists(\"na\",    
 dot), dot[[\"na\"]],     x[[\"na\"]]),\n            zjoint = 
iff(exists(\"zjoint\", dot), dot[[\"zjoint\"]], x[[\"zjoint\"]]),\n            
h      = iff(exists(\"h\",      dot), dot[[\"h\"]],      x[[\"h\"]]),\n         
   za     = iff(exists(\"za\",     dot), dot[[\"za\"]],     x[[\"za\"]]),\n     
       z0sol  = iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  
x[[\"z0sol\"]]),\n            noU    = iff(exists(\"noU\",    dot), 
dot[[\"noU\"]],    x[[\"noU\"]])\n        ),\n        \"mahat\"   = 
wpLELMahat(\n            z      = iff(exists(\"z\",      dot), dot[[\"z\"]],    
  x[[\"z\"]]),\n            ua     = iff(exists(\"ua\",     dot), 
dot[[\"ua\"]],     x[[\"ua\"]]),\n            na     = iff(exists(\"na\",     
dot), dot[[\"na\"]],     x[[\"na\"]]),\n            zjoint = 
iff(exists(\"zjoint\", dot), dot[[\"zjoint\"]], x[[\"zjoint\"]]),\n            
h      = iff(exists(\"h\",      dot), dot[[\"h\"]],      x[[\"h\"]]),\n         
   za     = iff(exists(\"za\",     dot), dot[[\"za\"]],     x[[\"za\"]]),\n     
       z0sol  = iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  
x[[\"z0sol\"]]),\n            noU    = iff(exists(\"noU\",    dot), 
dot[[\"noU\"]],    x[[\"noU\"]]),\n            LAI    = iff(exists(\"LAI\",    
dot), dot[[\"LAI\"]],    x[[\"LAI\"]]),\n            y      = iff(exists(\"y\", 
     dot), dot[[\"y\"]],      x[[\"y\"]])\n        ),\n        \"LE\"      = 
wpLELLE(\n            z      = iff(exists(\"z\",     dot),  dot[[\"z\"]],      
x[[\"z\"]]),\n            ua     = iff(exists(\"ua\",    dot),  dot[[\"ua\"]],  
   x[[\"ua\"]]),\n            dep    = iff(exists(\"dep\",   dot),  
dot[[\"dep\"]],    x[[\"depOrg\"]]),\n            z0     = iff(exists(\"z0\",   
 dot),  dot[[\"z0\"]],     x[[\"z0Org\"]]),\n            na     = 
iff(exists(\"na\",    dot),  dot[[\"na\"]],     x[[\"na\"]]),\n            h    
  = iff(exists(\"h\",     dot),  dot[[\"h\"]],      x[[\"h\"]]),\n            
za     = iff(exists(\"za\",    dot),  dot[[\"za\"]],     x[[\"za\"]]),\n        
    noU    = iff(exists(\"noU\",   dot),  dot[[\"noU\"]],    x[[\"noU\"]])\n    
    ),\n        \"mahatLE\" = wpLELMahatLE(\n            z      = 
iff(exists(\"z\",      dot), dot[[\"z\"]],      x[[\"z\"]]),\n            ua    
 = iff(exists(\"ua\",     dot), dot[[\"ua\"]],     x[[\"ua\"]]),\n            
na     = iff(exists(\"na\",     dot), dot[[\"na\"]],     x[[\"na\"]]),\n        
    h      = iff(exists(\"h\",      dot), dot[[\"h\"]],      x[[\"h\"]]),\n     
       za     = iff(exists(\"za\",     dot), dot[[\"za\"]],     x[[\"za\"]]),\n 
           z0sol  = iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  
x[[\"z0sol\"]]),\n            noU    = iff(exists(\"noU\",    dot), 
dot[[\"noU\"]],    x[[\"noU\"]]),\n            LAI    = iff(exists(\"LAI\",    
dot), dot[[\"LAI\"]],    x[[\"LAI\"]]),\n            y      = iff(exists(\"y\", 
     dot), dot[[\"y\"]],      x[[\"y\"]])\n        ),\n        \"castanea\" = 
wpLELCastanea(\n            z      = iff(exists(\"z\",      dot), dot[[\"z\"]], 
     x[[\"z\"]]),\n            ua     = iff(exists(\"ua\",     dot), 
dot[[\"ua\"]],     x[[\"ua\"]]),\n            zjoint = iff(exists(\"zjoint\", 
dot), dot[[\"zjoint\"]], x[[\"zjoint\"]]),\n            h      = 
iff(exists(\"h\",      dot), dot[[\"h\"]],      x[[\"h\"]]),\n            za    
 = iff(exists(\"za\",     dot), dot[[\"za\"]],     x[[\"za\"]]),\n            
z0sol  = iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  x[[\"z0sol\"]]),\n     
       LAI    = iff(exists(\"LAI\",    dot), dot[[\"LAI\"]],    
x[[\"LAI\"]]),\n            WAI    = iff(exists(\"WAI\",    dot), 
dot[[\"WAI\"]],    x[[\"WAI\"]])\n          ),\n        \"ownFree\" = 
wpLELOwnFree(\n            z      = iff(exists(\"z\",      dot), dot[[\"z\"]],  
    x[[\"z\"]]),\n            ua     = iff(exists(\"ua\",     dot), 
dot[[\"ua\"]],     x[[\"ua\"]]),\n            h      = iff(exists(\"h\",      
dot), dot[[\"h\"]],      x[[\"h\"]]),\n            za     = iff(exists(\"za\",  
   dot), dot[[\"za\"]],     x[[\"za\"]]),\n            z0sol  = 
iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  x[[\"z0sol\"]]),\n            
\n            dep.a  = iff(exists(\"dep.a\",  dot), dot[[\"dep.a\"]],  
x[[\"dep.a\"]]),\n            dep.b  = iff(exists(\"dep.b\",  dot), 
dot[[\"dep.b\"]],  x[[\"dep.b\"]]),\n            dep.c  = iff(exists(\"dep.c\", 
 dot), dot[[\"dep.c\"]],  x[[\"dep.c\"]]),\n\n            z0.a  = 
iff(exists(\"z0.a\",    dot), dot[[\"z0.a\"]],   x[[\"z0.a\"]]),\n            
z0.b  = iff(exists(\"z0.b\",    dot), dot[[\"z0.b\"]],   x[[\"z0.b\"]]),\n      
      z0.c  = iff(exists(\"z0.c\",    dot), dot[[\"z0.c\"]],   
x[[\"z0.c\"]]),\n\n            na.a  = iff(exists(\"na.a\",    dot), 
dot[[\"na.a\"]],   x[[\"na.a\"]]),\n            na.b  = iff(exists(\"na.b\",    
dot), dot[[\"na.b\"]],   x[[\"na.b\"]]),\n            na.c  = 
iff(exists(\"na.c\",    dot), dot[[\"na.c\"]],   x[[\"na.c\"]]),\n\n            
zjoint.a  = iff(exists(\"zjoint.a\", dot), dot[[\"zjoint.a\"]], 
x[[\"zjoint.a\"]]),\n            zjoint.b  = iff(exists(\"zjoint.b\", dot), 
dot[[\"zjoint.b\"]], x[[\"zjoint.b\"]]),\n            zjoint.c  = 
iff(exists(\"zjoint.c\", dot), dot[[\"zjoint.c\"]], x[[\"zjoint.c\"]]),\n\n     
       noU    = iff(exists(\"noU\",    dot), dot[[\"noU\"]],    
x[[\"noU\"]]),\n            LAI    = iff(exists(\"LAI\",    dot), 
dot[[\"LAI\"]],    x[[\"LAI\"]])\n          ),\n        stop(\"No valid 
parametrization\")\n    )\n    return(u)\n}" nil) (7668 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLEL.wpLELFit" 
wpLEL\.wpLELFit:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLEL.wpLELFit.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Creates an \\code{wpLEL} object 
from a \\code{wpLELFit} object\n##'\n##' \n##' Creates an \\code{wpLEL} object 
from a \\code{wpLELFit} object by\n##' calling \\code{wpLELDefault()} with the 
extracted\n##' parameter.\n##' @title Log-Exp-Log wind profile\n##' @param x 
object of class \\code{wpLELFit} to be used as source\n##' for the parameter to 
ctreate the \\code{wpLEL} object\n##' @param ... additional arguments which are 
discarded\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer M. 
Krug\n##' @export\nwpLEL.wpLELFit <- function(\n    x,\n    ...\n){ \n    
return(x$wp)\n}" nil) (7695 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*plot.wpLEL" 
plot\.wpLEL:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/plot.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Plot \\code{wpLEL} object\n##'\n##' 
Generic function to plot \\code{wpLEL} object\n##' @param x object of class 
\\code{wpLEL} to be plotted\n##' @param z numeric vector at which the line 
should be calculated. If\n##' missing, \\code{x$z} will be used. the more 
points, the smoother\n##' the line.\n##' @param xlab x label\n##' @param ylab y 
label\n##' @param plotWPValues if \\code{TRUE}, the values and value lines 
are\n##' plotted\n##' @param plotWPPoints if \\code{TRUE}, the points in 
\\code{x$u; x$z}\n##' are plotted\n##' @param plotWPLines if \\code{TRUE}, the 
wind profile line is plotted\n##' @param add if \\code{TRUE}, the plot wil be 
added to an existing plot\n##' @param ... optional arguments for \\code{plot} 
method\n##' @return incisible NULL\n##' @author Rainer M. Krug\n##' 
@export\nplot.wpLEL <- function(\n    x,\n    z,\n    xlab = \"Wind Speed 
(m/s)\",\n    ylab = \"Height above ground (m)\",\n    plotWPValues = TRUE,\n   
 plotWPPoints = TRUE,\n    plotWPLines  = TRUE,\n    add = FALSE,\n    ...\n) 
{\n    if (missing(z)) {z <- x$z}\n    u <- wpLEL(x, z=z)\n    ## setup plot if 
!add\n    if (!add) {\n        plot(\n            x   = c(0, max(x$u, u$u)),\n  
          y   = c(0, max(x$z, u$z)),\n            type= \"n\",\n            
xlab = xlab,\n            ylab = ylab\n        )\n    }\n    ## plot points\n   
 points(\n        x   = x$u,\n        y   = x$z,\n        type= 
ifelse(plotWPPoints, \"p\", \"n\"),\n        ...\n    )\n    lines(\n        x 
= u$u.onlyTop,\n        y = u$z,\n        type = ifelse(plotWPLines, \"l\", 
\"n\"),\n        lty = \"dotted\",\n        col = \"blue\"\n    )\n    lines(\n 
       x = u$u,\n        y = u$z,\n        type = ifelse(plotWPLines, \"l\", 
\"n\"),\n        lty = \"solid\",\n        col = \"black\"\n    )\n    if 
(plotWPValues) {\n        mx <- par(\"usr\")[2]\n        with(\n            
x,\n            {\n                arrows(\n                    x0 = c(0, 0, 0 
,0 ,0),\n                    y0 = c(z0+dep, za, h, dep, zjoint),\n              
      x1 = c(4, 4, 4 ,4 ,4 ,4),\n                    y1 = c(z0+dep, za, h, dep, 
zjoint),\n                    length = 0,\n                    col = 
\"grey\",\n                    lty = \"dotted\"\n                )\n            
    text(mx, z0,     paste('z0',      round(z0, 2),     sep=\" = \" ), pos = 
2)\n                text(mx, za,     paste('za',      round(za, 2),     sep=\" 
= \" ), pos = 2)\n                text(mx, h,      paste('hauteur', round(h, 
2),      sep=\" = \" ), pos = 2)\n                text(mx, dep,    paste('dep', 
    round(dep, 2),    sep=\" = \" ), pos = 2)\n                text(mx, zjoint, 
paste('zjoint',  round(zjoint, 2), sep=\" = \" ), pos = 2)\n            }\n     
   )\n    }\n    invisible(NULL)\n}" nil) (7786 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*print.wpLEL" 
print\.wpLEL:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/print.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function to print 
\\code{wpLEL}\n##'\n##' This function prints a \\code{wpLEL} object\n##' @param 
x object of class \\code{wpLEL} to be printed\n##' @param ... optional 
arguments for \\code{print} method\n##' @return NULL\n##' @author Rainer M. 
Krug\n##' @export\nprint.wpLEL <- function(\n    x,\n    ...\n    ) {\n    
print.default(x)\n    invisible(x)\n}" nil) (7814 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.default.single"
 fitOptim\.wpLEL\.default\.single ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.default.single.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting 
of \\code{wpLEL} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values\n##' (\\code{u} and \\code{z}) to a \\code{link{wpLEL}} wind 
profile.\n##' @title fitOptim.wpLEL.default.single\n##' @param z height at 
which wind speeds are measured\n##' @param u wind speed at heights 
\\code{z}\n##' @param LAI Leaf Area Index\n##' @param initial Initial values 
for the parameters to be optimized\n##' over (will be passed on to the 
\\code{\\link{optim}} function as\n##' \\code{par}). The parameter are in the 
order of \\code{dep},\n##' \\code{z0}, \\code{na}, \\code{zjoint}. The default 
value is\n##' \\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param h 
constant value for \\code{h} which will be passed to the\n##' function 
\\code{wpLELDefault()}\n##' @param za constant value for \\code{za} which will 
be passed to the\n##' function \\code{wpLELDefault()}\n##' @param z0sol 
constant value for \\code{z0sol} which will be passed\n##' to the function 
\\code{wpLELDefault()}\n##' @param ... further arguments for \\code{optim}. 
These can be\n##' \\code{gr}, \\code{method}, \\code{lower, upper}, 
\\code{control} or\n##' \\code{hessian}\n##' @return object of class 
\\code{wpLELFit}. The class contains the followig elements:\n##' 
\\itemize{\n##'   \\item{\\code{method}} {name of function used for 
fitting}\n##'   \\item{\\code{initial}} {initial values for fit}\n##'   
\\item{\\code{dot}} {arguments passed as \\code{...} passed on to optimisation 
function, here \\code{\\link{optim}}}\n##'   \\item{\\code{z}} {observed 
heights}\n##'   \\item{\\code{u}} {observefd wind speed at height 
\\code{z}}\n##'   \\item{\\code{fit}} {result returned from fit, here the 
function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted wind profile 
of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.default.single <- function(\n    z,\n    u,\n    LAI,\n 
   initial = c(dep=25, z0=0.8*28,  na=9, zjoint=0.2*2),\n    h      = 28,\n    
za     = 37,\n    z0sol  = 0.001,\n    ...\n    ) {\n    ## Function to be 
minimised\n    wpLELMin <- function(par, z, u, ua, h, za, z0sol) {\n        if 
(\n            isTRUE(\n                parameterOK(\n                    z     
 = z,\n                    ua     = ua,\n                    dep    = par[1], # 
par$dep,\n                    z0     = par[2], # par$z0,\n                    
na     = par[3], # par$na,\n                    zjoint = par[4], # par$zjoint\n 
                   h      = h,\n                    za     = za,\n              
      z0sol  = z0sol\n                    )\n                )\n            ) 
{\n            p <- wpLELDefault(\n                z      = z,\n                
ua     = ua,\n                dep    = par[1], # par$dep,\n                z0   
  = par[2], # par$z0,\n                na     = par[3], # par$na,\n             
   zjoint = par[4], # par$zjoint\n                h      = h,\n                
za     = za,\n                z0sol  = z0sol,\n                check = FALSE\n  
              )\n            result <- sum( ( (p$u - u)^2 ) / length(u) )\n     
   } else {\n              result <- NA\n          }\n        return( result 
)\n    } \n\n    ua <- u[length(u)]\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.default.single\"\n    result$initial <-  initial\n    
result$dot <- list(...)\n    result$z <- z\n    result$u <- u\n    result$fit 
<- optim(\n        par = c(\n            initial[\"dep\"],\n            
initial[\"z0\"],\n            initial[\"na\"],\n            
initial[\"zjoint\"]\n            ),\n        fn    = wpLELMin,\n        z     = 
z,\n        u     = u,\n        ua    = ua,\n        h     = h,\n        za    
= za,\n        z0sol = z0sol,\n        ...\n        )\n    result$wp <- 
wpLELDefault(\n        z      = z,\n        ua     = ua,\n        dep    = 
result$fit$par[\"dep\"],\n        z0     = result$fit$par[\"z0\"],\n        na  
   = result$fit$par[\"na\"],\n        zjoint = result$fit$par[\"zjoint\"],\n    
    h      = h,\n        za     = za,\n        z0sol  = z0sol\n        )\n\n    
class(result) <- c(class(result), \"wpLELFit\")\n    return(result)\n}" nil) 
(7942 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.mahat.single"
 fitOptim\.wpLEL\.mahat\.single ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.mahat.single.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting of 
\\code{wpLEL.mahat} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values\n##' (\\code{u} and \\code{z}) to a \\code{link{wpLEL.mahat}} wind 
profile.\n##' @title fitOptim.wpLEL.mahat.single\n##' @param z height at which 
wind speeds are measured\n##' @param u wind speed at heights \\code{z}\n##' 
@param LAI Leaf area index\n##' @param h constant value for \\code{h} which 
will be passed to the\n##' function \\code{wpLELDefault()}\n##' @param za 
constant value for \\code{za} which will be passed to the\n##' function 
\\code{wpLELDefault()}\n##' @param z0sol constant value for \\code{z0sol} which 
will be passed\n##' to the function \\code{wpLELDefault()}\n##' @param initial 
Initial values for the parameters to be optimized\n##' over (will be passed on 
to the \\code{\\link{optim}} function as\n##' \\code{par}). The parameter are 
in the order of \\code{dep},\n##' \\code{z0}, \\code{na}, \\code{zjoint}. The 
default value is\n##' \\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param 
... further arguments for \\code{optim}. These can be\n##' \\code{gr}, 
\\code{method}, \\code{lower, upper}, \\code{control} or\n##' 
\\code{hessian}\n##' @return object of class \\code{wpLELFit}. The class 
contains the followig elements:\n##' \\itemize{\n##'   \\item{\\code{method}} 
{name of function used for fitting}\n##'   \\item{\\code{initial}} {initial 
values for fit}\n##'   \\item{\\code{dot}} {arguments passed as \\code{...} 
passed on to optimisation function, here \\code{\\link{optim}}}\n##'   
\\item{\\code{z}} {observed heights}\n##'   \\item{\\code{u}} {observefd wind 
speed at height \\code{z}}\n##'   \\item{\\code{fit}} {result returned from 
fit, here the function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted 
wind profile of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.mahat.single <- function(\n    z,\n    u,\n    LAI,\n   
 initial = c(na=9, zjoint=0.2*2, y=3),\n    h      = 28,\n    za     = 37,\n    
z0sol  = 0.001,\n    ...\n) {\n    wpLELMin <- function(par, z, u, ua, h, za, 
z0sol, LAI) {\n        result <- NA\n        try({\n                p <- 
wpLELMahat(\n                    z      = z,\n                    ua     = 
ua,\n                    na     = par[1], # na\n                    zjoint = 
par[2], # zjoint\n                    h      = h,\n                    za     = 
za,\n                    z0sol  = z0sol,\n                    LAI    = LAI,\n   
                 y      = par[3]  # y\n                    )\n                
result <- sum( ( (p$u - u)^2 ) / length(u) )\n            },\n            
silent = TRUE\n            )\n        return( result )\n    }\n\n    ua <- 
u[length(u)]\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.mahat.single\"\n    result$initial <-  initial\n    result$dot 
<- list(...)\n    result$z <- z\n    result$u <- u\n    result$fit <- optim(\n  
      par = c(\n            initial[\"na\"],\n            
initial[\"zjoint\"],\n            initial[\"y\"]\n        ),\n        fn    = 
wpLELMin,\n        z     = z,\n        u     = u,\n        ua    = ua,\n        
h     = h,\n        za    = za,\n        z0sol = z0sol,\n        LAI   = LAI,\n 
       ...\n    )\n    result$wp <- wpLELMahat(\n        z      = z,\n        
ua     = ua,\n        na     = result$fit$par[\"na\"],\n        zjoint = 
result$fit$par[\"zjoint\"],\n        h      = h,\n        za     = za,\n        
z0sol  = z0sol,\n        LAI    = LAI,\n        y      = 
result$fit$par[\"y\"]\n    )\n\n    class(result) <- c(class(result), 
\"wpLELFit\")\n    return(result)\n}" nil) (8053 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.LE.single"
 fitOptim\.wpLEL\.LE\.single ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.LE.single.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting of 
\\code{wpLEL} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values (\\code{u} and \\code{z}) to a \\code{link{wpLEL}} wind profile.\n##' 
@title fitOptim.wpLEL.LE.single\n##' @param z height at which wind speeds are 
measured\n##' @param u wind speed at heights \\code{z}\n##' @param LAI Leaf 
Area Index\n##' @param initial Initial values for the parameters to be 
optimized\n##' over (will be passed on to the \\code{\\link{optim}} function 
as\n##' \\code{par}). The parameter are in the order of \\code{dep},\n##' 
\\code{z0}, \\code{na}, \\code{zjoint}. The default value is\n##' 
\\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param h constant value for 
\\code{h} which will be passed to the\n##' function \\code{wpLELDefault()}\n##' 
@param za constant value for \\code{za} which will be passed to the\n##' 
function \\code{wpLELDefault()}\n##' @param ... further arguments for 
\\code{optim}. These can be\n##' \\code{gr}, \\code{method}, \\code{lower, 
upper}, \\code{control} or\n##' \\code{hessian}\n##' @return object of class 
\\code{wpLELFit}. The class contains the followig elements:\n##' 
\\itemize{\n##'   \\item{\\code{method}} {name of function used for 
fitting}\n##'   \\item{\\code{initial}} {initial values for fit}\n##'   
\\item{\\code{dot}} {arguments passed as \\code{...} passed on to optimisation 
function, here \\code{\\link{optim}}}\n##'   \\item{\\code{z}} {observed 
heights}\n##'   \\item{\\code{u}} {observefd wind speed at height 
\\code{z}}\n##'   \\item{\\code{fit}} {result returned from fit, here the 
function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted wind profile 
of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.LE.single <- function(\n    z,\n    u,\n    LAI,\n    
initial = c(dep=25, z0=0.8*28,  na=9),\n    h      = 28,\n    za     = 37,\n    
...\n) {\n    wpLELMin <- function(par, z, u, ua, h, za) {\n        result <- 
NA\n        try({\n                p <- wpLELLE(\n                    z      = 
z,\n                    ua     = ua,\n                    dep    = par[1], # 
par$dep,\n                    z0     = par[2], # par$z0,\n                    
na     = par[3], # par$na,\n                    h      = h,\n                   
 za     = za\n                    )\n                result <-  sum( ( (p$u - 
u)^2 ) / length(u) )\n            },\n            silent = TRUE\n            
)\n        return( result )\n    }\n\n    ua <- u[length(u)]\n    result <- 
list()\n    result$method <- \"fitOptim.wpLEL.LE.single\"\n    result$initial 
<-  initial\n    result$dot <- list(...)\n    result$z <- z\n    result$u <- 
u\n    result$fit <- optim(\n        par = c(\n            initial[\"dep\"],\n  
          initial[\"z0\"],\n            initial[\"na\"]\n        ),\n        fn 
    = wpLELMin,\n        z      = z,\n        u      = u,\n        ua     = 
ua,\n        h      = h,\n        za     = za,\n##        z0sol  = z0sol,\n     
   ...\n    )\n    result$wp <- wpLELLE(\n        z      = z,\n        ua     = 
ua,\n        dep    = result$fit$par[\"dep\"],\n        z0     = 
result$fit$par[\"z0\"],\n        na     = result$fit$par[\"na\"],\n        h    
  = h,\n        za     = za\n    )\n\n    class(result) <- c(class(result), 
\"wpLELFit\")\n    return(result)\n}" nil) (8157 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.mahatLE.single"
 fitOptim\.wpLEL\.mahatLE\.single ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.mahatLE.single.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting 
of \\code{wpLEL.mahatLE} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values\n##' (\\code{u} and \\code{z}) to a \\code{link{wpLEL.mahatLE}} wind 
profile.\n##' @title fitOptim.wpLEL.mahatLE.single\n##' @param z height at 
which wind speeds are measured\n##' @param u wind speed at heights 
\\code{z}\n##' @param LAI Leaf Area Index\n##' @param h constant value for 
\\code{h} which will be passed to the\n##' function \\code{wpLELDefault()}\n##' 
@param za constant value for \\code{za} which will be passed to the\n##' 
function \\code{wpLELDefault()}\n##' @param z0sol constant value for 
\\code{z0sol} which will be passed\n##' to the function 
\\code{wpLELDefault()}\n##' @param initial Initial values for the parameters to 
be optimized\n##' over (will be passed on to the \\code{\\link{optim}} function 
as\n##' \\code{par}). The parameter are in the order of \\code{dep},\n##' 
\\code{z0}, \\code{na}, \\code{zjoint}. The default value is\n##' 
\\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param ... further arguments 
for \\code{optim}. These can be\n##' \\code{gr}, \\code{method}, \\code{lower, 
upper}, \\code{control} or\n##' \\code{hessian}\n##' @return object of class 
\\code{wpLELFit}. The class contains the followig elements:\n##' 
\\itemize{\n##'   \\item{\\code{method}} {name of function used for 
fitting}\n##'   \\item{\\code{initial}} {initial values for fit}\n##'   
\\item{\\code{dot}} {arguments passed as \\code{...} passed on to optimisation 
function, here \\code{\\link{optim}}}\n##'   \\item{\\code{z}} {observed 
heights}\n##'   \\item{\\code{u}} {observefd wind speed at height 
\\code{z}}\n##'   \\item{\\code{fit}} {result returned from fit, here the 
function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted wind profile 
of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.mahatLE.single <- function(\n    z,\n    u,\n    LAI,\n 
   initial = c(na=9, y=3),\n    h      = 28,\n    za     = 37,\n    z0sol  = 
0.001,\n    ...\n) {\n    wpLELMin <- function(par, z, u, ua, h, za, z0sol, 
LAI) {\n        result <- NA\n        try({\n                p <- 
wpLELMahatLE(\n                    z      = z,\n                    ua     = 
ua,\n                    na     = par[1], # na\n                    h      = 
h,\n                    za     = za,\n                    LAI    = LAI,\n       
             y      = par[2]  # y\n                    )\n                
result <- sum( ( (p$u - u)^2 ) / length(u) )\n            },\n            
silent = TRUE\n            )\n        return( result )\n    }\n\n    ua <- 
u[length(u)]\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.mahatLE.single\"\n    result$initial <-  initial\n    
result$dot <- list(...)\n    result$z <- z\n    result$u <- u\n    result$fit 
<- optim(\n        par = c(\n            initial[\"na\"],\n            
initial[\"y\"]\n        ),\n        fn    = wpLELMin,\n        z     = z,\n     
   u     = u,\n        ua    = ua,\n        h     = h,\n        za    = za,\n   
     z0sol  = z0sol,\n        LAI   = LAI,\n        ...\n    )\n    result$wp 
<- wpLELMahatLE(\n        z      = z,\n        ua     = ua,\n        na     = 
result$fit$par[\"na\"],\n        h      = h,\n        za     = za,\n        
z0sol  = z0sol,\n        LAI    = LAI,\n        y      = 
result$fit$par[\"y\"]\n    )\n\n    class(result) <- c(class(result), 
\"wpLELFit\")\n    return(result)\n}" nil) (8264 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.castanea.single"
 fitOptim\.wpLEL\.castanea\.single ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.castanea.single.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting 
of \\code{wpLEL} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values\n##' (\\code{u} and \\code{z}) to a \\code{link{wpLEL}} wind 
profile.\n##' @title fitOptim.wpLEL.castanea.single\n##' @param z height at 
which wind speeds are measured\n##' @param u wind speed at heights 
\\code{z}\n##' @param LAI Leaf Area Index\n##' @param initial Initial values 
for the parameters to be optimized\n##' over (will be passed on to the 
\\code{\\link{optim}} function as\n##' \\code{par}). The parameter are in the 
order of \\code{dep},\n##' \\code{z0}, \\code{na}, \\code{zjoint}. The default 
value is\n##' \\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param h 
constant value for \\code{h} which will be passed to the\n##' function 
\\code{wpLELDefault()}\n##' @param za constant value for \\code{za} which will 
be passed to the\n##' function \\code{wpLELDefault()}\n##' @param z0sol 
constant value for \\code{z0sol} which will be passed\n##' to the function 
\\code{wpLELDefault()}\n##' @param ... further arguments for \\code{optim}. 
These can be\n##' \\code{gr}, \\code{method}, \\code{lower, upper}, 
\\code{control} or\n##' \\code{hessian}\n##' @return object of class 
\\code{wpLELFit}. The class contains the followig elements:\n##' 
\\itemize{\n##'   \\item{\\code{method}} {name of function used for 
fitting}\n##'   \\item{\\code{initial}} {initial values for fit}\n##'   
\\item{\\code{dot}} {arguments passed as \\code{...} passed on to optimisation 
function, here \\code{\\link{optim}}}\n##'   \\item{\\code{z}} {observed 
heights}\n##'   \\item{\\code{u}} {observefd wind speed at height 
\\code{z}}\n##'   \\item{\\code{fit}} {result returned from fit, here the 
function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted wind profile 
of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.castanea.single <- function(\n    z,\n    u,\n    
LAI,\n    initial = c(zjoint=0.2*2),\n    h      = 28,\n    za     = 37,\n    
z0sol  = 0.001,\n    ...\n) {\n    wpLELMin <- function(par, z, u, ua, h, za, 
z0sol, LAI) {\n        result <- NA\n        try({\n                p <- 
wpLELCastanea(\n                    z      = z,\n                    ua     = 
ua,\n                    zjoint = par[1], # par$zjoint\n                    h   
   = h,\n                    za     = za,\n                    z0sol  = 
z0sol,\n                    LAI=LAI\n                    )\n                
result <- sum( ( (p$u - u)^2 ) / length(u) )\n            },\n            
silent = TRUE\n            )\n        return( result )\n    }\n\n    ua <- 
u[length(u)]\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.castanea.single\"\n    result$initial <-  initial\n    
result$dot <- list(...)\n    result$z <- z\n    result$u <- u\n    result$fit 
<- optim(\n        par = c(\n            initial[\"zjoint\"]\n        ),\n      
  fn    = wpLELMin,\n        z     = z,\n        u     = u,\n        ua    = 
ua,\n        h     = h,\n        za    = za,\n        z0sol = z0sol,\n        
LAI   = LAI,\n        ...\n    )\n    result$wp <- wpLELCastanea(\n        z    
  = z,\n        ua     = ua,\n        zjoint = result$fit$par[\"zjoint\"],\n    
    h      = h,\n        za     = za,\n        z0sol  = z0sol,\n        LAI    
= LAI\n    )\n\n    class(result) <- c(class(result), \"wpLELFit\")\n    
return(result)\n}" nil) (8370 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.default.multiple"
 fitOptim\.wpLEL\.default\.multiple ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.default.multiple.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' The 
function loads individual wind profiles using the function\n##' \\code{loadWS} 
and fits each one using the function\n##' \\code{FUN}. The results are stored 
in \\code{./cache}.\n##'\n##' Load all wind profiles using \\code{loadWS()} and 
fit each single\n##' one using the function provided in \\code{FUN}. Results 
are cached.\n##' @title fitOptim.wpLEL.ownFree.multiple\n##' @param wso Wind 
speed profiles in the format as read from \\code{loadWS(wide=TRUE, ...)}\n##' 
@param initial initial\n##' @param h h\n##' @param za za\n##' @param z0sol 
z0sol \n##' @param silentError sielence error message during fitting. 
Fitting\n##' is done in a \\code{try()} block so this is purely cosmetical 
and\n##' affects the verbosity.\n##' @param ... additional arguments to be 
passed on to \\code{optim()}\n##' @return an oject of class \\code{wpFit} 
containing the result of\n##' the fit.\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.default.multiple <- function(\n    wso,\n    initial = 
c(dep=25, z0=0.8*28,  na=9, zjoint=0.2*2),\n    h      = 28,\n    za     = 
37,\n    z0sol  = 0.001,\n    silentError = TRUE,\n    ...\n    ) {\n\n    ## 
Function to be minimised\n    minFUN <- function(\n        par,\n        ## ## 
passed in par:\n        ##    dep\n        ##     z0\n        ##     na\n       
 ## zjoint\n        ## ## passed in the other arguments:\n        z,\n        
h, za, z0sol,\n        ## the data to be fitted to\n        wsFit\n        ) 
{\n        mse <- sapply(\n            wsFit,\n            function(u) {\n      
          p <- NULL\n                try( {\n                        p <- 
wpLELDefault(\n                            z = z,\n                            
ua = u[length(u)],\n                            ##\n                            
h = h,\n                            za = za,\n                            z0sol 
= z0sol,\n                            ##  \n                            dep    
= par[1],\n                            z0     = par[2],\n                       
     na     = par[3],\n                            zjoint = par[4]\n            
                )\n                    },\n                    silent = 
silentError\n                    )\n                if (!is.null(p)) {\n        
            result <- sum( ( (p$u - u[-(1:2)])^2 ) / length(p$u) )  \n          
      } else {\n                      result <-  NA\n                  }\n      
          return( result )\n            }\n            )\n        mse <- 
mse[!is.na(mse)]\n        if (length(mse) > 0) {\n            mse <- sum( ( 
mse^2 ) / length(mse), na.rm=TRUE )\n        } else {\n              mse <- 
NA\n          }\n        return(mse)\n    }\n    \n    ## construct result 
list\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.default.multiple\"\n    result$initial <- initial\n    
result$dot <- list(...)\n    ## result$z <- z\n    ## result$u <- u\n    ## Do 
the optimisation\n    z <- as.numeric(gsub(\"h\", \"\", 
row.names(wso)[-c(1:2)]))\n    result$fit <- optim(\n        par = initial,\n   
     fn  = minFUN,\n        ##\n        z      = z,\n        h      = h,\n      
  za     = za,\n        z0sol  = z0sol,\n        ##\n        wsFit  = wso,\n    
    ...\n        )\n    ## calculate sample wind profile\n    if ( (length(z) > 
0) & (is.numeric(z)) ) {\n        z <- seq(0.1, max(z), 0.1)\n    } else {\n    
      z <- seq(0.1, 37, 0.1)\n      }\n    result$wp <- wpLELDefault(\n        
z      = z,\n        ua     = mean(wso[2,][[1]]),\n        dep    = 
result$fit$par[\"dep\"],\n        z0     = result$fit$par[\"z0\"],\n        na  
   = result$fit$par[\"na\"],\n        zjoint = result$fit$par[\"zjoint\"],\n    
    h      = h,\n        za     = za,\n        z0sol  = z0sol\n    )\n    ##\n  
  \n    class(result) <- c(class(result), \"wpLELFit\")\n    return(result)\n}" 
nil) (8502 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.mahat.multiple"
 fitOptim\.wpLEL\.mahat\.multiple ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.mahat.multiple.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' The 
function loads individual wind profiles using the function\n##' \\code{loadWS} 
and fits each one using the function\n##' \\code{FUN}. The results are stored 
in \\code{./cache}.\n##'\n##' Load all wind profiles using \\code{loadWS()} and 
fit each single\n##' one using the function provided in \\code{FUN}. Results 
are cached.\n##' @title fitOptim.wpLEL.ownFree.multiple\n##' @param wso Wind 
speed profiles in the format as read from \\code{loadWS(wide=TRUE, ...)}\n##' 
@param initial initial parameter values for fit \n##' @param h height\n##' 
@param za za\n##' @param z0sol z0sol\n##' @param silentError sielence error 
message during fitting. Fitting\n##' is done in a \\code{try()} block so this 
is purely cosmetical and\n##' affects the verbosity.\n##' @param ... additional 
values to be passed on to \\code{optim}\n##' @return an object of class 
\\code{wpFit} containing the result of\n##' the fit.\n##' @author Rainer M. 
Krug\n##' @export\nfitOptim.wpLEL.mahat.multiple <- function(\n    wso,\n    
initial = c(na=9, zjoint=0.2*2, y=3),\n    h      = 28,\n    za     = 37,\n    
z0sol  = 0.001,\n    silentError = TRUE,\n    ...\n    ) {\n    \n    ## 
Function to be minimised\n    minFUN <- function(\n        par,\n        ## ## 
passed in par:\n        ##  na\n        ##  zjoint\n        ##  y\n        ## 
## passed in the other arguments:\n        z,\n        h, za, z0sol,\n        
## the data to be fitted to\n        wsFit\n        ) {\n        mse <- 
sapply(\n            wsFit,\n            function(u) {\n                p <- 
NULL\n                try( {\n                        p <- wpLELMahat(\n        
                    z     = z,\n                            ua    = 
u[length(u)],\n                            na     = par[1],\n                   
         zjoint = par[2],\n                            h     = h,\n             
               za    = za,\n                            z0sol = z0sol,\n        
                    LAI    = u[[1]],\n                            y      = 
par[3]\n                            )\n                    },\n                 
   silent = silentError\n                    )\n                if 
(!is.null(p)) {\n                    result <- sum( ( (p$u - u[-(1:2)])^2 ) / 
length(p$u) )  \n                } else {\n                      result <-  
NA\n                  }\n                return( result )\n            }\n      
      )\n        mse <- mse[!is.na(mse)]\n        if (length(mse) > 0) {\n      
      mse <- sum( ( mse^2 ) / length(mse), na.rm=TRUE )\n        } else {\n     
         mse <- NA\n          }\n        return(mse)\n    }\n    \n    ## 
construct result list\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.mahat.multiple\"\n    result$initial <- initial\n    
result$dot <- list(...)\n    ## result$z <- z\n    ## result$u <- u\n    ## Do 
the optimisation\n    z <- as.numeric(gsub(\"h\", \"\", 
row.names(wso)[-c(1:2)]))\n    result$fit <- optim(\n        par = initial,\n   
     fn  = minFUN,\n        ##\n        z      = z,\n        h      = h,\n      
  za     = za,\n        z0sol  = z0sol,\n        ##\n        wsFit  = wso,\n    
    ...\n        )\n    ## calculate sample wind profile\n    if ( (length(z) > 
0) & (is.numeric(z)) ) {\n        z <- seq(0.1, max(z), 0.1)\n    } else {\n    
      z <- seq(0.1, 37, 0.1)\n      }\n    result$wp <- wpLELMahat(\n        z  
    = z,\n        ua     = mean(as.numeric(wso[2,])),\n        na     = 
result$fit$par[\"na\"],\n        zjoint = result$fit$par[\"zjoint\"],\n        
h      = h,\n        za     = za,\n        z0sol  = z0sol,\n        LAI    = 
mean(as.numeric(wso[1,])),\n        y      = result$fit$par[\"y\"]\n    )\n    
##\n    \n    class(result) <- c(class(result), \"wpLELFit\")\n    
return(result)\n}" nil) (8634 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.ownFree.multiple"
 fitOptim\.wpLEL\.ownFree\.multiple ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.ownFree.multiple.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' The 
function loads individual wind profiles using the function\n##' \\code{loadWS} 
and fits each one using the function\n##' \\code{FUN}. The results are stored 
in \\code{./cache}.\n##'\n##' Load all wind profiles using \\code{loadWS()} and 
fit each single\n##' one using the function provided in \\code{FUN}. Results 
are cached.\n##' @title fitOptim.wpLEL.ownFree.multiple\n##' @param wso Wind 
speed profiles in the format as read from \\code{loadWS(wide=TRUE, ...)}\n##' 
@param initial initial parameter values for \\code{optim()}\n##' @param z0 
z0\n##' @param na na\n##' @param zjoint zjoint \n##' @param h h\n##' @param za 
za\n##' @param z0sol z0sol\n##' @param silentError sielence error message 
during fitting. Fitting\n##' is done in a \\code{try()} block so this is purely 
cosmetical and\n##' affects the verbosity.\n##' @param ... additional 
argumaents to be passed to \\code{optim}\n##' @return an oject of class 
\\code{wpFit} containing the result of\n##' the fit.\n##' @author Rainer M. 
Krug\n##' @export\nfitOptim.wpLEL.ownFree.multiple <- function(\n    wso,\n    
initial = unlist(\n        list(\n            dep    = c(a=0.5,  b=0.02, 
c=-2),\n            z0     = c(a=0.23, b=0.25, c=10),\n            na     = 
c(a=0.23, b=0.25, c=10),\n            zjoint = c(a=0.23, b=0.25, c=10)\n        
    )\n        ),\n    h      = 28,\n    za     = 37,\n    z0sol  = 0.001,\n    
silentError = TRUE,\n    ...\n    ) {\n\n    ## Function to be minimised\n    
minFUN <- function(\n        par,\n        ## ## passed in par:\n        ##    
dep.a,    dep.b,    dep.c,\n        ##     z0.a,     z0.b,     z0.c,\n        
##     na.a,     na.b,     na.c,\n        ## zjoint.a, zjoint.b, zjoint.c,\n    
    ## ## passed in the other arguments:\n        z,\n        h, za, z0sol,\n   
     ## the data to be fitted to\n        wsFit\n        ) {\n        mse <- 
sapply(\n            wsFit,\n            function(u) {\n                p <- 
NULL\n                try( {\n                        p <- wpLELOwnFree(\n      
                      z = z,\n                            ua = u[length(u)],\n  
                          ##\n                            h = h,\n              
              za = za,\n                            z0sol = z0sol,\n            
                ##  .a       .b       .c\n                            dep.a =   
 par[ 1],    dep.b = par[ 2],    dep.c = par[ 3],\n                            
z0.a =     par[ 4],     z0.b = par[ 5],     z0.c = par[ 6],\n                   
         na.a =     par[ 7],     na.b = par[ 8],     na.c = par[ 9],\n          
                  zjoint.a = par[10], zjoint.b = par[11], zjoint.c = par[12],\n 
                           LAI = u[[1]]\n                            )\n        
            },\n                    silent = silentError\n                    
)\n                if (!is.null(p)) {\n                    result <- sum( ( 
(p$u - u[-(1:2)])^2 ) / length(p$u) )  \n                } else {\n             
         result <-  NA\n                  }\n                return( result )\n 
           }\n            )\n        ## maxMse <- quantile(mse, probs=c(0, (1 - 
exclHighMseProp), 0.5, 1))\n        ## mse <- mse[mse <= maxMse[2]]\n        
mse <- mse[!is.na(mse)]\n        if (length(mse) > 0) {\n            mse <- 
sum( ( mse^2 ) / length(mse), na.rm=TRUE )\n        } else {\n              mse 
<- NA\n          }\n        ## print(mse)\n        return(mse)\n    }\n    \n   
 ## construct result list\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.ownFree.multiple\"\n    result$initial <- initial\n    
result$dot <- list(...)\n    result$wpLELParameter <- list(\n        h      = 
h,\n        za     = za,\n        z0sol  = z0sol\n        )\n    ## result$z <- 
z\n    ## result$u <- u\n    ## Do the optimisation\n    z <- 
as.numeric(gsub(\"h\", \"\", row.names(wso)[-c(1:2)]))\n    result$fit <- 
optim(\n        par = initial,\n        fn  = minFUN,\n        ##\n        z    
  = z,\n        h      = h,\n        za     = za,\n        z0sol  = z0sol,\n    
    ##\n        wsFit  = wso,\n        ...\n        )\n    ## calculate sample 
wind profile\n    if ( (length(z) > 0) & (is.numeric(z)) ) {\n        z <- 
seq(0.1, max(z), 0.1)\n    } else {\n          z <- seq(0.1, 37, 0.1)\n      
}\n    \n    class(result) <- c(class(result), \"wpLELFit\")\n    
return(result)\n}" nil) (8772 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*Goodness%20of%20fit%20for%20wpLELFit"
 Goodness\ of\ fit\ for\ wpLELFit:1 ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/gof.wpLELfit.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Calculate goodnes of fit of fit 
compared to object of class \\code{wpLELFit}\n##'\n##' Uses gofFun to calculate 
the goodnes of fit between \\code{fit} and\n##' the observed wind profile 
\\code{wp}\n##' \n##' @title gof.wpLELfit\n##' @param fit fit of the wind 
profile of the type \\code{wpLELFit}\n##' @param wp wind profile as returned in 
the wide format of \\code{loadWS}\n##' @param gofFun function returning the 
goodnes of fit.\n##' @param silentError sielence error message during fitting. 
Fitting\n##' is done in a \\code{try()} block so this is purely cosmetical 
and\n##' affects the verbosity.\n##' This function accepts the two argumentsa 
\\code{obs, exp}.\n##' These can be assumed of being of the same length. An 
example is the =default function:\n##' \n##'  \\code{ function(obs, exp){ sum( 
( (exp - obs)^2 ) / length(obs) ) } }\n##' \n##' @return vector of the goodnes 
of fit values, one per row in \\code{wp}\n##' @author Rainer M. Krug\n##' 
@export\ngof.wpLELFit <- function(\n    fit,\n    wp,\n    gofFun = 
function(obs, exp){ sum( ( (exp - obs)^2 ) / length(obs), na.rm=TRUE ) },\n    
silentError = TRUE\n    ) {\n    gofs <- sapply(\n        1:nrow(wp),\n        
function(i) {\n            o <- dfFromLong(wp[i,])\n            
names(o)[ncol(o)] <- \"ws\"\n            gof <- NA\n            try( {\n        
            e <- wpLEL(\n                        fit$wp,\n                      
  z   = o$z,\n                        ua  = wp[i, \"ua\"],\n                    
    LAI = wp[i,\"lai\"]\n                        )\n                    gof <- 
gofFun(\n                        obs = o$ws,\n                        exp = 
e$u\n                        )\n                    gof\n                },\n   
             silent = silentError\n                )\n            
return(gof)\n\n        }\n        )\n}" nil) (8832 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*plot.wpLELFit" 
plot\.wpLELFit:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/plot.wpLELFit.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function to plot 
\\code{wpLELFit}\n##'\n##' This function a \\code{wpLELFit} object by plotting 
the fitted line\n##' smoothly and adding the original points to the graph.\n##' 
@param x object of class \\code{wpLELFit} to be plotted \n##' @param z numeric 
vector at which the line should be calculated. If\n##' missing, \\code{x$z} 
will be used. the more points, the smoother\n##' the line.\n##' @param 
plotWPValues if \\code{TRUE}, the values and value lines are\n##' drawn\n##' 
@param plotWPLines if \\code{TRUE}, the lines of the profile are drawn\n##' 
@param plotOrgPoints if \\code{TRUE}, the original points are drawn\n##' @param 
add if \\code{TRUE}, the plot wil be added to an existing plot\n##' @param ... 
additional arguments for plotting the \\bold{original} points of the fit using 
the \\code{poiunts} function\n##' are plotted\n##' @return NULL\n##' @author 
Rainer M. Krug\n##' @export\nplot.wpLELFit <- function(\n    x,\n    z,\n    
plotWPValues = TRUE,\n    plotWPLines  = TRUE,\n    plotOrgPoints = TRUE,\n    
add = FALSE,\n    ...\n    ) {\n    xu <- x$wp\n    ## plot values (dep, ...)\n 
   plot.wpLEL(\n        xu,\n        z,\n        plotWPValues = plotWPValues,\n 
       plotWPPoints = FALSE,\n        plotWPLines  = FALSE,\n        add = 
add\n        )\n    ## plot fitted lines \n    plot.wpLEL(\n        xu,\n       
 z,\n        plotWPValues = FALSE,\n        plotWPPoints = FALSE,\n        
plotWPLines  = plotWPLines,\n        add = TRUE\n        )\n    ## plot 
original points    \n    points(\n        x$u,\n        x$z,\n        type = 
ifelse(plotOrgPoints, \"p\", \"n\"),\n        ...\n        )\n}" nil) (8890 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*print.wpLELFit" 
print\.wpLELFit:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/print.wpLELFit.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function to print 
\\code{wpLELFit}\n##'\n##' This function prints a \\code{wpLELFit} object\n##' 
@param x object of class \\code{wpLELFit} to be printed\n##' @param ... 
optional arguments for \\code{print} method\n##' @return NULL\n##' @author 
Rainer M. Krug\n##' @export\nprint.wpLELFit <- function(\n    x,\n    ...\n    
) {\n    print.default(x)\n    invisible(x)\n}" nil) (8920 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpFitEach" 
wpFitEach ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpFitEach.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' The function loads individual wind 
profiles using the function\n##' \\code{loadWS} and fits each one using the 
function\n##' \\code{FUN}. The results are stored in \\code{./cache}.\n##'\n##' 
Load all wind profiles using \\code{loadWS()} and fit each single\n##' one 
using the function provided in \\code{FUN}. Results are cached.\n##' @title 
wpLELFitEach\n##' @param new if \\code{TRUE} the cache is re-created - if\n##' 
\\code{FALSE} the results are read from the cache.\n##' @param suffix suffix 
for cache\n##' @param FUN name of the function to be used for fitting. It has 
to\n##' take the arguments \\code{z} and \\code{u}, but can also take\n##' 
additional arguments.\n##' @param cores number of cores to be used for analysis 
- defaults to the number of cores mius one, but is at least 1.\n##' @param 
minSpeedIncreaseWide minimum wind speed difference - see \\link{loadWS} for 
details\n##' @param maxWindSpeedWide maximum wind speed - see \\link{loadWS} 
for details\n##' @param maxWindSpeedOneWide standardise highest sampled wind 
speed to one - see \\link{loadWS} for details\n##' @param WAI Wood Area Index, 
argument \\code{WAI} of function\n##' \\code{loadWS()}. Will be added to lai 
from raw data.\n##' @param selectWPFit a function returning \\bold{a vector} 
where each\n##' element represents the indices of loaded wind profiles which 
will\n##' be used for fitting the parameter. The function takes one value,\n##' 
i.e. \\code{wso} which is the \\code{data.frame} of the loaded wind\n##' 
profiles, as returned by the function\n##'\n##' code{\n##'           wso <- 
loadWS(\n##'              wide         = TRUE,\n##'              onlyComplete = 
TRUE,\n##'              minSpeedIncreaseWide,\n##'              
maxWindSpeedWide,\n##'              maxWindSpeedOneWide,\n##'              WAI 
= WAI\n##'              )\n##' }\n##'\n##' Examples are:\n##'\n##' 
\\code{selectWPFit = function(wso){TRUE}}\n##'\n##' which would select all 
elements in \\code{wso}.This is the default.\n##' \n##' \\code{selectWPFit = 
function(wso){sample(1:nrow(wso), 100)}}\n##' \n##' which would create vector 
of 100 randomly selected wind profiles\n##' \\bold{selected} for fitting 
or\n##'\n##' \\code{selectWPFit = function(wso){-sample(1:nrow(wso), 
500)}}\n##'\n##' which would create vector of 500 randomly selected wind 
profiles\n##' \\bold{excluded} from fitting\n##'\n##' @param ... additional 
arguments passed to FUN\n##' @return an oject of class \\code{wpLELFitList} 
(i.e. \\code{list}) of\n##' the length of the number wind profiles to fit. Each 
element\n##' contains the result of an individual fit.\n##' @author Rainer M. 
Krug\n##' @export\nwpFitEach <- function(\n    new = FALSE,\n    suffix = 
\"\",\n    FUN = \"wpLEFitSingle\",\n    cores = detectCores() - 1,\n    
minSpeedIncreaseWide = 0,\n    maxWindSpeedWide = 10,\n    maxWindSpeedOneWide 
= FALSE,\n    WAI = 0,\n    selectWPFit = function(wso) { TRUE },\n    ...\n    
) {\n    if (cores==0) {\n        cores <- 1\n    }\n    fn <- paste0(CACHE, 
\"/wpFitEach.\", FUN, suffix, \".rds\")\n    FUN <- get(FUN)\n    if (new) {\n  
      unlink(fn)\n    }\n    if (file.exists(fn)) {\n        dat <- 
readRDS(fn)\n    } else {\n          ## Load wind priofile data\n          wso 
<- loadWS(\n              wide         = TRUE,\n              onlyComplete = 
TRUE,\n              minSpeedIncreaseWide,\n              maxWindSpeedWide,\n   
           maxWindSpeedOneWide,\n              WAI = WAI\n              )\n     
     \n          ## #################################\n          ## From now 
on, LAI (later u[[1]]) is LAI = LAI + WAI)\n          ## 
#################################\n\n          ## Get indices for fitting. Must 
only be done once as the\n          ## functions might contain random number 
generation!\n          indFit <- selectWPFit(wso)\n\n          ## Save 
\"metadata\"\n          ## construct result list\n          md <- list()\n      
    md$method <- \"wpFitEach\"\n          md$FUN <- FUN\n          
md$loadWSParm <- list(\n              minSpeedIncreaseWide = 
minSpeedIncreaseWide,\n              maxWindSpeedWide = maxWindSpeedWide,\n     
         maxWindSpeedOneWide = maxWindSpeedOneWide,\n              WAI = WAI\n  
            )\n          md$selectWPFit <- list(\n              fun = 
selectWPFit,\n              indices = indFit\n              )\n          md$dot 
<- list(...)\n          saveRDS(md, paste0(fn, \".metadata.rds\"))\n          
\n          z <- dfFromLong(wso[1,])$z        \n          ws <- 
wso[,grep(\"^h[[:digit:]]\", names(wso))]\n          ws <- cbind(ua=wso$ua, 
ws)\n          ws <- cbind(lai=wso$lai, ws)\n          ws <- 
as.data.frame(t(ws))\n         \n          ##\n          i <- 0\n          no 
<- ceiling(ncol(ws) / cores)\n          dat <- mclapply(\n              
ws[,indFit],\n              function(u) {\n                  f <- FUN(\n        
              z = z,\n                      u = u[-(1:2)],\n                    
  LAI = u[1],\n                      ...\n                      )\n             
     if (!is.null(f)) {\n                      f$lai <- u[1]\n                  
    f$ua <- u[2]\n                  }\n                  i <<- i + 1\n          
        if (round(i, -2)==i){\n                      cat(i, \"\\tof about\\t\", 
no, \"\\r\")\n                  }\n                  return(f)\n              
},\n              mc.cores = cores\n              )\n          class(dat) <- 
c(\"wpLELFitList\", class(dat))\n          saveRDS(dat, fn)\n      }\n    if 
(!(\"wpLELFitList\" %in% class(dat))) {\n        class(dat) <- 
c(\"wpLELFitList\", class(dat))\n    }\n    return(dat)\n}" nil) (9085 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpFitMultiple" 
wpFitMultiple ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpFitMultiple.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' The function loads individual wind 
profiles using the function\n##' \\code{loadWS} and fits each one using the 
function\n##' \\code{FUN}. The results are stored in \\code{./cache}.\n##'\n##' 
Load all wind profiles using \\code{loadWS()} and fit each single\n##' one 
using the function provided in \\code{FUN}. Results are cached.\n##' @title 
wpLELFitEach\n##' @param new if \\code{TRUE} the cache is re-created - if\n##' 
\\code{FALSE} the results are read from the cache.\n##' @param suffix suffix 
for cache\n##' @param FUN Name of function to be used for fitting TODO\n##' 
@param cores number of cores to be used for analysis - defaults to the number 
of cores mius one, but is at least 1.\n##' @param minSpeedIncreaseWide minimum 
wind speed difference - see \\link{loadWS} for details\n##' @param 
maxWindSpeedWide maximum wind speed - see \\link{loadWS} for details\n##' 
@param maxWindSpeedOneWide standardise highest sampled wind speed to one - see 
\\link{loadWS} for details\n##' @param WAI Wood Area Index, argument 
\\code{WAI} of function\n##' \\code{loadWS()}. Will be added to lai from raw 
data.\n##' @param minUstar minimum value of ustar for wind profiles to be\n##' 
included. Values smaller than 0 will include all wind profiles.\n##' @param 
selectWPFit a function returning \\bold{a list} where each\n##' element of the 
list represents the indices of loaded wind profiles\n##' which will be used for 
fitting the parameter. The function takes\n##' one value, i.e. \\code{wso} 
which is the \\code{data.frame} of the\n##' loaded wind profiles, as returned 
by the function\n##'\n##' code{\n##'           wso <- loadWS(\n##'              
wide         = TRUE,\n##'              onlyComplete = TRUE,\n##'              
minSpeedIncreaseWide,\n##'              maxWindSpeedWide,\n##'              
maxWindSpeedOneWide,\n##'              WAI = WAI\n##'              )\n##' 
}\n##'\n##' An exapmle is\n##'\n##' \\code{selectWPFit = 
function(wso){lapply(1:5, function(x){sample(1:nrow(wso), 100)})}}\n##' \n##' 
which would create a list of 5 elements where each consists of 100\n##' 
randomly selected wind profiles \\bold{selected} for fitting or\n##'\n##' 
\\code{selectWPFit = function(wso){lapply(1:10, 
function(x){-sample(1:nrow(wso), 500)})}}\n##'\n##' which would create a list 
of 10 elements where each consists of 500\n##' randomly selected wind profiles 
\\bold{excluded} from fitting\n##'\n##' @param ... additional parameter passed 
to FUN ( mainly for the function \\code{optim()} )\n##' @return an oject of 
class \\code{wpLELFitList} (i.e. \\code{list}) of\n##' the length of the number 
wind profiles to fit. Each element\n##' contains the result of an individual 
fit.\n##' @author Rainer M. Krug\n##' @export\nwpFitMultiple <- function(\n    
new = FALSE,\n    suffix = \"\",\n    FUN = 
\"fitOptim.wpLEL.ownFree.multiple\",\n    cores = detectCores() - 1,\n    
minSpeedIncreaseWide = 0,\n    maxWindSpeedWide = 10,\n    maxWindSpeedOneWide 
= FALSE,\n    minUstar = 0.25,\n    WAI = 0,\n    selectWPFit = function(wso) { 
lapply(1:5, function(x){sample(1:nrow(wso), 100)}) },\n    ...\n    ) {\n    if 
(cores==0) {\n        cores <- 1\n    }\n    fn <- paste0(CACHE, 
\"/wpFitMultiple.\", FUN, suffix, \".rds\")\n    FUN <- get(FUN)\n    if (new) 
{\n        unlink(fn)\n    }\n    if (file.exists(fn)) {\n        dat <- 
readRDS(fn)\n    } else {\n\n          ## Load Wind Profiles\n          wso <- 
loadWS(\n              wide         = TRUE,\n              onlyComplete = 
TRUE,\n              minSpeedIncreaseWide = minSpeedIncreaseWide,\n             
 maxWindSpeedWide = maxWindSpeedWide,\n              maxWindSpeedOneWide = 
maxWindSpeedOneWide,\n              minUstar = minUstar,\n              WAI = 
WAI\n              )\n          \n          ## 
#################################\n          ## From now on, LAI (later u[[1]]) 
is LAI = LAI + WAI)\n          ## #################################\n\n         
 ## Get indices for fitting. Must only be done once as the\n          ## 
functions might contain random number generation!\n          indFit <- 
selectWPFit(wso)\n\n          ## Save \"metadata\"\n          ## construct 
result list\n          md <- list()\n          md$method <- \"wpFitMultiple\"\n 
         md$FUN <- FUN\n          md$loadWSParm <- list(\n              
minSpeedIncreaseWide = minSpeedIncreaseWide,\n              maxWindSpeedWide = 
maxWindSpeedWide,\n              maxWindSpeedOneWide = maxWindSpeedOneWide,\n   
           minUstar = minUstar,\n              WAI = WAI\n              )\n     
     md$selectWPFit <- list(\n              fun = selectWPFit,\n              
indices = indFit\n              )\n          md$dot <- list(...)\n          
saveRDS(md, paste0(fn, \".metadata.rds\"))\n          \n          ## Format the 
data\n          z <- dfFromLong(wso[1,])$z        \n          ws <- 
wso[,grep(\"^h[[:digit:]]\", names(wso))]\n          ws <- cbind(ua=wso$ua, 
ws)\n          ws <- cbind(lai=wso$lai, ws)\n          ws <- 
as.data.frame(t(ws))\n\n          ## Do the fitting\n          i <- 0\n         
 no <- ceiling(ncol(ws) / cores)\n          dat <- mclapply(\n              
indFit,\n              function(s) {\n                  f <- FUN(\n             
         wso = ws[,s],\n                      ...\n                      )\n    
              i <<- i + 1\n                  if (round(i, -2)==i){\n            
          cat(i, \"\\tof about\\t\", no, \"\\r\")\n                  }\n        
          return(f)\n              },\n              mc.cores = cores\n         
     )\n          class(dat) <- c(\"wpLELFitList\", class(dat))\n          
saveRDS(dat, fn)\n      }\n    if (!(\"wpLELFitList\" %in% class(dat))) {\n     
   class(dat) <- c(\"wpLELFitList\", class(dat))\n    }\n    return(dat)\n}" 
nil) (9242 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*plot.wpLELFitList" 
plot\.wpLELFitList:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/plot.wpLELFitList.R") (:exports . "both") (:results 
. "replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . 
"yes") (:tangle-mode . 292) (:hlines . "no")) "##' Generic function to plot 
\\code{wpLELFitList}\n##'\n##' This function plots an \\code{wpLELFitList} 
object by plotting the\n##' lines of each fit on each other. The indices can be 
specified by\n##' using y.\n##' @param x object of class \\code{wpLELFitList} 
to be plotted \n##' @param y default \\code{NULL}; numeric vector of indices 
specifying\n##' the fits in \\code{x} to be plotted. If \\code{NULL} all will 
be plotted.\n##' @param ... optional arguments for \\code{plot} method\n##' 
@return NULL\n##' @author Rainer M. Krug\n##' @export\nplot.wpLELFitList <- 
function(\n    x,\n    y = NULL,\n    ...\n    ) {\n    if (is.null(y)) {\n     
   y <-  1:length(x)\n    }\n    plot(\n        x[[1]],\n        add = FALSE,\n 
       ...\n        )\n    ##\n    for (i in y[-1]) {\n        plot(\n          
  x[[i]],\n            add = TRUE,\n            ...\n            )\n    }\n    
invisible()\n}" nil) (9283 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*print.wpLELFitList"
 print\.wpLELFitList:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/print.wpLELFitList.R") (:exports . "both") (:results 
. "replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . 
"yes") (:tangle-mode . 292) (:hlines . "no")) "##' Generic function to print 
\\code{wpLELFitList}\n##'\n##' This function prints a \\code{wpLELFitList} 
object\n##' @param x object of class \\code{wpLELFitList} to be printed\n##' 
@param ... optional arguments for \\code{print} method\n##' @return NULL\n##' 
@author Rainer M. Krug\n##' @export\nprint.wpLELFitList <- function(\n    x,\n  
  ...\n) {\n    cat( \"Number of fits: \" )\n    cat(length(x), \"\\n\")\n    
invisible(x)\n}" nil) (9311 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*airRest%20Generic%20function%20definition"
 airRest\ Generic\ function\ definition:1 ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/airRest.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "airRest <- function(x, zsource) 
UseMethod(\"airRest\")" nil) (9318 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*airRest.wpLEL" 
airRest\.wpLEL ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/airRest.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function for 
\\code{airRest} to calculate aerial resistance\n##'\n##' Calculate aerial 
resistance based on \\code{wpLEL} object\n##' @param x object of class 
\\code{wpLEL}\n##' @param zsource if \\code{NULL} (default), \\code{zsource = 
z0 + dep}, unless the numerical value\n##' @return object of class 
\\code{airRest}.\n##' This object contains the following elements:\n##' 
\\itemize{\n##'   \\item{method} : {the method used to generate the aerial 
profile (the name of this function)}\n##'   \\item{wp}  : {the wind profile on 
which the aerial resistance is based}\n##'   \\item{I1}  : {aerial resistance 
top log profile}\n##'   \\item{I2}  : {aerial resistance from h to 
zsource}\n##'   \\item{I3}  : {aerial resistance for exp profile}\n##'   
\\item{I4}  : {aerial resistance lower exp profile}\n##'   \\item{ras} : 
{aerial resistance from z0sol to top}\n##'   \\item{rac} : {aerial resistance 
from zsource to za}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nairRest.wpLEL <- function(\n    x,\n    zsource = NULL\n) {\n    ## 
resistance top log profile\n    ## LEL - from za (very top) to dep (above 
canopy, log profile)\n    ## LE  - from za (very top) to dep (above canopy, log 
profile)\n    I1 <- 1 / (x$vk*x$ustar) * log( (x$za-x$dep)/(x$h-x$dep) )\n\n    
## resistance for exp profile\n    ## LEL - from dep to zjoint (into canopy, 
exp profile)\n    ## LE  - from dep to z0sol (into canopy, exp profile)\n    if 
(x$zjoint == 0) {\n        ## log-exp profile\n        I3 <- ( 1 / 
(x$vk*x$ustar) ) * ( x$h/(x$na*(x$h-x$dep)) ) * ( exp( x$na * (1 - x$z0sol/x$h) 
) - 1 )\n    } else {\n        ## log-exp-log profile\n        I3 <- ( 1 / 
(x$vk*x$ustar) ) * ( x$h/(x$na*(x$h-x$dep)) ) * ( exp( x$na * (1 - 
x$zjoint/x$h) ) - 1 )\n    }\n\n    ## resistance lower exp profile\n    ## LEL 
- from zjoint to z0sol\n    ## LE  - 0\n    if (x$zjoint == 0) {\n        ## 
log-exp profile\n        I4 <- 0\n    } else {\n        ## log-exp-log 
profile\n        I4 <- 1 / (x$vk*x$ustarsol) * log( x$zjoint/x$z0sol )\n    }\n 
   ##\n\n    ## resistance from z0sol to za\n    ras = I1 + I3 + I4\n\n\n    ## 
resistance from h to zsource (into canopy, exp profile or exp-log profile 
depending if zsource > zjoint or not)\n    ## LEL (zsource > zjoint) - exp 
profile\n    ## LEL (zsource < zjoint) - exp & log profile\n    ## LE  - exp 
profile\n    if (is.null(zsource)) {\n        zsource <- x$z0 + x$dep   \n    
}\n    if (x$zjoint==0) {\n        ## log-exp profile\n        I2 <- ( 1 / 
(x$vk*x$ustar) ) * ( x$h/(x$na*(x$h-x$dep)) ) * ( exp(x$na*(1 - zsource/x$h)) - 
1 )\n    } else {\n        ## log-exp-log profile\n        if (zsource < 
x$zjoint) {# never happen\n            I2_1 <- ( 1/(x$vk*x$ustar)    ) * ( 
x$h/(x$na*(x$h-x$dep)) ) * ( exp(x$na*(1 - x$zjoint/x$h)) - 1 )\n            
I2_2 <- ( 1/(x$vk*x$ustarsol) ) * ( log(x$zjoint/zsource) )\n            I2 <- 
I2_1 + I2_2\n        } else {\n            I2 <- ( 1 / (x$vk*x$ustar) ) * ( 
x$h/(x$na*(x$h-x$dep)) ) * ( exp(x$na*(1- (zsource)/x$h)) - 1 )\n        }\n    
}\n    ##\n    ## resistance from zsource to za\n    rac <- I1 + I2\n\n    ar 
<- list()\n    ar$method <- \"airRest.wpLEL\"\n    ar$wp <- x\n    ar$I1 <- 
I1\n    ar$I2 <- I2\n    ar$I3 <- I3\n    ar$I4 <- I4\n    ar$ras <- ras\n    
ar$rac <- rac\n    class(ar) <- \"airRest\"\n    return(ar)\n}" nil) (9414 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*plot.arLEL" 
plot\.arLEL:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/plot.arLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "plot.arLEL <- function(\n    x,\n    
plotWPPoints = TRUE,\n    plotWPValues = TRUE,\n    plotARValues = TRUE,\n    
...\n) {\n    plot.wpLEL(\n        x,\n        plotWPPoints = plotWPPoints,\n   
     plotWPValues = plotWPValues,\n        ...\n    )\n    if (plotARValues) 
{\n        mx <- par(\"usr\")[2]\n        with(\n            x,\n            
{\n                ## arrows(\n                ##     x0 = c(0, 0, 0 ,0 ,0 
,0),\n                ##     y0 = c(z0+dep, za, h, hsource, dep, zjoint),\n     
           ##     x1 = c(4, 4, 4 ,4 ,4 ,4),\n                ##     y1 = 
c(z0+dep, za, h, hsource, dep, zjoint),\n                ##     length = 0,\n   
             ##     col = \"grey\",\n                ##     lty = \"dotted\"\n  
              ## )\n                \n                \n                
text(mx*0.4,  (za+h)/2.,      paste(\"R1=\", round(R1, 2)                       
               ) )\n                text(mx*0.65, (z0h+dep+h)/2., 
paste(\"R2z0h=\", round(R2z0h, 2), \"R2z0=\", round(R2z0, 2)       ) )\n        
        text(mx*0.6,  (z0+h)/2.,      paste(\"R3=\", round(R3, 2)               
                       ) )\n                text(mx*0.6,  (2*z0+h)/3.,    
paste(\"R4log=\", round(R4log, 2), \"R4exp=\", round(R4exp, 2)     ) )\n        
        text(mx*0.5,  2,              paste(\"racz0h=\", round(racz0h, 2), 
\"racz0=\", round(racz0, 2)   ) )\n                text(mx*0.5,  1,             
 paste(\"raslog=\", round(raslog, 2), \"rasexp=\", round(rasexp, 2) ) )\n       
     }\n        )\n    }\n    invisible(NULL)\n}" nil) (9464 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*evapoTrans%20Generic%20function%20definition"
 evapoTrans\ Generic\ function\ definition:1 ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/evapoTrans.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "evapoTrans <- function(x) 
UseMethod(\"evapoTrans\")" nil) (9471 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*evapoTrans.default"
 evapoTrans\.default:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/evapoTrans.default.R") (:exports . "both") (:results 
. "replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . 
"yes") (:tangle-mode . 292) (:hlines . "no")) "evapoTrans.default <- 
function(\n    ras,\n    rac,\n    Ta     = 20,\n    frach  = 1,\n    Rnhsol = 
600,\n    RH     = 50, # deltae = 5,\n    gsol   = 0.001\n) {\n    ## mb 
(Monteith, 1990)\n    es     <- 6.1078 * exp( 17.269 * Ta/(Ta+ 237.3) ) # mb\n  
  ea     <- es * RH/100\n    deltae <- es - ea\n    Landah <- -2.37273 * Ta + 
2501                    # J.g-1\n    Cph    <- 1.01                             
       # J.g-1.degreeC-1\n    Rauh   <- -4.111 * Ta + 1289.764                  
# g/m3\n    Psyh   <- Rauh * Cph * 8.31 * (Ta + 273.15) / (100*18*Landah)  #  
mb.degreeC-1\n    deltah <- Landah * 18 * es / ( 8.31 * (Ta + 273.15)^2 )       
 #  mb.degreetC-1 Monteith p.10\n    \n    ##  ETR du sol\n    ETRhrsol <- 
frach * 3.6 *\n        (deltah * Rnhsol) /\n            (Landah * (deltah + 
Psyh * (1 + 1/(gsol * ras) )))\n    ETRhcsol <- frach * 3.6 *\n        (Rauh * 
Cph * deltae/ras) /\n            (Landah * (deltah + Psyh * (1 + 1/(gsol * ras) 
)))\n    ETRhsol  <- ETRhrsol+ETRhcsol\n\n    ##  ETP couvert\n    ETPch    <- 
frach * 3.6 *\n        (Rauh * Cph * deltae / rac) /\n            ( Landah * 
(deltah + Psyh) )\n    etp <- list(\n        etrHrsol = ETRhrsol,\n        
etrHcsol = ETRhcsol,\n        etrHsol  = ETRhsol,\n        etpCh    = ETPch\n   
 )\n    etp$input <- list(\n        ras    = ras,\n        rac    = rac,\n      
  Ta     = Ta,\n        frach  = frach,\n        Rnhsol = Rnhsol,\n        RH   
  = RH,\n        gsol   = gsol\n    )\n    class(etp) <- c(\"evapoTrans\", 
\"list\")\n    attr(etp, \"method\") <- \"default\"\n    return( etp )\n}" nil) 
(9530 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*evapoTrans.airRest"
 evapoTrans\.airRest:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/evapoTrans.airRest.R") (:exports . "both") (:results 
. "replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . 
"yes") (:tangle-mode . 292) (:hlines . "no")) "evapoTrans.airRest <- 
function(\n    x,\n    Ta     = 20,\n    frach  = 1,\n    Rnhsol = 600,\n    RH 
    = 50, # deltae = 5,\n    gsol   = 0.001\n) {\n    etp <- 
evapoTrans.default(\n        ras    = x$ras,\n        rac    = x$rac,\n        
Ta     = Ta,\n        frach  = frach,\n        Rnhsol = Rnhsol,\n        RH     
= RH,\n        gsol   = gsol\n    )\n    etp$input$airRest <- x\n    attr(etp, 
\"method\") <- \"airRest\"\n    return( etp )\n}" nil) (9559 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*evapoTrans.wpLEL" 
evapoTrans\.wpLEL:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/evapoTrans.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "evapoTrans.wpLEL <- function(\n    x,\n 
   Ta     = 20,\n    frach  = 1,\n    Rnhsol = 600,\n    RH     = 50, # deltae 
= 5,\n    gsol   = 0.001\n) {\n    etp <- evapoTrans.airRest(\n        x      = 
airRest(x),\n        Ta     = Ta,\n        frach  = frach,\n        Rnhsol = 
Rnhsol,\n        RH     = RH,\n        gsol   = gsol\n    )\n    attr(etp, 
\"method\") <- \"wpLEL\"\n    return( etp )\n}" nil) (9588 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*lhc.etp.R" 
lhc\.etp ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/lhc.etp.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Create latin hypercube based on the 
object \\code{x} of class\n##' \\code{wpLEL} and calculates the aeril 
resistance.\n##'\n##' Create latin hypercube based on the object \\code{x} of 
class\n##' \\code{wpLEL}. The object \\code{x} is used at a template to fill 
in\n##' Create latin hypercube based on the object \\code{x} of class\n##' 
\\code{wpLEL} and calculates the aeril resistance.\n##'\n##' Create latin 
hypercube based on the object \\code{x} of class\n##' \\code{wpLEL}. The object 
\\code{x} is used at a template to fill in\n##' the missing values.\n##' @title 
lhc.wpLEL\n##' @param x object of type \\code{wpLEL} which will be used as 
a\n##' template for the returned Latin Hyper Cube \n##' @param n size of Latin 
Hypercube sample\n##' @param Min list of named named elements for minimum value 
of each column in the\n##' Latin Hypercube. \\code{names(Min)} has to be the 
same as \\code{names(Max)}!\n##' @param Max list of named named elements for 
maximum values for each column in the\n##' Latin Hypercube. \\code{names(Min)} 
has to be the same as \\code{names(Max)}!\n##' @param suffix suffix for file in 
cache\n##' @param new if \\code{TRUE} the cache is recreated, if \\code{FALSE}, 
the\n##' default, the cached values will be read\n##' @param cores number of 
cores to be used for the evaluation\n##' @return returns Latin Hypercube 
\\code{data.frame}\n##' @author Rainer M. Krug\n##' @export\nlhc.etp <- 
function(\n    x,\n    n,\n    Min,\n    Max,\n    suffix,\n    new  = FALSE,\n 
   cores = parallel::detectCores() - 1\n) {\n    if (missing(suffix)) {\n       
 suffix <- paste0(\".\", paste(names(Min), sep = \"\", collapse=\"-\"))\n    } 
else {\n        suffix <- paste0(\".\", paste(names(Min), sep = \"\", 
collapse=\"-\"), suffix)\n    }\n    fn <- paste0(CACHE, \"/lhc.etp.\", 
x$parametrization, suffix, \".rds\")\n    if (new) {\n        unlink(fn)\n    
}\n    if (file.exists(fn)) {\n        result <- readRDS(fn)\n    } else {\n    
    if (length(Min) != length(Max)) {stop(\"Min and Max have to have the same 
length!\")}\n        if (!all.equal(names(Min), names(Max) )) {stop(\"Min and 
Max have to have the same names!\")}\n        ## Build random Latin Hypercube\n 
       dat <- lhs::randomLHS(n=n, k=length(Min))\n        colnames(dat) <- 
names(Min)\n        ## Transform the 0..1 values to the selected range\n        
dat <- sweep(\n            x = dat,\n            MARGIN = 2,\n            
Max-Min,\n            '*'\n        )\n        dat <- sweep(\n            x = 
dat,\n            MARGIN = 2,\n            Min,\n            '+'\n        )\n   
     ## ## Exculde cases where conditions 6) and 7) are not met\n        ## if 
(all(c(\"z0\", \"dep\", \"zjoint\") %in% names(Min))) {\n        ##     depz0 
<- dat[,\"dep\"] + dat[,\"z0\"]\n        ##     i <- depz0 < h & depz0 > 
dat[,\"zjoint\"]\n        ##     dat <- dat[i,]\n        ## }\n\n        dat <- 
as.data.frame(t(dat))\n        ##\n        wphelp <- function(...) 
{wpLEL.wpLEL(x, ...)}\n        no <- ceiling(ncol(dat) / cores)\n        i <- 
0\n        result <- mclapply(\n            dat,\n            function(s) {\n   
             names(s) <- rownames(dat)\n                s <- as.list(s)\n       
         s$wp <- do.call(wphelp, s)\n                \n                depz0 <- 
s$wp[[\"dep\"]] + s$wp[[\"z0\"]]\n                if (depz0 < s$wp[[\"h\"]] & 
depz0 > s$wp[[\"zjoint\"]]) {\n                    ar <- airRest(s$wp)\n        
            etp <- evapoTrans.airRest(\n                        x      = ar,\n  
                      Ta     = s[[\"Ta\"]],\n                        frach  = 
1,\n                        Rnhsol = s[[\"Rnhsol\"]],\n                        
RH     = s[[\"RH\"]],\n                        gsol   = s[[\"gsol\"]]\n         
           )\n                    ##\n                    s$I1  <- ar$I1\n      
              s$I2  <- ar$I2\n                    s$I3  <- ar$I3\n              
      s$I4  <- ar$I4\n                    s$ras <- ar$ras\n                    
s$rac <- ar$rac\n                    ##\n                    s$etrHrsol <- 
etp$etrHrsol\n                    s$etrHcsol <- etp$etrHcsol\n                  
  s$etrHsol  <- etp$etrHsol\n                    s$etpCh    <- etp$etpCh\n      
              class(s) = c(\"lhcAirRest\", class(s))\n                } else 
{\n                    s <- NULL\n                }\n                i <<- i + 
1\n                if (round(i, -2) == i) {\n                    cat(i, \"\\t 
of about \\t\", no, \"\\t\\t\\r\")\n                }\n                
return(s)\n            },\n            mc.cores = cores\n        )\n        
cat(\"\\n\")\n        result <- result[!sapply(result, is.null)]\n        
saveRDS(result, fn)\n    }\n    return(result)\n}" nil) (9720 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*tests" tests:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./tests/wpLELTest.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "## 
stopifnot(require(energyBalance))\n\n## Tolerance for numerical 
comparisons\nepsilon <- 1.0e-9\n\nua <- 3.136\nza <- 37\nz <- seq(\n    from = 
0,\n    to   = za,\n    by   = 0.1\n)\n\n## Test 1\nu <- wpLEL(\n    z,\n    ua 
     = ua,\n    dep = 14,\n    z0 = 2.8,\n    na = 7,\n    zjoint = 14.31625,\n 
   h = 28,\n    za = 37,\n    z0sol = 0.01\n)\nu.s <- 
readRDS(\"./tests/u.rds\")\nstopifnot( max(abs(unlist(u) - unlist(u.s)), 
na.rm=TRUE ) < epsilon)\n\nu <- airRest(u)\nu.s <- 
readRDS(\"./tests/u.ar.rds\")\nstopifnot( max(abs(unlist(u) - unlist(u.s)), 
na.rm=TRUE ) < epsilon)\n\n## Test 2\nWAI <- 0.5\nLAI <- 0\nu1 <- wpLEL(\n    
z,\n    ua  = ua,\n    dep = function(PAI) {1.1*h*log(1+(Cd*PAI)^0.25)},\n    
PAI = WAI + LAI\n)\nu1.s <- readRDS(\"./tests/u1.rds\")\nstopifnot( 
max(abs(unlist(u1) - unlist(u1.s)), na.rm=TRUE ) < epsilon)\n\nu1 <- 
airRest(u1)\nu1.s <- readRDS(\"./tests/u1.ar.rds\")\nstopifnot( 
max(abs(unlist(u1) - unlist(u1.s)), na.rm=TRUE ) < epsilon)\n\n## Test 3\nWAI 
<- 0.5\nLAI <- 6\nu2 <- wpLEL(\n    z,\n    ua  = ua,\n    dep = function(PAI) 
{1.1*h*log(1+(Cd*PAI)^0.25)},\n    PAI = WAI + LAI\n)\nu2.s <- 
readRDS(\"./tests/u2.rds\")\nstopifnot( max(abs(unlist(u2) - unlist(u2.s)), 
na.rm=TRUE ) < epsilon)\n\nu2 <- airRest(u2)\nu2.s <- 
readRDS(\"./tests/u2.ar.rds\")\nstopifnot( max(abs(unlist(u2) - unlist(u2.s)), 
na.rm=TRUE ) < epsilon)" nil) (9828 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*Package%20Documentation"
 Package\ Documentation:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalancePaper/R/EnergyBalancePaper.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "#' 
EnergyBalancePaper: Companion package for paper\n#'\n#' Companion package for 
the paper \\bold{TO BE ADDED} This packagee\n#' contains thew data and the 
functions used to analyse the date and\n#' to create the plots in the paper.  
In addition it also contains\n#' further scripts for analysis and plots not 
included in the paper.\n#' \n#' @section EnergyBalancePaper functions and 
data:\n#' Data: To Be added  ...\n#' Functions: To Be added  ...\n#'\n#' 
@docType package\n#' @name EnergyBalancePaper\nNULL\n#> NULL" nil) ...))
  mapc(#[(by-lang) "address@hidden      \"A\206.      .\307\306       
.\"A\203#.\310\306      .\"A!\206$.     \311P!.
\312.\313\314\n\"-\207" [by-lang lang specs org-babel-tangle-lang-exts ext 
org-src-lang-modes assoc intern symbol-name "-mode" nil mapc #[(spec) 
"\306\211.\307!.\310!\211.G\311V\205.\n).\312!.    \313\230\203%.\314\315 
!\2027.  \316\230\203/.\317\2027.        G\311V\2057.    \211.\205P.,\203O.    
 \313\230\203O.
\320.,Q\202P.
\211.-\2054.\321!\322.-!..\211./\203w..\203w./\316\230\204w.\323..\324\"\210*\325.-!\203\217.-\326\327.0\"\235\204\217.\330.-!\210\331\332!.1r.1q\210\333\216\334.2!\203\247.\317\335\336\217\210\203\277.-.3\235\204\277.\337Pc\210.-.3B.3\340.4!\210\341
 
.5\331\332!.6r.6q\210\342\216\325.-!\203\340.\343.-!\210db\210\344\345\346.48\"A\316\230\204\371.`eU\204\371.\337c\210.5c\210\347\317\211.-#\210.\203.\f\204.\350.7T.7.-\fB.8\351.8.0\352\353$\203+.0\2023.8.0B\211.0)..\207"
 [get-spec tangle sheb she-bang tangle-mode base-name #[(name) "\302\303 
8\"A\207" [name spec assoc 4] 4] :tangle :shebang 0 :tangle-mode "yes" 
file-name-sans-extension buffer-file-name "no" nil "." :mkdirp 
file-name-directory make-directory parents file-exists-p mapcar car delete-file 
generate-new-buffer " *temp*" ((byte-code "\301!\203\n.\302!\210\301\207" 
[temp-buffer buffer-name kill-buffer] 2)) fboundp (funcall lang-f) ((error)) 
"\n" org-babel-spec-to-string buffer-string ((byte-code 
"\301!\203\n.\302!\210\301\207" [temp-buffer buffer-name kill-buffer] 2)) 
insert-file-contents assoc :padline 4 write-region 493 cl-member :test #[(a b) 
"@   @\232\207" [a b] 2] ext file-name fnd m path-collector temp-buffer ...] 
6] lang-f she-banged] 5] (("R" (5939 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*CACHE" CACHE:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/data/fileNames.R") 
(:exports . "both") (:results . "replace") (:session . "*R.EnergyBalance*") 
(:eval . "never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) 
"CACHE <- file.path( \".\", \"cache\")\nSQLITEDB  <- file.path(CACHE, 
\"energyBalance.sqlite\")" nil) (5950 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*Package%20Documentation"
 Package\ Documentation:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/EnergyBalance.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "#' EnergyBalance: A package for 
computating wind profiles and\n#' aerodynamic resistances.\n#'\n#' The 
EnergyBalance package provides functiuons to\n#' fit wind profiles, calculate 
the aerial resistance and plot the profiles.\n#' \n#' @section EnergyBalance 
functions:\n#' To Be added  ...\n#'\n#' @docType package\n#' @name 
EnergyBalance\n#' @importFrom parallel detectCores\n#' @importFrom parallel 
mclapply\n#' @importFrom lhs randomLHS\n#' @importFrom RSQLite SQLite\n#' 
@import DBI\n#' @import magrittr\nNULL\n#> NULL" nil) (5973 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*CACHE" CACHE:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/R/CACHE.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "#' Cache for 
computations in package\n#'\n#' CACHE to be used for the computations. The 
cac=he holde =temporary\n#' as well as final results of the computations which 
are saved\n#' automatically to avoid re-computqtion. \n#' \n#' @format 
Character vector of length one.\n#' @name CACHE\n#' @docType data\nNULL" nil) 
(5986 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*SQLITEDB" 
SQLITEDB:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/SQLITEDB.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "#' SQLite Database with processed input 
data\n#'\n#' File name and path to the sqlite database which holds the 
processed\n#' wind speeds and LAI and the indices to increase access speed.\n#' 
\n#' @format Character vector of length one.\n#' @name SQLITEDB\n#' @docType 
data\nNULL" nil) (6000 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*getplotlim" 
getplotlim:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/getplotlim.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Return the limits of the 
plot\n##'\n##' Return the limits, as set by \\code{xlim = } and \\code{ylim = 
}. \n##' @param lim if \\code{xlim} or \\code{ylim} return the 
xorresponding\n##' limits, if code{xlimylim} retur list with each limit as 
an\n##' element.\n##' @return either vector with two elements containing the x 
or y\n##' limits or a list of two elements, xlim and ylim.\n##' @author Rainer 
M. Krug\n##' @export\ngetplotlim<-function(lim = c(\"xlim\", \"ylim\")) {\n    
usr <- par('usr')\n    xr <- (usr[2] - usr[1]) / 27 # 27 = (100 + 2*4) / 4\n    
yr <- (usr[4] - usr[3]) / 27\n    return(\n        switch(\n            EXPR = 
paste(sort(lim), collapse=\"\"),\n            xlim = c(usr[1] + xr, usr[2] - 
xr),\n            ylim = c(usr[3] + yr, usr[4] - yr),\n            xlimylim = 
list(\n                xlim = c(usr[1] + xr, usr[2] - xr),\n                
ylim = c(usr[3] + yr, usr[4] - yr)\n                ),\n            
stop(\"Invalid value for lim!\")\n            )        \n        )\n}" nil) 
(6032 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*Input%20data%20directory%20discovery%20functions"
 Input\ data\ directory\ discovery\ functions:1 ((:colname-names) 
(:rowname-names) (:result-params "replace") (:result-type . value) (:comments . 
"link") (:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") 
(:tangle . "./package/EnergyBalance/R/inputDataDir.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Returns input 
data dir\n##'\n##' Returns input data dir (the directory with the wind and 
LAI\n##' input files are located in).  If the package 
\\code{EnergyBalancePaper} is\n##' installed, the data included in this package 
is returned,\n##' otherwist the directory \\code{paste0{getwd(), 
\"/inputdata\"}} is\n##' returned.\n##' \n##' @title inputDataDir\n##' @return 
input data directory for win=d and LAI data\n##' @author Rainer M. Krug\n##' 
@export\ninputDataDir <- function() {\n    file.path(\n        ifelse(\n        
    \"package:EnergyBalancePaper\" %in% search(),\n            
system.file(package = \"EnergyBalancePaper\"),\n            getwd()\n           
 ),\n        \"inputdata\"\n        )\n}" nil) (6120 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*importVentToDB" 
importVentToDB:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/importVentToDB.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Import wind data\n##'\n##' Import 
data into sqlite db and fit =default= to each wind profile\n##' to obtain the 
parameters, e.g. ustar for selecting.\n##' @param h canopy height in meter. 
Needed for estimate of ustar (u*)\n##' @param fn file name of wind date\n##' 
@return invisible \\code{NULL}\n##' @author Rainer M. Krug\n##' 
@export\nimportVentToDB <- function(fn, h) {\n    wsw <- read.csv(\n        
file = fn,\n        stringsAsFactors = FALSE,\n        header = TRUE\n        
)\n    names(wsw) <- c(\n        \"date\",\n        \"time\",\n        
\"julien\",\n        \"h03\",\n        \"h11\",\n        \"h17\",\n        
\"h23\",\n        \"h29\",\n        \"h37\"\n        )\n    ## Add columns for 
wpLELDefault parameter values\n    wsw$ua <- NA\n    wsw$dep <- NA\n    wsw$z0 
<- NA\n    wsw$na <- NA\n    wsw$zjoint <- NA\n    wsw$h <- NA\n    wsw$za <- 
NA\n    wsw$ustar <- NA\n    ## Fit wpLELDefault and save parameter\n\n    for 
(i in 1:nrow(wsw)) {\n        if(floor(i/20)*20 == i) { cat(i, \" \") }\n       
 wp <- dfFromLong(wsw[i,])\n        if ( !any( is.na( c(wp$z, wp[,3]) ) ) ){\n  
          wpf <- fitOptim.wpLEL.default.single(\n                z = wp$z,\n    
            u = wp[,3],\n                ##                lower   = c(dep=0,  
z0=0.001, na=0.01, zjoint=0),\n                initial = c(dep=2,  z0=2,     
na=2,    zjoint=3)\n                ##                upper   = c(dep=27, z0=h, 
    na=20,   zjoint=h),\n                ##                method  = 
\"L-BFGS-B\"\n                )\n            wsw$ua[i]     <- 
wpf$wp[[\"ua\"]]\n            wsw$dep[i]    <- wpf$fit$par[[\"dep\"]]\n         
   wsw$z0[i]     <- wpf$fit$par[[\"z0\"]]\n            wsw$na[i]     <- 
wpf$fit$par[[\"na\"]]\n            wsw$zjoint[i] <- wpf$fit$par[[\"zjoint\"]]\n 
           wsw$h[i]      <- wpf$wp[[\"h\"]]\n            wsw$za[i]     <- 
wpf$wp[[\"za\"]]\n            wsw$ustar[i]  <- wpf$wp[[\"ustar\"]]\n        }\n 
   }\n    \n    wsl <- data.frame(\n        date   = wsw$date,\n        time   
= wsw$time,\n        julien = wsw$julien,\n        z      = rep(\n            
c(3,11,17,23,29,37),\n            times = rep( nrow(wsw), 6 )\n            ),\n 
       ws     = c(\n            wsw$h03,\n            wsw$h11,\n            
wsw$h17,\n            wsw$h23,\n            wsw$h29,\n            wsw$h37\n     
       ),\n        ua     = wsw$ua,\n        dep    = wsw$dep,\n        z0     
= wsw$z0,\n        na     = wsw$na,\n        zjoint = wsw$zjoint,\n        h    
  = wsw$h,\n        za     = wsw$za,\n        ustar  = wsw$ustar\n        )\n   
 ##\n    db <- DBI::dbConnect(RSQLite::SQLite(), SQLITEDB)\n    try({\n         
   ## WindSpeed_w\n            DBI::dbWriteTable(db, \"WindSpeed_w\", wsw, 
overwrite=TRUE)\n            DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX wsw_dt 
ON WindSpeed_w (date,   time)\")\n            DBI::dbGetQuery(db, \"CREATE 
UNIQUE INDEX wsw_jt ON WindSpeed_w (julien, time)\")\n            
DBI::dbGetQuery(db, \"CREATE INDEX wsw_date   ON WindSpeed_w (date  )\")\n      
      DBI::dbGetQuery(db, \"CREATE INDEX wsw_time   ON WindSpeed_w (time  
)\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wsw_julien ON WindSpeed_w 
(julien)\")\n            ## WindSpeed_l\n            DBI::dbWriteTable(db, 
\"WindSpeed_l\", wsl, overwrite=TRUE)\n            DBI::dbGetQuery(db, \"CREATE 
UNIQUE INDEX wsl_dth ON WindSpeed_l (date,   time, z)\")\n            
DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX wsl_jth ON WindSpeed_l (julien, time, 
z)\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wsl_date   ON WindSpeed_l 
(date  )\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wsl_time   ON 
WindSpeed_l (time  )\")\n            DBI::dbGetQuery(db, \"CREATE INDEX 
wsl_julien ON WindSpeed_l (julien)\")\n            DBI::dbGetQuery(db, \"CREATE 
INDEX wsl_h      ON WindSpeed_l (h     )\")\n        }\n        )\n    
DBI::dbDisconnect(db)\n    invisible()\n}" nil) (6245 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*importLAIToDB" 
importLAIToDB:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/importLAIToDB.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Import LAI data\n##'\n##' Import 
LAI data into sqlite db\n##' @param fn file name of LAI data\n##' @return 
invisible \\code{NULL}\n##' @author Rainer M. Krug\n##' @export\nimportLAIToDB 
<- function(fn) {\n    lai <- read.csv(\n        file =  fn,\n        
stringsAsFactors = FALSE,\n        header = TRUE\n    )\n    names(lai) <- c(\n 
       \"doy\",\n        \"lai\"\n    )\n    ##\n    db <- 
DBI::dbConnect(RSQLite::SQLite(), SQLITEDB)\n    try(\n        {\n            
DBI::dbWriteTable(db, \"LeafAreaIndex\", lai, overwrite=TRUE)\n            
DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX lai_doy ON LeafAreaIndex (doy)\")\n   
         DBI::dbGetQuery(db, \"CREATE INDEX lai_h ON LeafAreaIndex (lai)\")\n   
     }\n    )\n    DBI::dbDisconnect(db)\n}" nil) (6353 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*createWsLAI" 
createWsLAI:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/createWsLAI.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Finalize sqlight databaes of input 
data\n##'\n##' Create combined wind speed and LAI table and associated indices 
in sqlite database.\n##' @return invisible \\code{NULL}\n##' @author Rainer M. 
Krug\n##' @export\ncreateWsLAI <- function(\n    ){\n    sql_l <- paste(\n      
  \"CREATE TABLE\",\n        \"  WindSpeedLAI_l\",\n        \"AS SELECT\",\n    
    \"  WindSpeed_l.*, LeafAreaIndex.lai AS lai\",\n        \"FROM\", \n        
\"  WindSpeed_l\",\n        \"LEFT OUTER JOIN\",\n        \"  
LeafAreaIndex\",\n        \"ON\",\n        \" julien=DOY\"\n    )\n    sql_w <- 
paste(\n        \"CREATE TABLE\",\n        \"  WindSpeedLAI_w\",\n        \"AS 
SELECT\",\n        \"  WindSpeed_w.*, LeafAreaIndex.lai AS lai\",\n        
\"FROM\", \n        \"  WindSpeed_w\",\n        \"LEFT OUTER JOIN\",\n        
\"  LeafAreaIndex\",\n        \"ON\",\n        \" julien=DOY\"\n    )\n    db 
<- DBI::dbConnect(RSQLite::SQLite(), SQLITEDB)\n    try({\n            ##\n     
       DBI::dbGetQuery( conn = db, statement = \"DROP TABLE IF EXISTS 
WindSpeedLAI_l\")\n            DBI::dbGetQuery( conn = db, statement = sql_l)\n 
           DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX wslail_dth ON 
WindSpeedLAI_l (date, time, z)\")\n            DBI::dbGetQuery(db, \"CREATE 
UNIQUE INDEX wslail_jth ON WindSpeedLAI_l (julien, time, z)\")\n            
DBI::dbGetQuery(db, \"CREATE INDEX wslail_date   ON WindSpeedLAI_l (date  
)\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wslail_time   ON 
WindSpeedLAI_l (time  )\")\n            DBI::dbGetQuery(db, \"CREATE INDEX 
wslail_julien ON WindSpeedLAI_l (julien)\")\n            DBI::dbGetQuery(db, 
\"CREATE INDEX wslail_h      ON WindSpeedLAI_l (z     )\")\n            
DBI::dbGetQuery(db, \"CREATE INDEX wslail_lai    ON WindSpeedLAI_l (lai)\")\n   
         DBI::dbGetQuery(db, \"CREATE INDEX wslail_ustar  ON WindSpeedLAI_l 
(ustar)\")\n            ##\n            DBI::dbGetQuery( conn = db, statement = 
\"DROP TABLE IF EXISTS WindSpeedLAI_w\")\n            DBI::dbGetQuery( conn = 
db, statement = sql_w)\n            DBI::dbGetQuery(db, \"CREATE UNIQUE INDEX 
wslaiw_dth ON WindSpeedLAI_w (date, time)\")\n            DBI::dbGetQuery(db, 
\"CREATE UNIQUE INDEX wslaiw_jth ON WindSpeedLAI_w (julien, time)\")\n          
  DBI::dbGetQuery(db, \"CREATE INDEX wslaiw_date   ON WindSpeedLAI_w (date  
)\")\n            DBI::dbGetQuery(db, \"CREATE INDEX wslaiw_time   ON 
WindSpeedLAI_w (time  )\")\n            DBI::dbGetQuery(db, \"CREATE INDEX 
wslaiw_julien ON WindSpeedLAI_w (julien)\")\n            DBI::dbGetQuery(db, 
\"CREATE INDEX wslaiw_lai    ON WindSpeedLAI_w (lai)\")\n            
DBI::dbGetQuery(db, \"CREATE INDEX wslaiw_ustar  ON WindSpeedLAI_w (ustar)\")\n 
       }\n    )\n    DBI::dbDisconnect(db)\n    invisible(NULL)\n}" nil) (6421 
nil "file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*createCache" 
createCache:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/createCache.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Re-create \\code{CACHE}\n##'\n##' 
Deletes all files in the cache (directory \\code{CACHE}) and re-creates 
them\n##' @title Recreate files in cache\n##' @name createCache\n##' @return 
invisible NULL\n##' @author Rainer M. Krug\n##' @export\n##' @param fnVent file 
name of Wind Profile csv file\n##' @param fnLAI file name of LAI csv file\n##' 
@param h height, needed for wind profile fit to obtain u^*\ncreateCache <- 
function(fnVent, fnLAI, h) {\n    dir.create(CACHE, showWarnings = FALSE)\n    
unlink(SQLITEDB)\n    importVentToDB(fnVent, h)\n    importLAIToDB(fnLAI)\n    
createWsLAI()\n    invisible(NULL)\n}" nil) (6446 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*loadWS" loadWS:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/R/loadWS.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' 
Depending on the values of the arguments, different datasets are\n##' loaded, 
but all contain wind speed at different heights and lai\n##' data.  The sql 
argument can be used to specify different\n##' conditions for the data 
returned.\n##'\n##' Loads wind speed data from sql database in cache\n##' 
@title Load wind speed data\n##' @param wide if TRUE, load wide format, if 
FALSE long format\n##' @param onlyComplete if \\code{TRUE}, load only 
datapoints without missing\n##' data in wind \\code{h*} and \\code{LAI}.\n##' 
@param minSpeedIncreaseWide numeric value or \\code{NULL}. If not \\code{NULL}, 
the following rules will be\n##' used to filter the wind profiles:\n##' \n##' 
\\itemize{\n##' \n##'   \\item{ differences of wind speeds between each point 
and the\n##' adjacend lower sampling points has to be larger then the value 
of\n##' \\code{minSpeedIncreaseWide}}\n##'\n##' }\n##'\n##' \\bold{Only Applies 
To \\code{wide==TRUE}}\n##' \n##' @param maxWindSpeedWide numeric value or 
\\code{null}. If not\n##' \\code{NULL}, wind profiles with wind speeds higher 
then\n##' \\code{maxWindSpeedWide} will be filtered out.\n##'\n##' \\bold{Only 
Applies To \\code{wide==TRUE}}\n##' \n##' @param maxWindSpeedOneWide Logical - 
if \\code{TRUE} the wind profiles will\n##' be standardised to wind speed at 
highest sampling point to 1 and\n##' the original wind speed will be stored in 
a field \\code{ua}\n##'\n##' \\bold{Only Applies To \\code{wide==TRUE}}\n##' 
\n##' @param minUstar minimum ustar value to be included in analysis. The 
default is 0.25. \\bold{REFERENCE NEEDED}\n##' \n##' @param WAI Wood Area Index 
- default value \\code{0}. numeric value to be added to the field\n##' 
\\code{lai}. \n##' @param sql sql statement to be used instread of \\code{wide} 
and\n##' \\code{onlyComplete}. The sql statement is evauated and the result 
is\n##' returned.\n##'\n##' \\bold{Only Applies To \\code{wide==TRUE}}\n##' 
\n##' @return data.frame containing the data. If the \\code{wide==TRUE},\n##' 
the class is also set to \\code{wsw}, if \\code{wide==FALSE} to\n##' 
\\code{wsl}\n##' @author Rainer M. Krug\n##' @export\nloadWS <- function(\n    
wide = TRUE,\n    onlyComplete = TRUE,\n    minSpeedIncreaseWide = 0,\n    
maxWindSpeedWide = 10,\n    maxWindSpeedOneWide = FALSE,\n    minUstar = 
0.25,\n    WAI = 0,\n    sql\n    ) {\n    if (wide) {\n        tbln <- 
\"WindSpeedLAI_w\"\n    } else {\n          tbln <- \"WindSpeedLAI_l\"\n      
}\n    try({    \n            db <- dbConnect(RSQLite::SQLite(), SQLITEDB)\n    
        if (missing(sql)) {\n                if (!onlyComplete) {\n             
       sql <- paste( \"SELECT * FROM\", tbln )            \n                } 
else {\n                      f <- c( \"LAI\", grep(\"^h.\", dbListFields(db, 
tbln), value=TRUE))\n                      f <- paste(f, \"IS NOT NULL\", 
collapse = \" AND \")\n                      sql <- paste( \"SELECT * FROM \", 
tbln, \"WHERE\", f, \"AND ustar >=\", minUstar)\n                  }\n          
  }\n            ws <- DBI::dbGetQuery(db, sql)\n        }    \n        )\n    
dbDisconnect(db)\n    ##\n    if (length(grep(\"date|time\", names(ws))) >= 2) 
{\n        ws$date <- as.Date(ws$date, format = \"%d/%m/%y\")\n        
ws$dateTime <- as.POSIXct(paste(ws$date, ws$time), format=\"%Y-%m-%d %H:%M\")\n 
       ##\n        ws <- ws[\n                 c(\n                     
\"date\",\n                     \"time\",\n                     \"dateTime\",\n 
                    grep(\"date|time|dateTime\", names(ws), invert=TRUE, 
value=TRUE)\n                     )\n                 ]\n        ##\n    }\n    
if (wide) {\n        class(ws) <- c(class(ws), \"wsw\")\n        h <- 
rownames(dfFromLong(ws[2,]))\n        if (!is.null(minSpeedIncreaseWide)) {\n   
         ws <- ws[\n                     ws[,h] %>%\n                         
as.matrix %>%\n                             t %>%\n                             
    diff %>%\n                                     data.frame %>%\n             
                            sapply(\n                                           
  X   = .,\n                                             FUN = . %>%\n          
                                       is_less_than(minSpeedIncreaseWide) %>%\n 
                                                    any\n                       
                      ) %>%\n                                             
not,\n                     ]\n        }\n        if 
(!is.null(maxWindSpeedWide)) {\n            ws <-\n                ws[\n        
           ws[,h] %>%\n                       apply(\n                          
 X   = .,\n                           MARGIN = 1,\n                           
FUN = max\n                           ) %>%\n                           
is_less_than(maxWindSpeedWide),\n                   ]\n        }\n        ua <- 
dfFromLong(ws[1,]) %>% extract(\"z\") %>% max %>% paste0(\"h\", .)\n        
ws$ua <- ws[[ua]]\n        if (maxWindSpeedOneWide) {\n            for (i in h) 
{\n                ws[i] <- ws[i] / ws[ua]   \n            }\n        }\n    } 
else {\n          class(ws) <- c(class(ws), \"wsl\")\n      }\n    if 
(!is.null(WAI)) {\n        ws$lai <- ws$lai + WAI\n    }\n    return(ws)\n}" 
nil) (6596 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*dfFromLong" 
dfFromLong:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/dfFromLong.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Extract the height from the column 
names in the database, where\n##' the column names of the height have to follow 
the format\n##' \\code{h[:digit:]}.\n##'\n##' Extract the height\n##' @title 
Extract height from column names\n##' @param x column names\n##' @return 
heights as encoded in the column names in the order as given\n##' @author 
Rainer M. Krug\n##' @export\ndfFromLong <- function(\n    x\n    ) {\n    hCols 
<- grep(\n        pattern = \"^h[[:digit:]]\",\n        x       = names(x),\n   
     value   = FALSE\n        )\n    h <- gsub(\"h\", \"\", names(x)[hCols])\n  
  h <- as.numeric(h)\n    u <- as.matrix(x[hCols])\n    if(is.vector(u)) {\n    
    result <- data.frame(\n            index = hCols,\n            z     = h,\n 
           u     = u\n            )\n    } else {  # is.matrix(u) == TRUE\n     
     result <- data.frame(\n              index = hCols,\n              z     = 
h,\n              u     = t(u)\n              )\n      }\n    rownames(result) 
<- names(x)[hCols]\n    return(result)\n}" nil) (6646 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLEL%20Generic%20function%20definition"
 wpLEL\ Generic\ function\ definition:1 ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLEL.R") (:exports . "both") (:results . "replace") 
(:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function to create 
\\code{wpLEL} object.\n##'\n##' The returned object of class \\code{wpLEL} 
contains the following fields:\n##' \\itemize{\n##'   
\\item{\\code{parametrization}} {parametrization used to create this object. 
Possible values are \"default\" and \"Mahat2013\"}\n##' \n##'   
\\item{\\code{dep}} {some info}\n##'   \\item{\\code{z0}} {some info}\n##'   
\\item{\\code{na}} {some info}\n##'   \\item{\\code{zjoint}} {some info}\n##'   
\\item{\\code{h}} {some info}\n##'   \\item{\\code{za}} {some info}\n##'   
\\item{\\code{z0sol}} {some info}\n##' \n##'   \\item{\\code{vk}} {some 
info}\n##'   \\item{\\code{ua}} {some info}\n##'   \\item{\\code{ustar}} {some 
info}\n##'   \\item{\\code{z0h}} {some info}\n##'   \\item{\\code{uzjoint}} 
{some info}\n##'   \\item{\\code{ustarsol}} {some info}\n##'\n##'   
\\item{\\code{noU}} {some info}\n##' }\n##' @title wpLEL\n##' @param x object 
from which to calculat the \\code{wpLEL} object\n##' @param ... optional 
arguments for the generic functions\n##' @return objerct of class 
\\code{wpLEL}\n##' @author Rainer M. Krug\n##' @export\nwpLEL <- function(x, 
...) UseMethod(\"wpLEL\")" nil) (6681 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*parameterOK" 
parameterOK:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/parmeterOK.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Check parameter for 
validity\n##'\n##' Check parameter for validity. If they are valid, the 
function\n##' returns \\code{TRUE}, if not, it returns the error messages.\n##' 
@title parameterOK\n##' @param z z\n##' @param ua ua\n##' @param dep dep\n##' 
@param z0 z0\n##' @param na na\n##' @param zjoint zjoint\n##' @param h h\n##' 
@param za za\n##' @param z0sol z0sol\n##' @return \\code{TRUE} if parameter are 
OK, otherwise a named\n##' \\code{character} vector where the names are the 
parameter which\n##' are not OK and the values the error messages to be 
used\n##' @author Rainer M. Krug\n##' @export\nparameterOK <- function(\n    
z,\n    ua,\n    dep,\n    z0,\n    na,\n    zjoint,\n    h,\n    za,\n    
z0sol\n    ) {\n    result <- NULL\n    ## z      0 <= z\n    if (any( z < 0 )) 
{\n        result <- c(result, z = \"All z have to be larger or equal than 
zero!\\n\")\n    }\n    ## ua     0 <= ua\n    if (ua < 0 ) {\n        result 
<- c(result, ua = \"ua has to be larger or equal than zero!\\n\")\n    }\n    
## dep    0 <= dep < h\n    if ((dep < 0) | (dep >= h) ) {\n        result <- 
c(result, dep = \"dep has to be larger or equal than zero and smaller than 
h!\\n\")\n    }\n    ## z0     0 < z0 <= h\n        if ((z0 <= 0) | (z0 > h)) 
{\n        result <- c(result, z0 = \"z0 has to be larger than zero and smaller 
or equal than h!\\n\")\n    } \n    ## na    0 < na\n    if (na < 0 ) {\n       
 result <- c(result, na = \"na has to be larger or equal than zero!\\n\")\n    
} \n    ## zjoint\n    if ((zjoint < 0) | (zjoint > h)) {\n        result <- 
c(result, zjoint = \"zjoint has to larger or equal than 0 and smaller or equal 
than h!\\n\")\n    }\n    ## h     h >= 0\n    if (h < 0 ) {\n        result <- 
c(result, h = \"h has to be larger or equal than zero!\\n\")\n    }\n    ## za  
  za > h\n    if (za <= h ) {\n        result <- c(result, za = \"za has to be 
larger than h!\\n\")\n    }\n    ## z0sol  0 < z0sol POSSIBLY < h/10 ???\n    
if (z0sol <= 0 ) {\n        result <- c(result, z0sol = \"z0sol has to be 
larger than zero!\\n\")\n    }\n    ## ###\n    ##  dep, z0, h   dep + z0 < h\n 
   if ((dep + z0) > h) {\n        result <- c(result,  \"(dep + z0) has to be 
smaller than h!\\n\")\n    }\n    \n    if (is.null(result)) {\n        result 
<- TRUE\n    }\n    return(result)\n}" nil) (6775 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELDefault" 
wpLELDefault ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELDefault.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape\n##'\n##' Creates Log-Exp-Log shaped wind profile oblect \\code{wpLEL} 
based on input parameter.\n##' @title Log-Exp-Log wind profile\n##' @param z 
height above ground\n##' @param ua wind speed at highest point of z\n##' @param 
dep zero-plane displacement height. The argument can be a\n##' numeric value or 
a function which is evaluated in the context of\n##' the function, i.e. can use 
all arguments to calculate\n##' \\code{dep}. The last argument has to be 
\\code{...}. An example for\n##' the usage of a function would be the 
parametrisation by Mahat\n##' 2013:\n##'\n##' dep = function(LAI, ...) {h * 
(0.05 + (LAI^0.02)/2 + (y-1)/20) }\n##'\n##' where \\code{h} will be the 
argument \\code{h} and \\code{LAI} and\n##' \\code{y} need to be added as an 
additional argument when calling\n##' \\code{wpLELDefault}.\n##'\n##' The 
argument \\code{...} is needed at the end as all arguments in\n##' the function 
\\code{wpLELDefault} are passed on tho thie function\n##' as 
\\code{...}.\n##'\n##' When using a function, it should be taken care to set 
the argument\n##' \\code{parametrization} accordingly (in this example\n##' 
\"Mahat\") to adjust further analysis accordingly!\n##' @param z0 roughness 
length at canopy level. The argument can be a\n##' numeric value or a function 
which is evaluated in the context of\n##' the function, i.e. can use all 
arguments to calculate\n##' \\code{z0}. The last argument has to be 
\\code{...}. An example for\n##' the usage of a function would be the 
parametrisation by Mahat\n##' 2013:\n##'\n##' z0 = function(LAI, ...) {h * 
(0.23 - (LAI^0.25)/10 + (y-1)/67) }\n##'\n##' where \\code{h} will be the 
argument \\code{h} and \\code{LAI} and\n##' \\code{y} need to be added as an 
additional argument when calling\n##' \\code{wpLELDefault}.\n##'\n##' The 
argument \\code{...} is needed at the end as all arguments in\n##' the function 
\\code{wpLELDefault} are passed on tho thie function\n##' as 
\\code{...}.\n##'\n##' When using a function, it should be taken care to set 
the\n##' argument \\code{parametrization} accordingly (in this\n##' example 
\"Mahat\") to adjust further analysis accordingly!\n##' @param na exponential 
decay coefficient\n##' @param check default \\code{TRUE}. If \\code{TRUE}, 
parameter will\n##' be cecked, if \\code{FALSE} not. MAinly for internal 
usage.\n##' @param ... further argumewnts which will be passed to the user\n##' 
defined function \\code{dep} and \\code{z0}.\n##' @param zjoint height at which 
the logarithmic changes to\n##' exponential (\"lower canopy end\")\n##' @param 
h canopy height h\n##' @param za ???????\n##' @param z0sol roughness length at 
soil level (???????)\n##' @param noU if \\code{TRUE}, do \\bold{not} calculate 
and return u\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer M. 
Krug\n##' @export\n##' @references NEEDED!!!\nwpLELDefault <- function(\n    
z,\n    ua,\n    dep,\n    z0,\n    na, #    = 7,\n    zjoint,\n    h,  #    = 
28,\n    za, #    = 37,\n    z0sol,# = 0.001,\n    noU   = FALSE,\n    check = 
TRUE\n    ){ \n    vk <- 0.41\n    \n    ok <- ifelse(\n        check,\n        
parameterOK(\n            z      = z,\n            ua     = ua,\n            
dep    = dep,\n            z0     = z0,\n            na     = na,\n            
zjoint = zjoint,\n            h      = h,\n            za     = za,\n           
 z0sol  = z0sol\n            ),\n        TRUE\n        )\n\n    if 
(!isTRUE(ok)) {\n        stop(ok)\n    }\n    \n    ## profil5.m l29 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::29]]\n    ## 
ustar =  ua * vk / log( (za  - dep) / z0) \n    ustar    <- ua * vk / log( (za 
- dep) / z0)\n\n    ## profil5.m l30 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::30]]\n    ## z0h 
= z0 * exp( -6.27 * vk * ( ustar^(1/3) ) ); % Calcul de Z0h (Thom)\n    z0h   
<- z0 * exp( -6.27 * vk * ( ustar^(1/3) ) )\n\n    ## profil5.m l32 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::32]]\n    ##     
               zjoint  = z0h + dep;\n    ## if (missing(zjoint)) {zjoint <- z0h 
+ dep}\n\n    ## profil5.m l33 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::33]]\n    ## 
uzjoint = ustar / vk  * log( (hauteur - dep)/z0 ) * exp( - na * (1 - 
zjoint/hauteur) );\n    uzjoint  <- (ustar /  vk) * log( (h       - dep)/z0 ) * 
exp( - na * (1 - zjoint/h      ) )\n\n    ## profil5.m l34 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::34]]\n    ## 
ustarsol = uzjoint * vk / log( (zjoint/z0sol))\n    ustarsol <- ifelse(\n       
 (zjoint == 0),\n        as.numeric(NA),\n        uzjoint * vk / log( zjoint / 
z0sol )\n        )\n    \n    ##\n    result <- list(\n        z = NA,\n        
u = NA,\n        u.onlyTop = NA\n        )\n\n    if (!noU) {\n        result$z 
<- as.numeric(z)\n        ##\n        result$u <- as.numeric(\n            
sapply(\n                z,\n                function(z) {\n                    
if (z >= h) {\n                        ## profil5.m l36 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::37]]\n           
             u <-  ( ustar/vk ) * log( (z-dep) / z0 )\n                    } 
else if (z >= zjoint) {\n                          ## profil5.m l40 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::41]]\n           
               uh <- ( ustar/vk ) * log( (h-dep) / z0 )\n                       
   u <- uh * exp( -na*(1-(z/h)) )\n                      } else if (z >= 0) {\n 
                           ## profil5.m l42 
[[file:./package/EnergyBalancePaper/inst/matlab/org/profil5.m::42]]\n           
                 u <- ( ustarsol/vk ) * log( (z     ) / z0sol )\n               
         } else {\n                              u <- NA\n                      
    }\n                    return(u)\n                }\n                )\n    
        )\n        names(result$u) <- paste0(\"h\", z)\n        ##\n        
result$u.onlyTop = as.numeric(\n            sapply(\n                z,\n       
         function(z) {\n                    zd <- ((z-dep) / z0)\n              
      if (zd < 0){\n                        u <- NA\n                    } else 
{\n                          u <- ( ustar/vk ) * log( (z-dep) / z0 )\n          
            }\n                    if (!is.na(u)) {\n                        if 
(u < 0) {\n                            u <- NA\n                        }\n     
               }\n                    return(u)\n                }\n            
    )\n            )\n    }\n    ##\n    result$parametrization <- 
\"default\"\n    result$dep       <- as.numeric(dep)\n    result$z0        <- 
as.numeric(z0)\n    result$na        <- as.numeric(na)\n    result$zjoint    <- 
as.numeric(zjoint)\n    result$h         <- as.numeric(h)\n    result$za        
<- as.numeric(za)\n    result$z0sol     <- as.numeric(z0sol)\n    \n    
result$vk        <- as.numeric(vk)\n    result$ua        <- as.numeric(ua)\n    
result$ustar     <- as.numeric(ustar)\n    result$z0h       <- 
as.numeric(z0h)\n    result$uzjoint   <- as.numeric(uzjoint)\n    
result$ustarsol  <- as.numeric(ustarsol)\n    ##\n    result$noU       <- noU\n 
   result$check     <- check\n    ##\n    class(result) <- c(\"wpLEL\")\n    
return(result)\n}" nil) (6981 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELMahat" 
wpLEL\.mahat ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELMahat.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape using Mahat parametrisation\n##'\n##' Creates Log-Exp-Log shaped wind 
profile oblect \\code{wpLEL} based on input parameter.\n##' @title Log-Exp-Log 
wind profile based on Mahat parametrization\n##' @param z height above 
ground\n##' @param ua wind speed at highest point of z\n##' @param na 
exponential decay coefficient\n##' @param zjoint height at which the 
logarithmic changes to\n##' exponential (\"lower canopy end\")\n##' @param h 
canopy height h\n##' @param za ???????\n##' @param z0sol roughness length at 
soil level (???????)\n##' @param noU if \\code{TRUE}, do \\bold{not} calculate 
and return u\n##' @param LAI Leaf Area Index to be used for the calculation of 
\\code{dep}\n##' @param y integer indicating three basic forest profiles\n##' 
\\itemize{\n##'   \\item{y = 1} : {young pine}\n##'   \\item{y = 2} : {leafed 
decideous tree}\n##'   \\item{y = 3} : {old pine with long stems and clumping 
at the top}\n##' }\n##' @param check default \\code{TRUE}. If \\code{TRUE}, 
parameter will\n##' be cecked, if \\code{FALSE} not. MAinly for internal 
usage.\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer M. 
Krug\n##' @export\n##' @references NEEDED!!!\nwpLELMahat <- function(\n    z,\n 
   ua,\n    na,\n    zjoint,\n    h,\n    za,\n    z0sol,\n    LAI,\n    y,\n   
 noU = FALSE,\n    check = TRUE\n){ \n    depFUN <- function(LAI, ...) {h * 
(0.05 + (LAI^0.02)/2 + (y-1)/20) }\n    dep <- depFUN(LAI, h, y)\n    ##\n    
z0FUN <- function(LAI, ...) {h * (0.23 - (LAI^0.25)/10 + (y-1)/67) }\n    z0 <- 
z0FUN(LAI, h, y)\n    ##\n    ok <- ifelse(\n        check,\n        
parameterOK(\n            z      = z,\n            ua     = ua,\n            
dep    = dep,\n            z0     = z0,\n            na     = na,\n            
zjoint = zjoint,\n            h      = h,\n            za     = za,\n           
 z0sol  = z0sol\n            ),\n        TRUE\n        )\n\n    if 
(!isTRUE(ok)) {\n        stop(ok)\n    }\n    ##\n    result <- wpLELDefault(\n 
       z      = z,\n        ua     = ua,\n        dep    = dep,\n        z0     
= z0,\n        na     = na,\n        zjoint = zjoint,\n        h      = h,\n    
    za     = za,\n        z0sol  = z0sol,\n        noU    = noU,\n        check 
 = FALSE\n        )\n    ##\n    result$z0FUN  <- z0FUN\n    result$depFUN <- 
depFUN\n    result$LAI    <- as.numeric(LAI)\n    result$y      <- 
as.numeric(y)\n    result$check  <- check\n    ##\n    result$parametrization 
<- \"mahat\"\n    ##\n    return(result)\n}" nil) (7084 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELLE" wpLELLE 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./package/EnergyBalance/R/wpLELLE.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Wind 
speed profile using Log-Exp shape\n##'\n##' Creates Log-Exp shaped wind profile 
oblect \\code{wpLEL} based on\n##' input parameter. Uses \\code{wpLELDefault()} 
with \\code{zjoint=0}\n##' and \\code{z0sol=NA}.\n##' @title Log-Exp wind 
profile\n##' @param z height above ground\n##' @param ua wind speed at highest 
point of z\n##' @param dep zero-plane displacement height. The argument can be 
a\n##' numeric value or a function which is evaluated in the context of\n##' 
the function, i.e. can use all arguments to calculate\n##' \\code{dep}. The 
last argument has to be \\code{...}. An example for\n##' the usage of a 
function would be the parametrisation by Mahat\n##' 2013:\n##'\n##' dep = 
function(LAI, ...) {h * (0.05 + (LAI^0.02)/2 + (y-1)/20) }\n##'\n##' where 
\\code{h} will be the argument \\code{h} and \\code{LAI} and\n##' \\code{y} 
need to be added as an additional argument when calling\n##' 
\\code{wpLELDefault}.\n##'\n##' The argument \\code{...} is needed at the end 
as all arguments in\n##' the function \\code{wpLELDefault} are passed on tho 
thie function\n##' as \\code{...}.\n##'\n##' When using a function, it should 
be taken care to set the argument\n##' \\code{parametrization} accordingly (in 
this example\n##' \"Mahat\") to adjust further analysis accordingly!\n##' 
@param z0 roughness length at canopy level. The argument can be a\n##' numeric 
value or a function which is evaluated in the context of\n##' the function, 
i.e. can use all arguments to calculate\n##' \\code{z0}. The last argument has 
to be \\code{...}. An example for\n##' the usage of a function would be the 
parametrisation by Mahat\n##' 2013:\n##'\n##' z0 = function(LAI, ...) {h * 
(0.23 - (LAI^0.25)/10 + (y-1)/67) }\n##'\n##' where \\code{h} will be the 
argument \\code{h} and \\code{LAI} and\n##' \\code{y} need to be added as an 
additional argument when calling\n##' \\code{wpLELDefault}.\n##'\n##' The 
argument \\code{...} is needed at the end as all arguments in\n##' the function 
\\code{wpLELDefault} are passed on tho thie function\n##' as 
\\code{...}.\n##'\n##' When using a function, it should be taken care to set 
the\n##' argument \\code{parametrization} accordingly (in this\n##' example 
\"Mahat\") to adjust further analysis accordingly!\n##' @param na exponential 
decay coefficient\n##' @param h canopy height h\n##' @param za ???????\n##' 
@param noU if \\code{TRUE}, do \\bold{not} calculate and return u\n##' @param 
... further argumewnts which will be passed to the user\n##' defined function 
\\code{dep} and \\code{z0}.\n##' @param check default \\code{TRUE}. If 
\\code{TRUE}, parameter will\n##' be cecked, if \\code{FALSE} not. MAinly for 
internal usage.\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer 
M. Krug\n##' @export\n##' @references NEEDED!!!\nwpLELLE <- function(\n    z,\n 
   ua,\n    dep,\n    z0,\n    na,\n    h,\n    za,\n    noU = FALSE,\n    
check = TRUE\n    ){\n    zjoint <-  0\n    z0sol <- 0.1\n    ##\n    ok <- 
ifelse(\n        check,\n        parameterOK(\n            z      = z,\n        
    ua     = ua,\n            dep    = dep,\n            z0     = z0,\n         
   na     = na,\n            zjoint = zjoint,\n            h      = h,\n        
    za     = za,\n            z0sol  = z0sol\n            ),\n        TRUE\n    
    )\n\n    if (!isTRUE(ok)) {\n        stop(ok)\n    }\n    ##\n    result <- 
wpLELDefault(\n        z      = z,\n        ua     = ua,\n        dep    = 
dep,\n        z0     = z0,\n        na     = na,\n        zjoint = zjoint,\n    
    h      = h,\n        za     = za,\n        z0sol  = z0sol,\n        noU    
= noU,\n        check  = TRUE\n        )\n    ##\n    result$check  <- check\n  
  result$parametrization <- \"LE\"\n    return(result)\n}" nil) (7204 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELMahatLE" 
wpLELMahatLE ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELMahatLE.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape using Mahat parametrisation\n##'\n##' Creates Log-Exp-Log shaped wind 
profile oblect \\code{wpLEL} based on input parameter.\n##' @title Log-Exp-Log 
wind profile based on Mahat parametrization\n##' @param z height above 
ground\n##' @param ua wind speed at highest point of z\n##' @param na 
exponential decay coefficient\n##' @param h canopy height h\n##' @param za 
???????\n##' @param z0sol roughness length at soil level (???????)\n##' @param 
LAI Leaf Area Index to be used for the calculation of \\code{dep}\n##' @param y 
integer indicating three basic forest profiles\n##' \\itemize{\n##'   \\item{y 
= 1} : {young pine}\n##'   \\item{y = 2} : {leafed decideous tree}\n##'   
\\item{y = 3} : {old pine with long stems and clumping at the top}\n##' }\n##' 
@param noU if \\code{TRUE}, do \\bold{not} calculate and return u\n##' @param 
check default \\code{TRUE}. If \\code{TRUE}, parameter will\n##' be cecked, if 
\\code{FALSE} not. MAinly for internal usage.\n##' @return Object of class 
\\code{wpLEL}.\n##' @author Rainer M. Krug\n##' @export\n##' @references 
NEEDED!!!\nwpLELMahatLE <- function(\n    z,\n    ua,\n    na,\n    h,\n    
za,\n    z0sol,\n    LAI,\n    y,\n    noU = FALSE,\n    check = TRUE\n){ \n    
depFUN <- function(LAI, h, y) {h * (0.05 + (LAI^0.02)/2 + (y-1)/20) }\n    dep 
<- depFUN(LAI, h, y)\n    z0FUN  <- function(LAI, h, y) {h * (0.23 - 
(LAI^0.25)/10 + (y-1)/67) }\n    z0 <- z0FUN(LAI, h, y)\n    zjoint <-  0\n    
z0sol <- 0.1\n    ##\n    ok <- ifelse(\n        check,\n        parameterOK(\n 
           z      = z,\n            ua     = ua,\n            dep    = dep,\n   
         z0     = z0,\n            na     = na,\n            zjoint = zjoint,\n 
           h      = h,\n            za     = za,\n            z0sol  = z0sol\n  
          ),\n        TRUE\n        )\n    if (!isTRUE(ok)) {\n        
stop(ok)\n    }\n    ##\n    result <- wpLELDefault(\n        z      = z,\n     
   ua     = ua,\n        dep    = dep,\n        z0     = z0,\n        na     = 
na,\n        zjoint = zjoint,\n        h      = h,\n        za     = za,\n      
  z0sol  = z0sol,\n        noU    = noU,\n        check  = FALSE\n    )\n    
##\n    result$depFUN <- depFUN\n    result$z0FUN <- z0FUN\n    result$LAI <- 
as.numeric(LAI)\n    result$y   <- as.numeric(y)\n    result$check <- check\n   
 result$parametrization <- \"mahatLE\"\n    ##\n    return(result)\n}" nil) 
(7307 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELCastanea" 
wpLELCastanea ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELCastanea.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape\n##'\n##' Creates Log-Exp-Log shaped wind profile oblect \\code{wpLEL} 
based on input parameter.\n##' @title Log-Exp-Log wind profile\n##' @param z 
height above ground\n##' @param ua wind speed at highest point of z\n##' @param 
zjoint height at which the logarithmic changes to\n##' exponential (\"lower 
canopy end\")\n##' @param h canopy height h\n##' @param za ???????\n##' @param 
z0sol roughness length at soil level (???????)\n##' @param LAI Leaf Area 
Index\n##' @param WAI Wood Area Index, default=1.1\n##' @param noU if 
\\code{TRUE}, do \\bold{not} calculate and return u\n##' @param check default 
\\code{TRUE}. If \\code{TRUE}, parameter will\n##' be cecked, if \\code{FALSE} 
not. MAinly for internal usage.\n##' @return Object of class 
\\code{wpLEL}.\n##' @author Rainer M. Krug\n##' @export\n##' @references 
NEEDED!!!\nwpLELCastanea <- function(\n    z,\n    ua,\n    zjoint,\n    h,\n   
 za,\n    z0sol,\n    LAI,\n    WAI = 1.1,\n    noU   = FALSE,\n    check = 
TRUE\n){\n    depFUN <- function(h) {(2/3) * h}\n    dep <- depFUN(h)           
         # Oke 1972\n    ##\n    z0FUN <- function(h) {0.1 * h}\n    z0  <- 
z0FUN(h)                      # Granier\n    ##\n    naFUN <- function(LAI, 
WAI) {\n        na <- 2.6 * (LAI + WAI)^0.36\n        if (na > 4) {\n           
 na <- 4\n        }\n        return(na)\n    }\n    na <- naFUN(LAI, WAI)\n    
##\n    ok <- ifelse(\n        check,\n        parameterOK(\n            z      
= z,\n            ua     = ua,\n            dep    = dep,\n            z0     = 
z0,\n            na     = na,\n            zjoint = zjoint,\n            h      
= h,\n            za     = za,\n            z0sol  = z0sol\n            ),\n    
    TRUE\n        )\n    if (!isTRUE(ok)) {\n        stop(ok)\n    }\n    ##\n  
  result <- wpLELDefault(\n        z      = z,\n        ua     = ua,   \n       
 dep    = na,\n        z0     = z0,\n        na     = na,\n        zjoint = 
zjoint,\n        h      = h, \n        za     = za,\n        z0sol  = z0sol, \n 
       noU    = noU,\n        check  = FALSE\n        )\n    result$depFUN <- 
depFUN\n    result$z0FUN <- z0FUN\n    result$naFUN <- naFUN\n    result$LAI <- 
as.numeric(LAI)\n    result$WAI <- as.numeric(WAI)\n    result$check <- check\n 
   result$parametrization <- \"castanea\"\n    return(result)\n}" nil) (7415 
nil "file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLELOwnFree" 
wpLELOwnFree ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLELOwnFree.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Wind speed profile usingLog-Exp_Log 
shape using ownFree parametrisation\n##'\n##' Creates Log-Exp-Log shaped wind 
profile oblect \\code{wpLEL} based on input parameter.\n##' dep, z0, na and 
zoint are parametrized using:\n##'\n##' x = h * ( x.a + ( LAI ^ x.b ) / x.c 
)\n##'\n##' where x is dep, z0, na and zjoint respectively.\n##' \n##' @title 
Log-Exp-Log wind profile based on Mahat parametrization\n##' @param z height 
above ground\n##' @param ua wind speed at highest point of z\n##' @param h 
canopy height h\n##' @param za za\n##' @param z0sol roughness length at soil 
level\n##' @param dep.a see Details\n##' @param dep.b see Details\n##' @param 
dep.c see Details\n##' @param z0.a see Details\n##' @param z0.b see 
Details\n##' @param z0.c see Details\n##' @param na.a see Details\n##' @param 
na.b see Details\n##' @param na.c see Details\n##' @param zjoint.a see 
Details\n##' @param zjoint.b see Details\n##' @param zjoint.c see Details\n##' 
@param LAI Leaf Area Index to be used for the calculation of \\code{dep}\n##' 
@param noU if \\code{TRUE}, do \\bold{not} calculate and return u\n##' @param 
check default \\code{TRUE}. If \\code{TRUE}, parameter will\n##' be cecked, if 
\\code{FALSE} not. MAinly for internal usage.\n##' @param na exponential decay 
coefficient\n##' @param zjoint height at which the logarithmic changes to\n##' 
exponential (\"lower canopy end\")\n##' @return Object of class 
\\code{wpLEL}.\n##' @author Rainer M. Krug\n##' @export\n##' @references 
NEEDED!!!\nwpLELOwnFree <- function(\n    z,\n    ua,\n\n    h,\n    za,\n    
z0sol,\n\n    dep.a,    dep.b,    dep.c,\n    z0.a,     z0.b,     z0.c,\n    
na.a,     na.b,     na.c,\n    zjoint.a, zjoint.b, zjoint.c,\n\n    LAI,\n    
noU = FALSE,\n    check = TRUE\n    ){ \n    depFUN    <- function(LAI, h,    
dep.a,    dep.b,    dep.c) { h * (   dep.a + ( LAI ^    dep.b ) /    dep.c ) 
}\n    z0FUN     <- function(LAI, h,     z0.a,     z0.b,     z0.c) { h * (    
z0.a + ( LAI ^     z0.b ) /     z0.c ) }\n    naFUN     <- function(LAI, h,     
na.a,     na.b,     na.c) { h * (    na.a + ( LAI ^     na.b ) /     na.c ) }\n 
   zjointFUN <- function(LAI, h, zjoint.a, zjoint.b, zjoint.c) { h * (zjoint.a 
+ ( LAI ^ zjoint.b ) / zjoint.c ) }\n    ##\n    dep    <- depFUN(LAI, h,    
dep.a,    dep.b,    dep.c)\n    z0     <- depFUN(LAI, h,     z0.a,     z0.b,    
 z0.c)\n    na     <- depFUN(LAI, h,     na.a,     na.b,     na.c)\n    zjoint 
<- zjointFUN(LAI, h, zjoint.a, zjoint.b, zjoint.c)\n    ##\n    ok <- ifelse(\n 
       check,\n        parameterOK(\n            z      = z,\n            ua    
 = ua,\n            dep    = dep,\n            z0     = z0,\n            na     
= na,\n            zjoint = zjoint,\n            h      = h,\n            za    
 = za,\n            z0sol  = z0sol\n            ),\n        TRUE\n        )\n   
 if (!isTRUE(ok)) {\n        stop(ok)\n    }\n    ##\n    result <- 
wpLELDefault(\n        z = z,\n        ua = ua,\n        dep    = dep,\n        
z0     = z0,\n        na     = na,\n        zjoint = zjoint,\n        h      = 
h,\n        za     = za,\n        z0sol  = z0sol,\n        noU    = noU,\n      
  check  = FALSE\n        )\n    ##\n    result$depFUN <- depFUN\n    
result$dep.a  <- dep.a\n    result$dep.b  <- dep.b\n    result$dep.c  <- 
dep.c\n    ##\n    result$naFUN <- naFUN\n    result$na.a  <- na.a\n    
result$na.b  <- na.b\n    result$na.c  <- na.c\n    ##\n    result$z0FUN <- 
z0FUN\n    result$z0.a  <- z0.a\n    result$z0.b  <- z0.b\n    result$z0.c  <- 
z0.c\n    ##\n    result$zjointFUN <- zjointFUN\n    result$zjoint.a  <- 
zjoint.a\n    result$zjoint.b  <- zjoint.b\n    result$zjoint.c  <- zjoint.c\n  
  ##\n    result$LAI <- as.numeric(LAI)\n    result$check <- check\n    
result$parametrization <- \"ownFree\"\n    ##\n    return(result)\n}" nil) 
(7547 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLEL.wpLEL" 
wpLEL\.wpLEL:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLEL.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Creates a new \\code{wpLEL} object 
from a \\code{wpLEL} object\n##'\n##' \n##' Creates an \\code{wpLEL} object 
from a \\code{wpLEL} object by\n##' calling \\code{wpLELDefault()} with the 
arguments in \\code{...} given\n##' arguments and the from \\code{x} extracted 
arguments.\n##' @title Log-Exp-Log wind profile\n##' @param x object of class 
\\code{wpLEL} to be used as source\n##' for the parameter to create the 
\\code{wpLEL} object\n##' @param ... \\bold{named} arguments which will be used 
to create the\n##' new \\code{wpLEL} object using the \\code{wpLELDefault} 
function.\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer M. 
Krug\n##' @export\nwpLEL.wpLEL <- function(\n    x,\n    ...\n){\n    iff <- 
function(test, yes, no) {\n        if (test) {\n            yes\n        } else 
{\n            no\n        }\n    }\n    dot <- list(...)\n    u <- switch(\n   
     x$parametrization,\n        \"default\" = wpLELDefault( \n            z    
  = iff(exists(\"z\",      dot), dot[[\"z\"]],      x[[\"z\"]]),\n            
ua     = iff(exists(\"ua\",     dot), dot[[\"ua\"]],     x[[\"ua\"]]),\n        
    dep    = iff(exists(\"dep\",    dot), dot[[\"dep\"]],    
x[[\"depOrg\"]]),\n            z0     = iff(exists(\"z0\",     dot), 
dot[[\"z0\"]],     x[[\"z0Org\"]]),\n            na     = iff(exists(\"na\",    
 dot), dot[[\"na\"]],     x[[\"na\"]]),\n            zjoint = 
iff(exists(\"zjoint\", dot), dot[[\"zjoint\"]], x[[\"zjoint\"]]),\n            
h      = iff(exists(\"h\",      dot), dot[[\"h\"]],      x[[\"h\"]]),\n         
   za     = iff(exists(\"za\",     dot), dot[[\"za\"]],     x[[\"za\"]]),\n     
       z0sol  = iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  
x[[\"z0sol\"]]),\n            noU    = iff(exists(\"noU\",    dot), 
dot[[\"noU\"]],    x[[\"noU\"]])\n        ),\n        \"mahat\"   = 
wpLELMahat(\n            z      = iff(exists(\"z\",      dot), dot[[\"z\"]],    
  x[[\"z\"]]),\n            ua     = iff(exists(\"ua\",     dot), 
dot[[\"ua\"]],     x[[\"ua\"]]),\n            na     = iff(exists(\"na\",     
dot), dot[[\"na\"]],     x[[\"na\"]]),\n            zjoint = 
iff(exists(\"zjoint\", dot), dot[[\"zjoint\"]], x[[\"zjoint\"]]),\n            
h      = iff(exists(\"h\",      dot), dot[[\"h\"]],      x[[\"h\"]]),\n         
   za     = iff(exists(\"za\",     dot), dot[[\"za\"]],     x[[\"za\"]]),\n     
       z0sol  = iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  
x[[\"z0sol\"]]),\n            noU    = iff(exists(\"noU\",    dot), 
dot[[\"noU\"]],    x[[\"noU\"]]),\n            LAI    = iff(exists(\"LAI\",    
dot), dot[[\"LAI\"]],    x[[\"LAI\"]]),\n            y      = iff(exists(\"y\", 
     dot), dot[[\"y\"]],      x[[\"y\"]])\n        ),\n        \"LE\"      = 
wpLELLE(\n            z      = iff(exists(\"z\",     dot),  dot[[\"z\"]],      
x[[\"z\"]]),\n            ua     = iff(exists(\"ua\",    dot),  dot[[\"ua\"]],  
   x[[\"ua\"]]),\n            dep    = iff(exists(\"dep\",   dot),  
dot[[\"dep\"]],    x[[\"depOrg\"]]),\n            z0     = iff(exists(\"z0\",   
 dot),  dot[[\"z0\"]],     x[[\"z0Org\"]]),\n            na     = 
iff(exists(\"na\",    dot),  dot[[\"na\"]],     x[[\"na\"]]),\n            h    
  = iff(exists(\"h\",     dot),  dot[[\"h\"]],      x[[\"h\"]]),\n            
za     = iff(exists(\"za\",    dot),  dot[[\"za\"]],     x[[\"za\"]]),\n        
    noU    = iff(exists(\"noU\",   dot),  dot[[\"noU\"]],    x[[\"noU\"]])\n    
    ),\n        \"mahatLE\" = wpLELMahatLE(\n            z      = 
iff(exists(\"z\",      dot), dot[[\"z\"]],      x[[\"z\"]]),\n            ua    
 = iff(exists(\"ua\",     dot), dot[[\"ua\"]],     x[[\"ua\"]]),\n            
na     = iff(exists(\"na\",     dot), dot[[\"na\"]],     x[[\"na\"]]),\n        
    h      = iff(exists(\"h\",      dot), dot[[\"h\"]],      x[[\"h\"]]),\n     
       za     = iff(exists(\"za\",     dot), dot[[\"za\"]],     x[[\"za\"]]),\n 
           z0sol  = iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  
x[[\"z0sol\"]]),\n            noU    = iff(exists(\"noU\",    dot), 
dot[[\"noU\"]],    x[[\"noU\"]]),\n            LAI    = iff(exists(\"LAI\",    
dot), dot[[\"LAI\"]],    x[[\"LAI\"]]),\n            y      = iff(exists(\"y\", 
     dot), dot[[\"y\"]],      x[[\"y\"]])\n        ),\n        \"castanea\" = 
wpLELCastanea(\n            z      = iff(exists(\"z\",      dot), dot[[\"z\"]], 
     x[[\"z\"]]),\n            ua     = iff(exists(\"ua\",     dot), 
dot[[\"ua\"]],     x[[\"ua\"]]),\n            zjoint = iff(exists(\"zjoint\", 
dot), dot[[\"zjoint\"]], x[[\"zjoint\"]]),\n            h      = 
iff(exists(\"h\",      dot), dot[[\"h\"]],      x[[\"h\"]]),\n            za    
 = iff(exists(\"za\",     dot), dot[[\"za\"]],     x[[\"za\"]]),\n            
z0sol  = iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  x[[\"z0sol\"]]),\n     
       LAI    = iff(exists(\"LAI\",    dot), dot[[\"LAI\"]],    
x[[\"LAI\"]]),\n            WAI    = iff(exists(\"WAI\",    dot), 
dot[[\"WAI\"]],    x[[\"WAI\"]])\n          ),\n        \"ownFree\" = 
wpLELOwnFree(\n            z      = iff(exists(\"z\",      dot), dot[[\"z\"]],  
    x[[\"z\"]]),\n            ua     = iff(exists(\"ua\",     dot), 
dot[[\"ua\"]],     x[[\"ua\"]]),\n            h      = iff(exists(\"h\",      
dot), dot[[\"h\"]],      x[[\"h\"]]),\n            za     = iff(exists(\"za\",  
   dot), dot[[\"za\"]],     x[[\"za\"]]),\n            z0sol  = 
iff(exists(\"z0sol\",  dot), dot[[\"z0sol\"]],  x[[\"z0sol\"]]),\n            
\n            dep.a  = iff(exists(\"dep.a\",  dot), dot[[\"dep.a\"]],  
x[[\"dep.a\"]]),\n            dep.b  = iff(exists(\"dep.b\",  dot), 
dot[[\"dep.b\"]],  x[[\"dep.b\"]]),\n            dep.c  = iff(exists(\"dep.c\", 
 dot), dot[[\"dep.c\"]],  x[[\"dep.c\"]]),\n\n            z0.a  = 
iff(exists(\"z0.a\",    dot), dot[[\"z0.a\"]],   x[[\"z0.a\"]]),\n            
z0.b  = iff(exists(\"z0.b\",    dot), dot[[\"z0.b\"]],   x[[\"z0.b\"]]),\n      
      z0.c  = iff(exists(\"z0.c\",    dot), dot[[\"z0.c\"]],   
x[[\"z0.c\"]]),\n\n            na.a  = iff(exists(\"na.a\",    dot), 
dot[[\"na.a\"]],   x[[\"na.a\"]]),\n            na.b  = iff(exists(\"na.b\",    
dot), dot[[\"na.b\"]],   x[[\"na.b\"]]),\n            na.c  = 
iff(exists(\"na.c\",    dot), dot[[\"na.c\"]],   x[[\"na.c\"]]),\n\n            
zjoint.a  = iff(exists(\"zjoint.a\", dot), dot[[\"zjoint.a\"]], 
x[[\"zjoint.a\"]]),\n            zjoint.b  = iff(exists(\"zjoint.b\", dot), 
dot[[\"zjoint.b\"]], x[[\"zjoint.b\"]]),\n            zjoint.c  = 
iff(exists(\"zjoint.c\", dot), dot[[\"zjoint.c\"]], x[[\"zjoint.c\"]]),\n\n     
       noU    = iff(exists(\"noU\",    dot), dot[[\"noU\"]],    
x[[\"noU\"]]),\n            LAI    = iff(exists(\"LAI\",    dot), 
dot[[\"LAI\"]],    x[[\"LAI\"]])\n          ),\n        stop(\"No valid 
parametrization\")\n    )\n    return(u)\n}" nil) (7668 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpLEL.wpLELFit" 
wpLEL\.wpLELFit:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpLEL.wpLELFit.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Creates an \\code{wpLEL} object 
from a \\code{wpLELFit} object\n##'\n##' \n##' Creates an \\code{wpLEL} object 
from a \\code{wpLELFit} object by\n##' calling \\code{wpLELDefault()} with the 
extracted\n##' parameter.\n##' @title Log-Exp-Log wind profile\n##' @param x 
object of class \\code{wpLELFit} to be used as source\n##' for the parameter to 
ctreate the \\code{wpLEL} object\n##' @param ... additional arguments which are 
discarded\n##' @return Object of class \\code{wpLEL}.\n##' @author Rainer M. 
Krug\n##' @export\nwpLEL.wpLELFit <- function(\n    x,\n    ...\n){ \n    
return(x$wp)\n}" nil) (7695 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*plot.wpLEL" 
plot\.wpLEL:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/plot.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Plot \\code{wpLEL} object\n##'\n##' 
Generic function to plot \\code{wpLEL} object\n##' @param x object of class 
\\code{wpLEL} to be plotted\n##' @param z numeric vector at which the line 
should be calculated. If\n##' missing, \\code{x$z} will be used. the more 
points, the smoother\n##' the line.\n##' @param xlab x label\n##' @param ylab y 
label\n##' @param plotWPValues if \\code{TRUE}, the values and value lines 
are\n##' plotted\n##' @param plotWPPoints if \\code{TRUE}, the points in 
\\code{x$u; x$z}\n##' are plotted\n##' @param plotWPLines if \\code{TRUE}, the 
wind profile line is plotted\n##' @param add if \\code{TRUE}, the plot wil be 
added to an existing plot\n##' @param ... optional arguments for \\code{plot} 
method\n##' @return incisible NULL\n##' @author Rainer M. Krug\n##' 
@export\nplot.wpLEL <- function(\n    x,\n    z,\n    xlab = \"Wind Speed 
(m/s)\",\n    ylab = \"Height above ground (m)\",\n    plotWPValues = TRUE,\n   
 plotWPPoints = TRUE,\n    plotWPLines  = TRUE,\n    add = FALSE,\n    ...\n) 
{\n    if (missing(z)) {z <- x$z}\n    u <- wpLEL(x, z=z)\n    ## setup plot if 
!add\n    if (!add) {\n        plot(\n            x   = c(0, max(x$u, u$u)),\n  
          y   = c(0, max(x$z, u$z)),\n            type= \"n\",\n            
xlab = xlab,\n            ylab = ylab\n        )\n    }\n    ## plot points\n   
 points(\n        x   = x$u,\n        y   = x$z,\n        type= 
ifelse(plotWPPoints, \"p\", \"n\"),\n        ...\n    )\n    lines(\n        x 
= u$u.onlyTop,\n        y = u$z,\n        type = ifelse(plotWPLines, \"l\", 
\"n\"),\n        lty = \"dotted\",\n        col = \"blue\"\n    )\n    lines(\n 
       x = u$u,\n        y = u$z,\n        type = ifelse(plotWPLines, \"l\", 
\"n\"),\n        lty = \"solid\",\n        col = \"black\"\n    )\n    if 
(plotWPValues) {\n        mx <- par(\"usr\")[2]\n        with(\n            
x,\n            {\n                arrows(\n                    x0 = c(0, 0, 0 
,0 ,0),\n                    y0 = c(z0+dep, za, h, dep, zjoint),\n              
      x1 = c(4, 4, 4 ,4 ,4 ,4),\n                    y1 = c(z0+dep, za, h, dep, 
zjoint),\n                    length = 0,\n                    col = 
\"grey\",\n                    lty = \"dotted\"\n                )\n            
    text(mx, z0,     paste('z0',      round(z0, 2),     sep=\" = \" ), pos = 
2)\n                text(mx, za,     paste('za',      round(za, 2),     sep=\" 
= \" ), pos = 2)\n                text(mx, h,      paste('hauteur', round(h, 
2),      sep=\" = \" ), pos = 2)\n                text(mx, dep,    paste('dep', 
    round(dep, 2),    sep=\" = \" ), pos = 2)\n                text(mx, zjoint, 
paste('zjoint',  round(zjoint, 2), sep=\" = \" ), pos = 2)\n            }\n     
   )\n    }\n    invisible(NULL)\n}" nil) (7786 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*print.wpLEL" 
print\.wpLEL:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/print.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function to print 
\\code{wpLEL}\n##'\n##' This function prints a \\code{wpLEL} object\n##' @param 
x object of class \\code{wpLEL} to be printed\n##' @param ... optional 
arguments for \\code{print} method\n##' @return NULL\n##' @author Rainer M. 
Krug\n##' @export\nprint.wpLEL <- function(\n    x,\n    ...\n    ) {\n    
print.default(x)\n    invisible(x)\n}" nil) (7814 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.default.single"
 fitOptim\.wpLEL\.default\.single ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.default.single.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting 
of \\code{wpLEL} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values\n##' (\\code{u} and \\code{z}) to a \\code{link{wpLEL}} wind 
profile.\n##' @title fitOptim.wpLEL.default.single\n##' @param z height at 
which wind speeds are measured\n##' @param u wind speed at heights 
\\code{z}\n##' @param LAI Leaf Area Index\n##' @param initial Initial values 
for the parameters to be optimized\n##' over (will be passed on to the 
\\code{\\link{optim}} function as\n##' \\code{par}). The parameter are in the 
order of \\code{dep},\n##' \\code{z0}, \\code{na}, \\code{zjoint}. The default 
value is\n##' \\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param h 
constant value for \\code{h} which will be passed to the\n##' function 
\\code{wpLELDefault()}\n##' @param za constant value for \\code{za} which will 
be passed to the\n##' function \\code{wpLELDefault()}\n##' @param z0sol 
constant value for \\code{z0sol} which will be passed\n##' to the function 
\\code{wpLELDefault()}\n##' @param ... further arguments for \\code{optim}. 
These can be\n##' \\code{gr}, \\code{method}, \\code{lower, upper}, 
\\code{control} or\n##' \\code{hessian}\n##' @return object of class 
\\code{wpLELFit}. The class contains the followig elements:\n##' 
\\itemize{\n##'   \\item{\\code{method}} {name of function used for 
fitting}\n##'   \\item{\\code{initial}} {initial values for fit}\n##'   
\\item{\\code{dot}} {arguments passed as \\code{...} passed on to optimisation 
function, here \\code{\\link{optim}}}\n##'   \\item{\\code{z}} {observed 
heights}\n##'   \\item{\\code{u}} {observefd wind speed at height 
\\code{z}}\n##'   \\item{\\code{fit}} {result returned from fit, here the 
function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted wind profile 
of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.default.single <- function(\n    z,\n    u,\n    LAI,\n 
   initial = c(dep=25, z0=0.8*28,  na=9, zjoint=0.2*2),\n    h      = 28,\n    
za     = 37,\n    z0sol  = 0.001,\n    ...\n    ) {\n    ## Function to be 
minimised\n    wpLELMin <- function(par, z, u, ua, h, za, z0sol) {\n        if 
(\n            isTRUE(\n                parameterOK(\n                    z     
 = z,\n                    ua     = ua,\n                    dep    = par[1], # 
par$dep,\n                    z0     = par[2], # par$z0,\n                    
na     = par[3], # par$na,\n                    zjoint = par[4], # par$zjoint\n 
                   h      = h,\n                    za     = za,\n              
      z0sol  = z0sol\n                    )\n                )\n            ) 
{\n            p <- wpLELDefault(\n                z      = z,\n                
ua     = ua,\n                dep    = par[1], # par$dep,\n                z0   
  = par[2], # par$z0,\n                na     = par[3], # par$na,\n             
   zjoint = par[4], # par$zjoint\n                h      = h,\n                
za     = za,\n                z0sol  = z0sol,\n                check = FALSE\n  
              )\n            result <- sum( ( (p$u - u)^2 ) / length(u) )\n     
   } else {\n              result <- NA\n          }\n        return( result 
)\n    } \n\n    ua <- u[length(u)]\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.default.single\"\n    result$initial <-  initial\n    
result$dot <- list(...)\n    result$z <- z\n    result$u <- u\n    result$fit 
<- optim(\n        par = c(\n            initial[\"dep\"],\n            
initial[\"z0\"],\n            initial[\"na\"],\n            
initial[\"zjoint\"]\n            ),\n        fn    = wpLELMin,\n        z     = 
z,\n        u     = u,\n        ua    = ua,\n        h     = h,\n        za    
= za,\n        z0sol = z0sol,\n        ...\n        )\n    result$wp <- 
wpLELDefault(\n        z      = z,\n        ua     = ua,\n        dep    = 
result$fit$par[\"dep\"],\n        z0     = result$fit$par[\"z0\"],\n        na  
   = result$fit$par[\"na\"],\n        zjoint = result$fit$par[\"zjoint\"],\n    
    h      = h,\n        za     = za,\n        z0sol  = z0sol\n        )\n\n    
class(result) <- c(class(result), \"wpLELFit\")\n    return(result)\n}" nil) 
(7942 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.mahat.single"
 fitOptim\.wpLEL\.mahat\.single ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.mahat.single.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting of 
\\code{wpLEL.mahat} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values\n##' (\\code{u} and \\code{z}) to a \\code{link{wpLEL.mahat}} wind 
profile.\n##' @title fitOptim.wpLEL.mahat.single\n##' @param z height at which 
wind speeds are measured\n##' @param u wind speed at heights \\code{z}\n##' 
@param LAI Leaf area index\n##' @param h constant value for \\code{h} which 
will be passed to the\n##' function \\code{wpLELDefault()}\n##' @param za 
constant value for \\code{za} which will be passed to the\n##' function 
\\code{wpLELDefault()}\n##' @param z0sol constant value for \\code{z0sol} which 
will be passed\n##' to the function \\code{wpLELDefault()}\n##' @param initial 
Initial values for the parameters to be optimized\n##' over (will be passed on 
to the \\code{\\link{optim}} function as\n##' \\code{par}). The parameter are 
in the order of \\code{dep},\n##' \\code{z0}, \\code{na}, \\code{zjoint}. The 
default value is\n##' \\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param 
... further arguments for \\code{optim}. These can be\n##' \\code{gr}, 
\\code{method}, \\code{lower, upper}, \\code{control} or\n##' 
\\code{hessian}\n##' @return object of class \\code{wpLELFit}. The class 
contains the followig elements:\n##' \\itemize{\n##'   \\item{\\code{method}} 
{name of function used for fitting}\n##'   \\item{\\code{initial}} {initial 
values for fit}\n##'   \\item{\\code{dot}} {arguments passed as \\code{...} 
passed on to optimisation function, here \\code{\\link{optim}}}\n##'   
\\item{\\code{z}} {observed heights}\n##'   \\item{\\code{u}} {observefd wind 
speed at height \\code{z}}\n##'   \\item{\\code{fit}} {result returned from 
fit, here the function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted 
wind profile of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.mahat.single <- function(\n    z,\n    u,\n    LAI,\n   
 initial = c(na=9, zjoint=0.2*2, y=3),\n    h      = 28,\n    za     = 37,\n    
z0sol  = 0.001,\n    ...\n) {\n    wpLELMin <- function(par, z, u, ua, h, za, 
z0sol, LAI) {\n        result <- NA\n        try({\n                p <- 
wpLELMahat(\n                    z      = z,\n                    ua     = 
ua,\n                    na     = par[1], # na\n                    zjoint = 
par[2], # zjoint\n                    h      = h,\n                    za     = 
za,\n                    z0sol  = z0sol,\n                    LAI    = LAI,\n   
                 y      = par[3]  # y\n                    )\n                
result <- sum( ( (p$u - u)^2 ) / length(u) )\n            },\n            
silent = TRUE\n            )\n        return( result )\n    }\n\n    ua <- 
u[length(u)]\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.mahat.single\"\n    result$initial <-  initial\n    result$dot 
<- list(...)\n    result$z <- z\n    result$u <- u\n    result$fit <- optim(\n  
      par = c(\n            initial[\"na\"],\n            
initial[\"zjoint\"],\n            initial[\"y\"]\n        ),\n        fn    = 
wpLELMin,\n        z     = z,\n        u     = u,\n        ua    = ua,\n        
h     = h,\n        za    = za,\n        z0sol = z0sol,\n        LAI   = LAI,\n 
       ...\n    )\n    result$wp <- wpLELMahat(\n        z      = z,\n        
ua     = ua,\n        na     = result$fit$par[\"na\"],\n        zjoint = 
result$fit$par[\"zjoint\"],\n        h      = h,\n        za     = za,\n        
z0sol  = z0sol,\n        LAI    = LAI,\n        y      = 
result$fit$par[\"y\"]\n    )\n\n    class(result) <- c(class(result), 
\"wpLELFit\")\n    return(result)\n}" nil) (8053 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.LE.single"
 fitOptim\.wpLEL\.LE\.single ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.LE.single.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting of 
\\code{wpLEL} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values (\\code{u} and \\code{z}) to a \\code{link{wpLEL}} wind profile.\n##' 
@title fitOptim.wpLEL.LE.single\n##' @param z height at which wind speeds are 
measured\n##' @param u wind speed at heights \\code{z}\n##' @param LAI Leaf 
Area Index\n##' @param initial Initial values for the parameters to be 
optimized\n##' over (will be passed on to the \\code{\\link{optim}} function 
as\n##' \\code{par}). The parameter are in the order of \\code{dep},\n##' 
\\code{z0}, \\code{na}, \\code{zjoint}. The default value is\n##' 
\\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param h constant value for 
\\code{h} which will be passed to the\n##' function \\code{wpLELDefault()}\n##' 
@param za constant value for \\code{za} which will be passed to the\n##' 
function \\code{wpLELDefault()}\n##' @param ... further arguments for 
\\code{optim}. These can be\n##' \\code{gr}, \\code{method}, \\code{lower, 
upper}, \\code{control} or\n##' \\code{hessian}\n##' @return object of class 
\\code{wpLELFit}. The class contains the followig elements:\n##' 
\\itemize{\n##'   \\item{\\code{method}} {name of function used for 
fitting}\n##'   \\item{\\code{initial}} {initial values for fit}\n##'   
\\item{\\code{dot}} {arguments passed as \\code{...} passed on to optimisation 
function, here \\code{\\link{optim}}}\n##'   \\item{\\code{z}} {observed 
heights}\n##'   \\item{\\code{u}} {observefd wind speed at height 
\\code{z}}\n##'   \\item{\\code{fit}} {result returned from fit, here the 
function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted wind profile 
of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.LE.single <- function(\n    z,\n    u,\n    LAI,\n    
initial = c(dep=25, z0=0.8*28,  na=9),\n    h      = 28,\n    za     = 37,\n    
...\n) {\n    wpLELMin <- function(par, z, u, ua, h, za) {\n        result <- 
NA\n        try({\n                p <- wpLELLE(\n                    z      = 
z,\n                    ua     = ua,\n                    dep    = par[1], # 
par$dep,\n                    z0     = par[2], # par$z0,\n                    
na     = par[3], # par$na,\n                    h      = h,\n                   
 za     = za\n                    )\n                result <-  sum( ( (p$u - 
u)^2 ) / length(u) )\n            },\n            silent = TRUE\n            
)\n        return( result )\n    }\n\n    ua <- u[length(u)]\n    result <- 
list()\n    result$method <- \"fitOptim.wpLEL.LE.single\"\n    result$initial 
<-  initial\n    result$dot <- list(...)\n    result$z <- z\n    result$u <- 
u\n    result$fit <- optim(\n        par = c(\n            initial[\"dep\"],\n  
          initial[\"z0\"],\n            initial[\"na\"]\n        ),\n        fn 
    = wpLELMin,\n        z      = z,\n        u      = u,\n        ua     = 
ua,\n        h      = h,\n        za     = za,\n##        z0sol  = z0sol,\n     
   ...\n    )\n    result$wp <- wpLELLE(\n        z      = z,\n        ua     = 
ua,\n        dep    = result$fit$par[\"dep\"],\n        z0     = 
result$fit$par[\"z0\"],\n        na     = result$fit$par[\"na\"],\n        h    
  = h,\n        za     = za\n    )\n\n    class(result) <- c(class(result), 
\"wpLELFit\")\n    return(result)\n}" nil) (8157 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.mahatLE.single"
 fitOptim\.wpLEL\.mahatLE\.single ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.mahatLE.single.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting 
of \\code{wpLEL.mahatLE} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values\n##' (\\code{u} and \\code{z}) to a \\code{link{wpLEL.mahatLE}} wind 
profile.\n##' @title fitOptim.wpLEL.mahatLE.single\n##' @param z height at 
which wind speeds are measured\n##' @param u wind speed at heights 
\\code{z}\n##' @param LAI Leaf Area Index\n##' @param h constant value for 
\\code{h} which will be passed to the\n##' function \\code{wpLELDefault()}\n##' 
@param za constant value for \\code{za} which will be passed to the\n##' 
function \\code{wpLELDefault()}\n##' @param z0sol constant value for 
\\code{z0sol} which will be passed\n##' to the function 
\\code{wpLELDefault()}\n##' @param initial Initial values for the parameters to 
be optimized\n##' over (will be passed on to the \\code{\\link{optim}} function 
as\n##' \\code{par}). The parameter are in the order of \\code{dep},\n##' 
\\code{z0}, \\code{na}, \\code{zjoint}. The default value is\n##' 
\\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param ... further arguments 
for \\code{optim}. These can be\n##' \\code{gr}, \\code{method}, \\code{lower, 
upper}, \\code{control} or\n##' \\code{hessian}\n##' @return object of class 
\\code{wpLELFit}. The class contains the followig elements:\n##' 
\\itemize{\n##'   \\item{\\code{method}} {name of function used for 
fitting}\n##'   \\item{\\code{initial}} {initial values for fit}\n##'   
\\item{\\code{dot}} {arguments passed as \\code{...} passed on to optimisation 
function, here \\code{\\link{optim}}}\n##'   \\item{\\code{z}} {observed 
heights}\n##'   \\item{\\code{u}} {observefd wind speed at height 
\\code{z}}\n##'   \\item{\\code{fit}} {result returned from fit, here the 
function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted wind profile 
of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.mahatLE.single <- function(\n    z,\n    u,\n    LAI,\n 
   initial = c(na=9, y=3),\n    h      = 28,\n    za     = 37,\n    z0sol  = 
0.001,\n    ...\n) {\n    wpLELMin <- function(par, z, u, ua, h, za, z0sol, 
LAI) {\n        result <- NA\n        try({\n                p <- 
wpLELMahatLE(\n                    z      = z,\n                    ua     = 
ua,\n                    na     = par[1], # na\n                    h      = 
h,\n                    za     = za,\n                    LAI    = LAI,\n       
             y      = par[2]  # y\n                    )\n                
result <- sum( ( (p$u - u)^2 ) / length(u) )\n            },\n            
silent = TRUE\n            )\n        return( result )\n    }\n\n    ua <- 
u[length(u)]\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.mahatLE.single\"\n    result$initial <-  initial\n    
result$dot <- list(...)\n    result$z <- z\n    result$u <- u\n    result$fit 
<- optim(\n        par = c(\n            initial[\"na\"],\n            
initial[\"y\"]\n        ),\n        fn    = wpLELMin,\n        z     = z,\n     
   u     = u,\n        ua    = ua,\n        h     = h,\n        za    = za,\n   
     z0sol  = z0sol,\n        LAI   = LAI,\n        ...\n    )\n    result$wp 
<- wpLELMahatLE(\n        z      = z,\n        ua     = ua,\n        na     = 
result$fit$par[\"na\"],\n        h      = h,\n        za     = za,\n        
z0sol  = z0sol,\n        LAI    = LAI,\n        y      = 
result$fit$par[\"y\"]\n    )\n\n    class(result) <- c(class(result), 
\"wpLELFit\")\n    return(result)\n}" nil) (8264 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.castanea.single"
 fitOptim\.wpLEL\.castanea\.single ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.castanea.single.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' Fitting 
of \\code{wpLEL} to a given wind profile using the\n##' \\code{optim} 
function.\n##'\n##' The function used \\code{\\link{optim}} to fit the input 
values\n##' (\\code{u} and \\code{z}) to a \\code{link{wpLEL}} wind 
profile.\n##' @title fitOptim.wpLEL.castanea.single\n##' @param z height at 
which wind speeds are measured\n##' @param u wind speed at heights 
\\code{z}\n##' @param LAI Leaf Area Index\n##' @param initial Initial values 
for the parameters to be optimized\n##' over (will be passed on to the 
\\code{\\link{optim}} function as\n##' \\code{par}). The parameter are in the 
order of \\code{dep},\n##' \\code{z0}, \\code{na}, \\code{zjoint}. The default 
value is\n##' \\code{c(dep=10, z0=0.2, na=2, zjoint=0.5)}\n##' @param h 
constant value for \\code{h} which will be passed to the\n##' function 
\\code{wpLELDefault()}\n##' @param za constant value for \\code{za} which will 
be passed to the\n##' function \\code{wpLELDefault()}\n##' @param z0sol 
constant value for \\code{z0sol} which will be passed\n##' to the function 
\\code{wpLELDefault()}\n##' @param ... further arguments for \\code{optim}. 
These can be\n##' \\code{gr}, \\code{method}, \\code{lower, upper}, 
\\code{control} or\n##' \\code{hessian}\n##' @return object of class 
\\code{wpLELFit}. The class contains the followig elements:\n##' 
\\itemize{\n##'   \\item{\\code{method}} {name of function used for 
fitting}\n##'   \\item{\\code{initial}} {initial values for fit}\n##'   
\\item{\\code{dot}} {arguments passed as \\code{...} passed on to optimisation 
function, here \\code{\\link{optim}}}\n##'   \\item{\\code{z}} {observed 
heights}\n##'   \\item{\\code{u}} {observefd wind speed at height 
\\code{z}}\n##'   \\item{\\code{fit}} {result returned from fit, here the 
function \\code{\\link{optim}}}\n##'   \\item{\\code{wp}} {fitted wind profile 
of class \\code{wpLEL}}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.castanea.single <- function(\n    z,\n    u,\n    
LAI,\n    initial = c(zjoint=0.2*2),\n    h      = 28,\n    za     = 37,\n    
z0sol  = 0.001,\n    ...\n) {\n    wpLELMin <- function(par, z, u, ua, h, za, 
z0sol, LAI) {\n        result <- NA\n        try({\n                p <- 
wpLELCastanea(\n                    z      = z,\n                    ua     = 
ua,\n                    zjoint = par[1], # par$zjoint\n                    h   
   = h,\n                    za     = za,\n                    z0sol  = 
z0sol,\n                    LAI=LAI\n                    )\n                
result <- sum( ( (p$u - u)^2 ) / length(u) )\n            },\n            
silent = TRUE\n            )\n        return( result )\n    }\n\n    ua <- 
u[length(u)]\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.castanea.single\"\n    result$initial <-  initial\n    
result$dot <- list(...)\n    result$z <- z\n    result$u <- u\n    result$fit 
<- optim(\n        par = c(\n            initial[\"zjoint\"]\n        ),\n      
  fn    = wpLELMin,\n        z     = z,\n        u     = u,\n        ua    = 
ua,\n        h     = h,\n        za    = za,\n        z0sol = z0sol,\n        
LAI   = LAI,\n        ...\n    )\n    result$wp <- wpLELCastanea(\n        z    
  = z,\n        ua     = ua,\n        zjoint = result$fit$par[\"zjoint\"],\n    
    h      = h,\n        za     = za,\n        z0sol  = z0sol,\n        LAI    
= LAI\n    )\n\n    class(result) <- c(class(result), \"wpLELFit\")\n    
return(result)\n}" nil) (8370 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.default.multiple"
 fitOptim\.wpLEL\.default\.multiple ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.default.multiple.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' The 
function loads individual wind profiles using the function\n##' \\code{loadWS} 
and fits each one using the function\n##' \\code{FUN}. The results are stored 
in \\code{./cache}.\n##'\n##' Load all wind profiles using \\code{loadWS()} and 
fit each single\n##' one using the function provided in \\code{FUN}. Results 
are cached.\n##' @title fitOptim.wpLEL.ownFree.multiple\n##' @param wso Wind 
speed profiles in the format as read from \\code{loadWS(wide=TRUE, ...)}\n##' 
@param initial initial\n##' @param h h\n##' @param za za\n##' @param z0sol 
z0sol \n##' @param silentError sielence error message during fitting. 
Fitting\n##' is done in a \\code{try()} block so this is purely cosmetical 
and\n##' affects the verbosity.\n##' @param ... additional arguments to be 
passed on to \\code{optim()}\n##' @return an oject of class \\code{wpFit} 
containing the result of\n##' the fit.\n##' @author Rainer M. Krug\n##' 
@export\nfitOptim.wpLEL.default.multiple <- function(\n    wso,\n    initial = 
c(dep=25, z0=0.8*28,  na=9, zjoint=0.2*2),\n    h      = 28,\n    za     = 
37,\n    z0sol  = 0.001,\n    silentError = TRUE,\n    ...\n    ) {\n\n    ## 
Function to be minimised\n    minFUN <- function(\n        par,\n        ## ## 
passed in par:\n        ##    dep\n        ##     z0\n        ##     na\n       
 ## zjoint\n        ## ## passed in the other arguments:\n        z,\n        
h, za, z0sol,\n        ## the data to be fitted to\n        wsFit\n        ) 
{\n        mse <- sapply(\n            wsFit,\n            function(u) {\n      
          p <- NULL\n                try( {\n                        p <- 
wpLELDefault(\n                            z = z,\n                            
ua = u[length(u)],\n                            ##\n                            
h = h,\n                            za = za,\n                            z0sol 
= z0sol,\n                            ##  \n                            dep    
= par[1],\n                            z0     = par[2],\n                       
     na     = par[3],\n                            zjoint = par[4]\n            
                )\n                    },\n                    silent = 
silentError\n                    )\n                if (!is.null(p)) {\n        
            result <- sum( ( (p$u - u[-(1:2)])^2 ) / length(p$u) )  \n          
      } else {\n                      result <-  NA\n                  }\n      
          return( result )\n            }\n            )\n        mse <- 
mse[!is.na(mse)]\n        if (length(mse) > 0) {\n            mse <- sum( ( 
mse^2 ) / length(mse), na.rm=TRUE )\n        } else {\n              mse <- 
NA\n          }\n        return(mse)\n    }\n    \n    ## construct result 
list\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.default.multiple\"\n    result$initial <- initial\n    
result$dot <- list(...)\n    ## result$z <- z\n    ## result$u <- u\n    ## Do 
the optimisation\n    z <- as.numeric(gsub(\"h\", \"\", 
row.names(wso)[-c(1:2)]))\n    result$fit <- optim(\n        par = initial,\n   
     fn  = minFUN,\n        ##\n        z      = z,\n        h      = h,\n      
  za     = za,\n        z0sol  = z0sol,\n        ##\n        wsFit  = wso,\n    
    ...\n        )\n    ## calculate sample wind profile\n    if ( (length(z) > 
0) & (is.numeric(z)) ) {\n        z <- seq(0.1, max(z), 0.1)\n    } else {\n    
      z <- seq(0.1, 37, 0.1)\n      }\n    result$wp <- wpLELDefault(\n        
z      = z,\n        ua     = mean(wso[2,][[1]]),\n        dep    = 
result$fit$par[\"dep\"],\n        z0     = result$fit$par[\"z0\"],\n        na  
   = result$fit$par[\"na\"],\n        zjoint = result$fit$par[\"zjoint\"],\n    
    h      = h,\n        za     = za,\n        z0sol  = z0sol\n    )\n    ##\n  
  \n    class(result) <- c(class(result), \"wpLELFit\")\n    return(result)\n}" 
nil) (8502 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.mahat.multiple"
 fitOptim\.wpLEL\.mahat\.multiple ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.mahat.multiple.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' The 
function loads individual wind profiles using the function\n##' \\code{loadWS} 
and fits each one using the function\n##' \\code{FUN}. The results are stored 
in \\code{./cache}.\n##'\n##' Load all wind profiles using \\code{loadWS()} and 
fit each single\n##' one using the function provided in \\code{FUN}. Results 
are cached.\n##' @title fitOptim.wpLEL.ownFree.multiple\n##' @param wso Wind 
speed profiles in the format as read from \\code{loadWS(wide=TRUE, ...)}\n##' 
@param initial initial parameter values for fit \n##' @param h height\n##' 
@param za za\n##' @param z0sol z0sol\n##' @param silentError sielence error 
message during fitting. Fitting\n##' is done in a \\code{try()} block so this 
is purely cosmetical and\n##' affects the verbosity.\n##' @param ... additional 
values to be passed on to \\code{optim}\n##' @return an object of class 
\\code{wpFit} containing the result of\n##' the fit.\n##' @author Rainer M. 
Krug\n##' @export\nfitOptim.wpLEL.mahat.multiple <- function(\n    wso,\n    
initial = c(na=9, zjoint=0.2*2, y=3),\n    h      = 28,\n    za     = 37,\n    
z0sol  = 0.001,\n    silentError = TRUE,\n    ...\n    ) {\n    \n    ## 
Function to be minimised\n    minFUN <- function(\n        par,\n        ## ## 
passed in par:\n        ##  na\n        ##  zjoint\n        ##  y\n        ## 
## passed in the other arguments:\n        z,\n        h, za, z0sol,\n        
## the data to be fitted to\n        wsFit\n        ) {\n        mse <- 
sapply(\n            wsFit,\n            function(u) {\n                p <- 
NULL\n                try( {\n                        p <- wpLELMahat(\n        
                    z     = z,\n                            ua    = 
u[length(u)],\n                            na     = par[1],\n                   
         zjoint = par[2],\n                            h     = h,\n             
               za    = za,\n                            z0sol = z0sol,\n        
                    LAI    = u[[1]],\n                            y      = 
par[3]\n                            )\n                    },\n                 
   silent = silentError\n                    )\n                if 
(!is.null(p)) {\n                    result <- sum( ( (p$u - u[-(1:2)])^2 ) / 
length(p$u) )  \n                } else {\n                      result <-  
NA\n                  }\n                return( result )\n            }\n      
      )\n        mse <- mse[!is.na(mse)]\n        if (length(mse) > 0) {\n      
      mse <- sum( ( mse^2 ) / length(mse), na.rm=TRUE )\n        } else {\n     
         mse <- NA\n          }\n        return(mse)\n    }\n    \n    ## 
construct result list\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.mahat.multiple\"\n    result$initial <- initial\n    
result$dot <- list(...)\n    ## result$z <- z\n    ## result$u <- u\n    ## Do 
the optimisation\n    z <- as.numeric(gsub(\"h\", \"\", 
row.names(wso)[-c(1:2)]))\n    result$fit <- optim(\n        par = initial,\n   
     fn  = minFUN,\n        ##\n        z      = z,\n        h      = h,\n      
  za     = za,\n        z0sol  = z0sol,\n        ##\n        wsFit  = wso,\n    
    ...\n        )\n    ## calculate sample wind profile\n    if ( (length(z) > 
0) & (is.numeric(z)) ) {\n        z <- seq(0.1, max(z), 0.1)\n    } else {\n    
      z <- seq(0.1, 37, 0.1)\n      }\n    result$wp <- wpLELMahat(\n        z  
    = z,\n        ua     = mean(as.numeric(wso[2,])),\n        na     = 
result$fit$par[\"na\"],\n        zjoint = result$fit$par[\"zjoint\"],\n        
h      = h,\n        za     = za,\n        z0sol  = z0sol,\n        LAI    = 
mean(as.numeric(wso[1,])),\n        y      = result$fit$par[\"y\"]\n    )\n    
##\n    \n    class(result) <- c(class(result), \"wpLELFit\")\n    
return(result)\n}" nil) (8634 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*fitOptim.wpLEL.ownFree.multiple"
 fitOptim\.wpLEL\.ownFree\.multiple ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/fitOptim.wpLEL.ownFree.multiple.R") (:exports . 
"both") (:results . "replace") (:session . "*R.EnergyBalance*") (:eval . 
"never") (:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "##' The 
function loads individual wind profiles using the function\n##' \\code{loadWS} 
and fits each one using the function\n##' \\code{FUN}. The results are stored 
in \\code{./cache}.\n##'\n##' Load all wind profiles using \\code{loadWS()} and 
fit each single\n##' one using the function provided in \\code{FUN}. Results 
are cached.\n##' @title fitOptim.wpLEL.ownFree.multiple\n##' @param wso Wind 
speed profiles in the format as read from \\code{loadWS(wide=TRUE, ...)}\n##' 
@param initial initial parameter values for \\code{optim()}\n##' @param z0 
z0\n##' @param na na\n##' @param zjoint zjoint \n##' @param h h\n##' @param za 
za\n##' @param z0sol z0sol\n##' @param silentError sielence error message 
during fitting. Fitting\n##' is done in a \\code{try()} block so this is purely 
cosmetical and\n##' affects the verbosity.\n##' @param ... additional 
argumaents to be passed to \\code{optim}\n##' @return an oject of class 
\\code{wpFit} containing the result of\n##' the fit.\n##' @author Rainer M. 
Krug\n##' @export\nfitOptim.wpLEL.ownFree.multiple <- function(\n    wso,\n    
initial = unlist(\n        list(\n            dep    = c(a=0.5,  b=0.02, 
c=-2),\n            z0     = c(a=0.23, b=0.25, c=10),\n            na     = 
c(a=0.23, b=0.25, c=10),\n            zjoint = c(a=0.23, b=0.25, c=10)\n        
    )\n        ),\n    h      = 28,\n    za     = 37,\n    z0sol  = 0.001,\n    
silentError = TRUE,\n    ...\n    ) {\n\n    ## Function to be minimised\n    
minFUN <- function(\n        par,\n        ## ## passed in par:\n        ##    
dep.a,    dep.b,    dep.c,\n        ##     z0.a,     z0.b,     z0.c,\n        
##     na.a,     na.b,     na.c,\n        ## zjoint.a, zjoint.b, zjoint.c,\n    
    ## ## passed in the other arguments:\n        z,\n        h, za, z0sol,\n   
     ## the data to be fitted to\n        wsFit\n        ) {\n        mse <- 
sapply(\n            wsFit,\n            function(u) {\n                p <- 
NULL\n                try( {\n                        p <- wpLELOwnFree(\n      
                      z = z,\n                            ua = u[length(u)],\n  
                          ##\n                            h = h,\n              
              za = za,\n                            z0sol = z0sol,\n            
                ##  .a       .b       .c\n                            dep.a =   
 par[ 1],    dep.b = par[ 2],    dep.c = par[ 3],\n                            
z0.a =     par[ 4],     z0.b = par[ 5],     z0.c = par[ 6],\n                   
         na.a =     par[ 7],     na.b = par[ 8],     na.c = par[ 9],\n          
                  zjoint.a = par[10], zjoint.b = par[11], zjoint.c = par[12],\n 
                           LAI = u[[1]]\n                            )\n        
            },\n                    silent = silentError\n                    
)\n                if (!is.null(p)) {\n                    result <- sum( ( 
(p$u - u[-(1:2)])^2 ) / length(p$u) )  \n                } else {\n             
         result <-  NA\n                  }\n                return( result )\n 
           }\n            )\n        ## maxMse <- quantile(mse, probs=c(0, (1 - 
exclHighMseProp), 0.5, 1))\n        ## mse <- mse[mse <= maxMse[2]]\n        
mse <- mse[!is.na(mse)]\n        if (length(mse) > 0) {\n            mse <- 
sum( ( mse^2 ) / length(mse), na.rm=TRUE )\n        } else {\n              mse 
<- NA\n          }\n        ## print(mse)\n        return(mse)\n    }\n    \n   
 ## construct result list\n    result <- list()\n    result$method <- 
\"fitOptim.wpLEL.ownFree.multiple\"\n    result$initial <- initial\n    
result$dot <- list(...)\n    result$wpLELParameter <- list(\n        h      = 
h,\n        za     = za,\n        z0sol  = z0sol\n        )\n    ## result$z <- 
z\n    ## result$u <- u\n    ## Do the optimisation\n    z <- 
as.numeric(gsub(\"h\", \"\", row.names(wso)[-c(1:2)]))\n    result$fit <- 
optim(\n        par = initial,\n        fn  = minFUN,\n        ##\n        z    
  = z,\n        h      = h,\n        za     = za,\n        z0sol  = z0sol,\n    
    ##\n        wsFit  = wso,\n        ...\n        )\n    ## calculate sample 
wind profile\n    if ( (length(z) > 0) & (is.numeric(z)) ) {\n        z <- 
seq(0.1, max(z), 0.1)\n    } else {\n          z <- seq(0.1, 37, 0.1)\n      
}\n    \n    class(result) <- c(class(result), \"wpLELFit\")\n    
return(result)\n}" nil) (8772 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*Goodness%20of%20fit%20for%20wpLELFit"
 Goodness\ of\ fit\ for\ wpLELFit:1 ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/gof.wpLELfit.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Calculate goodnes of fit of fit 
compared to object of class \\code{wpLELFit}\n##'\n##' Uses gofFun to calculate 
the goodnes of fit between \\code{fit} and\n##' the observed wind profile 
\\code{wp}\n##' \n##' @title gof.wpLELfit\n##' @param fit fit of the wind 
profile of the type \\code{wpLELFit}\n##' @param wp wind profile as returned in 
the wide format of \\code{loadWS}\n##' @param gofFun function returning the 
goodnes of fit.\n##' @param silentError sielence error message during fitting. 
Fitting\n##' is done in a \\code{try()} block so this is purely cosmetical 
and\n##' affects the verbosity.\n##' This function accepts the two argumentsa 
\\code{obs, exp}.\n##' These can be assumed of being of the same length. An 
example is the =default function:\n##' \n##'  \\code{ function(obs, exp){ sum( 
( (exp - obs)^2 ) / length(obs) ) } }\n##' \n##' @return vector of the goodnes 
of fit values, one per row in \\code{wp}\n##' @author Rainer M. Krug\n##' 
@export\ngof.wpLELFit <- function(\n    fit,\n    wp,\n    gofFun = 
function(obs, exp){ sum( ( (exp - obs)^2 ) / length(obs), na.rm=TRUE ) },\n    
silentError = TRUE\n    ) {\n    gofs <- sapply(\n        1:nrow(wp),\n        
function(i) {\n            o <- dfFromLong(wp[i,])\n            
names(o)[ncol(o)] <- \"ws\"\n            gof <- NA\n            try( {\n        
            e <- wpLEL(\n                        fit$wp,\n                      
  z   = o$z,\n                        ua  = wp[i, \"ua\"],\n                    
    LAI = wp[i,\"lai\"]\n                        )\n                    gof <- 
gofFun(\n                        obs = o$ws,\n                        exp = 
e$u\n                        )\n                    gof\n                },\n   
             silent = silentError\n                )\n            
return(gof)\n\n        }\n        )\n}" nil) (8832 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*plot.wpLELFit" 
plot\.wpLELFit:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/plot.wpLELFit.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function to plot 
\\code{wpLELFit}\n##'\n##' This function a \\code{wpLELFit} object by plotting 
the fitted line\n##' smoothly and adding the original points to the graph.\n##' 
@param x object of class \\code{wpLELFit} to be plotted \n##' @param z numeric 
vector at which the line should be calculated. If\n##' missing, \\code{x$z} 
will be used. the more points, the smoother\n##' the line.\n##' @param 
plotWPValues if \\code{TRUE}, the values and value lines are\n##' drawn\n##' 
@param plotWPLines if \\code{TRUE}, the lines of the profile are drawn\n##' 
@param plotOrgPoints if \\code{TRUE}, the original points are drawn\n##' @param 
add if \\code{TRUE}, the plot wil be added to an existing plot\n##' @param ... 
additional arguments for plotting the \\bold{original} points of the fit using 
the \\code{poiunts} function\n##' are plotted\n##' @return NULL\n##' @author 
Rainer M. Krug\n##' @export\nplot.wpLELFit <- function(\n    x,\n    z,\n    
plotWPValues = TRUE,\n    plotWPLines  = TRUE,\n    plotOrgPoints = TRUE,\n    
add = FALSE,\n    ...\n    ) {\n    xu <- x$wp\n    ## plot values (dep, ...)\n 
   plot.wpLEL(\n        xu,\n        z,\n        plotWPValues = plotWPValues,\n 
       plotWPPoints = FALSE,\n        plotWPLines  = FALSE,\n        add = 
add\n        )\n    ## plot fitted lines \n    plot.wpLEL(\n        xu,\n       
 z,\n        plotWPValues = FALSE,\n        plotWPPoints = FALSE,\n        
plotWPLines  = plotWPLines,\n        add = TRUE\n        )\n    ## plot 
original points    \n    points(\n        x$u,\n        x$z,\n        type = 
ifelse(plotOrgPoints, \"p\", \"n\"),\n        ...\n        )\n}" nil) (8890 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*print.wpLELFit" 
print\.wpLELFit:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/print.wpLELFit.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function to print 
\\code{wpLELFit}\n##'\n##' This function prints a \\code{wpLELFit} object\n##' 
@param x object of class \\code{wpLELFit} to be printed\n##' @param ... 
optional arguments for \\code{print} method\n##' @return NULL\n##' @author 
Rainer M. Krug\n##' @export\nprint.wpLELFit <- function(\n    x,\n    ...\n    
) {\n    print.default(x)\n    invisible(x)\n}" nil) (8920 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpFitEach" 
wpFitEach ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpFitEach.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' The function loads individual wind 
profiles using the function\n##' \\code{loadWS} and fits each one using the 
function\n##' \\code{FUN}. The results are stored in \\code{./cache}.\n##'\n##' 
Load all wind profiles using \\code{loadWS()} and fit each single\n##' one 
using the function provided in \\code{FUN}. Results are cached.\n##' @title 
wpLELFitEach\n##' @param new if \\code{TRUE} the cache is re-created - if\n##' 
\\code{FALSE} the results are read from the cache.\n##' @param suffix suffix 
for cache\n##' @param FUN name of the function to be used for fitting. It has 
to\n##' take the arguments \\code{z} and \\code{u}, but can also take\n##' 
additional arguments.\n##' @param cores number of cores to be used for analysis 
- defaults to the number of cores mius one, but is at least 1.\n##' @param 
minSpeedIncreaseWide minimum wind speed difference - see \\link{loadWS} for 
details\n##' @param maxWindSpeedWide maximum wind speed - see \\link{loadWS} 
for details\n##' @param maxWindSpeedOneWide standardise highest sampled wind 
speed to one - see \\link{loadWS} for details\n##' @param WAI Wood Area Index, 
argument \\code{WAI} of function\n##' \\code{loadWS()}. Will be added to lai 
from raw data.\n##' @param selectWPFit a function returning \\bold{a vector} 
where each\n##' element represents the indices of loaded wind profiles which 
will\n##' be used for fitting the parameter. The function takes one value,\n##' 
i.e. \\code{wso} which is the \\code{data.frame} of the loaded wind\n##' 
profiles, as returned by the function\n##'\n##' code{\n##'           wso <- 
loadWS(\n##'              wide         = TRUE,\n##'              onlyComplete = 
TRUE,\n##'              minSpeedIncreaseWide,\n##'              
maxWindSpeedWide,\n##'              maxWindSpeedOneWide,\n##'              WAI 
= WAI\n##'              )\n##' }\n##'\n##' Examples are:\n##'\n##' 
\\code{selectWPFit = function(wso){TRUE}}\n##'\n##' which would select all 
elements in \\code{wso}.This is the default.\n##' \n##' \\code{selectWPFit = 
function(wso){sample(1:nrow(wso), 100)}}\n##' \n##' which would create vector 
of 100 randomly selected wind profiles\n##' \\bold{selected} for fitting 
or\n##'\n##' \\code{selectWPFit = function(wso){-sample(1:nrow(wso), 
500)}}\n##'\n##' which would create vector of 500 randomly selected wind 
profiles\n##' \\bold{excluded} from fitting\n##'\n##' @param ... additional 
arguments passed to FUN\n##' @return an oject of class \\code{wpLELFitList} 
(i.e. \\code{list}) of\n##' the length of the number wind profiles to fit. Each 
element\n##' contains the result of an individual fit.\n##' @author Rainer M. 
Krug\n##' @export\nwpFitEach <- function(\n    new = FALSE,\n    suffix = 
\"\",\n    FUN = \"wpLEFitSingle\",\n    cores = detectCores() - 1,\n    
minSpeedIncreaseWide = 0,\n    maxWindSpeedWide = 10,\n    maxWindSpeedOneWide 
= FALSE,\n    WAI = 0,\n    selectWPFit = function(wso) { TRUE },\n    ...\n    
) {\n    if (cores==0) {\n        cores <- 1\n    }\n    fn <- paste0(CACHE, 
\"/wpFitEach.\", FUN, suffix, \".rds\")\n    FUN <- get(FUN)\n    if (new) {\n  
      unlink(fn)\n    }\n    if (file.exists(fn)) {\n        dat <- 
readRDS(fn)\n    } else {\n          ## Load wind priofile data\n          wso 
<- loadWS(\n              wide         = TRUE,\n              onlyComplete = 
TRUE,\n              minSpeedIncreaseWide,\n              maxWindSpeedWide,\n   
           maxWindSpeedOneWide,\n              WAI = WAI\n              )\n     
     \n          ## #################################\n          ## From now 
on, LAI (later u[[1]]) is LAI = LAI + WAI)\n          ## 
#################################\n\n          ## Get indices for fitting. Must 
only be done once as the\n          ## functions might contain random number 
generation!\n          indFit <- selectWPFit(wso)\n\n          ## Save 
\"metadata\"\n          ## construct result list\n          md <- list()\n      
    md$method <- \"wpFitEach\"\n          md$FUN <- FUN\n          
md$loadWSParm <- list(\n              minSpeedIncreaseWide = 
minSpeedIncreaseWide,\n              maxWindSpeedWide = maxWindSpeedWide,\n     
         maxWindSpeedOneWide = maxWindSpeedOneWide,\n              WAI = WAI\n  
            )\n          md$selectWPFit <- list(\n              fun = 
selectWPFit,\n              indices = indFit\n              )\n          md$dot 
<- list(...)\n          saveRDS(md, paste0(fn, \".metadata.rds\"))\n          
\n          z <- dfFromLong(wso[1,])$z        \n          ws <- 
wso[,grep(\"^h[[:digit:]]\", names(wso))]\n          ws <- cbind(ua=wso$ua, 
ws)\n          ws <- cbind(lai=wso$lai, ws)\n          ws <- 
as.data.frame(t(ws))\n         \n          ##\n          i <- 0\n          no 
<- ceiling(ncol(ws) / cores)\n          dat <- mclapply(\n              
ws[,indFit],\n              function(u) {\n                  f <- FUN(\n        
              z = z,\n                      u = u[-(1:2)],\n                    
  LAI = u[1],\n                      ...\n                      )\n             
     if (!is.null(f)) {\n                      f$lai <- u[1]\n                  
    f$ua <- u[2]\n                  }\n                  i <<- i + 1\n          
        if (round(i, -2)==i){\n                      cat(i, \"\\tof about\\t\", 
no, \"\\r\")\n                  }\n                  return(f)\n              
},\n              mc.cores = cores\n              )\n          class(dat) <- 
c(\"wpLELFitList\", class(dat))\n          saveRDS(dat, fn)\n      }\n    if 
(!(\"wpLELFitList\" %in% class(dat))) {\n        class(dat) <- 
c(\"wpLELFitList\", class(dat))\n    }\n    return(dat)\n}" nil) (9085 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*wpFitMultiple" 
wpFitMultiple ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/wpFitMultiple.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' The function loads individual wind 
profiles using the function\n##' \\code{loadWS} and fits each one using the 
function\n##' \\code{FUN}. The results are stored in \\code{./cache}.\n##'\n##' 
Load all wind profiles using \\code{loadWS()} and fit each single\n##' one 
using the function provided in \\code{FUN}. Results are cached.\n##' @title 
wpLELFitEach\n##' @param new if \\code{TRUE} the cache is re-created - if\n##' 
\\code{FALSE} the results are read from the cache.\n##' @param suffix suffix 
for cache\n##' @param FUN Name of function to be used for fitting TODO\n##' 
@param cores number of cores to be used for analysis - defaults to the number 
of cores mius one, but is at least 1.\n##' @param minSpeedIncreaseWide minimum 
wind speed difference - see \\link{loadWS} for details\n##' @param 
maxWindSpeedWide maximum wind speed - see \\link{loadWS} for details\n##' 
@param maxWindSpeedOneWide standardise highest sampled wind speed to one - see 
\\link{loadWS} for details\n##' @param WAI Wood Area Index, argument 
\\code{WAI} of function\n##' \\code{loadWS()}. Will be added to lai from raw 
data.\n##' @param minUstar minimum value of ustar for wind profiles to be\n##' 
included. Values smaller than 0 will include all wind profiles.\n##' @param 
selectWPFit a function returning \\bold{a list} where each\n##' element of the 
list represents the indices of loaded wind profiles\n##' which will be used for 
fitting the parameter. The function takes\n##' one value, i.e. \\code{wso} 
which is the \\code{data.frame} of the\n##' loaded wind profiles, as returned 
by the function\n##'\n##' code{\n##'           wso <- loadWS(\n##'              
wide         = TRUE,\n##'              onlyComplete = TRUE,\n##'              
minSpeedIncreaseWide,\n##'              maxWindSpeedWide,\n##'              
maxWindSpeedOneWide,\n##'              WAI = WAI\n##'              )\n##' 
}\n##'\n##' An exapmle is\n##'\n##' \\code{selectWPFit = 
function(wso){lapply(1:5, function(x){sample(1:nrow(wso), 100)})}}\n##' \n##' 
which would create a list of 5 elements where each consists of 100\n##' 
randomly selected wind profiles \\bold{selected} for fitting or\n##'\n##' 
\\code{selectWPFit = function(wso){lapply(1:10, 
function(x){-sample(1:nrow(wso), 500)})}}\n##'\n##' which would create a list 
of 10 elements where each consists of 500\n##' randomly selected wind profiles 
\\bold{excluded} from fitting\n##'\n##' @param ... additional parameter passed 
to FUN ( mainly for the function \\code{optim()} )\n##' @return an oject of 
class \\code{wpLELFitList} (i.e. \\code{list}) of\n##' the length of the number 
wind profiles to fit. Each element\n##' contains the result of an individual 
fit.\n##' @author Rainer M. Krug\n##' @export\nwpFitMultiple <- function(\n    
new = FALSE,\n    suffix = \"\",\n    FUN = 
\"fitOptim.wpLEL.ownFree.multiple\",\n    cores = detectCores() - 1,\n    
minSpeedIncreaseWide = 0,\n    maxWindSpeedWide = 10,\n    maxWindSpeedOneWide 
= FALSE,\n    minUstar = 0.25,\n    WAI = 0,\n    selectWPFit = function(wso) { 
lapply(1:5, function(x){sample(1:nrow(wso), 100)}) },\n    ...\n    ) {\n    if 
(cores==0) {\n        cores <- 1\n    }\n    fn <- paste0(CACHE, 
\"/wpFitMultiple.\", FUN, suffix, \".rds\")\n    FUN <- get(FUN)\n    if (new) 
{\n        unlink(fn)\n    }\n    if (file.exists(fn)) {\n        dat <- 
readRDS(fn)\n    } else {\n\n          ## Load Wind Profiles\n          wso <- 
loadWS(\n              wide         = TRUE,\n              onlyComplete = 
TRUE,\n              minSpeedIncreaseWide = minSpeedIncreaseWide,\n             
 maxWindSpeedWide = maxWindSpeedWide,\n              maxWindSpeedOneWide = 
maxWindSpeedOneWide,\n              minUstar = minUstar,\n              WAI = 
WAI\n              )\n          \n          ## 
#################################\n          ## From now on, LAI (later u[[1]]) 
is LAI = LAI + WAI)\n          ## #################################\n\n         
 ## Get indices for fitting. Must only be done once as the\n          ## 
functions might contain random number generation!\n          indFit <- 
selectWPFit(wso)\n\n          ## Save \"metadata\"\n          ## construct 
result list\n          md <- list()\n          md$method <- \"wpFitMultiple\"\n 
         md$FUN <- FUN\n          md$loadWSParm <- list(\n              
minSpeedIncreaseWide = minSpeedIncreaseWide,\n              maxWindSpeedWide = 
maxWindSpeedWide,\n              maxWindSpeedOneWide = maxWindSpeedOneWide,\n   
           minUstar = minUstar,\n              WAI = WAI\n              )\n     
     md$selectWPFit <- list(\n              fun = selectWPFit,\n              
indices = indFit\n              )\n          md$dot <- list(...)\n          
saveRDS(md, paste0(fn, \".metadata.rds\"))\n          \n          ## Format the 
data\n          z <- dfFromLong(wso[1,])$z        \n          ws <- 
wso[,grep(\"^h[[:digit:]]\", names(wso))]\n          ws <- cbind(ua=wso$ua, 
ws)\n          ws <- cbind(lai=wso$lai, ws)\n          ws <- 
as.data.frame(t(ws))\n\n          ## Do the fitting\n          i <- 0\n         
 no <- ceiling(ncol(ws) / cores)\n          dat <- mclapply(\n              
indFit,\n              function(s) {\n                  f <- FUN(\n             
         wso = ws[,s],\n                      ...\n                      )\n    
              i <<- i + 1\n                  if (round(i, -2)==i){\n            
          cat(i, \"\\tof about\\t\", no, \"\\r\")\n                  }\n        
          return(f)\n              },\n              mc.cores = cores\n         
     )\n          class(dat) <- c(\"wpLELFitList\", class(dat))\n          
saveRDS(dat, fn)\n      }\n    if (!(\"wpLELFitList\" %in% class(dat))) {\n     
   class(dat) <- c(\"wpLELFitList\", class(dat))\n    }\n    return(dat)\n}" 
nil) (9242 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*plot.wpLELFitList" 
plot\.wpLELFitList:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/plot.wpLELFitList.R") (:exports . "both") (:results 
. "replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . 
"yes") (:tangle-mode . 292) (:hlines . "no")) "##' Generic function to plot 
\\code{wpLELFitList}\n##'\n##' This function plots an \\code{wpLELFitList} 
object by plotting the\n##' lines of each fit on each other. The indices can be 
specified by\n##' using y.\n##' @param x object of class \\code{wpLELFitList} 
to be plotted \n##' @param y default \\code{NULL}; numeric vector of indices 
specifying\n##' the fits in \\code{x} to be plotted. If \\code{NULL} all will 
be plotted.\n##' @param ... optional arguments for \\code{plot} method\n##' 
@return NULL\n##' @author Rainer M. Krug\n##' @export\nplot.wpLELFitList <- 
function(\n    x,\n    y = NULL,\n    ...\n    ) {\n    if (is.null(y)) {\n     
   y <-  1:length(x)\n    }\n    plot(\n        x[[1]],\n        add = FALSE,\n 
       ...\n        )\n    ##\n    for (i in y[-1]) {\n        plot(\n          
  x[[i]],\n            add = TRUE,\n            ...\n            )\n    }\n    
invisible()\n}" nil) (9283 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*print.wpLELFitList"
 print\.wpLELFitList:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/print.wpLELFitList.R") (:exports . "both") (:results 
. "replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . 
"yes") (:tangle-mode . 292) (:hlines . "no")) "##' Generic function to print 
\\code{wpLELFitList}\n##'\n##' This function prints a \\code{wpLELFitList} 
object\n##' @param x object of class \\code{wpLELFitList} to be printed\n##' 
@param ... optional arguments for \\code{print} method\n##' @return NULL\n##' 
@author Rainer M. Krug\n##' @export\nprint.wpLELFitList <- function(\n    x,\n  
  ...\n) {\n    cat( \"Number of fits: \" )\n    cat(length(x), \"\\n\")\n    
invisible(x)\n}" nil) (9311 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*airRest%20Generic%20function%20definition"
 airRest\ Generic\ function\ definition:1 ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/airRest.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "airRest <- function(x, zsource) 
UseMethod(\"airRest\")" nil) (9318 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*airRest.wpLEL" 
airRest\.wpLEL ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/airRest.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Generic function for 
\\code{airRest} to calculate aerial resistance\n##'\n##' Calculate aerial 
resistance based on \\code{wpLEL} object\n##' @param x object of class 
\\code{wpLEL}\n##' @param zsource if \\code{NULL} (default), \\code{zsource = 
z0 + dep}, unless the numerical value\n##' @return object of class 
\\code{airRest}.\n##' This object contains the following elements:\n##' 
\\itemize{\n##'   \\item{method} : {the method used to generate the aerial 
profile (the name of this function)}\n##'   \\item{wp}  : {the wind profile on 
which the aerial resistance is based}\n##'   \\item{I1}  : {aerial resistance 
top log profile}\n##'   \\item{I2}  : {aerial resistance from h to 
zsource}\n##'   \\item{I3}  : {aerial resistance for exp profile}\n##'   
\\item{I4}  : {aerial resistance lower exp profile}\n##'   \\item{ras} : 
{aerial resistance from z0sol to top}\n##'   \\item{rac} : {aerial resistance 
from zsource to za}\n##' }\n##' @author Rainer M. Krug\n##' 
@export\nairRest.wpLEL <- function(\n    x,\n    zsource = NULL\n) {\n    ## 
resistance top log profile\n    ## LEL - from za (very top) to dep (above 
canopy, log profile)\n    ## LE  - from za (very top) to dep (above canopy, log 
profile)\n    I1 <- 1 / (x$vk*x$ustar) * log( (x$za-x$dep)/(x$h-x$dep) )\n\n    
## resistance for exp profile\n    ## LEL - from dep to zjoint (into canopy, 
exp profile)\n    ## LE  - from dep to z0sol (into canopy, exp profile)\n    if 
(x$zjoint == 0) {\n        ## log-exp profile\n        I3 <- ( 1 / 
(x$vk*x$ustar) ) * ( x$h/(x$na*(x$h-x$dep)) ) * ( exp( x$na * (1 - x$z0sol/x$h) 
) - 1 )\n    } else {\n        ## log-exp-log profile\n        I3 <- ( 1 / 
(x$vk*x$ustar) ) * ( x$h/(x$na*(x$h-x$dep)) ) * ( exp( x$na * (1 - 
x$zjoint/x$h) ) - 1 )\n    }\n\n    ## resistance lower exp profile\n    ## LEL 
- from zjoint to z0sol\n    ## LE  - 0\n    if (x$zjoint == 0) {\n        ## 
log-exp profile\n        I4 <- 0\n    } else {\n        ## log-exp-log 
profile\n        I4 <- 1 / (x$vk*x$ustarsol) * log( x$zjoint/x$z0sol )\n    }\n 
   ##\n\n    ## resistance from z0sol to za\n    ras = I1 + I3 + I4\n\n\n    ## 
resistance from h to zsource (into canopy, exp profile or exp-log profile 
depending if zsource > zjoint or not)\n    ## LEL (zsource > zjoint) - exp 
profile\n    ## LEL (zsource < zjoint) - exp & log profile\n    ## LE  - exp 
profile\n    if (is.null(zsource)) {\n        zsource <- x$z0 + x$dep   \n    
}\n    if (x$zjoint==0) {\n        ## log-exp profile\n        I2 <- ( 1 / 
(x$vk*x$ustar) ) * ( x$h/(x$na*(x$h-x$dep)) ) * ( exp(x$na*(1 - zsource/x$h)) - 
1 )\n    } else {\n        ## log-exp-log profile\n        if (zsource < 
x$zjoint) {# never happen\n            I2_1 <- ( 1/(x$vk*x$ustar)    ) * ( 
x$h/(x$na*(x$h-x$dep)) ) * ( exp(x$na*(1 - x$zjoint/x$h)) - 1 )\n            
I2_2 <- ( 1/(x$vk*x$ustarsol) ) * ( log(x$zjoint/zsource) )\n            I2 <- 
I2_1 + I2_2\n        } else {\n            I2 <- ( 1 / (x$vk*x$ustar) ) * ( 
x$h/(x$na*(x$h-x$dep)) ) * ( exp(x$na*(1- (zsource)/x$h)) - 1 )\n        }\n    
}\n    ##\n    ## resistance from zsource to za\n    rac <- I1 + I2\n\n    ar 
<- list()\n    ar$method <- \"airRest.wpLEL\"\n    ar$wp <- x\n    ar$I1 <- 
I1\n    ar$I2 <- I2\n    ar$I3 <- I3\n    ar$I4 <- I4\n    ar$ras <- ras\n    
ar$rac <- rac\n    class(ar) <- \"airRest\"\n    return(ar)\n}" nil) (9414 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*plot.arLEL" 
plot\.arLEL:1 ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/plot.arLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "plot.arLEL <- function(\n    x,\n    
plotWPPoints = TRUE,\n    plotWPValues = TRUE,\n    plotARValues = TRUE,\n    
...\n) {\n    plot.wpLEL(\n        x,\n        plotWPPoints = plotWPPoints,\n   
     plotWPValues = plotWPValues,\n        ...\n    )\n    if (plotARValues) 
{\n        mx <- par(\"usr\")[2]\n        with(\n            x,\n            
{\n                ## arrows(\n                ##     x0 = c(0, 0, 0 ,0 ,0 
,0),\n                ##     y0 = c(z0+dep, za, h, hsource, dep, zjoint),\n     
           ##     x1 = c(4, 4, 4 ,4 ,4 ,4),\n                ##     y1 = 
c(z0+dep, za, h, hsource, dep, zjoint),\n                ##     length = 0,\n   
             ##     col = \"grey\",\n                ##     lty = \"dotted\"\n  
              ## )\n                \n                \n                
text(mx*0.4,  (za+h)/2.,      paste(\"R1=\", round(R1, 2)                       
               ) )\n                text(mx*0.65, (z0h+dep+h)/2., 
paste(\"R2z0h=\", round(R2z0h, 2), \"R2z0=\", round(R2z0, 2)       ) )\n        
        text(mx*0.6,  (z0+h)/2.,      paste(\"R3=\", round(R3, 2)               
                       ) )\n                text(mx*0.6,  (2*z0+h)/3.,    
paste(\"R4log=\", round(R4log, 2), \"R4exp=\", round(R4exp, 2)     ) )\n        
        text(mx*0.5,  2,              paste(\"racz0h=\", round(racz0h, 2), 
\"racz0=\", round(racz0, 2)   ) )\n                text(mx*0.5,  1,             
 paste(\"raslog=\", round(raslog, 2), \"rasexp=\", round(rasexp, 2) ) )\n       
     }\n        )\n    }\n    invisible(NULL)\n}" nil) (9464 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*evapoTrans%20Generic%20function%20definition"
 evapoTrans\ Generic\ function\ definition:1 ((:colname-names) (:rowname-names) 
(:result-params "replace") (:result-type . value) (:comments . "link") 
(:shebang . "") (:cache . "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/evapoTrans.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "evapoTrans <- function(x) 
UseMethod(\"evapoTrans\")" nil) (9471 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*evapoTrans.default"
 evapoTrans\.default:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/evapoTrans.default.R") (:exports . "both") (:results 
. "replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . 
"yes") (:tangle-mode . 292) (:hlines . "no")) "evapoTrans.default <- 
function(\n    ras,\n    rac,\n    Ta     = 20,\n    frach  = 1,\n    Rnhsol = 
600,\n    RH     = 50, # deltae = 5,\n    gsol   = 0.001\n) {\n    ## mb 
(Monteith, 1990)\n    es     <- 6.1078 * exp( 17.269 * Ta/(Ta+ 237.3) ) # mb\n  
  ea     <- es * RH/100\n    deltae <- es - ea\n    Landah <- -2.37273 * Ta + 
2501                    # J.g-1\n    Cph    <- 1.01                             
       # J.g-1.degreeC-1\n    Rauh   <- -4.111 * Ta + 1289.764                  
# g/m3\n    Psyh   <- Rauh * Cph * 8.31 * (Ta + 273.15) / (100*18*Landah)  #  
mb.degreeC-1\n    deltah <- Landah * 18 * es / ( 8.31 * (Ta + 273.15)^2 )       
 #  mb.degreetC-1 Monteith p.10\n    \n    ##  ETR du sol\n    ETRhrsol <- 
frach * 3.6 *\n        (deltah * Rnhsol) /\n            (Landah * (deltah + 
Psyh * (1 + 1/(gsol * ras) )))\n    ETRhcsol <- frach * 3.6 *\n        (Rauh * 
Cph * deltae/ras) /\n            (Landah * (deltah + Psyh * (1 + 1/(gsol * ras) 
)))\n    ETRhsol  <- ETRhrsol+ETRhcsol\n\n    ##  ETP couvert\n    ETPch    <- 
frach * 3.6 *\n        (Rauh * Cph * deltae / rac) /\n            ( Landah * 
(deltah + Psyh) )\n    etp <- list(\n        etrHrsol = ETRhrsol,\n        
etrHcsol = ETRhcsol,\n        etrHsol  = ETRhsol,\n        etpCh    = ETPch\n   
 )\n    etp$input <- list(\n        ras    = ras,\n        rac    = rac,\n      
  Ta     = Ta,\n        frach  = frach,\n        Rnhsol = Rnhsol,\n        RH   
  = RH,\n        gsol   = gsol\n    )\n    class(etp) <- c(\"evapoTrans\", 
\"list\")\n    attr(etp, \"method\") <- \"default\"\n    return( etp )\n}" nil) 
(9530 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*evapoTrans.airRest"
 evapoTrans\.airRest:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/evapoTrans.airRest.R") (:exports . "both") (:results 
. "replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . 
"yes") (:tangle-mode . 292) (:hlines . "no")) "evapoTrans.airRest <- 
function(\n    x,\n    Ta     = 20,\n    frach  = 1,\n    Rnhsol = 600,\n    RH 
    = 50, # deltae = 5,\n    gsol   = 0.001\n) {\n    etp <- 
evapoTrans.default(\n        ras    = x$ras,\n        rac    = x$rac,\n        
Ta     = Ta,\n        frach  = frach,\n        Rnhsol = Rnhsol,\n        RH     
= RH,\n        gsol   = gsol\n    )\n    etp$input$airRest <- x\n    attr(etp, 
\"method\") <- \"airRest\"\n    return( etp )\n}" nil) (9559 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*evapoTrans.wpLEL" 
evapoTrans\.wpLEL:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/evapoTrans.wpLEL.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "evapoTrans.wpLEL <- function(\n    x,\n 
   Ta     = 20,\n    frach  = 1,\n    Rnhsol = 600,\n    RH     = 50, # deltae 
= 5,\n    gsol   = 0.001\n) {\n    etp <- evapoTrans.airRest(\n        x      = 
airRest(x),\n        Ta     = Ta,\n        frach  = frach,\n        Rnhsol = 
Rnhsol,\n        RH     = RH,\n        gsol   = gsol\n    )\n    attr(etp, 
\"method\") <- \"wpLEL\"\n    return( etp )\n}" nil) (9588 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*lhc.etp.R" 
lhc\.etp ((:colname-names) (:rowname-names) (:result-params "replace") 
(:result-type . value) (:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalance/R/lhc.etp.R") (:exports . "both") (:results . 
"replace") (:session . "*R.EnergyBalance*") (:eval . "never") (:mkdirp . "yes") 
(:tangle-mode . 292) (:hlines . "no")) "##' Create latin hypercube based on the 
object \\code{x} of class\n##' \\code{wpLEL} and calculates the aeril 
resistance.\n##'\n##' Create latin hypercube based on the object \\code{x} of 
class\n##' \\code{wpLEL}. The object \\code{x} is used at a template to fill 
in\n##' Create latin hypercube based on the object \\code{x} of class\n##' 
\\code{wpLEL} and calculates the aeril resistance.\n##'\n##' Create latin 
hypercube based on the object \\code{x} of class\n##' \\code{wpLEL}. The object 
\\code{x} is used at a template to fill in\n##' the missing values.\n##' @title 
lhc.wpLEL\n##' @param x object of type \\code{wpLEL} which will be used as 
a\n##' template for the returned Latin Hyper Cube \n##' @param n size of Latin 
Hypercube sample\n##' @param Min list of named named elements for minimum value 
of each column in the\n##' Latin Hypercube. \\code{names(Min)} has to be the 
same as \\code{names(Max)}!\n##' @param Max list of named named elements for 
maximum values for each column in the\n##' Latin Hypercube. \\code{names(Min)} 
has to be the same as \\code{names(Max)}!\n##' @param suffix suffix for file in 
cache\n##' @param new if \\code{TRUE} the cache is recreated, if \\code{FALSE}, 
the\n##' default, the cached values will be read\n##' @param cores number of 
cores to be used for the evaluation\n##' @return returns Latin Hypercube 
\\code{data.frame}\n##' @author Rainer M. Krug\n##' @export\nlhc.etp <- 
function(\n    x,\n    n,\n    Min,\n    Max,\n    suffix,\n    new  = FALSE,\n 
   cores = parallel::detectCores() - 1\n) {\n    if (missing(suffix)) {\n       
 suffix <- paste0(\".\", paste(names(Min), sep = \"\", collapse=\"-\"))\n    } 
else {\n        suffix <- paste0(\".\", paste(names(Min), sep = \"\", 
collapse=\"-\"), suffix)\n    }\n    fn <- paste0(CACHE, \"/lhc.etp.\", 
x$parametrization, suffix, \".rds\")\n    if (new) {\n        unlink(fn)\n    
}\n    if (file.exists(fn)) {\n        result <- readRDS(fn)\n    } else {\n    
    if (length(Min) != length(Max)) {stop(\"Min and Max have to have the same 
length!\")}\n        if (!all.equal(names(Min), names(Max) )) {stop(\"Min and 
Max have to have the same names!\")}\n        ## Build random Latin Hypercube\n 
       dat <- lhs::randomLHS(n=n, k=length(Min))\n        colnames(dat) <- 
names(Min)\n        ## Transform the 0..1 values to the selected range\n        
dat <- sweep(\n            x = dat,\n            MARGIN = 2,\n            
Max-Min,\n            '*'\n        )\n        dat <- sweep(\n            x = 
dat,\n            MARGIN = 2,\n            Min,\n            '+'\n        )\n   
     ## ## Exculde cases where conditions 6) and 7) are not met\n        ## if 
(all(c(\"z0\", \"dep\", \"zjoint\") %in% names(Min))) {\n        ##     depz0 
<- dat[,\"dep\"] + dat[,\"z0\"]\n        ##     i <- depz0 < h & depz0 > 
dat[,\"zjoint\"]\n        ##     dat <- dat[i,]\n        ## }\n\n        dat <- 
as.data.frame(t(dat))\n        ##\n        wphelp <- function(...) 
{wpLEL.wpLEL(x, ...)}\n        no <- ceiling(ncol(dat) / cores)\n        i <- 
0\n        result <- mclapply(\n            dat,\n            function(s) {\n   
             names(s) <- rownames(dat)\n                s <- as.list(s)\n       
         s$wp <- do.call(wphelp, s)\n                \n                depz0 <- 
s$wp[[\"dep\"]] + s$wp[[\"z0\"]]\n                if (depz0 < s$wp[[\"h\"]] & 
depz0 > s$wp[[\"zjoint\"]]) {\n                    ar <- airRest(s$wp)\n        
            etp <- evapoTrans.airRest(\n                        x      = ar,\n  
                      Ta     = s[[\"Ta\"]],\n                        frach  = 
1,\n                        Rnhsol = s[[\"Rnhsol\"]],\n                        
RH     = s[[\"RH\"]],\n                        gsol   = s[[\"gsol\"]]\n         
           )\n                    ##\n                    s$I1  <- ar$I1\n      
              s$I2  <- ar$I2\n                    s$I3  <- ar$I3\n              
      s$I4  <- ar$I4\n                    s$ras <- ar$ras\n                    
s$rac <- ar$rac\n                    ##\n                    s$etrHrsol <- 
etp$etrHrsol\n                    s$etrHcsol <- etp$etrHcsol\n                  
  s$etrHsol  <- etp$etrHsol\n                    s$etpCh    <- etp$etpCh\n      
              class(s) = c(\"lhcAirRest\", class(s))\n                } else 
{\n                    s <- NULL\n                }\n                i <<- i + 
1\n                if (round(i, -2) == i) {\n                    cat(i, \"\\t 
of about \\t\", no, \"\\t\\t\\r\")\n                }\n                
return(s)\n            },\n            mc.cores = cores\n        )\n        
cat(\"\\n\")\n        result <- result[!sapply(result, is.null)]\n        
saveRDS(result, fn)\n    }\n    return(result)\n}" nil) (9720 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*tests" tests:1 
((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . 
value) (:comments . "link") (:shebang . "") (:cache . "no") (:padline . "no") 
(:noweb . "yes") (:tangle . "./tests/wpLELTest.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "## 
stopifnot(require(energyBalance))\n\n## Tolerance for numerical 
comparisons\nepsilon <- 1.0e-9\n\nua <- 3.136\nza <- 37\nz <- seq(\n    from = 
0,\n    to   = za,\n    by   = 0.1\n)\n\n## Test 1\nu <- wpLEL(\n    z,\n    ua 
     = ua,\n    dep = 14,\n    z0 = 2.8,\n    na = 7,\n    zjoint = 14.31625,\n 
   h = 28,\n    za = 37,\n    z0sol = 0.01\n)\nu.s <- 
readRDS(\"./tests/u.rds\")\nstopifnot( max(abs(unlist(u) - unlist(u.s)), 
na.rm=TRUE ) < epsilon)\n\nu <- airRest(u)\nu.s <- 
readRDS(\"./tests/u.ar.rds\")\nstopifnot( max(abs(unlist(u) - unlist(u.s)), 
na.rm=TRUE ) < epsilon)\n\n## Test 2\nWAI <- 0.5\nLAI <- 0\nu1 <- wpLEL(\n    
z,\n    ua  = ua,\n    dep = function(PAI) {1.1*h*log(1+(Cd*PAI)^0.25)},\n    
PAI = WAI + LAI\n)\nu1.s <- readRDS(\"./tests/u1.rds\")\nstopifnot( 
max(abs(unlist(u1) - unlist(u1.s)), na.rm=TRUE ) < epsilon)\n\nu1 <- 
airRest(u1)\nu1.s <- readRDS(\"./tests/u1.ar.rds\")\nstopifnot( 
max(abs(unlist(u1) - unlist(u1.s)), na.rm=TRUE ) < epsilon)\n\n## Test 3\nWAI 
<- 0.5\nLAI <- 6\nu2 <- wpLEL(\n    z,\n    ua  = ua,\n    dep = function(PAI) 
{1.1*h*log(1+(Cd*PAI)^0.25)},\n    PAI = WAI + LAI\n)\nu2.s <- 
readRDS(\"./tests/u2.rds\")\nstopifnot( max(abs(unlist(u2) - unlist(u2.s)), 
na.rm=TRUE ) < epsilon)\n\nu2 <- airRest(u2)\nu2.s <- 
readRDS(\"./tests/u2.ar.rds\")\nstopifnot( max(abs(unlist(u2) - unlist(u2.s)), 
na.rm=TRUE ) < epsilon)" nil) (9828 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*Package%20Documentation"
 Package\ Documentation:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "link") (:shebang . "") (:cache 
. "no") (:padline . "no") (:noweb . "yes") (:tangle . 
"./package/EnergyBalancePaper/R/EnergyBalancePaper.R") (:exports . "both") 
(:results . "replace") (:session . "*R.EnergyBalance*") (:eval . "never") 
(:mkdirp . "yes") (:tangle-mode . 292) (:hlines . "no")) "#' 
EnergyBalancePaper: Companion package for paper\n#'\n#' Companion package for 
the paper \\bold{TO BE ADDED} This packagee\n#' contains thew data and the 
functions used to analyse the date and\n#' to create the plots in the paper.  
In addition it also contains\n#' further scripts for analysis and plots not 
included in the paper.\n#' \n#' @section EnergyBalancePaper functions and 
data:\n#' Data: To Be added  ...\n#' Functions: To Be added  ...\n#'\n#' 
@docType package\n#' @name EnergyBalancePaper\nNULL\n#> NULL" nil) ...) 
("RDescr" (5910 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*DESCRIPTION%20File"
 DESCRIPTION\ File:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "no") (:shebang . "") (:cache . 
"no") (:padline . "no") (:noweb . "no") (:tangle . 
"./package/EnergyBalance/DESCRIPTION") (:exports . "code") (:results . 
"replace") (:eval . "never") (:no-expand . "TRUE") (:hlines . "no") (:session . 
"none")) "Package: EnergyBalance\nType: Package\nTitle: Fitting of Wind 
Profile, Calculation of Aerodynamic Resistance\nVersion: 0.0.1 \nDate: 
2015-08-25\nAuthor: Rainer M. Krug\nMaintainer: Rainer M Krug 
<address@hidden>\nDescription: Contains function to fit, evaluate and plot wind 
profiles of the Log-Exp-Log family of shapes.\nLicense: GPL-3\nLazyData: 
true\nDepends: DBI, RSQLite\nImports: magrittr, parallel, lhs" nil) (5933 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*.Rbuiltignore%20File"
 \.Rbuiltignore\ File:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "no") (:shebang . "") (:cache . 
"no") (:padline . "no") (:noweb . "no") (:tangle . 
"./package/EnergyBalance/.Rbuildignore") (:exports . "code") (:results . 
"replace") (:eval . "never") (:no-expand . "TRUE") (:hlines . "no") (:session . 
"none")) ".DS_Store\n.Rhistory" nil) (9798 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*DESCRIPTION%20File"
 DESCRIPTION\ File:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "no") (:shebang . "") (:cache . 
"no") (:padline . "no") (:noweb . "no") (:tangle . 
"./package/EnergyBalancePaper/DESCRIPTION") (:exports . "code") (:results . 
"replace") (:eval . "never") (:no-expand . "TRUE") (:hlines . "no") (:session . 
"none")) "Package: EnergyBalancePaper\nType: Package\nTitle: Paper Accompanying 
Package\nVersion: 0.0.1 \nDate: 12.11.2014\nAuthor: Rainer M. Krug\nMaintainer: 
Rainer M Krug <address@hidden>\nDescription: Accompanying package for the paper 
XXXXX containig data and scripts used in the analysis and the functions to 
create the graphs.\nLicense: GPL-3\nLazyData: true\nDepends: EnergyBalance, 
tgp" nil) (9820 nil 
"file:~/Documents/Projects/EnergyBalance/EnergyBalance.org::*.Rbuiltignore%20File"
 \.Rbuiltignore\ File:1 ((:colname-names) (:rowname-names) (:result-params 
"replace") (:result-type . value) (:comments . "no") (:shebang . "") (:cache . 
"no") (:padline . "no") (:noweb . "no") (:tangle . 
"./package/EnergyBalance/.Rbuildignore") (:exports . "code") (:results . 
"replace") (:eval . "never") (:no-expand . "TRUE") (:hlines . "no") (:session . 
"none")) "" nil))))
  org-babel-tangle(nil)
  call-interactively(org-babel-tangle nil nil)
  command-execute(org-babel-tangle)
--8<---------------cut here---------------end--------------->8---


-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, 
UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      address@hidden

Skype:      RMkrug

PGP: 0x0F52F982

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]