★ New

From drone photos to orthomosaic + DSM.

The processing leg of the UAS loop. 3D Map Explorer drives photogrammetry two ways: a local OpenDroneMap CLI sidecar that turns a folder of photos into an orthomosaic + DSM entirely on your workstation, and a WebODM / NodeODM cloud import that pulls finished products from a remote processing node. Air-gapped SfM when you need it, elastic cloud when you don't.

OpenDroneMap CLIOrthomosaicDSM / DTM WebODM / NodeODM importProfile managementAir-gapped option
Path 1 · Local ODM sidecar

Air-gapped SfM on your own hardware

OdmCliHost spawns the standalone OpenDroneMap CLI — the open-source photogrammetry toolchain behind WebODM/NodeODM — as a pure subprocess. No HTTP sidecar, no Docker requirement on the desktop. ODM is not bundled: install it, put it on PATH or set Ortho:OdmPath, or drop the tree into runtimes/win-x64/odm/. The health probe uses odm --version (ODM, unlike some tools, answers it).

  • Drone photos → orthomosaic + DSM/DTM via Structure-from-Motion / Multi-View Stereo.
  • Pure CLI subprocess — no in-process HTTP sidecar to keep alive.
  • Version banner parsed best-effort from --version so the UI can flag a missing/stale install.
  • Output served straight into the platform's raster pipeline — viewable, analyzable, servable as tiles.
local ODM sidecar
# photos in → orthomosaic + DSM out
$ odm --project-dir ./sortie-12 \
      --orthophoto-resolution 5 \
      --dsm
→ odm_orthophoto.tif
→ dsm.tif
→ loaded as raster layer, served as tiles
Path 2 · WebODM cloud import

Pull finished products from a remote node

When the workstation isn't the right place to grind a 2,000-photo sortie, process on a WebODM / NodeODM node and import the results. WebOdmService manages connection profiles (credentials stored, never echoed in list responses), browses projects and tasks, and imports assets back into the platform.

🔌

Connection profiles

Named profiles — base URL, username, password (secrets held, not listed).

Probe / test

POST /profiles/{id}/test → reachability + project count.

📁

Browse projects

List projects + tasks per profile; pull thumbnails to preview.

⬇️

Asset import

POST /import — bring the orthomosaic/DSM into the platform's raster pipeline.

🔐

Secret-safe

Profile list omits passwords; insecure-skip-verify available for self-signed nodes.

🖼️

Thumbnails

Per-task thumbnail fetch for quick visual QA before importing.

REST API surface · WebODM import

Drive cloud import from your own tools

CapabilityEndpointNotes
Capability discoveryGET /api/webodm/capabilities{ available, configured, reason }
Profiles CRUDGET · POST · DELETE /api/webodm/profiles[/{id}]Connection profiles
Test profilePOST /api/webodm/profiles/{id}/testProbe → ok + projectCount
List projectsGET /api/webodm/profiles/{id}/projects
List tasksGET …/projects/{pid}/tasksPer-project task list
Task thumbnailGET …/tasks/{tid}/thumbnailPreview image
Import assetsPOST /api/webodm/importPull orthomosaic/DSM into the platform

Local processing reflects OdmCliHost; cloud import reflects WebOdmRoutes / WebOdmService. OpenDroneMap is not bundled — install separately from opendronemap.org. Output quality depends on photo overlap, GPS accuracy (pair with RTK/PPK), and ODM version.

Part of the UAS loop

Plan → Preflight → Fly → Process → Exploit

Close the loop — photos in, map out

Local ODM CLI sidecar for air-gapped SfM, or WebODM cloud import for elastic scale. Either way the orthomosaic lands in the platform's raster pipeline.