Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Struktur-Funktions-Modelle von Pflanzen - Sommersemester 2014 - 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 3. Vorlesung:

2 letztes Mal: Laden von dtd-Dateien und erste Analysen in GroIMP Programmierparadigmen (imperativ, objektorientiert, regelbasiert) Turtle-Geometrie deren Ausführung mit GroIMP

3 Beispiel: Zeichnen eines Dreiecks protected void init() [ Axiom ==> RU(30) F(10) RU(120) F(10) RU(120) F(10) ] siehe Datei sm09_b01.rgg

4 heute: Vorbereitung der morphologischen Messungen Aufbau von dtd-Dateien Einfache L-Systeme (Zeichenketten-Ersetzungssysteme) ihre Ausführung mit GroIMP einfache Verzweigungsmuster, modelliert mit L-Systemen

5 Morphologische Messungen, Bitte mitbringen: Digitalkamera farbige Stifte Lineal, Geodreieck (sofern vorhanden) Schublehre (sofern vorhanden) kleine Haftetiketten (sofern vorhanden), alternativ Tesafilm Notebook zum Eingeben der dtd-Dateien

6 Untersuchungsobjekte: junge Buchenpflanzen (Fagus sylvatica) dieselben wie für Photosynthesemessung Vor den Detailmessungen: Baum mit einem Namen versehen (Namensschild!) auf Besonderheiten überprüfen Referenzrichtung (im Topf) festlegen den Baum von mehreren Seiten fotografieren (mit Referenzrichtung und Namensschild) gesamtbaumbezogene Messgrößen aufnehmen

7 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 für Winkel: Grad für Massen: g (aber in GroIMP i.d.R. SI-Einheit: kg)

8 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!)

9 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)

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

11 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)

12 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:

13 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 Winkel: auf 5° genau (Azimutwinkel: 10°); Messung zwischen Internodium und Mittelrippe der Blattspreite. Massen: Internodien, Blätter: Trockenmassen für gesamten Baum

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

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

16 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.

17 Regelsysteme zur Ersetzung von Zeichenketten in jedem Ableitungsschritt parallele Ersetzung aller Zeichen, auf die eine Regel anwendbar ist von A. Lindenmayer (Botaniker) 1968 zur Modellierung des Wachstums von fadenförmigen Algen eingeführt L-Systeme (Lindenmayer-Systeme) Aristid Lindenmayer ( ) Dynamische Strukturbeschreibung

18 L-Systeme mathematisch: Ein L-System ist ein Tripel ( , , R); darin ist:  eine Menge von Zeichen, das Alphabet,  eine Zeichenkette mit Zeichen aus , das Startwort (auch "Axiom"), R eine Menge von Regeln der Form Zeichen  Zeichenkette; darin sind das Zeichen auf der linken Regelseite und die Zeichenkette aus  entnommen.

19 zum Vergleich: Grammatik für natürliche Sprache: Satz  S P O S  Max S  Tina P  lernt O  Englisch O  Französisch mögliche Ableitungen:SatzS P O Max lernt FranzösischTina lernt Englisch

20 Ein Ableitungsschritt (rewriting) einer Zeichenkette besteht aus der Ersetzung aller ihrer Zeichen, die in linken Regelseiten vorkommen, durch die entsprechenden rechten Regelseiten. Man vereinbart: Zeichen, auf die keine Regeln anwendbar sind, werden unverändert übernommen.

21 Ein Ableitungsschritt (rewriting) einer Zeichenkette besteht aus der Ersetzung aller ihrer Zeichen, die in linken Regelseiten vorkommen, durch die entsprechenden rechten Regelseiten. Man vereinbart: Zeichen, auf die keine Regeln anwendbar sind, werden unverändert übernommen. Ergebnis: Ableitungskette von Zeichenketten, die sich durch wiederholte Anwendung des Ersetzungsvorgangs aus dem Startwort ergeben.    1   2   3 ....

22 Beispiel: Alphabet {A, B}, Startwort A Regelmenge: A  B B  AB

23 Beispiel: Alphabet {A, B}, Startwort A Regelmenge: A  B B  AB A

24 Beispiel: Alphabet {A, B}, Startwort A Regelmenge: A  B B  AB B

25 Beispiel: Alphabet {A, B}, Startwort A Regelmenge: A  B B  AB AB parallele Ersetzung

26 Beispiel: Alphabet {A, B}, Startwort A Regelmenge: A  B B  AB BAB

27 Beispiel: Alphabet {A, B}, Startwort A Regelmenge: A  B B  AB BAB

28 Beispiel: Alphabet {A, B}, Startwort A Regelmenge: A  B B  AB ABBAB

29 Beispiel: Alphabet {A, B}, Startwort A Regelmenge: A  B B  AB Ableitungskette: A  B  AB  BAB  ABBAB  BABABBAB  ABBABBABABBAB  BABABBABABBABBABABBAB ...

30 Beispiel: Alphabet {A, B}, Startwort A Regelmenge: A  B B  AB Ableitungskette: A  B  AB  BAB  ABBAB  BABABBAB  ABBABBABABBAB  BABABBABABBABBABABBAB ... wie lang ist die n-te Zeichenkette in dieser Ableitung?

31 Beispiel: Alphabet {A, B}, Startwort A Regelmenge: A  B B  AB Ableitungskette, besser visualisiert:

32 was für die Modellierung von grafischen und biologischen Strukturen bisher noch fehlt: eine geometrische Interpretation

33 was für die Modellierung von grafischen und biologischen Strukturen bisher noch fehlt: eine geometrische Interpretation Füge also hinzu: eine Abbildung, die jeder Zeichenkette eine Teilmenge des 3-dimensionalen Raumes zuordnet dann: "interpretierte" L-System-Abarbeitung    1   2   3 ....    S 1 S 2 S S 1, S 2, S 3,... können als Entwicklungsstufen eines Objekts, einer Szene oder eines Organismus interpretiert werden.

34 Für die Interpretation der Zeichenketten: Turtle-Geometrie Der Turtle-Befehlsvorrat wird zu einer Untermenge der Zeichenmenge des L-Systems. Symbole, die nicht Turtle-Befehle sind, werden von der Turtle ignoriert.

35 Für die Interpretation der Zeichenketten: Turtle-Geometrie Der Turtle-Befehlsvorrat wird zu einer Untermenge der Zeichenmenge des L-Systems. Symbole, die nicht Turtle-Befehle sind, werden von der Turtle ignoriert.  Verbindung mit dem imperativen Paradigma

36 Beispiel: Regeln A ==> F0 [ RU(45) B ] A ; B ==> F0 B ; Startwort A ( A und B werden normalerweise nicht geometrisch interpretiert.) Interpretation durch Turtle-Geometrie

37 was für eine Struktur liefert das L-System A ==> [ LMul(0.25) RU(-45) F0 ] F0 B; B ==> [ LMul(0.25) RU(45) F0 ] F0 A; mit Startwort L(10) A ?

38 was für eine Struktur liefert das L-System A ==> [ LMul(0.25) RU(-45) F0 ] F0 B; B ==> [ LMul(0.25) RU(45) F0 ] F0 A; mit Startwort L(10) A ? äquivalente Regel: A ==> [ LMul(0.25) RU(-45) F0 ] F0 RH(180) A;

39 Flächenfüllende Kurve: Axiom ==> L(10) RU(-45) X RU(-45) F(1) RU(-45) X; X ==> X F0 X RU(-45) F(1) RU(-45) X F0 X weiteres Beispiel:

40 Flächenfüllende Kurve: Axiom ==> L(10) RU(-45) X RU(-45) F(1) RU(-45) X; X ==> X F0 X RU(-45) F(1) RU(-45) X F0 X

41 Flächenfüllende Kurve: Axiom ==> L(10) RU(-45) X RU(-45) F(1) RU(-45) X; X ==> X F0 X RU(-45) F(1) RU(-45) X F0 X indisches Kolam-Muster „Anklets of Krishna“

42 Beispiel für ein Fraktal: Koch'sche Kurve Axiom ==> RU(90) F(10); F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3)

43 Axiom ==> RU(90) F(10); F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3)

44 Axiom ==> RU(90) F(10); F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3)

45 Axiom ==> RU(90) F(10); F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3)

46 Axiom ==> RU(90) F(10); F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3)

47 Axiom ==> RU(90) F(10); F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3)

48 . Axiom ==> RU(90) F(10); F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3)

49 L-Systeme mit GroIMP Notation nach Prusinkiewicz & Lindenmayer:  = 27.5 F F  F [ + F ] F [ - F ] F in der Sprache XL: protected void init() [ Axiom ==> L(1) F0; ] public void run() [ F0 ==> F0 [ RU(-27.5) F0 ] F0 [ RU(27.5) F0 ] F0; ]

50 L-Systeme mit GroIMP Deklaration neuer, eigener Symbole (Module): module A; module B; protected void init() [ Axiom ==> A; ] public void run() [ A ==> L(1) F0 [ RU(45) B ] A; B ==> L(1) F0 B; ] » A und B werden hier nicht geometrisch interpretiert

51 L-Systeme mit GroIMP Deklaration eigener Symbole mit geometrischer Interpretation: module A extends Sphere(0.1); module B extends Sphere(0.08); protected void init() [ Axiom ==> P(14) A; ] public void run() [ A ==> L(1) F0 [ RU(45) B ] A; B ==> L(1) F0 B; ]

52 Beispieldatei sm09_b02.rgg : geschlossene Koch-Kurve, entwickelt aus Dreieck protected void init () [ Axiom ==> RU(50) F(10) RU(120) F(10) RU(120) F(10); ] // oeffentliche Methode zur interaktiven Verwendung in GroIMP // (ueber Button): public void anwendung () // Regeln muessen in []-Klammern gesetzt und mit ; beendet werden [ // jedes F() wird durch 4 kleinere F() ersetzt // die Laenge des F auf der linken Regelseite wird // durch das x auf die rechte Seite mit heruebergenommen F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3); ]

53 Beispieldatei sm09_b03.rgg : /* Sie lernen an diesem Beispiel: - wie Sie ein einfaches Pflanzenmodell (nach dem Architekturmodell Schoute) erstellen - wie sie Verzweigungen (Subgraphen) mit [ ] angeben */ // Beispiel einer einfachen botanischen Baumstruktur (Architekturmodell Schoute) // Erweiterungen des Standard-Alphabets (Turtle-Kommandos) // Shoot() ist eine Erweiterung des Turtle-Kommandos F() und steht fuer einen Jahres- // trieb module Shoot(float len) extends F(len); // Bud ist eine Erweiterung eines Kugel-Objekts und steht fuer eine Terminalknospe, // ihre „strength“ kontrolliert die Laenge des im naechsten Schritt erzeugten Triebes module Bud(float strength) extends Sphere(0.2) {{ setShader(RED); setTransform(0, 0, 0.3); }}; // protected void init () [ // Startzustand (eine Knospe) Axiom ==> Bud(5); ] public void run () [ // eckige Klammern [] kennzeichnen einen Seitenzweig (Relation „branch“) // Rotationen um „upward“-Achse (RU) // Verminderung der Staerke der Knospe (in jedem Schritt um 20%) Bud(x) ==> Shoot(x) [ RU(30) Bud(0.8*x) ] [ RU(-30) Bud(0.8*x) ]; ]

54 Verzweigung, alternierende Zweigstellung und Verkürzung: module A; Axiom ==> L(10) F0 A; A ==> LMul(0.5) [ RU(90) F0 ] F0 RH(180) A;

55 Verzweigung, alternierende Zweigstellung und Verkürzung: module A; Axiom ==> L(10) F0 A; A ==> LMul(0.5) [ RU(90) F0 ] F0 RH(180) A;

56 welche Struktur liefert Axiom ==> F(10) A ; A ==> [ RU(-60) F(6) RH(180) A Sphere(3) ] [ RU(40) F(10) RH(180) A Sphere(3) ]; Sphere ==> Z; ? ( F(n) liefert Linie der vorgegebenen Länge n, Sphere(n) eine Kugel mit Radius n)

57 Erweiterung des Symbol-Konzepts: Lasse reellwertige Parameter nicht nur bei Turtle-Kommandos wie " RU(45) " und " F(3) " zu, sondern bei allen Zeichen  parametrische L-Systeme beliebig lange, endliche Parameterlisten Parameter werden bei Regel-Matching mit Werten belegt Beispiel: Regel A(x, y) ==> F(7*x+10) B(y/2) vorliegendes Zeichen z.B.: A(2, 6) nach der Regelanwendung: F(24) B(3) Parameter können in Bedingungen abgeprüft werden (logische Bedingungen mit Java-Syntax): A(x, y) (x >= 17 && y != 0) ==>....

58 Beispiel:

59 Welche Struktur wird von folgendem L-System erzeugt? Axiom ==> [ RU(90) M(1) RU(90) A(1) ] A(1); A(n) ==> F(n) RU(90) A(n+1);

60 Welche Struktur wird von folgendem L-System erzeugt? Axiom ==> [ RU(90) M(1) RU(90) A(1) ] A(1); A(n) ==> F(n) RU(90) A(n+1); Variante: in der zweiten Regel " RU(90) " etwa durch " RU(92) " ersetzen.

61 Hausaufgaben: (1) Lesen Sie auf der „Grogra-CD“ im Abschnitt „Grogra“ die Unterabschnitte Turtle Rotation Verzweigung Beachten Sie die Unterschiede zwischen der Grogra-Syntax und XL (z.B. in XL M statt f, LMul statt L*...); siehe Tabelle der Turtle-Kommandos (2) Lesen Sie Chapter 1, Section 1.1 – 1.5 (ohne 1.4) im Buch „The Algorithmic Beauty of Plants“ von P. Prusinkiewicz und A. Lindenmayer (online verfügbar, siehe Literaturseite zur Veranstaltung). (= S ohne Abschnitt 1.4).


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

Ähnliche Präsentationen


Google-Anzeigen