---
title: シーンの例
slug: api-guide/ja/UZtHHIO-z9x2u3JwhTdjS
docTags: 
createdAt: 2025-04-16T06:34:02.198Z
---

Kognicプラットフォームに生データをアップロードする際は、**シーン**の形式で行う必要があります。シーンとは、画像、点群、その他のセンサーデータなど、さまざまなソースからのデータの集合です。

`kognic-io` 2.5.0では、センサーデータからシーンタイプを推定する新しいシーンモデルをリリースしました。点群がない場合は、カメラのみのシーケンスが作成されます。

:::hint{type="warning"}
この新しいモデルと関連するAPIで作成されたシーンは常に*シーケンス*になるため、非シーケンスのインプットを必要とするリクエストには追加できません。今後はあらゆる場面でシーケンスへの標準化を進める予定のため、この点は次第に問題にならなくなる見込みです。
:::

:::hint{type="info"}
新しいモデルでは、シーンが集約シーンであることを指定する必要はありません。また、最初のフレームに大きな（fat）点群を含み、残りのフレームには何も含まない、いわゆる「事前集約」シーンの作成はサポートされなくなりました。詳細については、[集約LiDARとカメラシーケンス](docId\:l_TirodKSb1iH5Y5CTH9z)を参照してください。
:::

このモデルの詳細については、[シーン](docId\:GhysyiQcSIQcxebSBRvky)をご覧ください。

# ローカルファイルからシーンを作成

このガイドでは、ソースがコンピュータ上にある場合のシーンアップロード手順を説明します。

## 前提条件

[クイックスタート](docId\:WYm9o4UavbHvEioJEw8Ze)ガイドを完了し、`kognic-io`ライブラリをインストール済みである必要があります。複数のワークスペースにアクセスできるユーザーは、データのアップロード先となるワークスペースを指定する必要があります（[高度な設定](docId\:qTiR2BROmDZhuva3CAtLg)を参照）。

ローカルファイルを使用してシーンをアップロードするには、以下が必要です：

- kognic-io >= 2.5.1
- シーンのキャリブレーション（[キャリブレーション概要](docId:40uJEbw5cST4e4djxsgty)を参照）
- Kognicがサポートするファイルフォーマットのローカルデータ（[サポートされているファイルフォーマット](docId\:SSYLS6MigPyuHj9kv1SVf)を参照）

## 例

:::hint{type="info"}
Kognicはローカルファイルへの参照を保持して後から取得することができないため、ローカルファイルを扱う場合は`postpone_external_resource_import`をfalseに設定する必要があります。
:::

:::ExpandableHeading
### ローカルファイルから2Dシーンを作成

```python
from kognic.io.client import KognicIOClient
from kognic.io.model.scene import SceneRequest, Frame, ImageResource

scene = SceneRequest(
  workspace_id="<workspace_id>",
  external_id="my_first_scene_from_external_resources",
  frames=[
    Frame(
      frame_id="1",
      timestamp_ns=1742225789000000000, # Absolute unix timestamp of frame
      images=[
        ImageResource(
          external_resource_uri=None,
          sensor_name="my_camera",
          local_file=LocalFile(filename="<path to your file>")
        )
      ],
    )
  ],
  postpone_external_resource_import=False
)

client = KognicIOClient()
scene_uuid = client.scene.create_scene(scene).scene_uuid
print("Scene uploaded, got uuid:", scene_uuid)
```
:::

:::ExpandableHeading
### ローカルファイルから2D/3Dシーンを作成

```python
from kognic.io.client import KognicIOClient
from kognic.io.model.scene import SceneRequest, Frame, ImageResource, SensorResource, Resource, EgoVehiclePose

scene = SceneRequest(
  workspace_id="<workspace_id>",
  external_id="my_first_scene_from_external_resources",
  frames=[
    Frame(
      frame_id="1",
      timestamp_ns=1742225790000000000,
      pointclouds=[
        SensorResource(
          external_resource_uri=None,
          sensor_name="my_lidar",
          local_file=LocalFile(filename="<path to your file>")
        )
      ],
      images=[
        ImageResource(
          external_resource_uri=None,
          sensor_name="my_camera",
          start_shutter_timestamp_ns=1742225789000000000,
          end_shutter_timestamp_ns=1742225790000000000,
          local_file=LocalFile(filename="<path to your file>"),
        )
      ],
      ego_vehicle_pose=EgoVehiclePose(
        x=0.0, y=0.0, z=0.0, rotation_x=0.0, rotation_y=0.0, rotation_z=0.0, rotation_w=1.0
      )
    )
  ],
  calibration_id="<calibration_id>",
  imudata_resource=Resource(
      external_resource_uri=None,
      local_file=LocalFile(filename="<path to your file>")
  ),
  sensor_specification=None,
  should_motion_compensate=False,
  postpone_external_resource_import=False
)

client = KognicIOClient()
scene_uuid = client.scene.create_scene(scene).scene_uuid
print("Scene uploaded, got uuid:", scene_uuid)
```
:::

# クラウドリソースからシーンを作成

このガイドでは、アクセス可能なバケットにソースがある場合のシーンアップロード手順を説明します。

## 前提条件

[クイックスタート](docId\:WYm9o4UavbHvEioJEw8Ze)ガイドを完了し、`kognic-io`ライブラリをインストール済みである必要があります。複数のワークスペースにアクセスできるユーザーは、データのアップロード先となるワークスペースを指定する必要があります（[高度な設定](docId\:qTiR2BROmDZhuva3CAtLg)を参照）。

クラウドリソースを使用してシーンをアップロードするには、以下が必要です：

- kognic-io >= 2.5.1
- 有効な[データインテグレーション](docId\:L93_PNIEAhqPK-6j-OuEF)
- シーンのキャリブレーション（[キャリブレーション概要](docId:40uJEbw5cST4e4djxsgty)を参照）
- Kognicがサポートするファイルフォーマットのバケット上のデータ（[サポートされているファイルフォーマット](docId\:SSYLS6MigPyuHj9kv1SVf)を参照）

## 概要

各リソース（画像、点群、IMUデータ）に`local_file=LocalFile(...)`を指定する代わりに、`local_file=None`のままにして、クラウドプラットフォームのネイティブ形式（`gs://`や`s3://`のURLなど）で`external_resource_uri`を指定します。

## 例

この例は、IMUデータと自車両ポーズを含む完全な2D+3Dシーンを示しています。IMU、自車両ポーズ、点群を削除することで、2Dのみのシーンに縮小できます。

`postpone_external_resource_import`を使用するとインポートを延期でき、いわゆる「インデックス済み」（Indexed）シーンが作成されます（「インデックス済み」と呼ぶのは、システム内に存在しうるデータのインデックスのみを保持し、シーンが使用されるか後で手動でリクエストされるまでデータを取得しないためです）。

```python
from kognic.io.client import KognicIOClient
from kognic.io.model.scene import SceneRequest, Frame, ImageResource, SensorResource, Resource, EgoVehiclePose

scene = SceneRequest(
  workspace_id="<workspace_id>",
  external_id="my_first_scene_from_external_resources",
  frames=[
    Frame(
      frame_id="1",
      timestamp_ns=1742225790,
      # For 2D-only scenes, omit pointclouds entirely.
      pointclouds=[
        SensorResource(
          external_resource_uri="<uri>",
          sensor_name="my_lidar",
          local_file=None,
        )
      ],
      images=[
        ImageResource(
          external_resource_uri="<uri>",
          sensor_name="my_camera",
          start_shutter_timestamp_ns=1742225789,
          end_shutter_timestamp_ns=1742225790,
          local_file=None,
        )
      ],
      # For 2D-only scenes, omit ego_vehicle_pose entirely.
      ego_vehicle_pose=EgoVehiclePose(
        x=0.0, y=0.0, z=0.0, rotation_x=0.0, rotation_y=0.0, rotation_z=0.0, rotation_w=1.0
      )
    )
  ],
  calibration_id="<calibration_id>",
  # For 2D scenes, omit imudata_resource entirely.
  imudata_resource=Resource(
      external_resource_uri="<uri>",
      local_file=None
  ),
  sensor_specification=None,
  should_motion_compensate=False, # Omit for 2D, optionally set for 3D+2D
  postpone_external_resource_import=False, # Set true if you want to import at a later point in time
)

client = KognicIOClient()
scene_uuid = client.scene.create_scene(scene).scene_uuid
print("Scene uploaded, got uuid:", scene_uuid)
```
