このチュートリアルでは、ロボットの移動距離の異常値を識別する単純関数を作成します。 分析サービスのサンプル資産タイプに適用する前に、スクリプトを使用してこの単純関数をテストします。
distance
KPI を追加します。ローカル環境で単純関数をテストして、計算が機能していること、および構文が正しいことを確認します。
このスクリプトでは、サンプル資産タイプを作成して、いくつかのサンプル・データを生成し、単純関数をサンプル・データに適用して、新しい adjusted_distance
KPI を作成します。
単純関数を使用してサンプル・データに計算を適用するには、以下のステップを実行します。
以下のように adjusted_distance を定義します。
adjusted_distance = distance * 0.9
Analytics Service に接続するための資格情報を設定します。
credentials_as.json
ファイルを作成します。 ユーザー・インターフェースから「使用法」タブに移動します。 credentials_as.json
ファイルに貼り付けます。注: 資格情報ファイルは、外部リポジトリーに保存しないように注意してください。
ロボットの移動距離を調整するスクリプト save_simple_function_locally.py
を作成します。 このスクリプトでは、資格情報を使用して Analytics Service に接続し、関数をローカル・モデル・ストアに保存します。 手順については、インライン・コメントを参照してください。
#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 the service
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)
ローカル環境からスクリプト save_simple_function_locally.py
を実行します。 スクリプトを保管したのと同じディレクトリーに、KPI_MODEL_STOREadjusted_distance
ファイルが作成されます。
test_my_simple_function_locally.py
という名前のスクリプトを作成します。 このスクリプト内で、以下のステップを実行します。
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
以下のように、サービスに接続します。
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)
bif
モジュールから組み込みの PythonFunction を使用して、単純関数をそのサンプル・エンティティー・タイプに渡します。sample_entity_type = bif.PythonFunction(
function_code = 'adjusted_distance',
input_items = ['distance'],
output_item = 'adjusted_distance',
parameters = {}
)
sample_entity_type.execute_local_test(db=db, generate_days=1, to_csv=True)
このスクリプトは、新規の adjusted_distance
データ項目を作成します。 CSV ファイルで結果を確認します。 正常に完了すると、Analytics Service UI を使用して単純関数を追加できるようになります。PythonFunction
関数を選択します。distance
を選択します。function_code
フィールドに単純関数を入力するか、貼り付けます。 次のように入力します。def f(df, parameters = None):
adjusted_distance = df['distance'] * 0.9
return adjusted_distance
adjusted_distance
を指定します。adjusted_distance
を選択します。 adjusted_distance
メトリック・データを確認します。 Analytics Service がサンプル・データに対して単純関数を評価するまで、最大で 5 分待ちます。