/* epi2.lsy: L-system for a single spruce tree (1 step = 1 year), recommended age between 3 and 20 years. Based on empirical investigations (Kurth, Lanwert, Anzola). */ \const dme 42, \const m0 7.27, \const m1 1.52, \const u0 2.077, \const u1 0.936, \const slg 0.02, \const slg01 0.022, \const wki 54, \const wkf 7.7, \var ts1 register 1, \const tm1 7, \const t0 8, \const vf 0.01, \var epsva normal 0 0.01, \var epsvs normal 0 0.004, \var epsl normal 0 0.05, \var epsf normal 1.5 2, \var epsf0 normal 1.5 0.7, \var epsw normal 0 10, \var epsh normal 0 5, \var bef table 0.4 0.4 0.4 0.4 0.4 0.44 0.5 0.58 0.66 0.76 0.88 0.97 1.0, \var su uniform 0.85 0.97, \var ro uniform 0 360, \var n2 normal 0 4, \var n3 normal 0 30, \var n4 normal 0 10, \var ns distribution 0 0 0 0 0.3 0.6 0.1 0, \var sw distribution 0.5 0 0.5 0, \var sw2 distribution 0.5 0 0.5 0, \var f11 function 11 5, \var dh register 0, \var daf register 2, /* damping factor (tuning param.) for intensity of branching (mult.) */ \var naf register 3, /* tuning parameter for needle surface (multiplikative) */ \var caf register 4, /* tuning parameter for all diameters (multiplicative) */ \var i index, \askrandomseed, \ask I1 Lifetime of main branches (suggested between 8 and 15) ?, \ask I2 Tuning factor b for intensity of branching (b > 0; suggested 1) ?, \ask I4 Tuning factor c for all diameters (c > 0; suggested 1) ?, \ask I3 Tuning factor s for all needle surfaces (s > 0; suggested 1) ?, * # bas(0) P14 D0 V0 kt(0), bas(t) # J0=(94+19*t+epsh) bas(t+1), J0=(x) # , kt(t) # L(dh) n(0, dh) ds(dh, 0, 1) d(0, t, 0, 1, 0) Pl2 V s(0, 200, 0, 1, 0, t) RH(ro) &(ns) < [ @(su) RH(i*360/ns_+n4) w(0, n2) $ k((0.683*dh-0.000351*dh*dh)/bef, 1, 0.9, 0, 0, t) ] > RH(ro) &(if(t<2,0,daf*dh/dme)) < [ @(0.3+(i+1)/(2*daf*dh/dme+2)) RH(i*dme*360/(daf*dh)+n3) w(0, n2+5) $ k((0.61*dh-0.0005*dh*dh)/bef, 1, 0.7, 0, 0, t) ] > kt(t+1), w(t, y) # w(t+1, y), (v < 2) k(v, o, p, t, u, s) # , k(v, o, p, t, u, s) # n(0, bef*v) ds(v, o, p) d(20, 0, o, p, 0) L(max(3, bef*exp(epsl)*v)) Pl5 s(0, 90, o, p, t, s) ?(if(o==1,0.3,1)*(1.06-0.0105*v)), k(v, o, p, t, u, s) # n(0, bef*v) ds(v, o, p) d(0, 0, o, p, 0) L(max(3, bef*exp(epsl)*v)) Pl2 s(0, 90, o, p, t, s) g(0, vf) &(max(if(o=1,1,0),min(12,(-2.44)+0.052*daf*bef*v))) < [ @(1/(1.08425+0.2469*i)) E(1) < c(i, v, o, 1/(1.08425+0.2469*i), t, u, s) > ] > k(exp(if(o=1,0.3,1)*epsva)*if(o=1,if(u<10,1.0,0.9)*v,0.4*v^1.15), o, p, t+1, u+1, s), Pl2 # , Pl5 # , (j=0) c(j, v, o, p, t, u, s) # [ f(epsf0) RU((sw-1)*(wki+epsw)) k(exp(epsvs)*0.74*if(o=1,if(u<10,1.0,0.9)*v,0.4*v^1.15), o+1, p, t+1, 0, s) ] [ f(-epsf) RU((1-sw_)*(wki+epsw)) k(exp(epsvs)*0.74*if(o=1,if(u<10,1.0,0.9)*v,0.4*v^1.15), o+1, p, t+1, 0, s) ], (j>0) c(j, v, o, p, t, u, s) # [ f(epsf*(sw-1)) RH(90+(sw2-1)*90) RU(wki+wkf*log(j+1)+epsw) k(exp(epsvs)*(0.172+0.549*p)*if(o=1,if(u<10,1.0,0.9)*v,0.4*v^1.15), o+1, p, t+1, 0, s) ] ?0.7, (j>0) c(j, v, o, p, t, u, s) # [ f(epsf*(sw-1)) RU(wki+wkf*log(j+1)+epsw) k(exp(epsvs)*(0.172+0.549*p)*if(o=1,if(u<10,1.0,0.9)*v,0.4*v^1.15), o+1, p, t+1, 0, s) ] [ f(epsf*(1-sw_)) RU(-wki-wkf*log(j+1)+epsw) k(exp(epsvs)*(0.172+0.549*p)*if(o=1,if(u<10,1.0,0.9)*v,0.4*v^1.15), o+1, p, t+1, 0, s) ] ?0.3, (t > m) s(t, m, o, p, j, s) # %, (o == 0) s(t, m, o, p, j, s) # s(t+1, 200, o, p, j, s), (o == 1) s(t, m, o, p, j, s) # s(t+1, if(s<3, 5, if(p>0.85, ts1, tm1)), o, p, j, s), (o > 1) s(t, m, o, p, j, s) # s(t+1, t0, o, p, j, s), n(t, v) # n(t+1, v), (o == 0) d(t, k, o, p, d) # d(t+1, k, o, p, d+caf*(1.15+0.0126*dh)), (o == 1 && p > 0.85) d(t, k, o, p, d) # d(t+1, k, o, p, d+caf*if(t<=8, 2.5, if(t<=12, 0.8, 0))), (o == 1 && p <= 0.85) d(t, k, o, p, d) # d(t+1, k, o, p, d+caf*if(t<=4, 0.75, 0)), (o == 2) d(t, k, o, p, d) # d(t+1, k, o, p, d+caf*if(t<=6, 0.3, 0)), (o > 2) d(t, k, o, p, d) # d(t+1, k, o, p, d+caf*if(t<=2, 0.1, 0)), g(t, s) # g(t+1, s), w(t, y) ## RU(atg(0.19*(t-3))/3+60+y), (t <= 11) n(t, v) ## N((naf*m0*v^m1)*if(t<=3, 1, (11-t)/8)) U((naf*u0*v^u1)*if(t<=3, 1, (11-t)/8)), (t > 11) n(t, v) ## N0 U0, ds(v, o, p) ## D(if(o<=1, slg01, slg) * caf * v), (d > 0) d(t, k, o, p, d) ## Dl+(d), g(t, s) ## V(s*(t*t-2*t+1)), (o == 1 && p > 0.85) s(t, m, o, p, k, s) ## V(f11(k,t,2.5/(k+t+10)^2,6/(k+t+10)^2,0.3-0.015*sqrt(k+t))) RV F, (o == 1 && p <= 0.85) s(t, m, o, p, k, s) ## V(f11(k,t,0.01,0.01,0.25)) RV F, s(t, m, o, p, k, s) ## RV F,
Back to the Plant Modelling Group homepage
Back to the university course on structural plant models (in German)
Last modifications: May 23, 2000