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.
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 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é.
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).
(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.
À partir de là, coupez uniquement l'élément avant en fonction de la couleur.
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.
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.
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.
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