FME Transformers: 2026.3
WebODMConnector
Connects to a WebODM web application or NodeODX processing node to run photogrammetry jobs on drone imagery.
Typical Uses
- Generating a georeferenced orthomosaic (orthophoto) from overlapping aerial or drone imagery.
- Producing a Digital Surface Model (DSM) or bare-earth Digital Terrain Model (DTM) of a survey area.
- Building a dense point cloud or a textured 3D mesh of a site
- Recovering camera positions for a set of images from a photogrammetry flight
How does it work?
The WebODMConnector receives a set of overlapping drone images from an upstream raster reader. It submits those files to NodeODX processing node, directly or through a WebODM web application that manages the node, runs the photogrammetry job, and receives the results as FME features and geometry.
Note that the feature geometry is not submitted - the original image files are, as identified by the path stored in the fme_dataset attribute written by the upstream reader.
For each group of input features, the transformer:
- Buffers the group. Each input feature provides one drone image to be included in the reconstruction.
- Submits the images to the node through an FME web connection, using the selected Processing Preset and ODM/ODX Option Overrides.
- When Connect To is WebODM, Resize Images is also available.
- ODM/ODX Option Overrides are applied last and override any value set by the preset.
- Polls the node at the Poll Interval, logging progress as it advances.
- Downloads the results and outputs them as FME features via the appropriate output port.
- Optionally removes the finished task from the node.
Output options include:
- Orthomosaic: Georeferenced orthophoto (raster) of the reconstructed area.
- DSM: Digital Surface Model - a raster elevation surface that includes buildings and vegetation.
- DTM: Digital Terrain Model - a bare-earth raster elevation surface.
- DensePointCloud: Dense georeferenced point cloud of the reconstruction.
- Mesh: Textured 3D surface mesh, placed into absolute coordinates using the georeferencing the node writes alongside it.
- CameraPoses: One feature per image used in the reconstruction, with point geometry at the recovered camera position, plus additional attributes with per-image camera metadata
The WebODMConnector is a group-based transformer. Group By may be used to define multiple reconstructions.
All images within a group must overlap enough for the node to reconstruct them.
Note The WebODM (NodeODX) processing node is run by you, locally or as a hosted service. No photogrammetry engine is bundled with this package. See WebODM - Documentation.
Usage Notes
- Requires FME 2026.1+ and Python 3.10, 3.11, 3.12, 3.13, or 3.14.
- Enter https:// for the URL only if the server terminates TLS; enter http:// for a plain-HTTP server. The scheme is honored end-to-end, so an https:// URL to a plain-HTTP server fails with a TLS error.
- A photogrammetry job can take minutes to hours depending on image count and preset. The transformer blocks on each group until the node finishes. Poll Interval controls how often the node's progress is logged.
- If a connectivity error occurs while downloading results, it is retried automatically before the group is rejected. Job submission itself is not retried, to avoid leaving an orphaned task on the node.
-
Stopping a translation does not stop a reconstruction that has already been submitted.
Configuration
Input Ports
Feature with readable drone images identifiable via the upstream reader's fme_dataset attribute.
Each image path must name a file on disk. Files inside archives are not supported.
A group containing any invalid paths will be rejected before submission.
Output Ports
The georeferenced orthophoto (raster) of the reconstructed area.
The Digital Surface Model: a raster elevation surface that includes buildings and vegetation. Produced only when the selected preset or option override enables it.
Built-in presets Default, High Resolution, DSM , DTM, and Volume Analysis produce DSM output.
The Digital Terrain Model: a bare-earth raster elevation surface. Produced only when the selected preset or option override enables it.
Built-in presets DSM and DTM produce DTM output.
The dense, georeferenced point cloud of the reconstruction.
Built-in presets Fast Orthophoto and Field use sparse reconstruction.
The textured 3D surface mesh, placed into absolute coordinates using the georeferencing the node writes alongside it.
Built-in presets Fast Orthophoto and Field do not produce mesh output.
One feature per image used in the reconstruction with point geometry marking the recovered camera position.
Attributes are added as specified in Output Attribute Names > CameraPoses Port.
Features without valid drone images are output here, as are any features that encounter processing failure.
Rejected features will have an fme_rejection_code attribute with one of the following values:
MISSING_IMAGE_PATH
IMAGE_FILE_NOT_FOUND
NODE_UNREACHABLE
TASK_FAILED
Rejected Feature Handling: can be set to either terminate the translation or continue running when it encounters a rejected feature. This setting is available both as a default FME option and as a workspace parameter.
Parameters
|
Group By |
The default behavior is to use the entire set of input features as the group. This option allows you to select attributes that define which groups to form. Each set of features which have the same value for all of these attributes will be processed as an independent group. Each group is submitted to the node as one reconstruction task. |
||||
|
Complete Groups |
Select the point in processing at which groups are processed:
There are two typical reasons for using When Group Changes (Advanced) . The first is incoming data that is intended to be processed in groups (and is already so ordered). In this case, the structure dictates Group By usage - not performance considerations. The second possible reason is potential performance gains. Performance gains are most likely when the data is already sorted (or read using a SQL ORDER BY statement) since less work is required of FME. If the data needs ordering, it can be sorted in the workspace (though the added processing overhead may negate any gains). Sorting becomes more difficult according to the number of data streams. Multiple streams of data could be almost impossible to sort into the correct order, since all features matching a Group By value need to arrive before any features (of any feature type or dataset) belonging to the next group. In this case, using Group By with When All Features Received may be the equivalent and simpler approach. Note Multiple feature types and features from multiple datasets will not generally naturally occur in the correct order.
As with many scenarios, testing different approaches in your workspace with your data is the only definitive way to identify performance gains. |
|
Connect To |
Select a connection type:
|
|
WebODM Connection |
Select or create a Web Connection connecting to a WebODM or NodeODX Web Service.
|
|
Web App Project Name |
When Connect To is WebODM, specify the WebODM project that reconstruction tasks are created in. The oldest project with this exact name is used; if none exists, it is created. Default is FME. |
|
Task Name |
(Optional) Provide a display name for each reconstruction task. The name is shown in the WebODM web interface and stored on the task in NodeODX mode. Leave blank (the default) to let the node or web app apply its own naming. The parameter is evaluated at each group boundary, from the first feature of the group, so a name created from an expression may change with each group. |
|
Processing Preset |
Select a processing preset to apply. Presets define a small set of processing options and the node provides defaults for anything the preset does not specify. Choices are:
When Connect To is WebODM, the list will also show any custom presets. Option settings in the web app are honored, which may differ from the built-in presets as shown above. |
||||
|
Resize Images |
When Connect To is WebODM, select an option for image scaling:
Downsizing lowers the working resolution of the whole reconstruction but speeds up processing. |
||||
|
Longest Edge (pixels) |
When Resize Images is Resize by Longest Edge, specify the length of the longest side in pixels. |
||||
|
ODM/ODX Option Overrides |
This table specifies any additional processing options, one per row.
These options are applied last and override any value set by the preset or the Resize Images parameter. To target a specific orthophoto ground resolution, set orthophoto-resolution here. See WebODM - Options & Flags and WebODM - Options Selection Guide. |
|
Local Download Folder |
(Optional) Specify a local folder where the downloaded assets are written. Leave blank to use FME's temporary folder. Downloads left here are cleaned up automatically. At the start of a run, task folders in its fme_webodm subfolder that are more than a day old are removed. |
|
Poll Interval (seconds) |
Specify how often, in seconds, to poll the node for task status while a reconstruction runs. Default is 30. |
|
Network Read Timeout (seconds) |
Specify the per-request connect/read timeout (in seconds) for calls to the node or web app. Default is 30. Raise it for a slow or distant server. |
|
On Completion |
Select an option for handling completed tasks on the node or web app:
|
When enabled, output features are reprojected.
When not enabled (default), output features have the coordinate system the node produced (typically UTM/WGS84), with camera poses reprojected to match it.
|
Output Coordinate System |
Specify a coordinate system for output features. Features with no source coordinate system are not reprojected. |
|
Task ID |
Name the attribute to contain the identifier of the reconstruction task that produced the feature. |
||||||||||||||
|
Asset Type |
Name the attribute to contain the type of asset the feature was read from (orthophoto, dsm, dtm, pointcloud, mesh, or camera). |
||||||||||||||
|
CameraPoses Port |
These attributes apply to the CameraPoses output port.
|
Editing Transformer Parameters
Transformer parameters can be set by directly entering values, using expressions, or referencing other elements in the workspace such as attribute values or user parameters. Various editors and context menus are available to assist. To see what is available, click
beside the applicable parameter.
Defining Values
There are several ways to define a value for use in a Transformer. The simplest is to simply type in a value or string, which can include functions of various types such as attribute references, math and string functions, and workspace parameters.
Using the Text Editor
The Text Editor provides a convenient way to construct text strings (including regular expressions) from various data sources, such as attributes, parameters, and constants, where the result is used directly inside a parameter.
Using the Arithmetic Editor
The Arithmetic Editor provides a convenient way to construct math expressions from various data sources, such as attributes, parameters, and feature functions, where the result is used directly inside a parameter.
Conditional Values
Set values depending on one or more test conditions that either pass or fail.
Parameter Condition Definition Dialog
Content
Expressions and strings can include a number of functions, characters, parameters, and more.
When setting values - whether entered directly in a parameter or constructed using one of the editors - strings and expressions containing String, Math, Date/Time or FME Feature Functions will have those functions evaluated. Therefore, the names of these functions (in the form @<function_name>) should not be used as literal string values.
| These functions manipulate and format strings. | |
|
Special Characters |
A set of control characters is available in the Text Editor. |
| Math functions are available in both editors. | |
| Date/Time Functions | Date and time functions are available in the Text Editor. |
| These operators are available in the Arithmetic Editor. | |
| These return primarily feature-specific values. | |
| FME and workspace-specific parameters may be used. | |
| Creating and Modifying User Parameters | Create your own editable parameters. |
Table Tools
Transformers with table-style parameters have additional tools for populating and manipulating values.
|
Row Reordering
|
Enabled once you have clicked on a row item. Choices include:
|
|
Cut, Copy, and Paste
|
Enabled once you have clicked on a row item. Choices include:
Cut, copy, and paste may be used within a transformer, or between transformers. |
|
Filter
|
Start typing a string, and the matrix will only display rows matching those characters. Searches all columns. This only affects the display of attributes within the transformer - it does not alter which attributes are output. |
|
Import
|
Import populates the table with a set of new attributes read from a dataset. Specific application varies between transformers. |
|
Reset/Refresh
|
Generally resets the table to its initial state, and may provide additional options to remove invalid entries. Behavior varies between transformers. |
Note: Not all tools are available in all transformers.
For more information, see Transformer Parameter Menu Options.
Reference
|
Processing Behavior |
|
|
Feature Holding |
No |
| Dependencies | WebODM Processing Node |
| Aliases | |
| History |
FME Online Resources
The FME Community and Support Center Knowledge Base have a wealth of information, including active forums with 35,000+ members and thousands of articles.
Search for all results about the WebODMConnector on the FME Community.
Examples may contain information licensed under the Open Government Licence – Vancouver, Open Government Licence - British Columbia, and/or Open Government Licence – Canada.