37
Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik 7. Vorlesung: 14. 6. 2012

Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

  • Upload
    airlia

  • View
    29

  • Download
    0

Embed Size (px)

DESCRIPTION

Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik 7. Vorlesung: 14. 6. 2012. zuletzt: kontextsensitive Regeln Interpretationsregeln Graph als mathematische Grundstruktur - PowerPoint PPT Presentation

Citation preview

Page 1: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Struktur-Funktions-Modelle von Pflanzen- Sommersemester 2012 -

Winfried Kurth

Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik

7. Vorlesung: 14. 6. 2012

Page 2: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

zuletzt:

• kontextsensitive Regeln

• Interpretationsregeln

• Graph als mathematische Grundstruktur

• ein Exkurs: topologische Analyse von Graphen

• Graph-Ersetzungsregeln

Page 3: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

als nächstes:

• Funktionsweise von relationalen Wachstumsgrammatiken

• zwei Regeltypen: L-System- und SPO-Regeln

• ein Fichtenmodell in XL

• Wiederholung und Übersichten zum dtd-Format und zu ersten Analysen

Page 4: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Erinnern Sie sich?

Bud

Shoot

Shoot

Shoot

Shoot

Bud

Bud

BudShoot

Shoot

Bud

Bud

Bud

Shoot

Bud

Bud

Bud

Shoot

Bud

Bud

Bud

Bud

Shoot

Bud

Bud

Bud Shoot

Shoot

Bud

Bud

Bud

Shoot

Bud

Bud

Bud

Shoot

Bud

Bud

Bud

Bud

Root

Page 5: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Eine relationale Wachstumsgrammatik enthält:

ein Alphabet – die Definition aller erlaubten

• Knotentypen• Typen von Relationen

das Axiom – ein initialer Graph, der aus den Elementen des

Alphabets zusammengesetzt ist eine Menge von Graphersetzungsregeln

ShootRoot Bud

Root Shoot Bud

Nachfolger Verzweigung

Page 6: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Was sind nun diese Graphersetzungsregeln

(RGG-Regeln) ?

und wie wendet man sie an?

Page 7: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Graphersetzungsregeln sind

Regeln für die Transformation eines Graphen (Teilgraphen) in einen anderen Graphen.

eine Regel besteht im wesentlichen aus:

linker Regelseite ==> rechter Regelseite

Page 8: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Wie eine RGG-Regel angewandt wird

jede linke Regelseite beschreibt einen Teilgraphen (ein Muster aus Knoten und Kanten, das im Gesamtgraphen gesucht wird), welcher ersetzt wird bei der Regelanwendung.

jede rechte Regelseite definiert einen neuen Teilgraphen, der als Ersatz für den entfernten Teilgraphen eingefügt wird.

Page 9: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

einfaches Beispiel mit Zeichenkette

Jedes Vorkommen des in der linken Regelseite definierten Teilgraphen wird ersetzt!

A B C A

D B C D

A Dwird ersetzt durch

2 Regelanwendungen im selben Zeitschritt.

C

C

Page 10: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

eine vollständige RGG-Regel kann 5 Teile enthalten:

(* Kontext *), Linke Regelseite, ( Bedingung ) ==>

Rechte Regelseite { imperativer XL-Code }

Page 11: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Kontext-Beispiel

(* Kontext *), Linke Regelseite, (Bedingung) ==> Rechte Regelseite { imperativer XL-Code }

A B C A

D C

DA wird ersetzt durchB

A

Beispiel:

(* *)

B C

C

Page 12: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Bedingungs-Beispiel

(* Kontext *), Linke Regelseite, ( Bedingung ) ==> Rechte Regelseite { imperativer XL-Code }

A B C A

D C

Da:A wird ersetzt durchB

A

Beispiel:

( a[length] > 10 )

A B C A

2 mögliche Ergebnisse, abhängig vom aktuellen Längenparameter des A-Knotens

C

C

C

Page 13: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

RELATIONALE WACHSTUMSGRAMMATIKEN (RGG: Relational Growth Grammars, parallele Graph-Gramm.)

Zusammenfassung: Aufbau einer Regel einer RGG

Page 14: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

RGG als Verallgemeinerungen von L-Systemen:

Zeichenketten entsprechen speziellen Graphen

In Textform schreiben wir allgemeine (selbstdefinierte) Kanten als -kantensorte->

Kanten des speziellen Typs "Nachfolger" werden meist als Leerzeichen geschrieben (statt -successor->)

Page 15: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

• Grammatik modifiziert direkt den Graphen, Umweg über String-Codierung entfällt (bzw. wird nur noch für Regel-Eingabe gebraucht)

Page 16: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

2 Regeltypen für Graph-Ersetzungsregeln in XL:

● L-System-Regel, Symbol: ==>

sorgt für Einbettung der rechten Seite in den Graphen (d.h. ein- und ausgehende Kanten werden beibehalten)

● SPO-Regel, Symbol: ==>>

Ein- und ausgehende Kanten werden gelöscht (sofern ihre Beibehaltung nicht explizit in der Regel angegeben wird)„SPO“ von „single pushout“ - ein Fachbegriff aus der universellen Algebra

Page 17: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

a:A ==>> a C (SPO-Regel)

B ==> D E (Regeln vom L-System-Typ)

C ==> A

Ausgangs-graph: A B C

Beispiel:

Page 18: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

a:A ==>> a C (SPO-Regel)

B ==> D E (Regeln vom L-System-Typ)

C ==> A

A B C

D E A

Page 19: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

a:A ==>> a C (SPO-Regel)

B ==> D E (Regeln vom L-System-Typ)

C ==> A

A B C

D E A

a:

Page 20: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

a:A ==>> a C (SPO-Regel)

B ==> D E (Regeln vom L-System-Typ)

C ==> A

A AD Ea:

C= Endergebnis

Page 21: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Testen Sie das Beispiel sm09_b27.rgg :

module A extends Sphere(3);

protected void init()[ Axiom ==> F(20, 4) A; ]

public void runL()[ A ==> RU(20) F(20, 4) A;]

public void runSPO()[ A ==>> ^ RU(20) F(20, 4, 5) A;]

(^ bezeichnet den Wurzelknoten im aktuellen Graphen)

Page 22: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Ein Fichtenmodell in XL/* Fichtenmodell sm09_fichte.rgg, W.K. 11. 6. 2009 */

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};

Page 23: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

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;

Page 24: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

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]);]

darin vorkommende neue Knotentypen und Befehle:siehe folgende Seiten

Page 25: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Funktion TurtleState.length(x) (für einen Knoten x):

- liefert die Schrittweite der Turtle am Knoten x

Turtle-Kommando (Knoten) AdjustLU :- dreht die Turtle so um die H-Achse, dass der U-Vektor möglichst nach oben zeigt

Turtle-Kommando (Knoten) N : - steuert Blattmasse (analog zu L und D)

Zufallszahlenfunktionen:

- normal(, ): liefert normalverteilte Zufallszahlen mit Mittelwert und Standardabweichung

- distribution(v) mit Vektor v : liefert ganzzahlige Zufallszahlen mit Wahrscheinlichkeit v[0] für 0, v[1] für 1, ...

Page 26: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

dreistelliger Operator für Fallunterscheidungen:

Bedingung ? Ausdruck1 : Ausdruck2

- liefert den Wert von Ausdruck1, falls die Bedingung erfüllt ist, sonst den Wert von Ausdruck2.

x = Bedingung ? Ausdruck1 : Ausdruck2 ist gleichwertig zu

if (Bedingung)

x = Ausdruck1;

else

x = Ausdruck2;

(diesen Operator gibt es auch in C, C++ und Java.)

Page 27: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Hausaufgabe 1:

Analysieren Sie den XL-Code des Modells sm09_fichte.rgg.

Testen Sie das Modell mit GroIMP, und analysieren Sie den Code noch einmal.

Notieren Sie alles, was Ihnen unklar ist.

Versuchen Sie, folgende Fragen zu beantworten:

- 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?

Page 28: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Wiederholung: Der dtd-Code(digitized tree data format)

• Grundeinheit: Jahrestrieb (bzw. Wachstumseinheit) je nach Auflösung des Modells auch Internodium mögl.

• pro Jahrestrieb eine Zeile

1. Sp.: Name (bzw. Nummer) des Jahrestriebs 2. Sp.: L Länge (in mm) 3. Sp.: # Name des Muttertriebes ( Verzweigungs-Topologie) weitere Spalten: A Position R Richtungswinkel W Verzweigungswinkel D Durchmesser B Blattzahl E Internodienzahl C Farbindex F Anzahl Früchte

Page 29: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Beispiel für die dtd-Codierung einesVerzweigungssystems:

Beschreibung des dtd-Codes siehehttp://www.uni-forst.gwdg.de/~wkurth/dtd_code.pdf

Page 30: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

dtd-Datei, hier auf Internodienbasis:

T1 L75 ## O0 D2.3T2 L50 #T1 V D1.9T3 L67 #T2 V D1.5T4 L31 #T3 V D1.1S1 L40 #T1 - W65 D1.1S2 L36 #T2 + W60 D0.9S3 L20 #T3 S315 W50 D0.8B1 L45 #S1 V R5 W30 C4 < B30 >B2 L57 #S2 V R5 W10 C4 < B35 >B3 L28 #S3 V R5 W45 C4 < B19 >

# 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).

Page 31: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Kurztriebketten:

zusammenfassende Angabe möglich durch

Qn anstatt der Längenangabe Lx

steht für Kurztriebkette aus n Kurztrieben (keine Längenangabe vorgesehen)

Page 32: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Beispiel für kleine Bucheauf Internodien-basis:

T1 L33 ## D2.8T2-1 L3 #T1 V d2.4T2-2 L6 #T2-1 V D2.4T2-3 L9 #T2-2 V d2.4T3-1 L3 #T2-3 V d2.4T3-2 L5 #T3-1 V D2.4T3-3 L5 #T3-2 V d2.4T4-1 L2 #T3-3 V - w1 d2.2T4-2 L5 #T4-1 V + w2 d2.2T4-3 L9 #T4-2 V - w2 d2.2T4-4 L15 #T4-3 V + W10 D2.2T4-5 L12 #T4-4 V - W30 d2.2T5-1 L4 #T4-5 V d1.9T5-2 L7 #T5-1 V + W15 d1.9T5-3 L15 #T5-2 V - W10 D1.9T5-4 L12 #T5-3 V + W20 d1.9T6-1 L1 #T5-4 V d1.6T6-2 L4 #T6-1 V - w2 d1.6T6-3 L9 #T6-2 V + w3 d1.6T6-4 L11 #T6-3 V - W20 D1.6T6-5 L12 #T6-4 V + W20 D1.4T7-1 L4 #T6-5 V d1.5T7-2 L8 #T7-1 V + w1 d1.5T7-3 L13 #T7-2 V - w2 D1.5T7-4 L20 #T7-3 V + W5 D1.2T7-5 L18 #T7-4 V - W15 D1.1S1 L2 #T4-3 - W70 D1.7S2 L1 #S1 V d1.7S3-1 L1 #S2 V d1.7S3-2 L1 #S3-1 V d1.5S4-1 L2 #T4-4 + W60 d1.5S4-2 L3 #S4-1 V D1.5S5-1 L2 #S4-2 V d1.5S5-2 L1 #S5-1 V D1.5S5-3 L3 #S5-2 V d1.5S6-1 L1 #S5-3 V d1.2S6-2 L1 #S6-1 V d1.2S6-3 L2 #S6-2 V D1.2S7-1 L2 #T5-3 - W70 d1.2S7-2 L3 #S7-1 V D1.2S8-1 L1 #S7-2 V d1.2S8-2 L1 #S8-1 V d1.2S8-3 L2 #S8-2 V d1.2S9-1 L1 #T6-3 + W40 D1.1S9-2 L0.5 #S9-1 V d1.1S10-1 L5 #T6-4 - W60 d1.3S10-2 L5 #S10-1 V D1.3B1 L29 #S3-1 - W50 C4 <B19>B2 L32 #S3-2 + W15 C4 <B21>B3 L23 #S6-1 + W120 C4 <B15>B4 L43 #S6-2 - W80 C4 <B29>B5 L52 #S6-3 + W0 C4 <B33>B6 L24 #S8-1 - W100 C4 <B15>B7 L40 #S8-2 + W40 C4 <B23>B8 L50 #S8-3 - W30 C4 <B34>B9 L29 #S9-1 - W30 C4 <B17>B10 L44 #S9-2 + W20 C4 <B26>B11 L54 #S10-1 - W60 C4 <B31>B12 L59 #S10-2 + W0 C4 <B38>B13 L46 #T7-1 - W80 C4 <B31>B14 L66 #T7-2 + W60 C4 <B43>B15 L70 #T7-3 - W60 C4 <B45>B16 L67 #T7-4 + W35 C4 <B41>B17 L56 #T7-5 - W20 C4 <B30>

dtd-Datei:

Page 33: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

zur Analyse der gemessenen Buchendatendtd-Datei:

- in GroIMP laden, visuelle Überprüfung auf Plausibilität beachte besonders den Basis-Spross: gibt es an der Basis noch mehr (zuviele) Sprosse?

- 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

Kontrolle der Alters-Zählung: Grogra-Analyse-Option F, 5. Spalte der erzeugten Tabelle Kommt Alter 0 zu selten vor?

Page 34: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

- statistische Auswertung der Tabellen (R, Statistica oder SAS) (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

Page 35: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Beispiele:Trend der Blattlängen entlang der Stammachse (für Pappel)

(aus Hausarbeit von René Degenhard, 2008)

Page 36: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

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.

Page 37: Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2012 - Winfried Kurth

Hausaufgabe 2:

- Fertigstellung der dtd-Dateien auf Grundlage Ihrer Messdaten

- erste Plausibilitätsprüfung

- erste Auswertungen