2016-04-19 8 views
0

Ich habe eine große (10-100GB) Datendatei von 16-Bit-Integer-Daten, die von einer Datenerfassungseinrichtung eine Zeitreihe darstellt. Ich möchte ein Stück Python-Code schreiben, der es durchsucht und ein bewegliches Fenster von einigen Sekunden dieser Daten aufzeichnet. Im Idealfall möchte ich, dass dies so kontinuierlich wie möglich ist.Scan Plot durch eine große Datendatei mit Python

Die Daten werden bei 4 MHz abgetastet, so ein paar Sekunden von Daten plotten beinhaltet auf einem Diagramm ~ 10 Millionen Datenpunkte Plotten. Leider kann ich nicht wirklich Downsample, da die Features, die ich sehen möchte, in der Datei spärlich sind.

matplotlib ist nicht wirklich dafür ausgelegt. Es ist technisch möglich, und ich habe eine semiprofessionelle Matplotlib-Lösung, die es mir erlaubt, ein bestimmtes Zeitfenster zu zeichnen, aber es ist viel zu langsam und umständlich, einen fortlaufenden Scan von sich inkrementell ändernden Daten zu machen - das erneute Zeichnen dauert einige Sekunden viel zu lang.

Kann jemand vorschlagen, ein Python-Paket oder Ansatz dies tun?

Antwort

0

PyQtGraph ist schneller als Matplotlib aber ich weiß nicht, ob es 10 Millionen Punkte ein zweites Grundstück kann. Es enthält auch mehrere Methoden zum Downsampling Ihrer Daten, so dass eine davon für Sie immer noch nützlich sein kann. Beachten Sie, dass Qt und PyQt erforderlich sind.

Dennoch haben Sie zwischen 5E9 und 5E10 Datenproben. Wenn Sie 10 Millionen von ihnen gleichzeitig plotten können, bedeutet dies immer noch zwischen 500 und 5000 Plots zu machen. Werden Sie sie wirklich alle visuell untersuchen? Sie könnten eine Art Feature-Erkennung implementieren.

+0

Oh es gibt viele Feature-Erkennung mich zur Verfügung, aber ich würde einen schnellen Scan durch die Daten haben gerne zu sehen, wenn es vor der Anwendung komplexe Algorithmen nützlich ist. Downsampling ist hier nicht wirklich eine Option (könnte mit einem Faktor von 3 oder so wegkommen). – KBriggs

0

Etwas, das für mich in einem ähnlichen Problem (zeitlich variierenden Wärmekarten) wurde betreiben einen Batch-Job zur Herstellung von mehreren tausend solcher Grundstücke über Nacht, spart jeweils als separates Bild gearbeitet hat. Um 10 Uhr können Sie 3600 in 10 Stunden produzieren. Sie können dann einfach durch die Bilder scannen, die Ihnen die gewünschten Informationen liefern.

+0

Leider benötige ich für meine Anwendung quasi eine Echtzeitverarbeitung (hauptsächlich einen schnellen Scan durch die Datei, um eine detailliertere Analyse zu ermöglichen). – KBriggs

Verwandte Themen