Geometry Handling Parameter
From fmepedia
Introduction
The Geometry Handling parameter is a switch which turns a whole bunch of geometry processing updates on and off en-masse
Up until FME2009, the settings were classic and rich, causing confusion with the FME Geometry Model (which has geometries described as classic and rich). Therefore in FME2009, the two settings were renamed classic and enhanced.
| Table of contents |
Geometry Model Confusion
FME has an internal geometry model that describes how features are stored within FME and its FFS format.
In FME2006 and FME2006GB the geometry model underwent widespread improvements to support complex geometry types - such as polygons whose boundaries include arc features - and to enable proper storage and handling of measures. This is what became known as "Rich Geometry".
New Geometry Handling
User-level functionality (such as data formats and transformers) were soon upgraded to take advantage of these geometry model improvements.
What Sort of Upgrades and Improvements were Made?
The sort of improvements that needed a more powerful geometry model to carry out.
For example, pre-upgrade, the Snapper transformer would snap line vertices to the centre of an arc. With the updated geometry model the Snapper was upgraded to snap vertices to the end point of an arc. Similarly the Intersector transformer is now capable of intersecting a line and arc, whereas before this was not possible.
These upgrades can be turned on and off en-masse using the Geometry Handling Parameter.
Of course, transformers created since the geometry model upgrades will only have one mode, and the handling flag will have no effect.
What are the Settings
From FME2009, the two options in the Geometry Handling parameter are Classic and Enhanced. Enhanced obviously enacts the new and improved processing.
Up to FME2009 a user often got confused with geometry type; rich mode = rich geometry, right? WRONG! The two are entirely unrelated. A transformer in rich mode will carry out the same function whether or not it receives rich geometry - i.e. the source geometry does not have to be rich to get the enhanced (rich) output.
Underlying Keywords
Not only did the GUI settings get upgraded for FME2009, the underlying mapping file keywords got upgraded too.
The keyword was changed from FME_USE_RICH_GEOMETRY to FME_GEOMETRY_HANDLING
Why Have a Parameter?
Good question - why not just drop the old behaviour and use the improved functionality?
We have the handling parameter because of backwards compatibility. For example, we don't want to automatically update to snapping to an arc centre, when a user may have set up translations that depend upon the old behaviour.
Therefore, a user with a workspace of this type, can run the translation in "classic" mode and be assured that the results will be exactly the same as if it were run in a version of FME using the older geometry model.
Default Settings
Older workspaces will always be opened in "Classic" mode, at which point the user could change it if required.
New workspaces also, for the moment, use Classic mode by default. This default is scheduled to be changed to Enhanced mode in FME2010.
Inspecting Data
The FME Universal Viewer also has a Geometry Handling parameter.
Up to FME2009 this parameter acted entirely independently from Workbench. In FME2009 it is now tied into Workbench so that when one changes the other follows suit.
Q+A
Q) I'm running an old workspace in FME 2009 but there is no difference - I get the same output as before. Why?
A) There are a number of potential reasons:
- You still have the Geometry Handling flag set to Classic. This will be the default behaviour.
- You have not updated your transformers. You may need to do this by replacing each transformer with a new version.
- The transformers you are using have not changed since your workspace was created. This may be the case if there were no aspects of rich geometry that they could make use of.
