matplotlib.colors.LightSource#
- class matplotlib.colors.LightSource(azdeg=315, altdeg=45, hsv_min_val=0, hsv_max_val=1, hsv_min_sat=1, hsv_max_sat=0)[Quelle]#
Bases:
objectErzeugt eine Lichtquelle, die aus dem angegebenen Azimut und der Elevation kommt. Winkel sind in Grad, wobei der Azimut im Uhrzeigersinn von Norden gemessen wird und die Elevation nach oben von der Null-Ebene der Oberfläche.
shadewird verwendet, um "schattierte" RGB-Werte für ein Datenarray zu erzeugen.shade_rgbkann verwendet werden, um ein RGB-Bild mit einer Höhenkarte zu kombinieren.hillshadeerzeugt eine Beleuchtungskarte einer Oberfläche.Geben Sie den Azimut (im Uhrzeigersinn von Süden gemessen) und die Höhe (nach oben von der Ebene der Oberfläche gemessen) der Lichtquelle in Grad an.
- Parameter:
- azdegfloat, Standard: 315 Grad (von Nordwesten)
Der Azimut (0-360, Grad im Uhrzeigersinn von Norden) der Lichtquelle.
- altdegfloat, Standard: 45 Grad
Die Höhe (0-90, Grad nach oben von der Horizontalen) der Lichtquelle.
- hsv_min_valZahl, Standard: 0
Der minimale Wert ("v" in "hsv"), auf den die *Intensitäts*-Karte das Ausgabebild verschieben kann.
- hsv_max_valZahl, Standard: 1
Der maximale Wert ("v" in "hsv"), auf den die *Intensitäts*-Karte das Ausgabebild verschieben kann.
- hsv_min_satZahl, Standard: 1
Der minimale Sättigungswert, auf den die *Intensitäts*-Karte das Ausgabebild verschieben kann.
- hsv_max_satZahl, Standard: 0
Der maximale Sättigungswert, auf den die *Intensitäts*-Karte das Ausgabebild verschieben kann.
Anmerkungen
Aus Kompatibilitätsgründen können die Parameter hsv_min_val, hsv_max_val, hsv_min_sat und hsv_max_sat auch bei der Initialisierung übergeben werden. Diese Parameter werden jedoch nur verwendet, wenn "blend_mode='hsv'" an
shadeodershade_rgbübergeben wird. Weitere Details finden Sie in der Dokumentation vonblend_hsv.- blend_hsv(rgb, intensity, hsv_max_sat=None, hsv_max_val=None, hsv_min_val=None, hsv_min_sat=None)[Quelle]#
Nimmt das Eingabedatenarray, konvertiert es in HSV-Werte in der angegebenen Colormap und passt dann diese Farbwerte an, um den Eindruck einer schattierten Reliefkarte mit einer angegebenen Lichtquelle zu erzeugen. RGBA-Werte werden zurückgegeben, die dann verwendet werden können, um das schattierte Bild mit imshow zu plotten.
Die Farbe des resultierenden Bildes wird abgedunkelt, indem die (s, v)-Werte (im HSV-Farbraum) in den schattierten Bereichen zu (hsv_min_sat, hsv_min_val) verschoben werden, oder aufgehellt, indem (s, v) in den beleuchteten Bereichen zu (hsv_max_sat, hsv_max_val) verschoben werden. Die Standard-Extremwerte sind so gewählt, dass vollständig schattierte Punkte fast schwarz (s = 1, v = 0) und vollständig beleuchtete Punkte fast weiß (s = 0, v = 1) sind.
- Parameter:
- rgb
ndarray Ein (M, N, 3) RGB-Array von Gleitkommazahlen im Bereich von 0 bis 1 (Farbbild).
- intensity
ndarray Ein (M, N, 1) Array von Gleitkommazahlen im Bereich von 0 bis 1 (Graustufenbild).
- hsv_max_satZahl, optional
Der maximale Sättigungswert, auf den die *Intensitäts*-Karte das Ausgabebild verschieben kann. Wenn nicht angegeben, wird der bei der Initialisierung angegebene Wert verwendet.
- hsv_min_satZahl, optional
Der minimale Sättigungswert, auf den die *Intensitäts*-Karte das Ausgabebild verschieben kann. Wenn nicht angegeben, wird der bei der Initialisierung angegebene Wert verwendet.
- hsv_max_valZahl, optional
Der maximale Wert ("v" in "hsv"), auf den die *Intensitäts*-Karte das Ausgabebild verschieben kann. Wenn nicht angegeben, wird der bei der Initialisierung angegebene Wert verwendet.
- hsv_min_valZahl, optional
Der minimale Wert ("v" in "hsv"), auf den die *Intensitäts*-Karte das Ausgabebild verschieben kann. Wenn nicht angegeben, wird der bei der Initialisierung angegebene Wert verwendet.
- rgb
- Gibt zurück:
ndarrayEin (M, N, 3) RGB-Array, das die kombinierten Bilder darstellt.
- blend_overlay(rgb, intensity)[Quelle]#
Kombiniert ein RGB-Bild mit einer Intensitätskarte unter Verwendung von "Overlay"-Blending.
- blend_soft_light(rgb, intensity)[Quelle]#
Kombiniert ein RGB-Bild mit einer Intensitätskarte unter Verwendung von "Soft Light"-Blending nach der "Pegtop"-Formel.
- property direction#
Der Einheitsvektor der Richtung zur Lichtquelle.
- hillshade(elevation, vert_exag=1, dx=1, dy=1, fraction=1.0)[Quelle]#
Berechnet die Beleuchtungsintensität für eine Oberfläche unter Verwendung des definierten Azimuts und der Elevation für die Lichtquelle.
Dies berechnet die Normalenvektoren für die Oberfläche und übergibt sie dann an
shade_normals- Parameter:
- elevation2D array-ähnlich
Die Höhenwerte, die zur Erzeugung einer Beleuchtungskarte verwendet werden.
- vert_exagZahl, optional
Der Betrag, um den die Höhenwerte bei der Berechnung der Beleuchtung übertrieben werden. Dies kann entweder zur Korrektur von Unterschieden in den Einheiten zwischen dem x-y-Koordinatensystem und dem Höhenkoordinatensystem (z. B. Dezimalgrad vs. Meter) oder zur Übertreibung oder Abschwächung topografischer Effekte verwendet werden.
- dxZahl, optional
Der x-Abstand (Spalten) des Eingabe-elevation-Gitters.
- dyZahl, optional
Der y-Abstand (Zeilen) des Eingabe-elevation-Gitters.
- fractionZahl, optional
Erhöht oder verringert den Kontrast des Hillshade. Werte größer als eins führen dazu, dass Zwischenwerte näher an die volle Beleuchtung oder den Schatten rücken (und alle Werte abschneiden, die über 0 oder 1 hinausgehen). Beachten Sie, dass dies visuell und mathematisch nicht dasselbe ist wie vertikale Übertreibung.
- Gibt zurück:
ndarrayEin 2D-Array von Beleuchtungswerten zwischen 0 und 1, wobei 0 vollständig im Schatten und 1 vollständig beleuchtet ist.
- shade(data, cmap, norm=None, blend_mode='overlay', vmin=None, vmax=None, vert_exag=1, dx=1, dy=1, fraction=1, **kwargs)[Quelle]#
Kombiniert farbcodierte Datenwerte mit einer Beleuchtungsintensitätskarte (auch "Hillshade" genannt) der Werte.
- Parameter:
- data2D array-ähnlich
Die Höhenwerte, die zur Erzeugung einer schattierten Karte verwendet werden.
- cmap
Colormap Die Colormap, die verwendet wird, um das data-Array zu färben. Beachten Sie, dass dies eine Instanz von
Colormapsein muss. Anstatt beispielsweisecmap='gist_earth'zu übergeben, verwenden Sie stattdessencmap=plt.get_cmap('gist_earth').- norm
NormalizeInstanz, optional Die Normalisierung, die verwendet wird, um Werte vor der Farbcodierung zu skalieren. Wenn None, werden die Eingaben linear zwischen ihrem Minimum und Maximum skaliert.
- blend_mode{'hsv', 'overlay', 'soft'} oder aufrufbar, optional
Der Typ des Blendings, der verwendet wird, um die farbcodierten Datenwerte mit der Beleuchtungsintensität zu kombinieren. Standard ist "overlay". Beachten Sie, dass für die meisten topografischen Oberflächen "overlay" oder "soft" visuell realistischer erscheinen. Wenn eine benutzerdefinierte Funktion bereitgestellt wird, wird erwartet, dass sie ein (M, N, 3) RGB-Array von Gleitkommazahlen (Bereich 0 bis 1) mit einem (M, N, 1) Hillshade-Array (ebenfalls 0 bis 1) kombiniert. (Aufru Signatur
func(rgb, illum, **kwargs)) Zusätzliche kwargs, die an diese Funktion übergeben werden, werden an die blend_mode-Funktion weitergeleitet.- vminfloat oder None, optional
Der minimale Wert, der bei der Farbcodierung von data verwendet wird. Wenn None, wird der minimale Wert in data verwendet. Wenn norm angegeben ist, wird dieses Argument ignoriert.
- vmaxfloat oder None, optional
Der maximale Wert, der bei der Farbcodierung von data verwendet wird. Wenn None, wird der maximale Wert in data verwendet. Wenn norm angegeben ist, wird dieses Argument ignoriert.
- vert_exagZahl, optional
Der Betrag, um den die Höhenwerte bei der Berechnung der Beleuchtung übertrieben werden. Dies kann entweder zur Korrektur von Unterschieden in den Einheiten zwischen dem x-y-Koordinatensystem und dem Höhenkoordinatensystem (z. B. Dezimalgrad vs. Meter) oder zur Übertreibung oder Abschwächung der Topografie verwendet werden.
- dxZahl, optional
Der x-Abstand (Spalten) des Eingabe-elevation-Gitters.
- dyZahl, optional
Der y-Abstand (Zeilen) des Eingabe-elevation-Gitters.
- fractionZahl, optional
Erhöht oder verringert den Kontrast des Hillshade. Werte größer als eins führen dazu, dass Zwischenwerte näher an die volle Beleuchtung oder den Schatten rücken (und alle Werte abschneiden, die über 0 oder 1 hinausgehen). Beachten Sie, dass dies visuell und mathematisch nicht dasselbe ist wie vertikale Übertreibung.
- **kwargs
Zusätzliche kwargs werden an die blend_mode-Funktion weitergeleitet.
- Gibt zurück:
ndarrayEin (M, N, 4) Array von Gleitkommazahlen im Bereich von 0-1.
- shade_normals(normals, fraction=1.0)[Quelle]#
Berechnet die Beleuchtungsintensität für die Normalenvektoren einer Oberfläche unter Verwendung des definierten Azimuts und der Elevation für die Lichtquelle.
Stellen Sie sich eine künstliche Sonne vor, die sich in einer bestimmten Azimut- und Elevationsposition befindet und unsere Oberfläche beleuchtet. Die Teile der Oberfläche, die zur Sonne geneigt sind, sollten heller werden, während die abgewandten Seiten dunkler werden sollten.
- Parameter:
- fractionZahl, optional
Erhöht oder verringert den Kontrast des Hillshade. Werte größer als eins führen dazu, dass Zwischenwerte näher an die volle Beleuchtung oder den Schatten rücken (und alle Werte abschneiden, die über 0 oder 1 hinausgehen). Beachten Sie, dass dies visuell und mathematisch nicht dasselbe ist wie vertikale Übertreibung.
- Gibt zurück:
ndarrayEin 2D-Array von Beleuchtungswerten zwischen 0 und 1, wobei 0 vollständig im Schatten und 1 vollständig beleuchtet ist.
- shade_rgb(rgb, elevation, fraction=1.0, blend_mode='hsv', vert_exag=1, dx=1, dy=1, **kwargs)[Quelle]#
Verwenden Sie diese Lichtquelle, um die Farben des rgb-Eingabearrays anzupassen, um den Eindruck einer schattierten Reliefkarte mit der gegebenen elevation zu erzeugen.
- Parameter:
- rgbarray-ähnlich
Ein (M, N, 3) RGB-Array, das im Bereich von 0 bis 1 angenommen wird.
- elevationarray-ähnlich
Ein (M, N) Array von Höhenwerten, das zur Erzeugung einer schattierten Karte verwendet wird.
- fractionZahl
Erhöht oder verringert den Kontrast des Hillshade. Werte größer als eins führen dazu, dass Zwischenwerte näher an die volle Beleuchtung oder den Schatten rücken (und alle Werte abschneiden, die über 0 oder 1 hinausgehen). Beachten Sie, dass dies visuell und mathematisch nicht dasselbe ist wie vertikale Übertreibung.
- blend_mode{'hsv', 'overlay', 'soft'} oder aufrufbar, optional
Der Typ des Blendings, der verwendet wird, um die farbcodierten Datenwerte mit der Beleuchtungsintensität zu kombinieren. Aus Kompatibilitätsgründen ist der Standardwert "hsv". Beachten Sie, dass für die meisten topografischen Oberflächen "overlay" oder "soft" visuell realistischer erscheinen. Wenn eine benutzerdefinierte Funktion bereitgestellt wird, wird erwartet, dass sie ein (M, N, 3) RGB-Array von Gleitkommazahlen (Bereich 0 bis 1) mit einem (M, N, 1) Hillshade-Array (ebenfalls 0 bis 1) kombiniert. (Aufru Signatur
func(rgb, illum, **kwargs)) Zusätzliche kwargs, die an diese Funktion übergeben werden, werden an die blend_mode-Funktion weitergeleitet.- vert_exagZahl, optional
Der Betrag, um den die Höhenwerte bei der Berechnung der Beleuchtung übertrieben werden. Dies kann entweder zur Korrektur von Unterschieden in den Einheiten zwischen dem x-y-Koordinatensystem und dem Höhenkoordinatensystem (z. B. Dezimalgrad vs. Meter) oder zur Übertreibung oder Abschwächung der Topografie verwendet werden.
- dxZahl, optional
Der x-Abstand (Spalten) des Eingabe-elevation-Gitters.
- dyZahl, optional
Der y-Abstand (Zeilen) des Eingabe-elevation-Gitters.
- **kwargs
Zusätzliche kwargs werden an die blend_mode-Funktion weitergeleitet.
- Gibt zurück:
ndarrayEin (m, n, 3) Array von Gleitkommazahlen im Bereich von 0 bis 1.
Beispiele für die Verwendung von matplotlib.colors.LightSource#
Benutzerdefinierte Hillshading in einem 3D-Oberflächendiagramm
Beschattierte & Leistungsnormalisierte Darstellung