Skip to content

Bilder erzeugen

Programmieren

Eine Möglichkeit Höhendaten zweidimensional darzustellen wäre eine Heatmap (z.B. höher = heller) oder eine Schattierung. Für beide Darstellungen müssen wir einzelne Bildpunkte setzen und so ein Bild erstellen.

Modul «PIL»

Mit dem Modul PIL (heute Pillow) können wir mit Python Bilder erzeugen und bearbeiten. Wir machen ein Bild mit vorgegeben Dimensionen (Anzahl Pixel in Breite und Höhe) und setzen dann für jeden Pixel einen RGB-Farbwert:

Farbverlauf erstellen. Achtung Farbe-Werte RGB zwischen 0 und 255

Hilfsfunktion «clamp»

Wir brauchen eine Hilfsfunktion welche die Werte einschränkt, wie eine Klammer:

clamp

So können wir sicherstellen, dass der Wert x zwischen a und b «eingeklammert» wird, also b nicht über- und a nicht unterschreitet.

Aufgabe: Hilfsfunktion «clamp»

Heatmap

Aufgabe: Heatmap

Wir können die Höhenangaben als Heatmap darstellen: Hohe Punkte hell, tiefe Punkte dunkel. Dazu müssen wir aus der Höhe einen Grauwert zwischen 0 und 255 berechnen und dem zur Koordinate passenden Punkt im Bild zuweisen.

Alternativ kann man auch je nach Höhe einen Wert zuweisen:

  • höchste Punkte weiss (Schnee)
  • hohe Punkte grau (Fels)
  • tiefere Punkte grün (Wald/Gras)
  • tiefste Punkte blau (Meer, Fluss, See)
heatmap (Graustufen)

Schattierung

Aufgabe: Schattierung

Um eine Schattierung zu berechnen, vergleichen wir jede Koordinate mit einer Nachbarkoordinate. Aus dem Höhenunterschied können wir einen Wert berechnen, z.B.

  • bei gleicher Höhe grau
  • höher = heller
  • tiefer = dunkler
Schattierung (Graustufen)

Gymnasium Kirchenfeld, fts & lem