Documentation menu

Smart Delta SmartPano Gen2

SmartPano Gen2 captures: panoramas sitting flat at the bucket root with one trajectory CSV beside them, and a coloured point cloud from the SLAM session.

Folder layout#

<dataset bucket>/
├── GPS_Trajectory.csv          exact filename, exact case
├── 0001.jpeg                   panoramas at the bucket ROOT
├── 0002.jpeg
└── slam_session/
    └── merge_color/
        ├── cloud_001.laz
        └── cloud_002.laz

Two things people get wrong here:

  • Panoramas are .jpeg and live at the bucket root, not in a subfolder. Only files directly at the root are seen.
  • The point cloud lives at exactly slam_session/merge_color/. That is the coloured output of the SLAM run, not the raw session folder.

A missing GPS_Trajectory.csv skips the panorama half with a note; a missing slam_session/merge_color/ skips the point cloud half. Neither is fatal on its own.

GPS_Trajectory.csv#

SeparatorComma
Header rowRequired, and columns are addressed by name
Extra columnsIgnored — only the eight below are read
Blank cellsRead as empty strings, not nulls
ColumnTypeMeaning
imagenametextPhoto filename including the .jpeg extension
xnumberEasting, in the dataset's CRS
ynumberNorthing
znumberHeight
heading(deg)numberDegrees
pitch(deg)numberDegrees
roll(deg)numberDegrees
UNIX TimestampnumberEpoch seconds, read as UTC

The parenthesised suffixes and the space in UNIX Timestamp are part of the names — they are matched literally. A missing or misspelled column fails the run.

Unlike several other templates here, imagename is used verbatim: no extension is appended. Write 0001.jpeg, not 0001.

Example#

UNIX Timestamp,x,y,z,heading(deg),pitch(deg),roll(deg),imagename
1765631346.704,182518.396,477934.743,37.326,0.0,0.0,0.0,0001.jpeg
1765631348.113,182519.204,477936.881,37.341,1.4,0.1,-0.2,0002.jpeg

Tolerance#

  • Up to 10 % of CSV rows may reference missing photos. Past that the run fails immediately, naming the threshold.
  • Photos at the root that no CSV row mentions → listed at the end of the run and left unindexed.

Ingest parameters#

KeyRequiredValuesDefault
height_above_groundyesnumber, metres
anonymisationyesalready_anonymised, auto_anonymise, or anything else for neither
tile_pointcloudsyesanything except no enables grid tiling
set_namenostring1

tile_pointclouds is required here even though it is optional elsewhere. Pass no explicitly when you don't want tiling.

Coordinate reference system#

Nothing is reprojected. Positions are stamped with the dataset's SRID and point cloud boundaries come from the LAS headers unchanged. See Coordinates are not reprojected.

See Rotation angles.

What you get back#

  • Indexed panoramas with positions and orientations, plus blurred derivatives if anonymisation is auto_anonymise.
  • Indexed point clouds and a merged COPC at copc/pointcloud.copc.laz.
  • Grid-tiled point clouds under pointcloud_tiles/ at 100 m when tile_pointclouds is on — the tiles are then what gets indexed.

Common failures#

SymptomCause
"GPS_Trajectory.csv NOT found"Wrong name, wrong case, or nested in a subfolder
Every photo reported missingimagename omits the .jpeg extension, or the photos are in a subfolder rather than at the root
More than 10 % of photos missingFilename case mismatch, or .jpg delivered where .jpeg is expected
No point cloud indexedThe LAZ files are not under slam_session/merge_color/