Forum: PC-Programmierung Messdaten auswertung und visualisieren: Mit C++ oder Phyton was ist zu empfehlen?


von Robert (Gast)


Lesenswert?

Hallo alle zusammen,


ich habe folgende Problem:
Ich habe eine Software entwickelt, wo ich mir Messdaten einlesen und 
auch in eine DataBase schreibe.
Dieses Software ist in C++ und Qt 4.8 geschrieben.
--> Bis hier ist alles Okay und es funktioniert das ganze genau wie es 
sein muss.

Nun möchte ich diese Messdaten auswerten und gegebenfall Visualisieren 
(Das wird in eine getrennte Software).

Ich kann mich ehrlich gesagt nicht entscheiden: mit welche 
Programmiersprache soll das ganze programmiert werden.
In C++ ist machbar aber halt umständlich vorallem die Visualisierung und 
die Auswertung (mehrere Kurven werden nötig sein).
Ich bin durch einen zufall auf Python gestossen und bin einfach 
begeistert vorallem von der Mächtigkeit dieser Sprache.
Ich bin am überlegen meine neue Software in dieses sprache zu schreiben.
Was mir bei dieses Sprache sehr gut gefallen hat, ist die einfachheit 
der Benuzung von "Matplotlib" und das ist genau was ich in meine 
Anwendung brauche.

Was meint ihr dazu?
Wie umständlich wird für mich das Einstieg in Python?
Kann man mit überhaupt mit Python eine Installer (exe) machen ?
was meint ihr dazu?

von Alice (Gast)


Lesenswert?

Python und nicht Phyton :-)

von Gerhard (Gast)


Lesenswert?

Kann dir zu Python leider nichts sagen.

Trotzdem: Abhängig davon, wie (wenig) kompliziert die Auswertung ist 
wäre evtl. Gnuplot eine Möglichkeit. Es ist eine sehr mächtige 
Plotsoftware mit eingeschränkter Möglichkeit der Datennachbearbeitung 
(Spalten miteinander verrechnen, um-skalieren, mathematische Ausdrücke 
auf Spalten anwenden). Du kannst es interaktiv oder über Kommandodateien 
im Textformat steuern.

Gerhard

von Freddy (Gast)


Lesenswert?

Hallo,

natürlich eignet sich jede Programmiersprache zur Berechnung und 
Visualisierung, aber wie schon geschrieben ist die Frage was Du machen 
willst, wie Deine Daten aussehen, wie soll die Graphik sein, etc. dafür 
notwendig.
Will ich schnell zum Ziel kommen, oder soll das Programm nachher 
weitergegeben werden. Oder weitergegeben werden um es zu 
modifizieren.... alles spielt bei der Entscheidungsfindung eine Rolle.

Ich habe mit C++ und der Bibliothek Euler schon einiges gemacht, weil 
man so relativ gut in Vektoren oder Matrizen rechnen kann. Visualisiert 
habe ich das dann mit QT und QWT Plot.
Auf der anderen Seite habe ich auf der Arbeit Matlab für 
Entwicklungsprojekte. Dort kommt es eher darauf an schnell was zu 
entwickeln und ausprobieren zu können. Mal eben die Daten berechnen, 
normieren, quadrieren und plotten alles kein Problem. Ich brauche auch 
nichts neu übersetzen.

Wenn mein Code dann steht und ich es benötige kann ich dann davon 
immernoch ein C++ Programm erstellen.
Für Python ist meines erachtens die Erweiterung numphy, sciphy sehr 
interessant. Ich denke Im Internet findest dazu einiges an 
Dokumentation. Ist quasi eine Erweiterung von python um mit Vektoren und 
Matrizen zu rechnen und diese zu plotten.

Auch LabView setzte ich ab und an für solche Zwecke ein, wobei ich immer 
mehr zur Erkenntnis komme, dass man aufwändige Code-Teile lieber in C 
und als DLL einbindet. Es mag sein, dass neuere LabView Varianten besser 
bezüglich VCS Systemen ist, aber diese grafische Programmierung hat halt 
auch seine Nachteile - der Vorteil ist dass die Kollegen damit besser 
klarkommen als ein reines C++ Programm.

von Kaj G. (Firma: RUB) (bloody)


Lesenswert?

Robert schrieb:
> Kann man mit überhaupt mit Python eine Installer (exe) machen ?
Klar geht das.  Dazu brauchst du noch ein Programm dass das fuer dich 
macht:
- cx_Freeze,
- PyInstaller, oder
- Py2Exe

Robert schrieb:
> Wie umständlich wird für mich das Einstieg in Python?
Alles kein Hexenwerk, der Umstieg ist sehr einfach.
Ich kann da dieses Buch sehr empfehlen, falls du eins brauchst:
http://www.amazon.de/Python-umfassende-Sprachgrundlagen-Objektorientierung-Modularisierung/dp/3836219255/ref=sr_1_1?ie=UTF8&qid=1419948206&sr=8-1&keywords=python+3

Python hat den Vorteil das du schnell zu einem Ergebnis kommst. Da du ja 
erfahrung mit Qt zu haben scheinst:
Es gibt auch PyQt. Das gleiche wie Qt nur halt fuer Python, der 
Qt-Designer zum oberflaechen zusammen klicken ist der gleiche.

Mit Numpy, Matplotllib und Co. hat man dein Projekt schnell 
zusammengeschraubt.

von Rolf M. (rmagnus)


Lesenswert?

Robert schrieb:
> Dieses Software ist in C++ und Qt 4.8 geschrieben.

> In C++ ist machbar aber halt umständlich vorallem die Visualisierung und
> die Auswertung (mehrere Kurven werden nötig sein).

Wenn der Rest eh schon in C++ mit Qt geschrieben ist, würde sich doch 
anbieten, das auch damit zu machen. Das schon genannte Qwt bietet für 
Graphen passende Klassen, die recht einfach zu nutzen sind.

von Georg (Gast)


Lesenswert?

Robert schrieb:
> Was mir bei dieses Sprache sehr gut gefallen hat, ist die einfachheit
> der Benuzung von "Matplotlib"

Es würde mich doch sehr wundern, wenn es für C/C++ nichts Vergleichbares 
gäbe.

Ausserdem ist es nicht besonders schwierig, eine Kurve aus Messwerten in 
ein Achsenkreuz zu zeichnen, das programmiert man so nebenher, auch mit 
stufenloser Skalierung (notfalls bis herunter auf einen Windows-Button). 
Aufwendiger wird es bei Kuchen oder 3D.

Georg

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Robert schrieb:
> Nun möchte ich diese Messdaten auswerten und gegebenfall Visualisieren
> (Das wird in eine getrennte Software).

Hast Du schon mal über gnuplot nachgedacht?

von Georg B. (diereinegier)


Lesenswert?

Um schnell zu Ergebnissen zu kommen, ist Python zusammen mit den schon 
genannten Bibliotheken sicherlich ideal. Wenn Dein Kunde auch mit 
eigenen Auswertealgorithmen oder Visualisierugen experimentieren möchte, 
dann umso mehr.

Ich würde Dir die Distribution PythonXY 
(https://code.google.com/p/pythonxy/) empfehlen. Da kommt schonmal alles 
in einem hübschen Installer daher. Ob und wie man eigene Software da 
einklinken kann, weiß ich allerdings nicht.

Ich bin nicht ganz sicher, ob man damit interaktive Oberflächen bauen 
kann, die z.B. bei Klick auf einen Datenpunkt weitere Details anzeigen, 
oder ein Menu mit dem man z.B. verwandte Daten anfordern kann. Wenn man 
so etwas braucht ist es evtl. besser, selbst ein oder mehrere QWidgets 
in C++ zu programmieren.

Was auch gut geht: Pythonxy als Anwendung in einem WebServer (MS IIS) 
laufen zu lassen. Dann braucht man auf den Clients evtl. gar keine 
Software zu installieren. Dafür darf die Installation auf dem Server 
dann ruhig etwas schwieriger sein.

von Oliver S. (oliverso)


Lesenswert?

Wenn es um einfache Diagramme geht, bleib doch bei Qt mit einer der 
Plotlibs, wie QWT, qcustomplot.

Oliver

von Volker S. (vloki)


Lesenswert?

Ja ein Blick auf http://www.qcustomplot.com/ lohnt sich auf jeden Fall.
Ich finde es viel einfacher zu handeln als QWT

von 4. fenstersturz (Gast)


Lesenswert?

ahoj,

ich habe letztens bei einer solchen aufgabe einen ganz anderen weg 
beschritten: die auswertung an sich in C#, die visualisierung per HTML5 
canvas wahlweise im browser auf dem desktop oder quasi als kostenloses 
nebenprodukt auch auf dem handy oder tablet.

der kram lief mit mono dann auch unter linux perfekt, falls windows 
nicht in frage kommen sollte.

lg von der moldau

von Robert (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Robert schrieb:
>> Nun möchte ich diese Messdaten auswerten und gegebenfall Visualisieren
>> (Das wird in eine getrennte Software).
>
> Hast Du schon mal über gnuplot nachgedacht?

Daran habe ich nicht nachgedacht und das kenne ich  gar nicht.
Kann man das auch in visual studio einbinden?

Was ich vorhabe ist aufjedenfall in c++ machbar, aber da es python im 
verbindung mit qt ist viel flexibler meine meinung nach und nich wie ich 
genannt habe nicht so aufwendig wie c++.
Dazu ist für mich die zeit reif um was neues zu lernen zb. Python

Was mir allerdings wichtig ist, ist eine installer daraus zu machen und 
das wurde schon beantwortet.

Kaj G. schrieb:
> Robert schrieb:
>> Kann man mit überhaupt mit Python eine Installer (exe) machen ?
> Klar geht das.  Dazu brauchst du noch ein Programm dass das fuer dich
> macht:
> - cx_Freeze,
> - PyInstaller, oder
> - Py2Exe
>
> Robert schrieb:
>> Wie umständlich wird für mich das Einstieg in Python?
> Alles kein Hexenwerk, der Umstieg ist sehr einfach.
> Ich kann da dieses Buch sehr empfehlen, falls du eins brauchst:
> http://www.amazon.de/Python-umfassende-Sprachgrund...
>
> Python hat den Vorteil das du schnell zu einem Ergebnis kommst. Da du ja
> erfahrung mit Qt zu haben scheinst:
> Es gibt auch PyQt. Das gleiche wie Qt nur halt fuer Python, der
> Qt-Designer zum oberflaechen zusammen klicken ist der gleiche.
>
> Mit Numpy, Matplotllib und Co. hat man dein Projekt schnell
> zusammengeschraubt.

von Kaj G. (Firma: RUB) (bloody)


Lesenswert?

Robert schrieb:
> Was mir allerdings wichtig ist, ist eine installer daraus zu machen und
> das wurde schon beantwortet.
>
> Kaj G. schrieb:
>> Robert schrieb:
>>> Kann man mit überhaupt mit Python eine Installer (exe) machen ?
>> Klar geht das.  Dazu brauchst du noch ein Programm dass das fuer dich
>> macht:
>> - cx_Freeze,
>> - PyInstaller, oder
>> - Py2Exe
Mit den genannten Programmen machst du (genaugenommen) keinen Installer, 
sondern erstmal nur eine .exe-Datei, damit du das auf Windowsrechnern 
ausfuehren kannst, ohne Python installieren zu muessen.

Einen Installer (setup.exe) kannst du aber mit Inno-Setup 
(http://www.jrsoftware.org/isdl.php) erstellen.

: Bearbeitet durch User
von Konrad (Gast)


Lesenswert?

Robert schrieb:
> Was ich vorhabe ist aufjedenfall in c++ machbar, aber da es python im
> verbindung mit qt ist viel flexibler meine meinung nach und nich wie ich
> genannt habe nicht so aufwendig wie c++.
> Dazu ist für mich die zeit reif um was neues zu lernen zb. Python

Oder deutsche Sprache?

von Christian (Gast)


Lesenswert?

Ich würde das ganze mit Java programmieren

von J. W. (nuernberger)


Lesenswert?

Ich würde auf jeden Fall Python nehmen, eventuell mit TkInter, falls 
grafische Oberfläche gewünscht.

von Robert (Gast)


Lesenswert?

Hallo alle zusammen,



nach lange überlegung habe ich mich entschlossen meinen Projekt mit 
Python zu programmieren.


habt ihr vielleicht einen Empfehlenden Buch, der mir das Einstieg in 
Python erleichtert.

Es wäre super schön, wenn es dieses Buch auch Qt Beispiele beinhaltet.
Noch schöne wäre es auch, wenn es auch Entwurf, Konzept, Design und ... 
(was zu Objektorientierte Konzept) beinhaltet.


Noch mal danke für eure Ratschläge.

von Kaj G. (Firma: RUB) (bloody)


Lesenswert?

Robert schrieb:
> habt ihr vielleicht einen Empfehlenden Buch, der mir das Einstieg in
> Python erleichtert.
>
> Es wäre super schön, wenn es dieses Buch auch Qt Beispiele beinhaltet.

Kaj G. schrieb:
> Ich kann da dieses Buch sehr empfehlen, falls du eins brauchst:
> 
http://www.amazon.de/Python-umfassende-Sprachgrundlagen-Objektorientierung-Modularisierung/dp/3836219255/ref=sr_1_1?ie=UTF8&qid=1419948206&sr=8-1&keywords=python+3

von freak_tsx (Gast)


Lesenswert?

4. fenstersturz schrieb:
> ich habe letztens bei einer solchen aufgabe einen ganz anderen weg
> beschritten: die auswertung an sich in C#, die visualisierung per HTML5
> canvas wahlweise im browser auf dem desktop oder quasi als kostenloses
> nebenprodukt auch auf dem handy oder tablet.

Wenn du die Daten als XML ausgeben kannst, dann schau dir für 
Visualisierungen (für "Clients") ggf. mal das Flex-Framework mit dessen 
"DataServices" und "Charts" an. (zum teil OpenSource...) Es ist hald 
dann ActionScript3 Flash oder die Air-Runtime, und für grafische Sachen 
und vielen Daten wirklich sau schnell. Und es läuft mit einem einzigen 
binary auch überall (Win Mac Linux Tablet IOS Android SmartTv etc etc.)

Das geht quasi alles mit der Maus und man kommt da recht schnell zu 
sichtbaren Ergebnissen. CodeSyntax ist wie ECMA  Java  C# / etc, falls 
du überhaupt noch Code brauchst, um eventuell einige Sortierungen, Ein- 
und Ausblenden der Spalten, oder auch Vergrößerungen der Charts 
(Detailansichten), etc etc einzubauen.

von pypy (Gast)


Lesenswert?

python ist quasie ausführbarer Pseudocode. daher find ich das so geil.
sowas einfaches bräuchte man auch für uC.

von pypy (Gast)


Lesenswert?

Wenn man vom Teufel spricht:
https://micropython.org/

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.