メインコンテンツへスキップ
セル測定 (cell measurement) は、セルインスタンスで実施した単一の実験またはテストを表します。すべての測定には measurement_type があり、格納するデータと作成方法を決定します。

測定タイプ

タイプ格納内容典型的な用途
time_series電圧、電流、時間列を含む高解像度のサイクリングデータ。自動生成されるステップ・サイクルサマリーを含みます。バッテリーサイクリング試験、EIS 測定、充放電実験
properties任意で単位を持つキー値ペア。ファイルアップロードなし。厚さ、重量、内部抵抗などの手動測定
fileレコードに添付された 1 つ以上のアップロードファイル(画像、PDF、numpy 配列など)。顕微鏡画像、SEM 写真、解体解析ドキュメント

共通フィールド

すべての測定(タイプを問わず)は、これらの任意のメタデータフィールドを受け入れます:
フィールド説明
name測定の名前
protocol.nameプロトコルの説明
protocol.ambient_temperature_degc試験温度
test_setupcycleroperatorlabchannel_number
start_timeISO 8601 開始時刻、例: "2026-03-15T09:30:00Z"
notes試験に関する自由形式のメモ

時系列

時系列はデフォルトの測定タイプです。高解像度のサイクリングデータを保持し、アップロード時にステップ・サイクルサマリーを自動生成します。 時系列 DataFrame はデータフォーマットに従う必要があります。認識される列には Time [s]Voltage [V]Current [A]Step countCycle count が含まれます。アップロードワークフロー全体についてはデータのアップロードを参照してください。
import pandas as pd

time_series = pd.DataFrame({
    "Time [s]": [0, 1, 2, 3, 4, 5],
    "Voltage [V]": [3.0, 3.2, 3.5, 3.8, 4.0, 4.2],
    "Current [A]": [0.002, 0.002, 0.002, 0.002, 0.002, 0.002],
    "Step count": [0, 0, 0, 1, 1, 1],
    "Cycle count": [0, 0, 0, 0, 0, 0],
    "Step from cycler": [1, 1, 1, 2, 2, 2],
    "Cycle from cycler": [0, 0, 0, 0, 0, 0],
})

bundle = client.cell_measurement.create(
    cell_instance.id,
    {
        "measurement": {
            "name": "Formation Cycle 1",
            "protocol": {
                "name": "CC-CV charge at C/10 to 4.2V",
                "ambient_temperature_degc": 25,
            },
        },
        "time_series": time_series,
    },
)

print(f"Steps created: {bundle.steps_created}")
create() は測定レコードと steps_created などのメタデータを含む MeasurementBundle を返します。完全な時系列、ステップ、サイクルとともに測定を取得し直すにはデータの読み取りを参照してください。

プロパティ

プロパティ測定はキー値ペアをレコードに直接格納します — ファイルアップロードはありません。厚さ、重量、内部抵抗などの手動測定や一回限りの測定に使用します。 プロパティ固有のフィールド:
フィールド説明
propertiesキー値ペア。数値には数量フォーマットを使用します。プレーン文字列や数値も許可されます。
measurement = client.cell_measurement.create_properties(
    cell_instance.id,
    name="Post-formation properties",
    properties={
        "thickness": {"value": 0.52, "unit": "mm"},
        "weight": {"value": 45.3, "unit": "g"},
        "internal_resistance": {"value": 12.5, "unit": "mOhm"},
        "visual_condition": "No visible damage",
    },
    notes="Measured after formation cycling",
)
共通メタデータフィールド(protocoltest_setupstart_timenotes)はプロパティと併せて含められます。
create_propertiesMeasurementBundle ではなく Measurement を直接返します。プロパティ測定にはステップやファイルアップロードがないため、バンドルラッパーは不要です。

ファイル

ファイル測定は、ファイル(画像、PDF、numpy 配列、その他任意のファイルタイプ)を測定レコードに添付します。顕微鏡画像、SEM 写真、X 線 CT スキャン、解体解析ドキュメントに便利です。 ファイル固有のフィールド:
フィールド説明
filepathsアップロードするローカルファイルパスのリスト
validate_imagesTrue のとき、アップロード前にファイルヘッダーが拡張子と一致するか検証します
file_metadataアップロード後にサーバーが自動的に設定します(MIME タイプ、寸法など) — 読み取り専用
bundle = client.cell_measurement.create_file(
    cell_instance.id,
    name="Post-cycling SEM images",
    filepaths=[
        "images/anode_surface_1000x.png",
        "images/cathode_cross_section_500x.png",
    ],
    notes="SEM images taken after 500 cycles",
)
クライアント側の画像検証を有効にするには:
bundle = client.cell_measurement.create_file(
    cell_instance.id,
    name="Electrode images",
    filepaths=["photo.png", "scan.tiff"],
    validate_images=True,
)
既存のファイル測定からファイルにアクセスするには:
# List filenames in the measurement
filenames = client.cell_measurement.list_files(measurement_id)

# Download file contents directly
files = client.cell_measurement.download_files(measurement_id)
for filename, content in files.items():
    print(f"{filename}: {len(content)} bytes")
ファイル測定は内部的に署名付き URL アップロードフローを使用します。クライアントは複数ステップのプロセス(initiate、upload、confirm)を自動的に処理します。

次のステップ

データのアップロード

エンドツーエンドのアップロードワークフロー: 仕様、インスタンス、測定。

データの読み取り

完全なデータとともに測定を一覧、フィルタリング、取得します。