From 09e5f66f2e62e34ed5e3f8f57d982bc6d71ca162 Mon Sep 17 00:00:00 2001
From: Clara Anton Fernandez <caf@nibio.no>
Date: Wed, 10 May 2023 13:18:11 +0200
Subject: [PATCH] volumem equations

---
 Volume_Norway_underbark.R | 50 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)
 create mode 100644 Volume_Norway_underbark.R

diff --git a/Volume_Norway_underbark.R b/Volume_Norway_underbark.R
new file mode 100644
index 0000000..9366f75
--- /dev/null
+++ b/Volume_Norway_underbark.R
@@ -0,0 +1,50 @@
+## modified volume equation for Norway
+ volume.norway.underbak <- 
+function (dbh.mm, height.dm, tree.sp) 
+{
+    nvl <- function(...) {
+        for (e in eval(substitute(alist(...)))) {
+            x <- eval(e, parent.frame())
+            if (!is.null(x)) 
+                break
+        }
+        x
+    }
+    
+    if (any(dbh.mm < 50)) 
+        stop("all dbh.mm should be at least 50mm")
+    
+    i.tree.sp.1 <- num.species %in% c("Norway spruce")
+    i.tree.sp.2 <- num.species %in% c("Scots Pine")
+    i.tree.sp.3 <- num.species %in% c("Other Conif")
+    i.tree.sp.4 <- num.species %in% c("Hardwoods")
+    if ((sum(i.tree.sp.1) + sum(i.tree.sp.2) + sum(i.tree.sp.3) + 
+        sum(i.tree.sp.4)) != length(num.species)) {
+        print(num.species[which(!i.tree.sp.1 & !i.tree.sp.2 & 
+            !i.tree.sp.3 & !i.tree.sp.4)])
+        stop("some species are not recognized")
+    }
+    vol.wo.bark.l <- rep(NA, length(dbh.mm))
+
+    ## under bark
+       
+    vol.wo.bark.l[ i.tree.sp.1] <- picea.abies.vol(dbh = dbh.mm[i12], 
+            trh = height.dm[i12], bark = "ub", units = "l") * 
+            (1 - (nvl(vol.reduksjon[i12], 0)/100))
+    vol.wo.bark.l[i.tree.sp.2] <- sitka.vol(dbh = dbh.mm[i.tree.sp.2], 
+            trh = height.dm[i.tree.sp.2], bark = "ub", units = "l") * 
+            (1 - (nvl(vol.reduksjon[i.tree.sp.2], 0)/100))
+       
+    vol.wo.bark.l[i.tree.sp.3] <- pinus.sylvestris.vol(dbh = dbh.mm[i32], 
+            trh = height.dm[i32], bark = "ub", units = "l") * 
+            (1 - (nvl(vol.reduksjon[i32], 0)/100))
+    vol.wo.bark.l[i.tree.sp.4] <- harw.nor.vol(tsl = as.integer(tree.sp[i.tree.sp.4]), 
+            dbh = dbh.mm[i.tree.sp.4], trh = height.dm[i.tree.sp.4], 
+            bark = "ub", units = "l") * (1 - (nvl(vol.reduksjon[i.tree.sp.4], 
+            0)/100))
+    
+    volume.norway <- list()
+    
+    vol.wo.tr.m3 <- vol.wo.bark.l/1000
+    return(vol.wo.tr.m3)
+}
-- 
GitLab