解析を使うタイミング
派生した表形式の結果に対して、以下のいずれかに該当する場合は解析が適しています:- 結果が正確に 1 つの測定(「真実の情報源」となる測定)に属する。
- 生ファイル添付(ファイル測定)ではなく、構造化された列として保持したい。
- 時間とともに異なる抽出器から生成される可能性がある —
analysis_typeは自由形式なので、スキーマ変更なしに新しい種類を追加できます。
analysis_type は自由形式の文字列です — バックエンドは空でない任意の値を受け入れるため、新しい抽出器を追加してもマイグレーションやクライアントリリースは不要です。ecm_from_eis、lam_lli_from_rpt、dcir_from_hppc は、Studio UI がデフォルトで提示する参考リストです。
解析レコードの構成
すべての解析レコードは次のフィールドを持ちます:
1 つの解析で設定できる
source_*_id フィールドは 1 つまで です。1 つの解析は、上流の Ionworks レコードを 1 つだけ持つか、まったく持たないかのいずれかです。source_label は独立しており、単独で設定できます。これらのフィールドの使い方については解析のプロベナンスを追跡するを参照してください。
表形式の値そのものは、親測定と同じ measurement-data バケットに保存された parquet ファイルに格納されます。ダウンロード用の署名付き URL はオンデマンドで発行されます。
解析は Python API クライアント で管理し、client.analysis
として公開されています。create() は DataFrame を直接受け取り、クライアント
側で parquet にシリアライズしてアップロードします。
解析の作成
analysis_type はフリーフォームです。任意の文字列、または AnalysisType
StrEnum のメンバー(ECM_FROM_EIS、LAM_LLI_FROM_RPT、DCIR_FROM_HPPC)
のいずれかを渡してください。
解析の一覧取得と取得
measurement_id または project_id のいずれか一方を指定します。単一の測定
から派生した解析を一覧表示するには measurement_id で、プロジェクト内のすべての
測定にまたがる解析を一覧表示するには project_id でフィルタリングします。両方を
指定した場合、またはどちらも指定しない場合はエラーになります。
抽出データのダウンロード
parquet ファイルはインラインでは返されません。get_data() は署名付き URL を
取得し、parquet を直接読み込んで
設定されたバックエンド の DataFrame を
返します。
get_download_url() を使用
します。署名付き URL の有効期限は 5 分です。
メタデータの更新
update() は行レベルのフィールドのみを更新します — parquet は置き換え
ません。name、analysis_type、columns、metadata、notes、
source_pipeline_id、source_simple_pipeline_id、source_analysis_id、
source_label の任意のサブセットを指定できます。ソースフィールドについては
解析のプロベナンスを追跡するを参照してください。
解析の削除
行と parquet ファイルを削除します。Studio で解析を閲覧する
測定の詳細ページには、その測定から派生したすべての解析を一覧表示する 解析 (Analyses) セクションがあります。各項目には解析名、analysis_type、
作成日時が表示されます。解析名をクリックすると、解析詳細ページと抽出
特徴量テーブルが開きます。
Studio で解析を表示する
すべての解析には Ionworks Studio 上の詳細ページがあり、parquet データを インタラクティブなプロットとして描画するとともに、メタデータ、列、ノートを 表示します。親測定の解析一覧から開くか、URL がわかっていれば直接遷移できます。パンくずリスト
ヘッダーには解析の完全な系譜が表示され、任意の親要素まで遡ることができます: セル仕様 → セルインスタンス → 測定 → 解析 各セグメントはリンクです。何らかの理由で系譜の取得に失敗した場合は、 測定 への単一リンクにフォールバックし、ページ自体は問題なく表示されます。データプレビュープロット
右側のパネルには、parquet の 2 つの数値列を互いにプロットします。プロット上部の X 軸 と Y 軸 のドロップダウンで、JavaScript の数値として安全に表現できる値を 持つ任意の列の組を選択できます。数値以外の列(文字列、真偽値)と、JavaScript の 安全整数範囲を超える整数列(int64 のままとなる大きな ID やタイムスタンプ)は
選択できません。
- 軸ラベルには、解析の
columns仕様で宣言したname [unit]形式が 使われます。create()時に意味のあるunit値を設定しておいてください。 - 選択した X 列が単調非減少である場合、トレースは
lines+markersとして 描画され、それ以外の場合はmarkersのみで描画されます — ECM パラメータ スイープのような散布図的な出力に有用です。 - 初回ロード時、軸は最初の 2 つの数値列にデフォルト設定されます。
行数の上限
プレビューはブラウザーの応答性を保つために上限が設けられています:- テーブルは parquet の最初の 100 行 を表示します。
- プロットは最大でも最初の 10,000 行 をマテリアライズします。
- プロット下のキャプションには実際の行数が表示され、ファイルがプロットの 上限を超える場合はプロットが切り詰められている旨が示されます。
元の測定へのリンク
左カラムの View source measurement ボタンからは、親測定の詳細ビューへ 直接遷移できます — パンくずリストの測定セグメントと同じリンク先です。この クロスリンクにより、フィットした ECM パラメータや劣化ポイントを抽出元の 測定まで簡単にたどることができ、どの測定にすでに解析が付随しているかを一目で 把握できます。解析のプロベナンスを追跡する
解析のmeasurement_id は、その解析がどの測定から抽出されたかを示します。source_* フィールドはそれとは別の問いに答えます: どの計算処理がその解析を生成したか? — パイプランラン、シンプルパイプライン、または連鎖元となった別の解析、加えて Ionworks 上のリンク可能なレコードではないプロベナンスのための自由形式の source_label です。
1 つの解析で設定できる
source_*_id フィールドは 1 つまでであり、参照される行が存在しない場合、リクエストは拒否されます。ただしこのチェックは行の存在のみを確認し、あなたがその行を閲覧できるかどうかは検証しません — そのため、あなたからは通常見えないレコードの ID をソースとして設定すること自体は成功し、後でリンクを辿ろうとしたときにのみ未解決として表示されます。source_label は独立しており、ソースが別の Ionworks レコードでない場合は単独で設定してください。
作成時に設定するには、解析を作成した後に client.analysis.update() に渡すか、REST API を直接使う場合は POST /analyses の Form(...) フィールドとして含めます:
解析 vs. ファイル測定
いずれも測定にデータを紐づけますが、用途が異なります:
既存の測定から派生した構造化された表形式データが出力である場合は解析を、セル自体に紐づく独立したアーティファクトが対象の場合はファイル測定を選択してください。
次のステップ
測定
時系列、プロパティ、ファイルの各測定タイプ — すべての解析の親となります。
データの読み取り
測定とその解析を一覧表示・フィルター・取得します。