[PYTHON] Spielen wir mit Amedas Daten - Teil 1

Ich möchte einige Daten als Studie über neuronale Netze behandeln. Also habe ich beschlossen, mit Amedas Daten zu spielen, die leicht verfügbar zu sein scheinen. Es scheint, dass die Daten von der folgenden URL heruntergeladen werden können.

https://www.jma.go.jp/jma/menu/menureport.html

Meteorologie → Vergangene Wetterdaten herunterladen

Es scheint also, dass Sie die entsprechenden Daten an der entsprechenden Stelle abrufen können. Es scheint, dass die Datenmenge, die gleichzeitig heruntergeladen werden kann, begrenzt ist. Stellen Sie sie daher entsprechend ein und versuchen Sie, sie herunterzuladen. Dieses Mal habe ich die Daten aus Matsumoto City, Präfektur Nagano, verwendet, die ich oft jogge.

matsu.jpg

Das ausgewählte Element ist ... ■ Temperatur ■ Windrichtung / Geschwindigkeit ■ Wetter Drei von. Nach Auswahl des entsprechenden Zeitraums und Klicken auf die Schaltfläche "CSV-Datei herunterladen" war der Download erfolgreich.

Wenn ich es öffne, sieht es aus wie ein seltsames Format. matsu_data.jpg

Es gibt einen Header, der jedoch möglicherweise etwas kaputt ist. Um mit Tensorflow zu analysieren, müssen Daten in Python importiert werden, aber dieses Mal werde ich Pandas verwenden. Dann scheint es Einschränkungen für die CSV-Datei zu geben. Wahrscheinlich ...

Ist es da? Ich kann es nicht so verwenden, wie es ist, und da die Windrichtung japanisch ist, habe ich beschlossen, es in einen numerischen Wert umzuwandeln.

Ich bin der Meinung, dass die Verwendung von Skripten wie Perl der Königsweg für solche Dinge ist, aber da die von mir verwendete Umgebung Windows ist, werde ich mit VBS problemlos ein Programm schreiben. Wie wäre es mit so etwas wie dem folgenden? (Ist es in Ordnung, so etwas zu veröffentlichen? ... Wer es benutzt, ist auf eigenes Risiko)

transCSV.vbs


if WScript.Arguments.Count = 0 then
    WScript.echo("too few arguments.")
    WScript.Quit(-1)
end if

Set objFso = CreateObject("Scripting.FileSystemObject")
FileName = WScript.Arguments(0)

if objFso.FileExists(FileName) = 0 then
    WScript.echo("filename err")
    WScript.Quit(-1)
end if


tmpFileName = split(FileName,".")
outFileName = tmpFileName(0) & "_out." & tmpFileName(1)


Set objReadFile = objFso.OpenTextFile(FileName , 1, False)
Set objWriteFile = objFso.OpenTextFile(outFileName , 2, True)

If Err.Number > 0 Then
    WScript.Echo "Open Error"
Else
    ' write header
    objWriteFile.WriteLine "year,month,day,hour,temp,wind,angle,weather,"
    line_cnt = 0
    Do Until objReadFile.AtEndOfStream
        line_str = objReadFile.ReadLine
        If line_cnt > 5 then
            line_info = split(line_str,",")
            yearValue = split(split(line_info(0)," ")(0),"/")(0)
            monthValue = split(split(line_info(0)," ")(0),"/")(1)
            dayValue = split(split(line_info(0)," ")(0),"/")(2)
            hourValue = split(split(line_info(0)," ")(1),":")(0)
            temp = line_info(1)
            wind = line_info(4)
            
            strAngle = line_info(6)
            
            weather = line_info(9)

            If Not(len(temp)=0 or len(wind)=0 or len(strAngle)=0 or len(weather)=0) then
                If strcomp(strAngle,"Norden") = 0 then
                    angle = 0
                ElseIf strcomp(strAngle,"Nord Nord West") = 0 then
                    angle = 1
                ElseIf strcomp(strAngle,"Nord Nord West") = 0 then
                    angle = 2
                ElseIf strcomp(strAngle,"Nordwest") = 0 then
                    angle = 3
                ElseIf strcomp(strAngle,"West-Nordwest") = 0 then
                    angle = 4
                ElseIf strcomp(strAngle,"Westen") = 0 then
                    angle = 5
                ElseIf strcomp(strAngle,"West-Südwest") = 0 then
                    angle = 6
                ElseIf strcomp(strAngle,"Südwesten") = 0 then
                    angle = 7
                ElseIf strcomp(strAngle,"Süd-Südwesten") = 0 then
                    angle = 8
                ElseIf strcomp(strAngle,"Süden") = 0 then
                    angle = 9
                ElseIf strcomp(strAngle,"Süd-Südost") = 0 then
                    angle = 10
                ElseIf strcomp(strAngle,"Süd-Ost") = 0 then
                    angle = 11
                ElseIf strcomp(strAngle,"Ost-Südost") = 0 then
                    angle = 12
                ElseIf strcomp(strAngle,"Osten") = 0 then
                    angle = 13
                ElseIf strcomp(strAngle,"Ost-Nordost") = 0 then
                    angle = 14
                ElseIf strcomp(strAngle,"Nordost") = 0 then
                    angle = 15
                ElseIf strcomp(strAngle,"Nordnordosten") = 0 then
                    angle = 16
                End If
                line_out_str = yearValue
                line_out_str = line_out_str & "," & monthValue
                line_out_str = line_out_str & "," & dayValue
                line_out_str = line_out_str & "," & hourValue
                line_out_str = line_out_str & "," & temp
                line_out_str = line_out_str & "," & wind
                line_out_str = line_out_str & "," & angle
                line_out_str = line_out_str & "," & weather
                objWriteFile.WriteLine line_out_str
            End If
        End If
        line_cnt = line_cnt + 1
    Loop
End If


objReadFile.Close
objWriteFile.Close
Set objReadFile  = Nothing
Set objFso = Nothing

WScript.Echo FileName & " > " & outFileName & " transport end!"

Dazu über die Befehlszeile:

cscript transCSV.vbs data.csv

Anschließend wurde data_out.csv im selben Ordner erstellt. (Anzeige auf halber Strecke)

data_out.csv


hour,temp,wind,angle,weather,
1,-3.0,1.8,0,2
2,-3.2,1.7,3,2
3,-4.1,1.1,0,2
4,-4.6,1.1,9,2
5,-4.6,1.0,12,2
6,-4.5,0.6,14,2
7,-5.1,1.0,0,2
8,-4.2,0.7,16,2
9,-2.7,0.5,13,2

Jetzt können Sie mit Pandas importieren. In Bezug auf andere Beispiele scheint es, dass es mit dem folgenden Python-Code importiert werden kann.

import pandas as pd
import numpy as np
import tensorflow as tf

# deta making???
csv_input = pd.read_csv(filepath_or_buffer="data_out.csv", encoding="ms932", sep=",")

#Anzahl der Eingabeelemente (Anzahl der Zeilen)*Die Anzahl der Spalten wird zurückgegeben.
print(csv_input.size)

#Gibt das DataFrame-Objekt zurück, das nur für die angegebene Spalte extrahiert wurde.
x = np.array(csv_input[["hour","day","month"]])
y = np.array(csv_input[["wind"]])

Wie spielst du von hier aus ??? Zunächst werde ich eine Regressionsanalyse mit einem neuronalen Netzwerk versuchen (Vorhersage von y aus x) ... aber es ist etwas länger geworden, also werde ich es auf das nächste Mal übertragen. Ich hatte in letzter Zeit nicht viel Zeit, aber ich habe vor, irgendwo mehr zu schreiben ... Ich werde mein Bestes geben.

Recommended Posts

Spielen wir mit Amedas Daten - Teil 1
Spielen wir mit Amedas Daten - Teil 4
Spielen wir mit Amedas Daten - Teil 3
Spielen wir mit Amedas Daten - Teil 2
Spielen wir mit der 4. Dimension der 4. Dimension
Lass uns mit Python mit Python spielen [Anfänger]
Spiel mit dem Propheten
[Einführung in WordCloud] Spielen Sie mit Scraping ♬
[Ergänzung] [PySide] Spielen wir mit Qt Designer
Spiele mit PyTorch
Spielen Sie mit 2016-Python
Spielen Sie mit CentOS 8
Spiel mit der Pyramide
Spiel mit Fathom
Python-Handspiel (Beginnen wir mit AtCoder?)
[Piyopiyokai # 1] Spielen wir mit Lambda: Erstellen einer Lambda-Funktion
Spiel mit Othello (Reversi)
[Lass uns mit Python spielen] Ein Haushaltsbuch erstellen
Spielen wir mit JNetHack 3.6.2, das einfacher zu kompilieren ist!
[Piyopiyokai # 1] Lass uns mit Lambda spielen: Holen Sie sich einen Twitter-Account
[Piyopiyokai # 1] Spielen wir mit Lambda: Erstellen eines Python-Skripts
Spielen Sie mit Push-Benachrichtigungen mit imap4lib
Spielen Sie mit Linux-Partitionen herum
Machen wir Othello mit wxPython
Spielen Sie mit Jupyter Notebook (IPython Notebook)
[Python] Spielen Sie mit Discords Webhook.
[Lass uns mit Python spielen] Bildverarbeitung zu Monochrom und Punkten
Schreiben wir Python mitinema4d.
Lassen Sie uns R-CNN mit Sklearn-theano machen
Lassen Sie uns Git-Cat mit Python bauen
Spielen Sie mit dem MD-Modul von ASE
Spielen Sie mit A3RT (Textvorschlag)
[Lass uns mit Python spielen] Ziel ist die automatische Satzgenerierung ~ Abschluss der automatischen Satzgenerierung ~
Laden wir S3-Dateien mit CLI hoch
Spiele mit einer Schildkröte mit Schildkrötengrafiken (Teil 1)
Lassen Sie uns eine GUI mit Python erstellen.
Spielen Sie mit Poancare-Serien und SymPy
HTTPS mit Django und Let's Encrypt
Lass uns mit Selene Deep SEA lernen
Machen wir einen Blockbruch mit wxPython
Machen wir Othellos KI mit Chainer-Teil 1-
Spielen Sie mit der Pythonista-UI-Implementierung [Action-Implementierung]
Spielen Sie mit dem PIR-Sensormodul [DSUN-PIR]
Spielen Sie mit Linux-Partitionen herum ~ Fortsetzung ~
Lassen Sie uns mit Python Image Scraping durchführen
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen wir mit xCAT einen Spacon
Machen wir Othellos KI mit Chainer-Teil 2-
Funken spielen mit WSL Anaconda Jupyter (2)
Lassen Sie uns mit Azure Face Emotionen erkennen
Spielen Sie mit Turtle auf Google Colab
Spiele mit Dämonen, weil es ein Abschnitt ist
Lassen Sie uns die Stimme mit Python # 1 FFT analysieren
Spielen wir mit dem von TIS erstellten Unternehmensanalysedatensatz "CoARiJ"
Lassen Sie uns ein Bilderkennungsmodell mit Ihren eigenen Daten erstellen und spielen!
[Lass uns mit Python spielen] Ziel ist die automatische Satzgenerierung ~ Morphologische Analyse durchführen ~