[PYTHON] Versuchen Sie, durch maschinelles Lernen anhand von Wetterdaten eine "wetterkartenähnliche Front" zu zeichnen (3).

Versuchen Sie, durch maschinelles Lernen anhand von Wetterdaten eine "wetterkartenähnliche Front" zu zeichnen (3).

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.

Lernstrategie

Generieren Sie ein Frontlinienbild an der Frontlinienposition

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 wird nur die Frontlinie ins Visier genommen?

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.

Extraktion des Frontelements

Vorderes Element der Wetterkarte

Die vorderen Elemente der vorläufigen Wetterkarte sind die Kaltfront (blau), die Warmfront (rot), die Blockierfront (rosa) und die Stagnationsfront (blau und rot). SPAS_COLOR_201906231200.v8.512.png

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

Bild zuschneiden

Schneiden Sie von hier aus nur das vordere Element basierend auf der Farbe.

tst_mask_spas2019062312.v8.512.png

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.

So schneiden Sie das Bild

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.

front-ex.png

Zusammenfassung

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.

ww.png

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

Versuchen Sie, durch maschinelles Lernen basierend auf Wetterdaten eine "wetterkartenähnliche Front" zu zeichnen (5)
Versuchen Sie, durch maschinelles Lernen anhand von Wetterdaten eine "wetterkartenähnliche Front" zu zeichnen (3).
Versuchen Sie, durch maschinelles Lernen basierend auf Wetterdaten eine "wetterkartenähnliche Front" zu zeichnen (1)
Versuchen Sie, durch maschinelles Lernen anhand von Wetterdaten eine "wetterkartenähnliche Front" zu zeichnen (4)
Versuchen Sie, durch maschinelles Lernen basierend auf Wetterdaten eine "wetterkartenähnliche Front" zu zeichnen (2)
Versuchen Sie, den Strombedarf durch maschinelles Lernen vorherzusagen
Geschichte rund um die Datenanalyse durch maschinelles Lernen
Anfänger des maschinellen Lernens versuchen, einen Entscheidungsbaum zu erstellen
Versuchen Sie, eine Bezier-Kurve zu zeichnen
Sammeln von Daten zum maschinellen Lernen
Versuchen Sie, eine Blackjack-Strategie zu entwickeln, indem Sie das Lernen stärken ((1) Implementierung von Blackjack)
Suchen Sie nach technischen Blogs durch maschinelles Lernen mit dem Schwerpunkt "Verständlichkeit"
Versuchen Sie, den Wert des Wasserstandsmessers durch maschinelles Lernen unter Verwendung der offenen Daten von Data City Sabae vorherzusagen
[Maschinelles Lernen] Erstellen Sie ein Modell für maschinelles Lernen, indem Sie Transferlernen mit Ihrem eigenen Datensatz durchführen
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Hinweise zum maschinellen Lernen (von Zeit zu Zeit aktualisiert)
Versuchen Sie, einen neuen Befehl unter Linux zu erstellen
[Keras] Ich habe versucht, das Problem der Klassifizierung des Donut-Typ-Bereichs durch maschinelles Lernen zu lösen. [Studie]
Versuchen Sie, eine Blackjack-Strategie zu entwickeln, indem Sie das Lernen stärken (② Registrieren Sie die Umgebung im Fitnessstudio).
Versuchen Sie, den Wechselkurs (FX) mit nicht tiefem maschinellem Lernen vorherzusagen
Vorhersage von Zeitreihendaten durch AutoML (automatisches maschinelles Lernen)
[Maschinelles Lernen] Versuchen Sie, Objekte mithilfe der selektiven Suche zu erkennen
xgboost: Effektives Modell für maschinelles Lernen für Tabellendaten
Einführung in das maschinelle Lernen mit Simple Perceptron
Windows10 (x64) Erstellen Sie nativ eine maschinelle Lernumgebung
So zeichnen Sie interaktiv eine Pipeline für maschinelles Lernen mit scikit-learn und speichern sie in HTML
Datenvisualisierung mit Python - Die Methode zum gleichzeitigen Zeichnen von Attribut-basierten Diagrammen mit "Facet" ist zu praktisch
Versuchen Sie, eine Blackjack-Strategie zu entwickeln, indem Sie das Lernen stärken (③ Stärkung des Lernens in Ihrer eigenen OpenAI Gym-Umgebung).
Einführung in das maschinelle Lernen
Erstellen Sie mit macOS sierra eine Python-Lernumgebung für maschinelles Lernen
Erstellen Sie eine maschinelle Lernumgebung auf einem Mac (pyenv, deeplearning, opencv).
Versuchen Sie, ein Deep Learning / Neuronales Netzwerk mit Scratch aufzubauen
Sammeln Sie Daten zum maschinellen Lernen, indem Sie aus biobasierten öffentlichen Datenbanken kratzen
Einführung in das maschinelle Lernen mit scikit-learn-Von der Datenerfassung bis zur Parameteroptimierung
Die Verwendung von icrawler zum Sammeln von Daten zum maschinellen Lernen wurde vereinfacht
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Klassifizierung zu bewerten
Dockerfile zum Erstellen einer datenwissenschaftlichen Umgebung basierend auf pip3
Anfänger des maschinellen Lernens versuchen, Naive Bayes zu erreichen (2) - Implementierung
Erstellen Sie eine KI, die Zuckerbergs Gesicht mit tiefem Lernen identifiziert learning (Datenlernen)
Einstellungen der Python3-basierten maschinellen Lernumgebung auf dem Mac (Koexistenz mit Python2)
Anfänger des maschinellen Lernens versuchen, Naive Bayes (1) - Theorie zu erreichen
Verwendung der offenen Daten von Data City Sabae zur Vorhersage des Werts des Wasserstandsmessers durch maschinelles Lernen Teil 2
Ich war frustriert von Kaggle und versuchte, durch Schaben und maschinelles Lernen ein gutes Mietobjekt zu finden
Schnelle Schritte zum Erstellen einer maschinellen Lernumgebung mit Jupyter Notebook unter macOS Sierra mit anaconda