Letztes Mal [Zeichnen wir eine "Wetterkarten-ähnliche Front" durch maschinelles Lernen basierend auf Wetterdaten (2)](https://qiita.com/m-taque/items/988b08185097dca5f5b5 "Basierend auf Wetterdaten" Als Versuch, durch maschinelles Lernen eine "wetterkartenähnliche Front" zu zeichnen (2) "), haben wir die Geschichte bis zur Visualisierung numerischer Daten im GPV-Format zusammengefasst. Dieses Mal werde ich die Geschichte zusammenfassen, bis Frontline-Daten als Lehrerdaten extrahiert werden.
Wir möchten mehrere Arten von Wetterdatenbildern erkennen, die beim letzten Mal visualisiert wurden, und ein Frontlinienbild an derselben Stelle wie die Frontlinie der vorläufigen Wetterkarte erstellen.
Insbesondere erstellen wir ein neuronales Netzwerk, das zu einem bestimmten Zeitpunkt ein Wetterdatenbild (6 Typen, Größe 256 x 256) als Eingabe verwendet und ein Bild mit einer Größe von 256 x 256 als Ausgabe generiert.
Dieses Ausgabebild verwendet das aus der aktuellen Wetterkarte erstellte Frontlinienbild als Lehrerbild. Das Lehrerbild wird erstellt, indem das Kaltfrontelement in "Blau", die Warmfront- und Blockierungsfront in "Rot" und die anderen in "Weiß" aus der vorläufigen Wetterkarte umgewandelt werden.
Für jedes Pixel im Ausgabebild berechnet die Kreuzentropie, welcher der Trikoloren sie entspricht, und färbt das Pixel mit dem wahrscheinlichsten Ergebnis.
Warum ist es nur die Front, ohne die Wetterkarte selbst zu erstellen?
Tatsächlich habe ich zunächst auch versucht, die Wetterkarte selbst zu erstellen, aber infolgedessen schien sie von der Erzeugung isobarer Linien gezogen zu werden, sodass ich nicht wirklich darüber nachdachte.
Die vorderen Elemente der vorläufigen Wetterkarte sind die Kaltfront (blau), die Warmfront (rot), die Blockierfront (rosa) und die Stagnationsfront (blau und rot).
(23. Juni 2019, 12:00 UTC) Es ist eine ziemlich lebhafte Wetterkarte, und eine stagnierende Front erstreckt sich von der Region Südchina über das Ostchinesische Meer bis in den Süden Japans. Außerdem wird der niedrige Druck von Sanriku (Bewegung mit 30 km / h) blockiert, und die Blockierfront, die Warmfront und die Kaltfront erstrecken sich.
Schneiden Sie von hier aus nur das vordere Element basierend auf der Farbe.
Topografische Karten, Längen- / Breitengrade und isobare Linien sind nicht erforderlich, daher sind Schwarz und Grün ausgeschlossen. Die Hindernisfront hörte ebenfalls auf, ein leichtes Rosa zu hinterlassen und wurde rot. Es bleiben jedoch nur die Symbole wie "niedrig" und "hoch" übrig, aber ich schließe meine Augen.
Erstellen Sie schließlich aus der vorläufigen Wetterkarte ein Bild, das das Kaltfrontelement in "Blau", die Warmfront- und Blockierungsfront in "Rot" und die anderen in "Weiß" umwandelt, und verwenden Sie es als Lehrerbild.
PIL wurde verwendet, um Frontalelemente aus der Wetterkarte basierend auf der Farbe auszuschneiden. Ich bezog mich auf Folgendes.
Bildpixelmanipulation in Python-Qiita
cripping.py
t_img = load_img(t_imgfile)
#Wetterkartenbild laden
t_data = img_to_array(t_img)/255
#In ein numerisches Array konvertieren
#- Mask Fornt Line
m_data = 255*t_data
#Machen Sie ein Bild der gleichen Größe
m_img = array_to_img(m_data)
#In ein numerisches Array konvertieren
img_size = m_img.size
mask1 = Image.new('RGB', img_size)
#Generieren Sie Bilddaten per RGB
for x in range(img_size[0]):
for y in range(img_size[1]):
r,g,b = m_img.getpixel((x,y))
#Lesen Sie den RGB-Wert eines Pixels
if(r>g+25):
if(r>b-40):
#Wenn entschieden wird, rot zu sein(255,0,0)
r=255
b=0
g=0
else:
r,g,b=255,255,255
#"Weiß" wenn nicht rot
elif(b>r):
if(b>g+25):
#Wenn entschieden wird, blau zu sein(0,0,255)
b=255
g,r=0,0
else:
r,g,b=255,255,255
#"Weiß" wenn nicht blau
else:
r,g,b=255,255,255
#Andere sind "weiß"
mask1.putpixel((x,y),(r,g,b))
#Ersetzen Sie den Pixelwert des Bildes
Es gibt ein Spiel von 25 oder 40 für die RGB-Unterscheidung von Farben. Wenn beispielsweise das vordere Bild der vorläufigen Wetterkarte vergrößert wird, werden die Farben an der Grenze mit der umgebenden Meeresfarbe und dem Grün der Längengradlinie gemischt, auch wenn es rot ist. Wenn Sie diesen Bereich beim Erstellen eines Lehrerbilds nicht erfassen, handelt es sich um eine dünne, gezackte Linie, sodass im Beurteilungsbereich ein Spiel vorhanden ist. Beim Lesen des RGB-Werts mit dem im Lieferumfang von MacOS enthaltenen "Digital Color Meter" habe ich den Wiedergabebereich durch Ausprobieren festgelegt.
Dieses Mal haben wir zusammengefasst, wie die Frontlinienelemente, die die Lehrerdaten zum Erstellen von maschinellem Lernen sind, das automatisch Frontlinien zeichnet, aus der Wetterkarte extrahiert werden.
Eigentlich habe ich nicht viele Farbwetterkarten, und es gab viele Schwarz-Weiß-Wetterkarten, die in der Zeit zurückreichen. Daher wurde es notwendig, auch Lehrerdaten aus dieser Schwarz-Weiß-Version zu erstellen.
Nachdem ich eine CNN erstellt habe, die eine Schwarzweiß-Wetterkarte (rechts) in eine Farbwetterkarte links konvertiert, wie unten gezeigt, schneide ich die vorderen Elemente mit dem diesmal erläuterten Bildbeschneidungsprogramm aus.
Das nächste Mal werde ich eine Geschichte über das Kolorieren von Schwarz-Weiß-Wetterkarten veröffentlichen, die ich gemacht habe, um die Lehrerdaten zu erhöhen.
[Nächstes Mal: Zeichnen wir eine "wetterkartenähnliche Front" durch maschinelles Lernen basierend auf Wetterdaten (4)](https://qiita.com/m-taque/items/80ba51b74167b2aa669e "Basierend auf Wetterdaten" Zeichnen wir durch maschinelles Lernen eine "wetterkartenähnliche Front" (4) ")
Recommended Posts