ExtrapolateXMarkersPolynomial

MacroModule
author Lennart Tautz
package FMEwork/ReleaseMeVis
definition ExtrapolateXMarkers.def
keywords fitting, marker, point, position, polynomial, extrapolation, interpolation

Purpose

This module extrapolates from a given list of XMarkers by polynomial fitting.

Usage

Connect a sorted XMarkerList, choose appropriate parameters and press Update.

Details

A polynomial is fitted component-wise to each marker position in list order. It is up to the caller to sort the markers in a meaningful way.

Other marker properties (vectors, types, etc) are not copied or adapted.

Regardless of grid settings, the first extrapolated position starts at 0.01 (1%) beyond the original grid.

Tips

An XMarkerListSort module with Sort Mode set to XYZCTU-Cell or Distance to Point usually produces a sufficient ordering.

Windows

Default Panel

../../../Projects/MarkerInfrastructure/ExtrapolateXMarkers/Modules/mhelp/Images/Screenshots/ExtrapolateXMarkersPolynomial._default.png

Input Fields

inMarkerList

name: inMarkerList, type: MLBase

An XMarkerList.

Output Fields

outMarkerList

name: outMarkerList, type: MLBase

An XMarkerList containing the extrapolated markers.

outFittedPoints

name: outFittedPoints, type: MLBase

An XMarkerList containing the positions of the fitted polynomial.

Parameter Fields

Visible Fields

Degree of Polynomial

name: inDegreeOfPolynomial, type: Integer, default: 2, minimum: 1, maximum: 5

Degree of the fitted polynomial.

Number of Markers to Prepend

name: inNumberOfMarkersToPrepend, type: Integer, default: 0, minimum: 0

Number of markers to add to the front of the list.

Number of Markers to Append

name: inNumberOfMarkersToAppend, type: Integer, default: 0, minimum: 0

Number of markers to add to the end of the list.

Input Point Grid

name: inPointGrid, type: Enum, default: Native

Determines how the grid (domain) is created for fitting.

Values:

Title Name Description
Native Native

A grid in the range [0; 1] is used. The X positions are determined by the normalized 3D Euclidean distances between the markers, reflecting non-uniformity of the marker list better.

This mode is more useful when one has a sparsely sampled and noise-free marker list.

Uniform Uniform

A uniform grid in the range [0; 1] is used.

This mode is more useful when one has a densely sampled or noisy marker list.

Extrapolated Point Grid

name: inExtrapolatedGrid, type: Enum, default: Native

Determines how the grid (domain) is created for extrapolation.

Values:

Title Name Description
Native Native New positions are spaced by the median of 3D Euclidean distances.
Uniform Uniform New positions are spaced by 0.01 (1% of original marker list domain).

Update

name: update, type: Trigger

Initiates update of all output field values.

Clear

name: clear, type: Trigger

Clears all output field values to a clean initial state.

On Input Change Behavior

name: onInputChangeBehavior, type: Enum, default: Clear, deprecated name: shouldUpdateAutomatically,shouldAutoUpdate

Declares how the module should react if a value of an input field changes.

Values:

Title Name Deprecated Name
Update Update TRUE
Clear Clear FALSE

[]

name: updateDone, type: Trigger, persistent: no

Notifies that an update was performed (Check status interface fields to identify success or failure).

Has Valid Output

name: hasValidOutput, type: Bool, persistent: no

Indicates validity of output field values (success of computation).

Status Code

name: statusCode, type: Enum, persistent: no

Reflects module’s status (successful or failed computations) as one of some predefined enumeration values.

Values:

Title Name
Ok Ok
Invalid input object Invalid input object
Invalid input parameter Invalid input parameter
Internal error Internal error

Status Message

name: statusMessage, type: String, persistent: no

Gives additional, detailed information about status code as human-readable message.

Hidden Fields

doNotClearOnFailedUpdate

name: doNotClearOnFailedUpdate, type: Bool, persistent: no

Prevents automated clear after update failed. This does not affect status fields. It enables the developer to analyze module’s state after failure.