Creating Photogrammetry Outputs in FME Form with WebODM

Kailin Opaleychuk
Kailin Opaleychuk
  • Updated

Introduction

Drone imagery is a powerful data source for generating high-resolution terrain and surface models, but turning raw photos into usable photogrammetry outputs typically requires switching between multiple specialized tools. This tutorial shows how to streamline that process entirely within FME Form using the WebODMConnector. 

 

Requirements

  • WebODM Account (credentials and installation)
  • FME Form 2026.3+

 

Downloads

 

Note: WebODM needs to be open for FME Form to access the node.

 

Step-by-Step Instructions

This tutorial installs the WebODMConnector, creates a web connection, and uses the connector to create photogrammetry outputs from drone images. Before you begin, download the WhiteRockPierDroneSurvey folder from the downloads section.

 

Part 1: Install the WebODMConnector

In this part, install the WebODMConnector from FME Hub.

1. Start FME Form
Open FME Form 2026.3 or newer and create a new workspace.

 

2. Install the WebODMConnector
On the top menu, click Add Transformer. In the Add Transformer dialog, search for WebODMConnector and install it from FME Hub. After installation, manage the package under Utilities > FME Options > Packages. 

If you are unfamiliar with Packages in FME Form, please see Introduction to FME Packages.

 

Part 2: Create a WebODM Connection

In this part, create a web connection so FME Form can connect to WebODM. 

3. Open FME Options
In the FME Options dialog, click Web Connections. 

 

4. Choose a Connection Method
FME Form supports two ways to connect to WebODM:

  • safe.webodm.NodeODX (default): connects directly to the application using a node URL (e.g. http://<hostname>:<port>) and a token.
  • safe.webodm.WebODM: connects to the web version using a web app URL, username, and password.

The Connect To parameter decides what the transformer talks to. With NodeODX, FME will connect to a processing node directly, whereas WebODM will sign into the web application instead. Each reconstruction becomes a task inside the project named by Web App Project Name; the web app assigns it to one of its processing nodes, and the results appear in the web app's interface as well as in FME.

This article covers connecting in NodeODX mode.

 

5. Create the NodeODX Web Connection

Click the plus (+) sign on the Web Connection page. Add a new safe.webodm.NodeODX connection

  • Web Service: NodeODX (safe.webodm)
  • Connection Name: <your connection name>
  • NodeODX URL:  http://<hostname>:<port>
  • Authentication Token: <token>

 

Part 3: Using the WebODMConnector

In this part, use the WebODMConnector to create photogrammetry outputs from the drone images.

6. Read the JPEG Images
Add a reader to the canvas. 

  • Format:  JPEG (Joint Photographic Experts Group)
  • Dataset: 
    • Select Multiple Folders/Files (drop-down arrow)
      • ./WhiteRockPierDroneSurvey

 

Select the WhiteRockPierDroneSurvey folder from the article's Files section (39 drone images total). Click OK twice to add the reader to the canvas.

 

7. Add the WebODMConnector
Add a WebODMConnector to generate photogrammetry from the drone imagery. Connect the JPEG reader feature type to the WebODMConnector.

Double-click the WebODMConnector and set the following parameters:

  • Connect To: NodeODX
  • Account: NodeODX Web Connection (Created in Part 2)
  • Task Name: Task_1
  • Processing Preset: Default
  • ODM/ODX Option Override:
    • Name: orthophoto-kmz
    • Value: true
  • Local Download Folder: C:/Temp/
  • On Completion: Remove Task from Node

Leave all other parameters at their default values.

This task produces a map and models at 5 cm/pixel max resolution. Removing the task from the node afterward helps manage disk space by deleting assets once they've been downloaded. This will also write a KMZ file to the Local Download Folder location set. 

Click OK to send the task to the WebODM node. 

 

From here, the node can hold a task for many minutes; after about five minutes with no update the log adds a line confirming the task is still running, and repeats it every five minutes until the reported state changes. In NodeODX mode that line also names the engine stage the task's console shows.

Note: Stopping a translation does not stop a reconstruction that has already been submitted to WebODM. The task keeps running on the node or web app. Cancel it from the WebODM web interface (or your node's own interface) if you no longer need it.

 

8. Write a LAS File

Add an ASPRS LiDAR Data Exchange Format (LAS) Writer, then connect the DensePointCloud port of the WebODMConnector to it.

  • Dataset: C:/Temp/Ouput
  • Format: ASPRS LiDAR Data Exchange Format (LAS)

 

9. Run the workspace

Run the workspace and send the images to the WebODM node. 

Once the translation is complete, view the output in the Data Preview window.

 

Use the Orbit tool and Data Preview window to explore the WebODM output. 

 

Troubleshooting

This section covers common issues that may occur when using WebODM with FME Form. WebODM is a separate service, so problems can come from WebODM, FME Form, and/or the connection between them. Each entry below describes an error and explains what usually causes it. 

Before troubleshooting a specific error, check the basics:

  • The WebODM node is running and reachable from the machine running FME Form.
  • The URL, credentials, and any tokens used in the workspace are correct.
  • The server has enough memory and disk space for the size of the image set you're processing.

If those all check out, look for your error below. When you're using WebODM in FME Form, you may run into one of the following:

  • MISSING_IMAGE_PATH: The input feature has no readable image path.
  • IMAGE_FILE_NOT_FOUND: A local image path in the group isn't a file on disk, for example, a path inside a zip archive. The whole group is rejected before submission.
  • NODE_UNREACHABLE: The node or web app couldn't be reached while submitting or polling the job.
  • TASK_FAILED: The submission was rejected (for example, too few overlapping images or a failed login), the reconstruction failed, or the assets couldn't be downloaded. A download failure can also be local, such as when the download directory can't be created.

 

Data Attribution

The data used in this article was collected and owned by Dean Hintz of Safe Software.

Was this article helpful?

We're sorry to hear that.

Please tell us why.

As of January 14th, 2026, comments on knowledge base articles have been closed. To make sure questions don’t get missed and to enable more community support, we’ve moved discussions to the FME Community. If you have a question or a comment about this article, please create a new post or create a support ticket.