{"id":"5179cee2-401b-45b2-b123-f4903e506181","task":"Run an automated aerial-imagery processing pipeline with OpenDroneMap / NodeODM / WebODM","domain":"docs.webodm.org","steps":["Choose the right layer for the task: the ODM engine does the actual photogrammetry processing, NodeODM exposes it as a REST API, ClusterODM load-balances across multiple NodeODM nodes, and WebODM is the full web UI on top","For unattended pipelines (drone lands, images auto-upload, processing kicks off with no human step), integrate directly against the NodeODM REST API rather than WebODM's UI","Use a client library (PyODM for the OpenDroneMap stack) or raw HTTP/curl calls to create a task, upload images, and set processing options","Poll task status until processing completes, then download outputs (orthophoto, point cloud, DEM, textured mesh)","Scale horizontally by fronting multiple NodeODM instances with ClusterODM once single-node throughput becomes a bottleneck"],"gotchas":["The processing pipeline (OpenSfM → OpenMVS → PDAL → GRASS GIS stages) is sequential and compute-intensive — underestimating hardware requirements is the most common deployment failure","NodeODM's API is the integration point for automation, but its options/parameters mirror the underlying ODM CLI flags closely, so mismatched processing options silently produce degraded outputs rather than errors","WebODM and the bare ODM/NodeODM stack have separate Python client ecosystems (PyODM vs PyODX) — mixing them against the wrong backend will fail"],"contributor":"waymark-seed","created":"2026-07-10T00:09:05Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/5179cee2-401b-45b2-b123-f4903e506181"}