Forum: PC-Programmierung Skriptsprache, um Messdaten aufzubereiten?


von Jochen (Gast)


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?

von Achim H. (anymouse)


Lesenswert?

Quick'n'Dirty: perl

von M.N. (Gast)


Lesenswert?

Ferner:

* Matlab/Octave/Scilab
* Python

von LuaUser (Gast)


Lesenswert?

Lua

von Walter T. (nicolas)


Lesenswert?

M.N. schrieb:
> Matlab/Octave/Scilab

von Kaj (Gast)


Lesenswert?

Python

von FloF (Gast)


Lesenswert?

Ipython und zum Einstieg 'Jupyter', was frueher unter Ipython Notebook 
lief.

von Markus (Gast)


Lesenswert?

Ich würde auch Python empfehlen, und die Plots direkt mit 
matplotlib/pyplot machen, dann sparst du dir den Umweg über Gnuplot, bei 
ähnlicher Qualität der Plots.

von kaese (Gast)


Lesenswert?

Wenn du Kohle hast: Matlab + Signal Processing Toolkit

Wenn du die nicht hast: Python + Toolkits

Scilab ist mir zu rudimentaer.

von Chris M. (yoblid) Benutzerseite


Lesenswert?

Jochen schrieb:
> Welche Skriptsprache ist eurer Meinung nach am besten für so etwas
> geeignet?

Perl

von Yalu X. (yalu) (Moderator)


Lesenswert?

Ich hab's zwar selber noch nicht ausprobiert, aber deiner
Problembeschreibung nach könnte auch R ein Kandidat sein:

  https://www.r-project.org/

von fghfghgfh (Gast)


Lesenswert?

Python mit numpy, pylab und r2py bietet alles was du brauchst.

von Sheeva P. (sheevaplug)


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.

von root (Gast)


Lesenswert?

R und python sind die Kandidaten

von Lukas K. (carrotindustries)


Lesenswert?

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

Dafür verwende ich pgfplots. Die ergebnisse sind exzellent, allerdings 
sollte man die Daten davor "mundgerecht" aufbereiten, sodass TeX nicht 
mit allzuvielen Datenpunkten hantieren muss.

von bergvagabund (Gast)


Lesenswert?

Ich empfehle auch Python (numpy, scipy, matplotlib).
Um einen schönen Report zu erstellen (pdf) würde ich dann allerdings 
"reportlab" verwenden.

von Jay W. (jayway)


Lesenswert?

Meine Empfehlung Perl + PDL

http://pdl.perl.org/?page=home

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.