Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2011 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.

Ähnliche Präsentationen


Präsentation zum Thema: "Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2011 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik."—  Präsentation transkript:

1 Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik 9. Vorlesung:

2 zuletzt: Kantentypen (Relationen) transitive Hülle Graphansicht in GroIMP, Graphlayouts Queries im Graphen Fichtenmodell (knapp vorgestellt)

3 als nächstes: Fichtenmodell (Änderungen) Übersicht zur Software GroIMP Morphologische Messungen dtd-Codierung von vermessenen Bäumen einfaches Struktur-Funktions-Modell (erste Schritte)

4 Fichtenmodell in XL (vgl. letzte Vorlesung) /* Fichtenmodell sm09_fichte.rgg, W.K */ module T; /* terminale Knospe */ module M1; /* Seitenzweigknospe 1. Ordn., mediale Position */ module S1; /* Seitenzweigknospe 1. Ordn., subapikale Pos. */ module M2; /* Seitenzweigknospe 2. Ordn., mediale Pos. */ module S2; module M3; module S3; module GU(float incd, int age) extends F0; /* growth unit */ module BA(int age, super.angle) extends RL(angle); module GA(int age, super.angle) extends RL(angle); module HA(int age, super.angle) extends RL(angle); const int ang = 45; const int x3 = 50; const int[] a = { 0, 15, 25, 32, 37, 40 }; const int[] gg = { 0, 0, 4 }; const int[] hh = { 0, 0, 2, 4, 8 }; int n, k; const float[] prob_n = {0.1, 0.4, 0.3, 0.2}; const int[] n_subap = {5, 6, 7, 8};

5 protected void init() [ Axiom ==> P(2) D(1) L(100) T; ] public void grow() [ x:T ==> Nl(80*TurtleState.length(x)) GU(2.2, 0) RH(random(0, 360)) { k = 0; } for ((1:3)) /* 3 mediale Seitenäste 1. Ordnung */ ( [ MRel(random(0.2, 0.85)) RH(k*120+normal(0, 5.5)) { k++; } RL(x3+normal(0, 2.2)) BA(0, 0) LMul(0.4) M1 ] ) RH(random(0, 360)) { n = n_subap[distribution(prob_n)]; k = 0; } for ((1:n)) /* n subapikale Seitenäste 1. Ordnung */ ( [ MRel(random(0.85, 1)) RH(k*360/n+normal(0, 3.1)) { k++; } RL(x3+normal(0, 2.2)) BA(0, 0) LMul(0.65) S1 ] ) T; x:S1 ==> Nl(80*TurtleState.length(x)) GU(1.3, 0) [ MRel(random(0.85, 1)) RH(15) RU(ang+normal(0, 2.2)) AdjustLU LMul(0.7) S2 ] [ MRel(random(0.85, 1)) RH(-15) RU(-ang+normal(0, 2.2)) AdjustLU LMul(0.7) S2 ] GA(0, 0) S1; x:M1 ==> Nl(80*TurtleState.length(x)) GU(0.8, 0) [ MRel(random(0.85, 1)) RH(15) RU(ang+normal(0, 2.2)) AdjustLU LMul(0.7) M2 ] [ MRel(random(0.85, 1)) RH(-15) RU(-ang+normal(0, 2.2)) AdjustLU LMul(0.7) M2 ] HA(0, 0) M1;

6 x:S2 ==> Nl(80*TurtleState.length(x)) GU(1.3, 0) [ MRel(random(0.85, 1)) RH(10) RU(ang) AdjustLU LMul(0.7) S3 ] [ MRel(random(0.85, 1)) RH(-10) RU(-ang) AdjustLU LMul(0.7) S3 ] S2; x:M2 ==> Nl(80*TurtleState.length(x)) GU(0.8, 0) [ MRel(random(0.85, 1)) RH(10) RU(ang) AdjustLU LMul(0.7) M3 ] [ MRel(random(0.85, 1)) RH(-10) RU(-ang) AdjustLU LMul(0.7) M3 ] M2; x:S3 ==> Nl(80*TurtleState.length(x)) GU(1.3, 0); x:M3 ==> Nl(80*TurtleState.length(x)) GU(0.8, 0); GU(incd, t) ==> DlAdd(incd*(t+1)) GU(incd, t+1); DlAdd(arg) ==> ; BA(age, angle) ==> BA(age+1, a[age<5 ? age+1 : 5]); GA(age, angle) ==> GA(age+1, gg[age<2 ? age+1 : 2]); HA(age, angle) ==> HA(age+1, hh[age<4 ? age+1 : 4]); ]

7 - was ist unklar? - wie lässt sich das Dickenwachstum verstärken - für alle Wachstumseinheiten (growth units, GU)? - nur für den Stamm? - wie lässt sich (durch Veränderung des Längenwachstums) eine schlankere Kronenform erreichen? - wie lässt sich die Zahl der Haupt-Seitenäste vermindern?

8 Die Software GroIMP dort auch Link auf die Download-Seite und Beispiele-Galerie. Siehe auch Lerneinheiten zu GroIMP (Autor: K. Petersen, M.Sc. Forst., Sommersem. 2009). GroIMP ist ein Open-Source-Projekt!

9 Interaktive 3D-Plattform GroIMP (Growth-grammar related Interactive Modelling Platform)

10 GroIMP ist eine Kombination von: - XL-Compiler und -Interpreter - Entwicklungsumgebung für XL - 3D-Modeller (interaktiv) - 3D-Renderer (mehrere Varianten) - 2D-Graphen-Visualisierer - Editor für 3D-Objekte und Attribute - Texturerzeugungswerkzeug - Display für dtd-Dateien - Lichtsimulationswerkzeug

11 Beispiel eines mit GroIMP realisierten Pflanzenmodells (Gerste):

12 Anwendungsbeispiel: Modellierung von Parklandschaften (Rogge & Moschner 2007, für Stiftung Branitzer Park, Cottbus) mit GroIMP generierte Erle in VRML-Welt

13 Ergebnisse aus Architektur-Seminar mit XL: Liang 2007

14

15 Jarchow 2007

16

17 virtuelle Landschaft (mit Buchen-Fichten-Mischbestand)

18

19 Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth und Michael Henke Morphologische Messungen, 1. und mitzubringen: Digitalkamera farbige Stifte Lineal, Geodreieck (sofern vorhanden) Schublehre (sofern vorhanden) kleine Haftetiketten (sofern vorhanden), alternativ Tesafilm Notebook zum Eingeben der dtd-Dateien

20 Untersuchungsobjekte: junge Buchenpflanzen (Fagus sylvatica) aus Naturverjüngung in der Nähe von Göttingen Vor den Detailmessungen: Baum mit einem Namen versehen (Namensschild!) auf Besonderheiten überprüfen Referenzrichtung (auf dem Boden / im Topf) festlegen den Baum von mehreren Seiten fotografieren (mit Referenzrichtung und Namensschild) gesamtbaumbezogene Messgrößen aufnehmen

21 gesamtbaumbezogene Messgrößen: Höhe Durchmesser an der Basis Anzahl der Blätter Anzahl der Seitenzweige 1. Ordnung Datum der Messung Maßeinheiten: für Längen und Durchmesser: mm (Achtung: dtd-Dateien werden im Attributeditor von GroIMP zur Zeit nicht korrekt interpretiert! Dortige Angaben sind durch 10 zu teilen.) für Winkel: Grad für Massen: g (aber in GroIMP i.d.R. SI-Einheiten: kg, m)

22 Vorbereitung der topologischen und geometrischen Detailvermessung des Baumes: Auffinden der Jahrestriebgrenzen (Triebbasisnarben), soweit möglich! Nummerierung der Internodien der Hauptachse (trunk) von unten nach oben (mit Berücksichtigung der Jahrestrieb- Zuordnung); entsprechend auch der (apikal abgehenden) Seitenzweige, Kurztriebe und Blätter bei Seitenzweigen: innerhalb jedes Seitenzweigs weiternummerieren topologische Skizze des gesamten Baumes mit allen Blättern auf großem Zeichenbogen (evtl. mehrere Bögen verwenden – genügend Platz für Längen- und Winkelangaben vorsehen!)

23 Rot: Namen der Internodien, (Blattstiele und) Blattspreiten Schwarz: Längen (L), Durchmesser (D), Breiten (bei Blattspreiten; B) Grün: Winkelangaben. Divergenzwinkel (Abweichung von der Wuchsrichtung der Mutterachse): W (in Grad), Azimutwinkel (bez. auf Referenzrichtung am Boden): S (in Grad); beachte: zur Zeit keine negativen Winkel- angaben möglich. optional: Winkel zwischen zwei aufeinanderfolgenden Inter- nodien (W-Angabe)

24 entsprechende dtd-Datei: T1 L75 ## O0 D2.3 T2 L50 #T1 V D1.9 T3 L67 #T2 V D1.5 T4 L31 #T3 V D1.1 S1 L40 #T1 - W65 D1.1 S2 L36 #T2 + W60 D0.9 S3 L20 #T3 S315 W50 D0.8 B1 L45 #S1 V R5 W30 C4 B2 L57 #S2 V R5 W10 C4 B3 L28 #S3 V R5 W45 C4 # Name des Muttersegments, V steht für Verlängerung (der Achse), + für S90 (Wuchsrichtung rechts), – für S270 (Wuchsrichtung links), R5 für Richtung nach unten (= S180), C4 für rote Farbmarkierung (willkürl.). Die B-Angaben für die Blattspreiten sind in Kommentarklammern geschrieben (z.Zt. keine automatische Verarbeitung durch GroIMP).

25 Kurztriebketten: zusammenfassende Angabe möglich durch Q n anstatt der Längenangabe L x steht für Kurztriebkette aus n Kurztrieben (keine Längenangabe vorgesehen)

26 Beispiel für kleine Buche: T1 L33 ## D2.8 T2-1 L3 #T1 V d2.4 T2-2 L6 #T2-1 V D2.4 T2-3 L9 #T2-2 V d2.4 T3-1 L3 #T2-3 V d2.4 T3-2 L5 #T3-1 V D2.4 T3-3 L5 #T3-2 V d2.4 T4-1 L2 #T3-3 V - w1 d2.2 T4-2 L5 #T4-1 V + w2 d2.2 T4-3 L9 #T4-2 V - w2 d2.2 T4-4 L15 #T4-3 V + W10 D2.2 T4-5 L12 #T4-4 V - W30 d2.2 T5-1 L4 #T4-5 V d1.9 T5-2 L7 #T5-1 V + W15 d1.9 T5-3 L15 #T5-2 V - W10 D1.9 T5-4 L12 #T5-3 V + W20 d1.9 T6-1 L1 #T5-4 V d1.6 T6-2 L4 #T6-1 V - w2 d1.6 T6-3 L9 #T6-2 V + w3 d1.6 T6-4 L11 #T6-3 V - W20 D1.6 T6-5 L12 #T6-4 V + W20 D1.4 T7-1 L4 #T6-5 V d1.5 T7-2 L8 #T7-1 V + w1 d1.5 T7-3 L13 #T7-2 V - w2 D1.5 T7-4 L20 #T7-3 V + W5 D1.2 T7-5 L18 #T7-4 V - W15 D1.1 S1 L2 #T4-3 - W70 D1.7 S2 L1 #S1 V d1.7 S3-1 L1 #S2 V d1.7 S3-2 L1 #S3-1 V d1.5 S4-1 L2 #T4-4 + W60 d1.5 S4-2 L3 #S4-1 V D1.5 S5-1 L2 #S4-2 V d1.5 S5-2 L1 #S5-1 V D1.5 S5-3 L3 #S5-2 V d1.5 S6-1 L1 #S5-3 V d1.2 S6-2 L1 #S6-1 V d1.2 S6-3 L2 #S6-2 V D1.2 S7-1 L2 #T5-3 - W70 d1.2 S7-2 L3 #S7-1 V D1.2 S8-1 L1 #S7-2 V d1.2 S8-2 L1 #S8-1 V d1.2 S8-3 L2 #S8-2 V d1.2 S9-1 L1 #T6-3 + W40 D1.1 S9-2 L0.5 #S9-1 V d1.1 S10-1 L5 #T6-4 - W60 d1.3 S10-2 L5 #S10-1 V D1.3 B1 L29 #S3-1 - W50 C4 B2 L32 #S3-2 + W15 C4 B3 L23 #S6-1 + W120 C4 B4 L43 #S6-2 - W80 C4 B5 L52 #S6-3 + W0 C4 B6 L24 #S8-1 - W100 C4 B7 L40 #S8-2 + W40 C4 B8 L50 #S8-3 - W30 C4 B9 L29 #S9-1 - W30 C4 B10 L44 #S9-2 + W20 C4 B11 L54 #S W60 C4 B12 L59 #S W0 C4 B13 L46 #T7-1 - W80 C4 B14 L66 #T7-2 + W60 C4 B15 L70 #T7-3 - W60 C4 B16 L67 #T7-4 + W35 C4 B17 L56 #T7-5 - W20 C4 dtd-Datei:

27 zu den geometrischen Detailmessungen: Länge von Internodien und Blattstielen: auf mm genau Durchmesser von Internodien (pro Jahrestrieb mind. 1 mal) : auf 1/10 mm genau; mittig gemessen Länge eines Blattes: gemessen vom Stielanfang bis zur Blattspitze, auf mm genau Breite eines Blattes: gemessen an der breitesten Stelle Blattfläche (nur bei destruktiver Messung): gemessen über Blattkopien mit speziellem Messgerät nach Zerlegung des Baumes, oder fotogrammetrisch Winkel: auf 5° genau (Azimutwinkel: 10°); Messung zwischen Internodium und Mittelrippe der Blattspreite. Massen: Internodien, Blätter: Trockenmassen für gesamten Baum

28 zur Analyse der gemessenen Buchendaten dtd-Datei: - in GroIMP laden, visuelle Überprüfung auf Plausibilität - Darstellung der Blätter mit Breite und Fläche derzeit nicht möglich (Blattdaten in Extra-Tabelle übertragen) - erste Analysen: Erzeugung von Tabellen mit GroIMP (elementare Analyse; Längen und Winkel); auch mit Queries von der GroIMP-Konsole aus möglich - statistische Auswertung der Tabellen (R, SAS oder Statistica) (vgl. Beschreibung auf Grogra-CD, anzupassen!) Ziele: Verläufe von morphologischen Größen entlang der Achsen und bei Verzweigung; Korrelations- und Regressionsanalyse der Größen untereinander; Mittelwerte und Standardabweichungen; nichtlineare Anpassung einer Lichtantwortkurve an die Photosynthesedaten

29 Beispiele: Trend der Blattlängen entlang der Stammachse (für Pappel) (aus Hausarbeit von René Degenhard, 2008)

30 Korrelation zwischen Blattlänge und –breite (Pappel) (aus Hausarbeit von René Degenhard, 2008) Die Durchführung der Datenanalysen wird Teil der Hausarbeit sein und wird hier nicht weiter spezifiziert.

31 Ein einfaches Funktions-Struktur-Modell einer Pflanze (FSPM) in 9 Schritten - keine spezielle Pflanzenart, eher eine allgemeine Grundform - (vgl. Goethe: Urpflanze!) - zunächst eher wie eine annuelle Pflanze aufgebaut - Modifikation / Anpassung des Modells wird Teil der Hausarbeit sein - funktionaler Teil wird sein: Lichtinterzeption, Photosynthese, Assimilatverteilung in der Pflanze - in den ersten Schritten aber erstmal reines Strukturmodell

32 Erster Schritt ( sfspm01.rgg ): /* Steps towards a simple FSPM. sfspm01.rgg: A simple plant with leaves and branching is generated. Original version by G. Buck-Sorlin; modified. */ module Bud extends Sphere(0.1) {{ setShader(RED); }}; module Node extends Sphere(0.07) {{ setShader(GREEN); }}; module Internode extends F; /* leaves are rectangles: */ module Leaf extends Parallelogram(2, 1); const float G_ANGLE = 137.5; /* golden angle */ /* simple plant, with leaves and branches: */ protected void init() [ Axiom ==> Bud; ] public void run() [ Bud ==> Internode Node [ RL(50) Bud ] [ RL(70) Leaf ] RH(G_ANGLE) Internode Bud; ]

33 Zweiter Schritt ( sfspm02.rgg ): module Bud( int order ) extends Sphere(0.0001) {{ setShader(RED); setRadius(0.2); }}; module Node extends Sphere(0.07) {{ setShader(GREEN); }}; module Internode extends F; /* leaves are rectangles: */ module Leaf extends Parallelogram(2, 1); const float G_ANGLE = 137.5; /* golden angle */ /* simple plant, with leaves and branches: */ protected void init() [ Axiom ==> Bud( 0 ); ] public void run() [ Bud(o), (o Internode Node [ RL(50) Bud(o+1) ] [ RL(70) Leaf] RH(G_ANGLE) Internode Bud(o); ]


Herunterladen ppt "Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2011 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik."

Ähnliche Präsentationen


Google-Anzeigen