[PYTHON] Essayez de dessiner un "front de type carte météo" par apprentissage automatique basé sur les données météorologiques (3)

Essayez de dessiner un "front de type carte météo" par apprentissage automatique basé sur les données météorologiques (3)

La dernière fois, [dessinons un "front de type carte météorologique" par apprentissage automatique basé sur les données météorologiques (2)](https://qiita.com/m-taque/items/988b08185097dca5f5b5 "Basé sur les données météorologiques," Pour tenter de dessiner un "front de type carte météo" par apprentissage automatique (2) "), nous avons résumé l'histoire jusqu'à la visualisation de données numériques au format GPV. Cette fois, je vais résumer l'histoire jusqu'à l'extraction des données de première ligne sous forme de données sur les enseignants.

Stratégie d'apprentissage

Générer une image de première ligne à la position de première ligne

Notre objectif est de reconnaître plusieurs types d'images de données météorologiques qui ont été visualisées la dernière fois et de générer une image de première ligne au même endroit que la ligne de front de la carte météorologique préliminaire.

Plus précisément, nous allons créer un réseau de neurones qui prend une image de données météorologiques (6 types, taille 256x256 chacun) à un certain moment comme entrée et génère une image de taille 256x256 en sortie.

Cette image de sortie utilise l'image de première ligne créée à partir de la carte météorologique de rupture comme image de l'enseignant. L'image de l'enseignant est créée en convertissant l'élément du front froid en «bleu», le front chaud et le front de blocage en «rouge» et les autres en «blanc» à partir de la carte météorologique préliminaire.

Pour chaque pixel de l'image de sortie, l'entropie croisée calcule à quel tricolore il correspond et colore ce pixel avec le résultat le plus probable.

Pourquoi seule la ligne de front est visée?

Pourquoi est-ce seulement la première ligne sans générer la carte météorologique elle-même?

En fait, j'ai également essayé de générer la carte météo elle-même au début, mais en conséquence, elle semblait être tirée par la génération de lignes isobares, donc je n'y ai pas vraiment pensé.

Extraction de l'élément avant

Élément avant de la carte météorologique de rupture

Les éléments avant de la carte météorologique préliminaire sont le front froid (bleu), le front chaud (rouge), le front de blocage (rose) et le front de stagnation (bleu et rouge). SPAS_COLOR_201906231200.v8.512.png

(23 juin 2019 à minuit UTC) Avec une carte météo plutôt animée, un front stagnant s'étend de la région du sud de la Chine à la mer de Chine orientale jusqu'au sud du Japon. De plus, la dépression au large de Sanriku (se déplaçant à 30 km / h) est obstruée, et le front d'obstruction, le front chaud et le front froid s'étendent.

Recadrer l'image

À partir de là, coupez uniquement l'élément avant en fonction de la couleur.

tst_mask_spas2019062312.v8.512.png

Les cartes topographiques, les lignes de latitude / longitude et les lignes isobares ne sont pas nécessaires, donc le noir et le vert sont exclus. Le front d'obstruction a également cessé de laisser un léger rose et est devenu rouge. Cependant, seuls les symboles tels que «bas» et «haut» restent, mais je ferme les yeux.

Après tout, à partir de la carte météorologique préliminaire, créez une image qui convertit l'élément du front froid en "bleu", le front chaud et le front de blocage en "rouge" et les autres en "blanc", et utilisez-la comme image de l'enseignant.

Comment couper l'image

Le PIL a été utilisé pour découper les éléments frontaux de la carte météorologique en fonction de la couleur. J'ai évoqué ce qui suit.

Manipulation des pixels d'image en Python-Qiita

cripping.py


	t_img = load_img(t_imgfile)
	#Charger l'image de la carte météo
	t_data = img_to_array(t_img)/255    
	#Convertir en un tableau numérique

	#- Mask Fornt Line
	m_data = 255*t_data                 
	#Créer une image de la même taille
	m_img = array_to_img(m_data)        
	#Convertir en un tableau numérique

	img_size = m_img.size
	mask1 =  Image.new('RGB', img_size)
	#Générer des données d'image par RVB
	for x in range(img_size[0]):
		for y in range(img_size[1]):
			r,g,b = m_img.getpixel((x,y)) 
			#Lire la valeur RVB d'un pixel

			if(r>g+25):
				if(r>b-40):           
					#S'il est décidé d'être rouge(255,0,0)
					r=255
					b=0
					g=0
				else:
					r,g,b=255,255,255
					#"Blanc" sinon rouge
			elif(b>r):
				if(b>g+25): 
					#S'il est décidé d'être bleu(0,0,255)
					b=255
					g,r=0,0
				else:
					r,g,b=255,255,255
					#"Blanc" sinon bleu
			else:
				r,g,b=255,255,255
				#D'autres sont "blancs"

			mask1.putpixel((x,y),(r,g,b))
			#Remplace la valeur de pixel de l'image

Il y a un jeu de 25 ou 40 pour la discrimination RVB des couleurs. Lorsque l'image de face de la carte météo préliminaire est agrandie, même si elle est rouge, les couleurs sont mélangées à la limite avec la couleur de la mer environnante et le vert de la ligne de longitude. Si vous ne sélectionnez pas cette zone lors de la création d'une image de l'enseignant, ce sera une fine ligne dentelée, donc il y a du jeu dans la plage de jugement. Lors de la lecture de la valeur RVB à l'aide du "Digital Color Meter" fourni en standard avec MacOS, j'ai décidé de la plage de lecture par essais et erreurs.

front-ex.png

Résumé

Cette fois, nous avons résumé comment les éléments de première ligne, qui sont les données de l'enseignant pour créer un apprentissage automatique qui trace automatiquement les lignes de front, sont extraits de la carte météo.

En fait, je n'ai pas beaucoup de cartes météorologiques en couleur, et il y avait beaucoup de cartes météorologiques en noir et blanc remontant dans le temps, il est donc devenu nécessaire de créer également des données sur les enseignants à partir de cette version noir et blanc.

Par conséquent, après avoir créé un CNN qui convertit une carte météo en noir et blanc (à droite) en une carte météo en couleur à gauche comme indiqué ci-dessous, j'ai découpé l'élément avant à l'aide du programme de recadrage d'image expliqué cette fois.

ww.png

La prochaine fois, je publierai un article sur la coloration des cartes météorologiques en noir et blanc, ce que j'ai fait pour augmenter les données des enseignants.

[La prochaine fois: dessinons un "front de type carte météorologique" par apprentissage automatique basé sur les données météorologiques (4)](https://qiita.com/m-taque/items/80ba51b74167b2aa669e "Basé sur les données météorologiques" Dessinons un "front de type carte météo" par apprentissage automatique (4) ")

Recommended Posts

Essayez de dessiner un "front de type carte météorologique" par apprentissage automatique basé sur des données météorologiques (5)
Essayez de dessiner un "front de type carte météo" par apprentissage automatique basé sur les données météorologiques (3)
Essayez de dessiner un "front de type carte météo" par apprentissage automatique basé sur des données météorologiques (1)
Essayez de dessiner un "front de type carte météo" par apprentissage automatique basé sur des données météorologiques (4)
Essayez de dessiner un "front de type carte météo" par apprentissage automatique basé sur des données météorologiques (2)
Essayez de prédire la demande de puissance par l'apprentissage automatique
Histoire de l'analyse de données par apprentissage automatique
Les débutants en apprentissage automatique essaient de créer un arbre de décision
Essayez de dessiner une courbe de Bézier
Comment collecter des données d'apprentissage automatique
Essayez de faire une stratégie de blackjack en renforçant l'apprentissage ((1) Implémentation du blackjack)
Recherche de blogs techniques par machine learning en mettant l'accent sur la "facilité de compréhension"
Essayez de prédire la valeur de la jauge de niveau d'eau par apprentissage automatique en utilisant les données ouvertes de Data City Sabae
[Apprentissage automatique] Créez un modèle d'apprentissage automatique en effectuant un apprentissage par transfert avec votre propre ensemble de données
Essayez de dessiner une courbe de vie avec python
Notes sur l'apprentissage automatique (mises à jour de temps en temps)
Essayez de créer une nouvelle commande sous Linux
[Keras] J'ai essayé de résoudre le problème de classification des zones de type beignet par apprentissage automatique [Étude]
Essayez de faire une stratégie de blackjack en renforçant l'apprentissage (② Enregistrer l'environnement dans le gymnase)
Essayez de prédire le taux de change (FX) avec un apprentissage automatique non approfondi
Prédiction de données chronologiques par AutoML (apprentissage automatique automatique)
[Apprentissage automatique] Essayez de détecter des objets à l'aide de la recherche sélective
xgboost: modèle d'apprentissage automatique efficace pour les données de table
Introduction à l'apprentissage automatique à partir de Simple Perceptron
Windows10 (x64) Créer nativement un environnement d'apprentissage automatique
Comment dessiner de manière interactive un pipeline d'apprentissage automatique avec scikit-learn et l'enregistrer au format HTML
Visualisation des données avec Python - La méthode de dessin simultané de graphes basés sur les attributs avec "Facet" est trop pratique
Essayez de faire une stratégie de blackjack en renforçant l'apprentissage (③ Renforcer l'apprentissage dans votre propre environnement OpenAI Gym))
Introduction à l'apprentissage automatique
Créer un environnement d'étude d'apprentissage automatique Python avec macOS Sierra
Créer un environnement d'apprentissage automatique sur Mac (pyenv, deeplearning, opencv)
Essayez de créer un réseau de neurones / d'apprentissage en profondeur avec scratch
Collectez des données d'apprentissage automatique en grattant des bases de données publiques biosourcées
Introduction à l'apprentissage automatique avec scikit-learn - De l'acquisition de données à l'optimisation des paramètres
Utilisation d'icrawler plus simple pour la collecte de données d'apprentissage automatique
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de classification
Dockerfile pour créer un environnement de science des données basé sur pip3
Les débutants en apprentissage automatique tentent de contacter Naive Bayes (2) - Mise en œuvre
Créez une IA qui identifie le visage de Zuckerberg grâce à l'apprentissage en profondeur ③ (Apprentissage des données)
Paramètres d'environnement d'apprentissage automatique basés sur Python3 sur Mac (coexistence avec Python2)
Les débutants en apprentissage automatique tentent de contacter Naive Bayes (1) - Théorie
Utilisation des données ouvertes de Data City Sabae pour prédire la valeur de la jauge de niveau d'eau par apprentissage automatique Partie 2
J'étais frustré par Kaggle, alors j'ai essayé de trouver une bonne propriété locative en grattant et en apprentissage automatique
Étapes rapides pour créer un environnement d'apprentissage automatique à l'aide de Jupyter Notebook sur macOS Sierra avec anaconda