新規のJupyter Notebookを作成する
- 更新日2025-12-03
- 13分で読める
テスト、測定、資産などからのデータの視覚化、解析、処理を行うコードを開発するには、JupyterHubで新規のJupyter Notebook (.ipynb) を作成します。
- NI パッケージマネージャからJupyter Notebooks for SystemLinkをインストールし、SystemLink Python APIを使用できる事前定義されたJupyter Notebookにアクセスします。
- Python APIにアクセスするために、SystemLinkアプリケーションURLに/niapis/python/index.htmlを追加します。
- Jupyter Notebookのユーザインタフェースおよび構造について理解します。
- データの解析と処理機能を拡張するためのPythonライブラリをインストールする。NIでは、Python Package Index (PyPI) を使用してパッケージを取得することを推奨しています。
- IPythonカーネルで使用できる組込マジックコマンドについて理解します。
- SystemLink Webアプリケーションで、Jupyterをクリックします。
-
Notebookの下で、Python 3をクリックします。
Jupyter Notebookが起動し、NotebookでPythonを実行するためのカーネルが開始します。
- Notebookの名前を、Notebookで実行するレポートのタイプを説明する名前に変更します。
-
コードセルで、インタラクティブなNotebookに必要なPythonのモジュール、ライブラリ、およびウィジェットをインポートします。
たとえば、以下の目的でPandasやScrapbookをインポートするコードを実装できます。
- データフレームのビルドと処理 (Pandas)。
- Notebookの実行 (Scrapbook)。
- Notebookの結果のキャプチャ (Scrapbook)。
import copy import datetime import dateutil.parser import pandas as pd import scrapbook as sb from dateutil import tz
-
SystemLink Python APIの1つを使用して、視覚化、解析、または処理を行うデータにアクセスします。
SystemLinkテストモニタサービスからのデータにアクセスするには、以下のコマンドを使用します。
from systemlink.clientconfig import get_configuration from systemlink.clients.nitestmonitor import *
-
SystemLinkサーバとの接続を確立します。
テストモニタクライアントをサーバに接続するには、以下のコマンドを使用します。
http_client_config = get_configuration(route_name='nitestmonitor')
-
Notebookのパラメータとメタデータを定義します。
-
コードセルで、パラメータを定義します。
以下の目標を達成するためのコードを実装できます。
- テスト結果を特定の時間範囲に絞り込む。
- テスト結果を、テストシステムが結果を集録した日付でグループ化する。
filter = 'startedWithin <= "30.0:0:0"' group_by = 'Day'
- 右のサイドバーで、Property Inspectorペーンを開きます。
-
パラメータ、そのデフォルト値、および出力をCell Metadataコードブロックに追加します。
この情報を追加するには、以下のコードを実装します。
"papermill": { "parameters": { "group_by": "Day", "results_filter": "startedWithin <= \"30.0:0:0\"", } }, "systemlink": { "namespaces": [ "ni-testmanagement" ], "outputs": [ { "display_name": "This will show in dashboard output selector", "id": "data_frame_output", "type": "data_frame" }, { "display_name": "This will show in dashboard output selector", "id": "scalar_output", "type": "scalar" } ], "parameters": [ { "display_name": "Group By", "id": "group_by", "options": [ "Day", "System", "Test Program", "Operator", "Product" ], "type": "string" }, { "default_display": { "startedWithin": { "unit": "DAYS", "value": 30 } }, "display_name": "Results Filter", "id": "results_filter", "type": "test_monitor_result_query" }, ], "version": 2 }, "tags": [ "parameters" ] } -
レポートを表示する場所に応じて、namespacesに次のネームスペースを1つまたは複数入力します。
ネームスペース レポートの表示場所 ni-assetmanager 資産マネージャ ni-testmanagement テストモニタ 定義する任意のネームスペース ネームスペースを使用してNotebookをクエリする他のクライアント -
Notebookの使用方法に応じて、versionに次のバージョン番号のいずれかを入力します。
目的 バージョン - テストインサイトでレポートの下にデータを表示します。
- 旧バージョンのSystemLinkでインストールされたNotebookをカスタマイズします。
1 - 1つのNotebookで複数の出力を返します。
- スカラ出力タイプを使用します。
- ダッシュボードにデータを表示します。
2
-
コードセルで、パラメータを定義します。
-
視覚化、解析、または処理するデータを取得するために、SystemLinkデータサービスをクエリします。
テストモニタサービスをクエリして、テスト結果を昇順で取得するには、以下のコードを使用できます。
results_api = ResultsApi(api_client=ApiClient(http_client_config)) query = ResultsAdvancedQuery(filter=filter, order_by=[ResultSortDefinitionObject(field=ResultField.STARTED_AT)]) query_response = await results_api.query_results_v2(post_body=query) results = query_response.results results_list = [result.to_dict() for result in results]
-
クエリから返されたデータをグループ化する方法に基づいて、Pandasデータフレームのデータをフォーマットします。
テスト結果をそのステータスでグループ化するには、以下のコードを使用できます。
group_names = [] for result in results_list: if grouping in result: group_names.append(result[grouping]) formatted_results = { 'id': [result['id'] for result in results_list], 'status': [result['status']['status_type'] for result in results_list], grouping: group_names } df_results = pd.DataFrame.from_dict(formatted_results) -
データを視覚化、解析、または処理する方法を構成します。
以下のサンプルは、データを構成するいくつかの方法を示しています。
- レポートに含めないデータをフィルタで除外します。
- タイムスタンプを変換します。
- タイムフレーム内でデータを計算します。
- データを特定の方法でグループ化します。
-
PandasデータフレームをSystemLinkレポートの出力形式に変換します。
Pandasデータフレームを変換するには、以下のコードを使用できます。
result.append({ 'type': 'data_frame', 'id': 'data_frame_output', data': [{ 'format': 'XY', 'x': ['2018-11-17T00:00:00', '2018-11-18T00:00:00', ...], 'y': [94.0, 89.9, ...] }], 'config': { 'title': 'Title', 'graph': { 'axis_labels': ['x-axis-label', 'y-axis-label'], 'tick_labels': [{'x': 0, 'label': 'tick label 0', ... }], 'orientation': 'VERTICAL', 'plot_style': ['SCATTER'], 'plot_color': ['blue'] } } })ヒント テストモニタがデータフレーム出力をサポートしていることを確認するには、ID (data_frame_output) の値を確認します。その値は、セル内、およびパラメータコードセルのCode Metadata内で正しい値になっている必要があります。詳細については、前の手順7を参照してください。メモ Jupyter NotebookでV2レポート形式を使用する場合、レポート結果はダッシュボードでのみ視覚化できます。 -
新しいスカラ出力を追加します。
スカラ出力を追加するには、以下のコードを使用できます。
result.append({ 'type': 'scalar', 'id': 'scalar_output', 'config': { 'title': 'Scalar Output Title' }, 'value': 3 })メモ スカラ出力の追加の詳細については、GitHubのSystemLinkサンプルリポジトリを参照してください。 -
Scrapbookを使用して結果を記録します。
SystemLink Webアプリケーションを構文解析して結果を取得するには、以下のコードを使用できます。
sb.glue('result', result) - Notebookに新規のセルを追加します。
- ツールバーで、ドロップダウンメニューからMarkdownを選択し、コードに関するドキュメントをNotebookに追加します。
- メニューバーでを選択し、Notebookが正しくデータを返し、処理していることを確認します。 Notebookがエラーを返した場合は、エラーのあるコードセルにimport pdb; pdb.set_trace()を追加します。このコードを追加すると、組込のPythonデバッガがアクティブになります。
- 保存をクリックします。
- オプション: スケジューリングされた時間にNotebookを実行するには、解析自動化プロシージャを作成し、スケジューリングされたタスクを追加します。
関連コンテンツ
- Python APIリファレンス
- 追加のPythonモジュールをインストールする
他社製のPythonモジュールを使用すると、テストレポートをよりカスタマイズできます。
- Jupyterユーザインタフェース
- Notebookドキュメントの構造
- PyPI
- 内蔵のマジックコマンド
- SystemLinkのサンプルリポジトリ
- 解析自動化プロシージャのタスクを追加または編集する
解析自動化プロシージャを使用してデータを解析するには、タスクを使用します。