Skip to main content

Upload and display 360-degree images

You can upload 360-degree images to Cognite Data Fusion (CDF) and display them in its various programs and applications in the Reveal 3D viewer. 360-degree images are often captured as part of a point cloud scan, such as an E57 format file, but you can also capture and upload them manually or using robots.

When displayed in Reveal 3D viewer, the locations of the 360-degree images are displayed as round markers in the 3D view. Select a marker to enter the specific 360-degree image, and use your mouse to rotate the camera in any direction. You can select other markers to move to nearby 360-degree images.

Cubemap files

You need to upload the image files to Cognite Data Fusion (CDF), where each station has six cubemap images with a specific set of metadata. Together, the cubemap images constitute one 360-degree image, representing six directions (left, front, right, back, top, and bottom). The cubemap images can be available separately through file exports from the lidar scanning software or embedded in E57 point cloud files.

Cubemap files
tip

You can also use a set of 360 panoramic images (equirectangular images). Before uploading the images to CDF, you need to convert them to cubemap images, for example, with a tool like py360convert.

Upload 360-degree images

You can use one of the two ways to upload 360-degree images to CDF:

  • As one file, if you have a point cloud file in the E57 file format that includes 360-degree images and point cloud data.

You can view 360-degree images in Search by adding the 360-degree image collection to a scene. To see 360-degree images in custom applications using Reveal, see the Reveal documentation.

  • As separate files, if you have 360-degree images and related metadata in separate files.
caution

Uploading the 360-degree image metadata (pose information) to the Events API is no longer possible. This functionality has been deprecated and will stop working in the future.

Upload E57 files as one file

Follow these steps to upload the E57 files to CDF and trigger point cloud filtering and indexing.

  1. Upload your E57 files to CDF. If these files are large:
  2. Copy the main file ID that you uploaded (ZIP or JSON file).
  3. In CDF, go to Data management > Integrate > Set up 3D Content > + Add model.
  4. Name your model and select + Create Empty model to upload the model without the initial file.
  5. To the right of the new model, select More Actions () > Filtering and Indexing.
  6. For Input data, select Choose your own file and enter the file ID you copied.
  7. Select Extract 360° images > OK to start processing.

Upload cubemap images as separate files

Follow these steps to upload the cubemap images to CDF and specify the location and orientation of the 360-degree images in the data modeling service (DMS) instances.

  1. Upload the cubemap images to the Files API, for example, using a Python script. Each image file needs a specific set of metadata.

    NameValueExample
    site_idA common identifier across all 360 images in the set. You will use this identifier when including the images in a scene.“site-S01-area-a03”
    site_nameA human-readable site name.“Norway Site S01 Area 03”
    station_idA unique identifier for the scanning position.“s01-a03-0012”
    station_nameA human-readable station name.“Area 03 - 0012”
    image_typeAlways “cubemap”.“cubemap”
    image_resolutionThe resolution of the cubemap image. The recommended resolution of cubemap images is 2048 x 2048 pixels.2048
    faceThe direction of the image (one of left, front, right, back, top, and bottom).“left”
  2. For each 360-degree image collection, use the Data modeling API to create a set of instances to specify the location and orientation of the images. For more information about ingesting and removing instances, see Ingesting instances into a graph or Create or update nodges/edges.

Three data model views are made explicitly for 360 images:

  • Image360Collection
  • Station360
  • Image360.

If your project admin has allowed this, the models will be available with the cdf_360_image_schema system data model in all CDF projects.

You can store the instances in the same space, when ingesting instances for a collection through these three data model views. The DMS instances should have the following metadata:

Image360Collection

{
"items": [
{
"instanceType": "node",
"space": collection-space-id,
"externalId": collection-external-id,
"sources": [
{
"source": {
"type": "view",
"space": "cdf_360_image_schema",
"externalId": "Image360Collection",
"version": "v1"
},
"properties": {
"label": collection-label
}
}
]
}
],

"autoCreateDirectRelations": true,
"autoCreateStartNodes": false,
"autoCreateEndNodes": false,
"skipOnVersionConflict": false,
"replace": false
}
ValueDescription
collection_labelThe name of the collection, for example, “site-factory1-area-a01”.
collection-space-idThe space ID to store the Image360Collection instance.
collection-external-idThe external ID of the Image360Collection instance.

Station360

{
"items": [
{
"instanceType": "node",
"space": station-space-id,
"externalId": station-external-id,
"sources": [
{
"source": {
"type": "view",
"space": "cdf_360_image_schema",
"externalId": "Station360",
"version": "v1"
},
"properties": {
"label": station-label
}
}
]
}
],
"autoCreateDirectRelations": true,
"autoCreateStartNodes": false,
"autoCreateEndNodes": false,
"skipOnVersionConflict": false,
"replace": false
}
ValueDescription
station-space-idThe space ID to store the Station360 instance.
station-external-idThe external ID of the Station360 instance.
station-labelThe name of the station, for example, “station-0012”.

Image360

{
"items": [
{
"instanceType": "node",
"space": image-360-space-id,
"externalId": image-360-external-id,
"sources": [
{
"source": {
"type": "view",
"space": "cdf_360_image_schema",
"externalId": "Image360",
"version": "v1"
},
"properties": {
"image": {
"label": image-360-label,
"translationX": image-360-translation-x,
"translationY": image-360-translation-y,
"translationZ": image-360-translation-z,
"eulerRotationX": image-360-euler-rotation-x,
"eulerRotationY": image-360-euler-rotation-y,
"eulerRotationZ": image-360-euler-rotation-z,
"scaleX": image-360-scale-x,
"scaleY": image-360-scale-y,
"scaleZ": image-360-scale-z,
"cubeMapFront": image-360-cubemap-front,
"cubeMapBack": image-360-cubemap-back,
"cubeMapLeft": image-360-cubemap-left,
"cubeMapRight": image-360-cubemap-right,
"cubeMapTop": image-360-cubemap-top,
"cubeMapBottom": image-360-cubemap-bottom,
"collection": image-360-collection,
"station": image-360-station,
"timeTaken": image-360-time-taken
}
}
}
]
}
],
"autoCreateDirectRelations": true,
"autoCreateStartNodes": false,
"autoCreateEndNodes": false,
"skipOnVersionConflict": false,
"replace": false
}
ValueDescription
image-360-space-idThe space ID to store the Image360 instance. Normally, the same as the space ID for the Image360Collection and Station360 instances.
image-360-external-idThe external ID of the Image360 image set instance. Note that there's only one Image360 instance for each set of 6 images.
image-360-labelThe name of the image set, for example, “station-0012-images”.
image-360-translation-x, image-360-translation-y, image-360-translation-zThe translation coordinates of the image set.
image-360-euler-rotation-x, image-360-euler-rotation-y, image-360-euler-rotation-zThe rotation angles for the front image in the image set. The rotation angles are in radians.
image-360-scale-x, image-360-scale-y, image-360-scale-zThe scale factors of the image set. Normally, 1.0.
image-360-cubemap-front, image-360-cubemap-back, image-360-cubemap-left, image-360-cubemap-right, image-360-cubemap-top, image-360-cubemap-bottomThe external IDs of the cubemap images stored in the Files API.
image-360-collectionThe external ID of the Image360Collection instance.
image-360-stationThe name of the Station360 instance.
image-360-time-takenThe time when the images were taken.

Add 360-degree images to the scene

To see the 360-degree images in CDF programs and applications using the Reveal 3D viewer, add 360-degree images to the scene.

For the E57 file with both point cloud and 360-degree images, add 3D data when configuring or editing the scene. Select the point cloud, the 360-degree image collection, and, optionally, the related 3D CAD model.

note

The 360-degree images extracted from the E57 file set will be put in a 360-degree image collection named site-<modelId>-<revisionId>. For example, site-111-222, where 111 is the model ID and 222 is the revision ID.