Calculates a CRC (Cyclic Redundancy Check) value for a feature and places the calculated CRC value into the attribute specified.

If a CRC is calculated for both coordinates and attributes, it is returned as a hexadecimal string representing an integer of double the bit-length of the chosen algorithm. If a CRC is calculated for only coordinates, only attributes, or a file, it is returned as a hexadecimal string representing an integer equal to the algorithm bit-length.

In the case where the CRC of both coordinates and attributes is being calculated, the format of the CRC attribute string is xxxxxxxxyyyyyyyy, where the x's represent the CRC calculated for the coordinates, and the y's represent the CRC calculated for the combination of the coordinates and attributes. The first half of the CRC (the x's) in this case will match the entire CRC of calculating only the geometry coordinates. The second half of the CRC (the y's) will not match the entire CRC of calculating only attributes.

MD5 checksums do not follow this pattern and are instead returned as a 32 digit hex-string which is calculated based on the entire input.

Usage Notes

You can use this CRC value to check data at a later date - to make sure it hasn't been changed, corrupted, deleted etc. It can also be used as a form of ChangeDetection (instead of using the ChangeDetector to compare geometry, use the Matcher to compare CRC values).

Like all popular CRC algorithms, different features could produce the same CRC value with minimal probability.


This FME Community example shows an advantage to using the CRCCalculator over the ChangeDetector.


Input Ports

Output Ports

Note  Feature order may change in relation to other output ports. Feature order per port is maintained.


Editing Transformer Parameters

Using a set of menu options, transformer parameters can be assigned by referencing other elements in the workspace. More advanced functions, such as an advanced editor and an arithmetic editor, are also available in some transformers. To access a menu of these options, click beside the applicable parameter. For more information, see Transformer Parameter Menu Options.

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. There are a number of tools and shortcuts that can assist in constructing values, generally available from the drop-down context menu adjacent to the value field.

Dialog Options - Tables

Transformers with table-style parameters have additional tools for populating and manipulating values.

FME Community

The FME Community is the place for demos, how-tos, articles, FAQs, and more. Get answers to your questions, learn from other users, and suggest, vote, and comment on new features.

Search for all results about the CRCCalculator on the FME Community.