Python Operator

 

Baustein unserer Echtzeit-Analyse

Der Python Operator ist einer unserer Analyse-Bausteine der grafisch programmierbaren Echtzeit-Analyse und doch ganz anders.

Dieser Operator bietet die Möglichkeit, seine eigenen Analyse-Ansätze zu implementieren und auch noch in Echtzeit auf den Datenstrom anzuwenden.

Zum Operatoren-Netz


Editor

Die Parametrierungs-Oberfläche des Python-Operators bietet einen umfangreichen Code-Editor. Neben Syntax-Highlighting liefert auch die Auto-Vervollständigung beim Tippen schon Hinweise zu Funktionen und Variablen.

Der Quellcode des Operators kann wahlweise im Operator selbst (also in der Datenbank) gespeichert werden, oder im Dateisystem z.B. in einem Git-Repository. Änderungen im Dateisystem werden je nach Konfiguration direkt im Operator synchronisiert.




Debugger

Du hast den Faden verloren und verstehst die Welt nicht mehr?

Keine Sorge: das passiert uns auch ständig; dafür haben wir den Debugger integriert, um die Ausführung an Haltepunkten jederzeit anhalten zu können und genau zu sehen, was vor sich geht.

Dabei können natürlich Variablen und der aktuelle Call-Stack inspiziert werden. Ein cooles Feature ist aber auch, dass man direkt an Ort und stelle in einer interaktiven Konsole Code ausführen kann und sich sozusagen "umschauen kann", selbst wenn etwas in den Variablen nicht direkt zu sehen ist.

So kommst du den fiesen Käfern schnell auf die Schliche.

Profiling

Die Analyse steht, kommt aber noch nicht ganz mit den Datenmengen hinterher?

Dann ist der integrierte Profiler sicher hilfreich: Er liefert eine genaue Übersicht, welche Funktionen wie viel Zeit beansprucht haben. Performance-Bottlenecks sind so schnell ausfindig gemacht und können gezielt optimiert werden.

Das wahllose Optimieren von Quellcode geht meist zu Lasten der Lesbarkeit. Mit dem Profiler können Sie Ihre Gedanken dort investieren, wo es richtig was bringt: An den Code-Stellen, die richtig Zeit fressen.



Eigene Parameter-Oberfläche (GUI)

Der Python-Operator bietet die Möglichkeit, vollkommen neue Operatoren zu implementieren. Erfahrungsgemäß können diese Operatoren genauso komplex und vielseitig werden, wie unseren anderen Operatoren.

Entsprechend ergibt sich auch für Python-Operatoren der Bedarf nach intuitiv einstellbaren Parametern.

Du kannst direkt im Quellcode eigene Parameter-Darstellungen auf der Basis von Qt und PySide2 erstellen und zur Anzeige bringen. Der Python-Code kann zudem unzugänglich gemacht werden, sodass der Operator sich praktisch identisch zu konventionellen Analyse-Bausteinen verhält.

Anpassbare Ein- & Ausgänge

Python-Operatoren können flexibel um Ein- und Ausgänge erweitert werden. Dadurch können sie vielseitig mit anderen Bausteinen unseres Operatoren-Netzes kombiniert werden. Die Ein- und Ausgänge sind die Schnittstelle zu anderen Operatoren.

Alle im Operatoren-Netz möglichen Datentypen werden unterstützt und sind in Python über entsprechende Software-Schnittstellen (Bindings) verfügbar.



Grenzenlose Möglichkeiten

Machine Learning und Data Science sind längst in unser aller Alltag angekommen. Wir sind permanent davon umgeben - wäre es nicht cool, diese Tools auch bei der Prozess-Überwachung nutzen zu können?
...haben wir auch gedacht und viele Python-Bibliotheken direkt vorinstalliert, damit Sie gleich loslegen können.

Python ermöglicht Zugang zu state-of-the-art Methoden der Datenanalyse.


Ganz zu Schweigen von dem, was du selbst in Python programmieren kannst, um die Analyse exakt auf deinen Prozess maßzuschneidern.

Performance & Echtzeitanalyse

Python ist lahm?

Dann weißt du vielleicht noch nicht, wie es richtig geht ;-)
Spaß bei Seite: Python ist eine interpretierte Script-Sprache und somit beansprucht die Ausführung von Python-Code mehr Aufwand als in C oder C++.

Der Trick liegt allerdings in der Nutzung von hoch optimierten Bibliotheken. Data Science Bibliotheken wie Numpy oder Tensorflow sind in Wirklichkeit in C oder C++ implementiert und werden als Binärcode ausgeführt. Die Algorithmen werden von hunderten Spezialisten entwickelt und optimiert.

Wenn man Numpy geschickt einsetzt, ist es schwierig ähnlich performanten Code in C++ selbst zu schreiben.

Software-Schnittstellen

Die Analyzer4D-Software kann nicht nur Python-Code ausführen, sondern gleichzeitig können Funktionen der Analyzer4D Software von Python aus aufgerufen werden.

So können Python-Programme von der hohen Performance unserer kompilierten Software profitieren.

Ähnlich wie kompilierte Python-Bibliotheken haben wir Bindings erstellt, die es ermöglichen, von Python aus direkt auf unsere C++-Datenstrukturen zuzugreifen.