Modify existing M values in a LineStringM/MultiLineStringM layer using common recalibration operations. It does not change X/Y (or Z); it only rewrites M at vertices.
INPUTS
• Line layer with M (LineStringM/MultiLineStringM).
OPERATIONS
• Offset: shifts all M values by a constant amount (offset correction).
• Factor: scales all M values (unit conversion or recalibration).
• Invert M: reverses the M direction while keeping the same range (per feature or per route depending on scope).
• Set origin (TARGET_START): adjusts the origin so the first vertex has the specified M, keeping the rest consistent.
↳ In ROUTE_ID scope, the origin is computed in a common way for all features in the route.
• Clamp M to range: limits M to a minimum/maximum interval; values outside are set to the nearest bound. In other words, it cleans out-of-range values without recalibrating the axis, so the interior remains intact. It does not compress or stretch calibration (no “remapping”).
↳ Only affects values below min or above max, snapping them to the bound.
↳ It may create flat sections at the start or end (values stuck at min/max).
• Enforce monotonicity (“bounce” cleanup): fixes local inversions of M so it always progresses in the same direction; it may “flatten” small segments.
The tolerance (epsilon) allows ignoring small numerical variations before correcting.
VALIDATION
• Require M (advanced): if enabled, features without M produce critical messages.
If disabled, they are skipped with a warning (SKIPPED_NO_M).
SCOPE (ADVANCED)
• Per feature: applies operations using each feature’s own range/origin.
• By ROUTE_ID: uses a shared range/origin across multiple features (useful when a route is split).
↳ Requires specifying the ROUTE_ID field.
OUTPUTS
• Line layer with modified M.
• Adds the STATUS field (e.g. OK, SKIPPED_NO_M, NO_M_VALUES, BAD_GEOMETRY, NO_ROUTE).
• The Processing log includes warnings and criticals (e.g. CLAMP_APPLIED, MONO_APPLIED).
TIP
If you use Invert or Set origin on split routes, consider the By ROUTE_ID scope to keep global consistency.
DETAILS
See the plugin README: Edit calibration (Modify M values)