注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
このガイドで作成するパイプラインでは、インポートしたフライトのセンサー測定値データセットを加工してセンサーオブジェクトタイプの元データセットを作成し、次にセンサー測定値を時系列形式に変換して時系列同期の出力を作成します。このデータは、その後、プラットフォームで使用するセンサーオブジェクトタイプの作成に使用します。このガイドの最後で完成するパイプラインは、次の画像のようになります。

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

| timestamp | flight_id | heading | altitude | speed | latitude | longitude | vertical_speed | flight_ title |
|---|---|---|---|---|---|---|---|---|
| 2023-01-11T23... | 021fcdbsd ... | 211 | 134 | 50 | 40.78354 | -73.87231 | -320 | YX4472... |
このガイドは、Pipeline Builder の基本的な知識があることを前提としています。パイプラインに関する一般的なガイダンスについては、Pipeline Builder のドキュメントを参照してください。また、このユースケースの例では、フライトのセンサー測定値データがすでにパイプラインにインポートされていることを前提としています。
センサー測定値データセットを新しいパイプラインに追加したら、メタデータを追加する必要があります。
センサー測定値データセットに対して、以下の手順でデータ加工を適用します。
このデータセットでは時系列データが別々の列に格納されているため、アンピボットのデータ加工を使用して1つの値の列にまとめ、以下に示す時系列同期に必要なスキーマにデータを合わせる必要があります。
string | 時系列プロパティ(TSP)が参照するタイムスタンプと値のペアのシリーズIDです。TSP のシリーズIDと一致する必要があります。timestamp または long | 量を測定した時刻です。integer、float、double、string | 測定した時点での量の値です。文字列データ型はカテゴリカル時系列を示します。カテゴリカル時系列それぞれの一意の値の種類は、最大10,000種類です。以下に示すアンピボットのデータ加工では、altitude と speed の両方の値を同じ series_value 列に格納します。元の列名は新しい series_name 列に出力され、親のルートオブジェクトが各センサーの表す内容(たとえば altitude)を識別できるようになります。

加工後のデータセットのプレビューには、新しい series_value 列と series_id 列が表示されます。
| series_name | series_value | timestamp | flight_id | flight_ title |
|---|---|---|---|---|
| altitude | 134 | 2023-01-11T23... | 021fcdbsd... | YX4472... |
| speed | 114.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... |
次に、文字列を連結するデータ加工を使用して、シリーズID(関連する時系列の値の識別子)を作成できます。このデータ加工を使用して、series_name(各センサーが表す内容)と各オブジェクトの主キーを組み合わせます。

| flight_sensor_series_id | series_name | series_value | timestamp | flight_id | flight_ title |
|---|---|---|---|---|---|
| altitude_021fcdbsd... | altitude | 134 | 2023-01-11T23... | 021fcdbsd... | YX4472... |
| speed_021fcdbsd... | speed | 114.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... |
フィルターのデータ加工を適用し、時系列計算で使用しない null 値を含む行を削除します。

センサー測定値データセットによっては単位が含まれています。その場合は、この手順をスキップして、センサーオブジェクトタイプの元データセットの作成に進むことができます。
この例の元のセンサー測定値データセットには単位が含まれていないため、生成したデータセットを追加して、単位をシリーズ名に対応付ける必要があります。Pipeline Builder のグラフの左上で、データを追加、データを手動で入力の順に選択します。series_name という列と units という列を作成します。必要に応じて、内部補間についてもこの手順を繰り返すことができます(ただし、この例では必要ありません)。
内部補間は、隣接するデータポイント間のシリーズの値を Quiver で推定できるようにするために使用します。内部補間の列を用意すると、センサーオブジェクトごとの補間設定をオントロジーに保存するためのプロパティになります。Quiver は時系列データの可視化時にそのプロパティを使用します。詳細については、補間に関するドキュメントを参照してください。

結合ボードを使用して、単位とセンサーのデータセットのデータを組み合わせる結合を作成します。以下の設定になっていることを確認してください。
series_name で照合します。units 列のみを選択します。
データのプレビューには、以下のように新しい units 列が表示されます。
| flight_sensor_series_id | series_name | series_value | timestamp | flight_id | flight_ title | units |
|---|---|---|---|---|---|---|
| altitude_021fcdbsd... | altitude | 134 | 2023-01-11T23... | 021fcdbsd... | YX4472... | ft |
| altitude_021fcdbsd... | altitude | 155 | 2023-01-11T23... | 021fcdbsd... | YX4472... | ft |
| speed_021fcdbsd... | speed | 114.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... | mph |
| speed_021fcdbsd... | speed | 135.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... | mph |
これで、センサーオブジェクトタイプを作成する準備ができました。以下の手順に沿って結合出力にデータ加工を適用し、最終的にセンサーオブジェクトタイプの元となるデータセットを作成します。
センサーオブジェクトは、関連する時系列データのまとまりを1つだけ表します(たとえば、特定のフライトの altitude)。関連する時系列データのまとまりはそれぞれ flight_sensor_series_id によって一意に識別されるため、一意のフライトセンサーシリーズIDごとに1行だけを保持すると、その行がちょうど1個のセンサーオブジェクトに対応すると考えられます。生成された flight_sensor_series_id に重複を削除するデータ加工を適用すると、センサーオブジェクトごとに1行を作成できます。残りのシリーズデータ(タイムスタンプと値)は、後の手順で削除します。

データセットは次のようになります。
| flight_sensor_series_id | series_name | series_value | timestamp | flight_id | flight_ title | units |
|---|---|---|---|---|---|---|
| altitude_021fcdbsd... | altitude | 134 | 2023-01-11T23... | 021fcdbsd... | YX4472... | ft |
| speed_021fcdbsd... | speed | 114.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... | mph |
各センサーオブジェクトは一意に識別できる必要があるため、SHA256 ハッシュのデータ加工を使用して、それぞれの主キーを作成する必要があります。series_id はこれらすべてのセンサーオブジェクト間で一意であるはずなので、そのまま使用することもできます。ただし、ハッシュ化することで、series_id を一意の識別子としてのみ使用すべきであることを、より直接的に示せます。

データセットのプレビューは次のようになります。
| unique_sensor_flight_id | flight_sensor_series_id | series_name | series_value | timestamp | flight_id | flight_ title | units |
|---|---|---|---|---|---|---|---|
| 2492af5a2fe62c78ad8d... | altitude_021fcdbsd... | altitude | 134.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... | ft |
| ec4808668f4b48cc5104... | altitude_011794756... | altitude | 0.0000 | 2023-01-22T17... | 011794756... | UA1878... | ft |
次に、文字列を連結するデータ加工を使用して、センサーオブジェクトにわかりやすいタイトルプロパティを作成します。センサーオブジェクトは別の Flight オブジェクトの Object View に埋め込まれますが、センサーオブジェクトに専用の名前を付けることで、ユーザーはプラットフォームで使用するセンサーをより直感的に作成、分析できます。

データセットのプレビューは次のようになります。
| title | unique_sensor_flight_id | flight_sensor_series_id | series_name | series_value | timestamp | flight_id | flight_ title | units |
|---|---|---|---|---|---|---|---|---|
| Altitude sensor for YX4472... | 2492af5a2fe62c78ad8d... | altitude_021fcdbsd... | altitude | 134.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... | ft |
| Altitude sensor for UA1878... | ec4808668f4b48cc5104... | altitude_011794756... | altitude | 0.0000 | 2023-01-22T17... | 011794756... | UA1878... | ft |
センサーオブジェクトはセンサー自体のみを表すため、列を削除するデータ加工で、残っている series_value 列と timestamp 列を削除できます。これらの列は時系列プロパティで表され、flight_sensor_series の値に基づいてオントロジー内のセンサーにリンクされます。また、flight_title 列もセンサーオブジェクトタイプには不要なため削除します。
センサーオブジェクト(Flight Sensors)をルートオブジェクト(Flights)にリンクできるように、flight_id は保持します。

データセットのプレビューは次のようになります。
| title | unique_sensor_flight_id | flight_sensor_series_id | series_name | flight_id | units |
|---|---|---|---|---|---|
| Altitude sensor for YX4472... | 2492af5a2fe62c78ad8d... | altitude_021fcdbsd... | altitude | 021fcdbsd... | ft |
| Altitude sensor for UA1878... | ec4808668f4b48cc5104... | altitude_011794756... | altitude | 011794756... | ft |
出力を追加を選択し、次にデータセットを追加を選択します。作成されるデータセットは、データ加工で作成されたスキーマを反映している必要があります。その後に変更を加えた場合は、作成されたデータセットのスキーマの更新が必要になることがあります。
列を選択するデータ加工を使用して、時系列同期に必要な列である 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_id | series_value | timestamp |
|---|---|---|
| altitude_021fcdbsd... | 134.00 | 2023-01-11T23... |
| altitude_011794756... | 0.0000 | 2023-01-22T17... |
次に、画面右側のパイプライン出力セクションから追加を選択して、時系列同期を作成します。その後、タイムシリーズの同期を選択します。次の点を考慮して、新しい時系列同期に必要なデータを入力します。
flight_sensor_series_id 列を選択します。timestamp 列を追加します。series_value を追加します。
次に、パイプラインを保存してビルドします。出力はパイプラインと同じフォルダーに作成されます。
時系列同期を含むパイプラインを作成したので、この同期を使用してセンサーオブジェクトタイプに時系列プロパティを追加する準備ができました。詳細な手順については、センサーオブジェクトタイプへの時系列プロパティの追加に関するドキュメントに進んでください。