Lernprogramm: Einfache Funktion hinzufügen
In diesem Lernprogramm schreiben Sie eine einfache Funktion, um Ausreißerwerte in der von Robotern zurückgelegten Entfernung zu ermitteln. Testen Sie diese einfache Funktion mit einem Skript, bevor Sie sie auf einen Beispielgerätetyp in anwenden Maximo® Monitor.
Vorbereitende Schritte
- Installieren Sie Python 3.9.x in Ihrer Umgebung.
- Installieren Sie IoT Functions in Ihrer lokalen Umgebung. Befolgen Sie die Anweisungen in der IoT Functions-Readme-Datei.
Tipp: Alternativ können Sie zum Installieren von IoT Functions und den zugehörigen Abhängigkeiten die Schritte im Abschnitt "Vorbereitungen" des Lernprogramms: Angepasste Funktion hinzufügenausführen. Klonen Sie das Starterpaket HelloWorld und importieren Sie es in PyCharm. Installieren Sie die Anforderungen von PyCharm. - Vollständiges Tutorial: Hinzufügen von Ausdrücken zum Hinzufügen einer
distanceMetrik zum Robotertypen in Maximo Monitor.
Informationen zu diesem Vorgang
Sie testen eine einfache Funktion in Ihrer lokalen Umgebung, um sicherzustellen, dass die Berechnung funktioniert und dass die Syntax korrekt ist.
Im Script erstellen Sie einen Beispielgerätetyp, generieren einige Beispieldaten und wenden die einfache Funktion auf die Beispieldaten an, um eine neue adjusted_distance -Metrik zu erstellen.
Schritte
Führen Sie die folgenden Schritte aus, um eine Berechnung mithilfe einer einfachen Funktion auf Beispieldaten anzuwenden.
Schritt 1: Berechnung definieren
Definieren Sie "adjusted_distance" wie folgt: adjusted_distance = distance * 0.9
Schritt 2: Berechtigungsnachweise in Datei speichern
Legen Sie die Anmeldedaten für die Maximo Monitor Verbindung fest.
- Laden Sie die
credentials_as.json-Dateiherunter. - Ersetzen Sie die Variablen durch Ihre Daten und speichern Sie die Datei auf Ihrer lokalen Maschine.
Schritt 3: Einfache Funktion in Python schreiben
Schreiben Sie ein Script, save_simple_function_locally.py, das die von Robotern zurückgelegte Entfernung anpasst. Verbinden Sie sich im Skript mit Maximo Monitor Ihren Anmeldedaten mit und speichern Sie die Funktion in einem lokalen Modellspeicher. Anweisungen finden Sie in den Inlinekommentaren.
#Import packages and libraries
import datetime as dt
import json
import pandas as pd
import numpy as np
from sqlalchemy import Column, Integer, String, Float, DateTime, Boolean, func
import iotfunctions.bif as bif
from iotfunctions.metadata import EntityType, LocalEntityType
from iotfunctions.db import Database
from iotfunctions.dbtables import FileModelStore
#Connect to Maximo Monitor
with open('credentials_as.json', encoding='utf-8') as F:
credentials = json.loads(F.read())
db_schema = None
db = Database(credentials=credentials)
#Write the function
def f(df, parameters = None):
adjusted_distance = df['distance'] * 0.9
return adjusted_distance
#Save the function to a local model store
model_store = FileModelStore()
model_store.store_model('adjusted_distance', f)
Schritt 4: Funktion in einem lokalen Dateimodellspeicher speichern
Führen Sie das Script save_simple_function_locally.py von Ihrer lokalen Umgebung aus. Eine Datei KPI_MODEL_STOREadjusted_distance wird in demselben Verzeichnis erstellt, in dem Sie Ihr Script gespeichert haben.
Schritt 5: Einfache Funktion in lokaler Umgebung testen
Erstellen Sie ein Script mit dem Namen test_my_simple_function_locally.py. Führen Sie im Script die folgenden Schritte aus:
- Importieren Sie Python-Bibliotheken und -Pakete:
import datetime as dt import json import pandas as pd import numpy as np from sqlalchemy import Column, Integer, String, Float, DateTime, Boolean, func import iotfunctions.bif as bif from iotfunctions.metadata import EntityType, LocalEntityType from iotfunctions.db import Database from iotfunctions.dbtables import FileModelStore - Verbinden Sie sich mit dem Maximo Monitor :
with open('credentials_as.json', encoding='utf-8') as F: credentials = json.loads(F.read()) db_schema = None model_store = FileModelStore() db = Database(credentials=credentials, model_store=model_store) - Erstellen Sie einen Beispielgerätetyp und übergeben Sie die einfache Funktion mithilfe der integrierten Funktion PythonFunction aus dem Modul
bif, das Sie aus IoT Functions importiert haben, an sie.sample_entity_type = bif.PythonFunction( function_code = 'adjusted_distance', input_items = ['distance'], output_item = 'adjusted_distance', parameters = {} ) - Führen Sie die Methode 'execute_local_test' des Mustergerätetyps aus, um die Funktion in Ihrer lokalen Umgebung zu testen. Speichern Sie die Ergebnisse in einer CSV-Datei.
sample_entity_type.execute_local_test(db=db, generate_days=1, to_csv=True)
Das Script erstellt ein neues adjusted_distance-Datenelement. Überprüfen Sie die Ergebnisse in der Datei .csv . Wenn dies erfolgreich ist, können Sie die einfache Funktion über die Maximo Monitor Benutzeroberfläche hinzufügen.
Schritt 6: Die einfache Funktion auf den Gerätetyp des Roboters anwenden
- Klicken Sie auf der Registerkarte Daten auf Metrik erstellen.
- Wählen Sie die Funktion
PythonFunctionim Katalog aus. - Legen Sie den Bereich fest und klicken Sie auf Weiter.
- Wählen Sie
distanceals Eingabeelement aus. - Geben Sie die einfache Funktion in das Feld
function_codeein oder fügen Sie sie ein. Geben Sie Folgendes ein:def f(df, parameters = None): adjusted_distance = df['distance'] * 0.9 return adjusted_distance - Klicken Sie auf Weiter
- Geben Sie
adjusted_distanceals Ausgabedatenelement an. - Geben Sie 'Zahl' als Datentyp an.
- Klicken Sie auf Erstellen.
- Wählen Sie in der Datenelementliste
adjusted_distanceaus. - Zeigen Sie die neuen
adjusted_distance-Metrikdaten an.
Warten Sie bis zu 5 Minuten, bis die einfache Funktion anhand Maximo Monitor der Beispieldaten ausgewertet hat.