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