注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Pipeline Builder でセンサーオブジェクトタイプのデータを作成する

このガイドで作成するパイプラインでは、インポートしたフライトのセンサー測定値データセットを加工してセンサーオブジェクトタイプの元データセットを作成し、次にセンサー測定値を時系列形式に変換して時系列同期の出力を作成します。このデータは、その後、プラットフォームで使用するセンサーオブジェクトタイプの作成に使用します。このガイドの最後で完成するパイプラインは、次の画像のようになります。

Pipeline Builder の最終出力

このユースケースで示す例は、ソースデータセットのセンサーデータを加工する方法の1つです。センサー測定値にはさまざまな形式があり、スキーマも多岐にわたりますが、この例では一般的なスキーマを使用します。各行は、フライトに関連付けられた複数のセンサー(たとえば速度や高度)の単一値の測定値を表します。そのため、Flight オブジェクトへの外部キーとなる flight_ID も含まれます。

センサー測定値データセットの初期データのサンプル

timestampflight_idheadingaltitudespeedlatitudelongitudevertical_speedflight_ title
2023-01-11T23...021fcdbsd ...2111345040.78354-73.87231-320YX4472...

このガイドは、Pipeline Builder の基本的な知識があることを前提としています。パイプラインに関する一般的なガイダンスについては、Pipeline Builder のドキュメントを参照してください。また、このユースケースの例では、フライトのセンサー測定値データがすでにパイプラインにインポートされていることを前提としています。

パート1:センサー測定値データを拡充する

センサー測定値データセットを新しいパイプラインに追加したら、メタデータを追加する必要があります。

1. データ加工を適用してセンサー測定値の形式を変更する

センサー測定値データセットに対して、以下の手順でデータ加工を適用します。

データをアンピボットしてシリーズの値をまとめる

このデータセットでは時系列データが別々の列に格納されているため、アンピボットのデータ加工を使用して1つの値の列にまとめ、以下に示す時系列同期に必要なスキーマにデータを合わせる必要があります。

  • シリーズID: string | 時系列プロパティ(TSP)が参照するタイムスタンプと値のペアのシリーズIDです。TSP のシリーズIDと一致する必要があります。
  • Timestamp: timestamp または long | 量を測定した時刻です。
  • 値: integer、float、double、string | 測定した時点での量の値です。文字列データ型はカテゴリカル時系列を示します。カテゴリカル時系列それぞれの一意の値の種類は、最大10,000種類です。

以下に示すアンピボットのデータ加工では、altitude と speed の両方の値を同じ series_value 列に格納します。元の列名は新しい series_name 列に出力され、親のルートオブジェクトが各センサーの表す内容(たとえば altitude)を識別できるようになります。

Pipeline Builder でセンサーデータを1つの列にまとめるアンピボットのデータ加工ボード

加工後のデータセットのプレビューには、新しい series_value 列と series_id 列が表示されます。

series_nameseries_valuetimestampflight_idflight_ title
altitude1342023-01-11T23...021fcdbsd...YX4472...
speed114.002023-01-11T23...021fcdbsd...YX4472...

主キーを連結してシリーズIDを作成する

次に、文字列を連結するデータ加工を使用して、シリーズID(関連する時系列の値の識別子)を作成できます。このデータ加工を使用して、series_name(各センサーが表す内容)と各オブジェクトの主キーを組み合わせます。

Pipeline Builder の文字列を連結するデータ加工ボード

flight_sensor_series_idseries_nameseries_valuetimestampflight_idflight_ title
altitude_021fcdbsd...altitude1342023-01-11T23...021fcdbsd...YX4472...
speed_021fcdbsd...speed114.002023-01-11T23...021fcdbsd...YX4472...

null 値を削除する

フィルターのデータ加工を適用し、時系列計算で使用しない null 値を含む行を削除します。

null 値を含む行を除外するように設定した Pipeline Builder のフィルターのデータ加工ボード。

2. データセットに単位を追加する

センサー測定値データセットによっては単位が含まれています。その場合は、この手順をスキップして、センサーオブジェクトタイプの元データセットの作成に進むことができます。

単位のデータセットを手動でアップロードする

この例の元のセンサー測定値データセットには単位が含まれていないため、生成したデータセットを追加して、単位をシリーズ名に対応付ける必要があります。Pipeline Builder のグラフの左上で、データを追加、データを手動で入力の順に選択します。series_name という列と units という列を作成します。必要に応じて、内部補間についてもこの手順を繰り返すことができます(ただし、この例では必要ありません)。

内部補間は、隣接するデータポイント間のシリーズの値を Quiver で推定できるようにするために使用します。内部補間の列を用意すると、センサーオブジェクトごとの補間設定をオントロジーに保存するためのプロパティになります。Quiver は時系列データの可視化時にそのプロパティを使用します。詳細については、補間に関するドキュメントを参照してください。

Pipeline Builder で単位のデータセットを手動で作成する

結合を作成して単位とセンサーのデータセットを組み合わせる

結合ボードを使用して、単位とセンサーのデータセットのデータを組み合わせる結合を作成します。以下の設定になっていることを確認してください。

  • 左結合 (Left join) を追加し、series_name で照合します。
  • 左側のデータセットの列を自動選択します。
  • 右側の列として units 列のみを選択します。

結合ボードを使用して単位とセンサーのデータセットを組み合わせる

データのプレビューには、以下のように新しい units 列が表示されます。

flight_sensor_series_idseries_nameseries_valuetimestampflight_idflight_ titleunits
altitude_021fcdbsd...altitude1342023-01-11T23...021fcdbsd...YX4472...ft
altitude_021fcdbsd...altitude1552023-01-11T23...021fcdbsd...YX4472...ft
speed_021fcdbsd...speed114.002023-01-11T23...021fcdbsd...YX4472...mph
speed_021fcdbsd...speed135.002023-01-11T23...021fcdbsd...YX4472...mph

パート2:センサーオブジェクトタイプの元データセットを作成する

これで、センサーオブジェクトタイプを作成する準備ができました。以下の手順に沿って結合出力にデータ加工を適用し、最終的にセンサーオブジェクトタイプの元となるデータセットを作成します。

1. 重複を削除してセンサーごとに1行を作成する

センサーオブジェクトは、関連する時系列データのまとまりを1つだけ表します(たとえば、特定のフライトの altitude)。関連する時系列データのまとまりはそれぞれ flight_sensor_series_id によって一意に識別されるため、一意のフライトセンサーシリーズIDごとに1行だけを保持すると、その行がちょうど1個のセンサーオブジェクトに対応すると考えられます。生成された flight_sensor_series_id に重複を削除するデータ加工を適用すると、センサーオブジェクトごとに1行を作成できます。残りのシリーズデータ(タイムスタンプと値)は、後の手順で削除します。

Pipeline Builder の重複を削除するデータ加工ボード

データセットは次のようになります。

flight_sensor_series_idseries_nameseries_valuetimestampflight_idflight_ titleunits
altitude_021fcdbsd...altitude1342023-01-11T23...021fcdbsd...YX4472...ft
speed_021fcdbsd...speed114.002023-01-11T23...021fcdbsd...YX4472...mph

2. シリーズIDをハッシュ化して主キーを作成する

各センサーオブジェクトは一意に識別できる必要があるため、SHA256 ハッシュのデータ加工を使用して、それぞれの主キーを作成する必要があります。series_id はこれらすべてのセンサーオブジェクト間で一意であるはずなので、そのまま使用することもできます。ただし、ハッシュ化することで、series_id を一意の識別子としてのみ使用すべきであることを、より直接的に示せます。

シリーズIDから主キーを作成するために使用する、Pipeline Builder の SHA256 ハッシュのデータ加工ボード。

データセットのプレビューは次のようになります。

unique_sensor_flight_idflight_sensor_series_idseries_nameseries_valuetimestampflight_idflight_ titleunits
2492af5a2fe62c78ad8d...altitude_021fcdbsd...altitude134.002023-01-11T23...021fcdbsd...YX4472...ft
ec4808668f4b48cc5104...altitude_011794756...altitude0.00002023-01-22T17...011794756...UA1878...ft

3. 文字列を連結してオブジェクトのタイトルプロパティを作成する

次に、文字列を連結するデータ加工を使用して、センサーオブジェクトにわかりやすいタイトルプロパティを作成します。センサーオブジェクトは別の Flight オブジェクトの Object View に埋め込まれますが、センサーオブジェクトに専用の名前を付けることで、ユーザーはプラットフォームで使用するセンサーをより直感的に作成、分析できます。

センサーオブジェクトの新しいタイトルを作成するために使用する、文字列を連結するデータ加工ボード。

データセットのプレビューは次のようになります。

titleunique_sensor_flight_idflight_sensor_series_idseries_nameseries_valuetimestampflight_idflight_ titleunits
Altitude sensor for YX4472...2492af5a2fe62c78ad8d...altitude_021fcdbsd...altitude134.002023-01-11T23...021fcdbsd...YX4472...ft
Altitude sensor for UA1878...ec4808668f4b48cc5104...altitude_011794756...altitude0.00002023-01-22T17...011794756...UA1878...ft

4. 不要な列を削除する

センサーオブジェクトはセンサー自体のみを表すため、列を削除するデータ加工で、残っている series_value 列と timestamp 列を削除できます。これらの列は時系列プロパティで表され、flight_sensor_series の値に基づいてオントロジー内のセンサーにリンクされます。また、flight_title 列もセンサーオブジェクトタイプには不要なため削除します。

センサーオブジェクト(Flight Sensors)をルートオブジェクト(Flights)にリンクできるように、flight_id は保持します。

タイムスタンプ列とシリーズ値の列を削除

データセットのプレビューは次のようになります。

titleunique_sensor_flight_idflight_sensor_series_idseries_nameflight_idunits
Altitude sensor for YX4472...2492af5a2fe62c78ad8d...altitude_021fcdbsd...altitude021fcdbsd...ft
Altitude sensor for UA1878...ec4808668f4b48cc5104...altitude_011794756...altitude011794756...ft

5. センサーオブジェクトタイプの元となるデータセット出力を追加する

出力を追加を選択し、次にデータセットを追加を選択します。作成されるデータセットは、データ加工で作成されたスキーマを反映している必要があります。その後に変更を加えた場合は、作成されたデータセットのスキーマの更新が必要になることがあります。

パート3:センサーオブジェクトタイプの時系列同期を作成する

1. センサーの測定値を時系列同期の形式に変換する

列を選択するデータ加工を使用して、時系列同期に必要な列である series_id、timestamp、value のみを保持します。このデータ加工は、パート2の開始点でもあるパート1の出力に適用してください。パート2の出力には timestamp 列と series_value 列がなくなっているため、適用しないでください。元データセットには、測定対象に関係なく、すべてのセンサーの値が格納されます(たとえば、altitude と speed の両方)。生成された flight_sensor_series_id を series_id として使用し、特定のセンサーデータを一意に識別できます。たとえば、LGA から LAX へのフライト A445B には、speed のセンサーオブジェクトがリンクされ、そのフライトの速度に関するセンサーデータが格納されます。同様に、altitude のセンサーオブジェクトもリンクされます。

パイプラインでセンサーデータの列を選択

データセット出力のプレビューは次のようになります。

flight_sensor_series_idseries_valuetimestamp
altitude_021fcdbsd...134.002023-01-11T23...
altitude_011794756...0.00002023-01-22T17...

2. 時系列同期を設定する

次に、画面右側のパイプライン出力セクションから追加を選択して、時系列同期を作成します。その後、タイムシリーズの同期を選択します。次の点を考慮して、新しい時系列同期に必要なデータを入力します。

  • シリーズIDフィールドには、flight_sensor_series_id 列を選択します。
  • 時間フィールドに、作成した timestamp 列を追加します。
  • 値フィールドに series_value を追加します。

Pipeline Builder で時系列同期の出力を設定。

次に、パイプラインを保存してビルドします。出力はパイプラインと同じフォルダーに作成されます。

3. 時系列同期を使用してセンサーオブジェクトタイプにプロパティを追加する

時系列同期を含むパイプラインを作成したので、この同期を使用してセンサーオブジェクトタイプに時系列プロパティを追加する準備ができました。詳細な手順については、センサーオブジェクトタイプへの時系列プロパティの追加に関するドキュメントに進んでください。