チュートリアル: UI からの単純関数の追加

このチュートリアルでは、ロボットの移動距離の異常値を識別する単純関数を作成します。 分析サービスのサンプル資産タイプに適用する前に、スクリプトを使用してこの単純関数をテストします。

始める前に

  1. Python 3.x をご使用の環境にインストールします。
  2. IoT 関数をローカル環境にインストールします。 IoT 関数の README の指示に従ってください。
    ヒント: あるいは、「チュートリアル - カスタム関数の追加」の『始める前に』セクションのステップを実行して、IoT 関数とその依存関係をインストールする方法もあります。 HelloWorld スターター・パッケージを複製し、そのスターター・パッケージを PyCharm にインポートします。 PyCharm から要件をインストールします。 : ベータ環境で IoT 関数をインストールまたはアップグレードするには、ベータ・ブランチを使用してください。 それ以外の場合は、実動ブランチを使用してください。
  3. チュートリアル: 式の追加を完了して、Analytics Service のロボット資産タイプに distance KPI を追加します。

このタスクについて

ローカル環境で単純関数をテストして、計算が機能していること、および構文が正しいことを確認します。

このスクリプトでは、サンプル資産タイプを作成して、いくつかのサンプル・データを生成し、単純関数をサンプル・データに適用して、新しい adjusted_distance KPI を作成します。

ステップ

単純関数を使用してサンプル・データに計算を適用するには、以下のステップを実行します。

ステップ 1: 計算を定義する

以下のように adjusted_distance を定義します。

adjusted_distance = distance * 0.9

ステップ 2: 資格情報をファイルに保存する

Analytics Service に接続するための資格情報を設定します。

  1. 作業ディレクトリー内に credentials_as.json ファイルを作成します。 ユーザー・インターフェースから「使用法」タブに移動します。
  2. Watson IoT Platform Analytics を選択し、「詳細を表示」をクリックします。
  3. 「環境変数」フィールドで、「クリップボードにコピー」をクリックします。
  4. クリップボードの内容を credentials_as.json ファイルに貼り付けます。

: 資格情報ファイルは、外部リポジトリーに保存しないように注意してください。

ステップ 3: Python で単純関数を作成する

ロボットの移動距離を調整するスクリプト 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)

ステップ 4: 関数をローカル・ファイル・モデル・ストアに保存する

ローカル環境からスクリプト save_simple_function_locally.py を実行します。 スクリプトを保管したのと同じディレクトリーに、KPI_MODEL_STOREadjusted_distance ファイルが作成されます。

ステップ 5: ローカル環境で単純関数をテストする

test_my_simple_function_locally.py という名前のスクリプトを作成します。 このスクリプト内で、以下のステップを実行します。

  1. 以下のように、Python ライブラリーとパッケージをインポートします。
     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
    
  2. 以下のように、サービスに接続します。

     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)
    
  3. サンプル資産タイプを作成し、IoT 関数からインポートした bif モジュールから組み込みの PythonFunction を使用して、単純関数をそのサンプル・エンティティー・タイプに渡します。
    sample_entity_type = bif.PythonFunction(
        function_code = 'adjusted_distance',
        input_items = ['distance'],
        output_item = 'adjusted_distance',
        parameters = {}
            )
    
  4. サンプル資産タイプの execute_local_test メソッドを実行して、ローカル環境で関数をテストします。 結果を csv ファイルに保存します。
    sample_entity_type.execute_local_test(db=db, generate_days=1, to_csv=True)
    
    このスクリプトは、新規の adjusted_distance データ項目を作成します。 CSV ファイルで結果を確認します。 正常に完了すると、Analytics Service UI を使用して単純関数を追加できるようになります。

ステップ 6: 単純関数をロボット資産タイプに適用する

  1. 「データ」タブで、「新しいデータ項目の作成 (Create new data item)」ボタンのスクリーン・ショット をクリックします。
  2. カタログから PythonFunction 関数を選択します。
  3. 入力項目として distance を選択します。
  4. function_code フィールドに単純関数を入力するか、貼り付けます。 次のように入力します。
    def f(df, parameters = None):
     adjusted_distance = df['distance'] * 0.9
     return adjusted_distance
    
  5. 「次へ」をクリックします。
  6. 出力ページで、新規 KPI 名として adjusted_distance を指定します。
  7. データ・タイプを数値として指定します。
  8. 「作成」をクリックします。
  9. データ項目リストで、adjusted_distance を選択します。
  10. 「詳細と抽出されたデータ」ペインで、新規の adjusted_distance メトリック・データを確認します。

Analytics Service がサンプル・データに対して単純関数を評価するまで、最大で 5 分待ちます。