Skriptsprache, um Messdaten aufzubereiten?

Gast #4262657
Lesenswert?
• ▲
▼
Hallo,

ich würde gerne eine große Menge Messdaten, die als CSV vorliegen, 
automatisiert in Form von Reports aufbereiten.

Endprodukt ist ein von Latex erzeugtes PDF, das Kopf- und Fußzeilen, 
einige Plots, Tabellen und automatisch erzeugten Text enthält.

Der Workflow sieht so aus:
- CSV-Datei parsen
- Messdaten nach verschiedenen Gesichtspunkten auswerten, dazu müssen 
Filteralgorithmen und Statistik-Funktionen angewendet werden, teilweise 
gibt es noch zusätzliche Berechnungen mit exp() und ln() - 
wahrscheinlich ist eine sinnvolle Art der Zwischenspeicherung oder 
Indizierung nötig
- Aufrufen von gnuplot, um Plots als PDF zu generieren
- Aufrufen von Latex, um die Plots zusammen mit zusätzlichen 
Informationen schick aufzubereiten

Welche Skriptsprache ist eurer Meinung nach am besten für so etwas 
geeignet?
#4263290
Lesenswert?
• ▲
▼
Jochen schrieb:
> ich würde gerne eine große Menge Messdaten, die als CSV vorliegen,
> automatisiert in Form von Reports aufbereiten.

Was heißt "eine große Menge"? Wieviele Zeilen, wieviele Spalten?

> Endprodukt ist ein von Latex erzeugtes PDF, das Kopf- und Fußzeilen,
> einige Plots, Tabellen und automatisch erzeugten Text enthält.
>
> Der Workflow sieht so aus:
> - CSV-Datei parsen
> - Messdaten nach verschiedenen Gesichtspunkten auswerten, dazu müssen
> Filteralgorithmen und Statistik-Funktionen angewendet werden, teilweise
> gibt es noch zusätzliche Berechnungen mit exp() und ln() -
> wahrscheinlich ist eine sinnvolle Art der Zwischenspeicherung oder
> Indizierung nötig
> - Aufrufen von gnuplot, um Plots als PDF zu generieren
> - Aufrufen von Latex, um die Plots zusammen mit zusätzlichen
> Informationen schick aufzubereiten
>
> Welche Skriptsprache ist eurer Meinung nach am besten für so etwas
> geeignet?

All das dürfte jede mir bekannte Skriptsprache können, trotzdem schreit 
die Aufgabenstellung IMHO nach Python. Das ist besonders leicht erlern-, 
les-, wart- und veränderbar, trotzdem schon "im Grundzustand" äußerst 
performant (für eine Skriptsprache, versteht sich). Insbesondere in der 
wissenschaftlichen Datenanalyse und -Aufbereitung ist Python sehr 
beliebt, weil es durch kompilierte C-Module wie numpy, scipy und Pandas 
bis auf die Ebene von kompiliertem Maschinencode beschleunigt werden 
kann, ohne auf Klarheit, Komfort und Usability von Python verzichten zu 
müssen. Zur Not läßt sich Python mittels Boost::Python in C++ 
integrieren und umgekehrt, oder mit nuitka in kompilierbares C++ 
übersetzen.

Obendrein bietet Python mit Matplotlib ein sehr leistungsfähige 
Bibliothek zur visuellen Aufbereitung der Daten an, der Preis hierfür 
ist jedoch eine gewisse Komplexität. Daher verwende ich Matplotlib, wenn 
es richtig gut aussehen soll, und Gnuplot eher für schnelle, einfache 
Hacks.

Um Deinen LaTeX-Code zu schreiben, verfügt Python über eine eingebaute 
Template-Engine (string.Template), die allerdings weitgehend unbekannt 
ist, zudem stehen leistungsfähige Template-Frameworks wie Jinja2 zur 
Verfügung. Außerdem existiert ein Python-LaTeX-Framework namens Plastex, 
mit dem ich jedoch keine eigenen Erfahrungen habe -- YMMV.

LaTeX kann übrigens selbst Diagramme aus Daten generieren, über die 
Optik, Performanz und Qualität dieses Feature weiß ich allerdings leider 
nichts.

Für erste interaktive Analysen bietet sich im Übrigen auch noch iPython 
an, das ist eine interaktive Shell mit stark erweiterten Möglichkeiten.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.