FME Form: 2024.1
Adding a Custom Transformation
Some datasets require a transformation that is not predefined in FME. In such a case, a custom transformation may be created. Transformation definitions may occur in an FME mapping file, as well as in the <FME_Install_Dir>/Reproject/MyCoordSysDefs.fme
file.
Single-step Transformation Syntax
XFORM_DEF <xformName> \
SRC_DTM <datum name> \
TRG_DTM <datum name> \
[DESC_NM <descriptive name>] \
[SOURCE <source>] \
[GROUP <group>] \
[EPSG_NBR <epsg #>] \
[INVERSE <yes|no>] \
[MAX_ITR <max iterations for inverse convergence>] \
[CNVRG_VAL <inverse convergence threshold for completion>] \
[ERROR_VAL <inverse convergence threshold for error reporting>] \
[ACCURACY <0-1000>] \
[EPSG_VAR <0-32767>] \
[MIN_LNG <longitude>] \
[MAX_LNG <longitude>] \
[MIN_LAT <latitude>] \
[MAX_LAT <latitude>] \
METHOD <transformation method> \
[DELTA_X <x translation>] \
[DELTA_Y <y translation>] \
[DELTA_Z <z translation>] \
[ROT_X <x rotation>] \
[ROT_Y <y rotation>] \
[ROT_Z <z rotation>] \
[XLATE_X <x rotation origin>] \
[XLATE_Y <y rotation origin>] \
[XLATE_Z <z rotation origin>] \
[BWSCALE <scale>] \
[GRID_FILE <format>,<direction>,<file path>]* \
[FALLBACK <xformName>]
Multi-step Transformation Syntax
PATH_DEF <pathName> \
[SRC_DTM <datum name>] \
[TRG_DTM <datum name>] \
[DESC_NM <descriptive name>] \
[SOURCE <source>] \
[GROUP <group>] \
[ACCURACY <0-1000>] \
[XFORM <xformName>,<direction>]+
Examples
Refer to file MyCoordSysDefs.fme
in folder <FME_Install_Dir>/Reproject
.
Transformation Definition Parameters
Name |
Range |
Description |
Optional |
Default |
---|---|---|---|---|
XFORM_DEF |
CS-Map identifier name, as described in <FME_Install_Dir>/Reproject/MyCoordSysDefs.fme |
The name of the single-step transformation being defined. | No | |
PATH_DEF |
CS-Map identifier name, as described in <FME_Install_Dir>/Reproject/MyCoordSysDefs.fme |
The name of the multi-step transformation being defined. | No | |
SRC_DTM | Name of a datum | The name of the source datum. If omitted for a Path, this transformation is never automatically selected. |
XFORM: No PATH: Yes |
|
TRG_DTM | Name of a datum | The name of the target datum. If omitted for a Path, this transformation is never automatically selected. |
XFORM: No PATH: Yes |
|
DESC_NM | String | A descriptive name for the transformation. | Yes | |
SOURCE | String | The individual or agency providing the transformation parameters. | Yes | |
GROUP | String | The group that will appear in the Geographic Transformation Gallery in FME Workbench. | Yes | |
EPSG_NBR | Integer greater than or equal to zero | Used for logging if greater than zero. | Yes | 0 |
INVERSE | Yes/No | If yes, transformation can be run in reverse (TRG_DTM -> SRC_DTM) | Yes | Yes |
MAX_ITR | Integer greater than or equal to zero | Maximum number of iterations that are attempted when transformation is run reversed, in 2D. | Yes | 8 |
CNVRG_VAL | Floating-point number | Convergence threshold: When a reversed 2D transformation is within this distance of the real answer, iteration halts. | Yes | 1.0E- 09 |
ERROR_VAL | Floating-point number larger than
CNVRG_VAL |
Error threshold: When a reversed 2D transformation does not meet the CNVRG_VAL threshold after MAX_ITR iterations, the result is considered acceptable as long as it is closer than ERROR_VAL. | Yes | 1.0E- 06 |
METHOD | See Geographic Transformations | Transformation method to be applied. | No | |
DELTA_X | Floating-point number | The amount the intermediary geocentric X coordinate is translated. This value must be given in meters and the direction of the translation is given by the sign of the value. Only applies to some METHODs. | Yes | 0 |
DELTA_Y | Floating-point number | The amount the intermediary geocentric Y coordinate is translated. This value must be given in meters and the direction of the translation is given by the sign of the value. Only applies to some METHODs. | Yes | 0 |
DELTA_Z | Floating-point number | The amount the intermediary geocentric Z coordinate is translated. This value must be given in meters and the direction of the translation is given by the sign of the value. Only applies to some METHODs. | Yes | 0 |
ROT_X | Floating-point number | The amount of rotation about the X axis which is applied to the intermediary geocentric coordinates. This value is given in seconds of arc, and the direction of the rotation is indicated by the sign of the value. Only applies to some METHODs. | Yes | 0 |
ROT_Y | Floating-point number | The amount of rotation about the Y axis which is applied to the intermediary geocentric coordinates. This value is given in seconds of arc, and the direction of the rotation is indicated by the sign of the value. Only applies to some METHODs. | Yes | 0 |
ROT_Z | Floating-point number | The amount of rotation about the Z axis which is applied to the intermediary geocentric coordinates. This value is given in seconds of arc, and the direction of the rotation is indicated by the sign of the value. Only applies to some METHODs. | Yes | 0 |
XLATE_X | Floating-point number | The X component of the point (in the source Cartesian coordinate reference system) about which the rotation is performed. Only applies to some METHODs. | Yes | 0 |
XLATE_Y | Floating-point number | The Y component of the point (in the source Cartesian coordinate reference system) about which the rotation is performed. Only applies to some METHODs. | Yes | 0 |
XLATE_Z | Floating-point number | The Z component of the point (in the source Cartesian coordinate reference system) about which the rotation will be performed. Only applies to some METHODs. | Yes | 0 |
BWSCALE | Floating-point number | A scale factor that is applied to the intermediary geocentric coordinates. The value is given as a value in parts per million, and is the difference of the actual scale factor and unity. For example, a value for the scale parameter of -2.5 produces an actual scale factor of 0.9999985. That is, the actual scale factor used is arrived at by multiplying the parameter value by 1.0x10-06 and adding the result (algebraically) to 1.0. Only applies to some METHODs | Yes | 0 |
GRID_FILE | <format>,<direction>, <file path> |
METHOD=GRID_INTERP requires at least one grid file; otherwise it is invalid. The first grid file that covers the coordinate being transformed is used. | Depends on the METHOD chosen | |
GRID_FILE <format> | NTv2|NADCON|FRGEO|JPPAR| ATS77|GEOCON |
Grid file format. | No | |
GRID_FILE <direction> | fwd|inv | Direction grid file should be applied. | No | |
GRID_FILE <file_path> | Path to a grid file | Either absolute or relative to <FME_Install_Dir>/Reproject | No | |
FALLBACK | Non-grid, single-step transformation name | Transformation to be used if no grid files cover the coordinate being transformed. | Yes | |
XFORM | <Single-step transformation name>,<fwd|inv> | Path definitions require at least one single-step transformation to be listed. Transformations are applied in the order and direction listed. | No | |
ACCURACY | 0-1000 | Not used. | Yes | 8 |
EPSG_VAR | Integer greater than or equal to zero | Not used. | Yes | 0 |
MIN_LNG | Floating-point number | Not used. | Yes | 0 |
MAX_LNG | Floating-point number | Not used. | Yes | 0 |
MIN_LAT | Floating-point number | Not used. | Yes | 0 |
MAX_LAT | Floating-point number | Not used. | Yes | 0 |