Documentation menu

NavVis E57

For static scanner captures exported as E57. Each .e57 file is self-contained: it holds one point cloud and any number of spherical panoramas, each with its own pose. There is no CSV and no separate image folder — the panoramas are extracted out of the E57 for you.

Folder layout#

<dataset bucket>/
└── ingest/
    ├── Floor-1-registered.e57
    ├── Floor-2-registered.e57
    └── nested/               subfolders are scanned too
        └── Basement.e57

ingest/ is the default. It can be pointed elsewhere with the source_subpath parameter — "/", "." or an empty string mean the bucket root itself.

Both .e57 and .E57 are accepted, and the search is recursive, so any folder depth under the source prefix works.

If the source prefix contains no E57 at all, the run fails.

Sets#

Each E57 becomes one set, named after the file with the extension removed. A trailing -registered or -Registered is stripped as well, so Floor-1-registered.e57 indexes as set Floor-1.

Name your files after what they are; the name is what people will see in the viewer.

What is read from each E57#

PanoramasEvery images2D entry that has a sphericalRepresentation
Pano imageThe embedded jpegImage blob, with imageWidth / imageHeight
Pano poseThe entry's pose translation and rotation quaternion
Point cloudThe cartesian point data, written out as one LAZ per scan

An images2D entry without a sphericalRepresentation — a pinhole or cylindrical image, say — is skipped with a note and does not fail the run. Only spherical panoramas are indexed.

Coordinate reference system#

Nothing is reprojected. Poses and points are taken exactly as they appear in the E57 and stamped with the dataset's SRID. Deliver a scan that is already registered into the dataset's configured CRS. See Coordinates are not reprojected.

A short note recording the assumed datum is written to panorama/metadata/crs_note.txt in your bucket after every run. It records what was assumed, not what was verified — confirm the vertical datum with your surveyor before relying on absolute Z.

Ingest parameters#

KeyRequiredValuesDefault
anonymisationyesalready_anonymised, auto_anonymise, or anything else for neither
height_above_groundnonumber, metres1.6
source_subpathnofolder under the bucket root; /, . or "" for the rootingest
tile_pointcloudsnoanything except no enables grid tilingno
set_namenostring — names the merged outputs only1

Unlike most templates here, height_above_ground has a default. 1.6 m is a tripod-height guess; set it explicitly if your scanner sits at a different height.

What you get back#

  • Panorama JPEGs extracted to panorama/jpg/<set>/, indexed with their poses.
  • One LAZ per scan at pointcloud/<set>.laz, indexed per set.
  • A single merged COPC at copc/pointcloud.copc.laz across all scans.
  • Grid-tiled point clouds under pointcloud_tiles/ when tile_pointclouds is on — in which case the tiles, not the per-scan LAZ files, are what gets indexed.
  • panorama/metadata/crs_note.txt, as above.

Source E57 files are read once and not kept in the processing workspace, so a delivery of many large scans is bounded by the largest single file rather than their total.

Common failures#

SymptomCause
"No .e57 files found"The files are outside ingest/, or source_subpath points somewhere else
Point cloud indexed but no panoramasThe E57 has no sphericalRepresentation images — it is a geometry-only export
Everything in the wrong place on the mapThe scan was never registered into the dataset's CRS
Sets named Floor-1-registeredOnly -registered and -Registered are stripped; other suffixes stay