Whats Great
From Fmepedia
![]() |
The information here is designated one of the that are the most cool, interesting or useful. |
What's Great in the next FME?
See Also: What's Great in FME2008
Long-time FME'ers will know that with each release of FME we issue a list of "What's Great" with that version. That list gets built up and added to as we work through the beta cycle of that product.
Now we're making that list open to public viewing before the release. So here's what's going to be great about FME 2009 - and remember to check back here for regular updates.
NB: If you were redirected here from another page and find there are no images then simply click the 'article' link at the top of the page.
Warning
As with any beta version, be aware that it is subject to change and the functionality might not be the final version.
We don't really recommend using a beta for production work unless there's a specific bug fix that you need (and since most of those have been ported to an updated 2008 build, there's even less excuse).
Summary of Highlights
| Functionality | # of new items |
|---|---|
| New Vector Formats | 2 |
| New Raster Formats | 3 |
| New Transformers | 4 |
| New Factories + Functions | 4 |
| Table of contents |
|
|
General
Splashscreen

Above: The preliminary 2009 splashscreen. Perhaps we can rename "Desktop" and "Server" to "Thelma" and "Louise"?!
GUI
One of the most noticeable changes in FME2009 is a completely overhauled user interface for settings boxes.
You may have noticed a couple of these sneak into FME2008 (for example the 'Add Published Parameter' dialog), but now the entire bunch of settings dialogs have been overhauled to use this design.
This update applies to both transformer settings and reader/writer settings dialogs too.

Above: The Bufferer transformer is a good example.
Notice that required fields are all highlighted in yellow, to show you where to fill in compulsory values, and that you are also prompted on which type of data to enter (eg "Floating Point Value", "String or Attribute Name", etc).

Above: These dialogs are also capable of being resized, which is something you couldn't do with the old dialogs.
From our point of view, the really nice thing about this upgrade is that we now have a whole lot more options for advanced GUI features (for example greying out one setting based on the value of another) which will eventually lead to a more logical interface. Another benefit is that these dialogs are compatible with Linux operating systems, bringing us one step closer to relealizing a full FME version for Linux.
|
[edit] Applications |
|
[edit] Workbench |
- Split dataset fanout prefix into two different parameters: Fanout directory and Fanout prefix
|
[edit] FME Universal Viewer |
|
[edit] FME Server |
|
[edit] Application Extenders |
AutoDesk
- FDO
- Upgraded FDO_FME libraries to version 3.3
- Added FDO support for AutoCAD Map 2009
|
[edit] Formats |
|
[edit] Vector Formats |
New Vector Formats
- GPX Writer
- Added a new writer for the GPX (GPS Exchange) Format. This complements the existing GPX format reader.
- CityGML
- Added a writer for CityGML format.
Vector Format Updates
- MicroStation Design (DGN/IGDS)
- Tag writing now supported for V8 DGN datasets
- Includes the ability to create tagsets from destination feature type definitions
- Added the keyword APPLY_WORLD_FILE to apply related .wld files when reading a DGN
- Limited support for type 19 elements (solids)
- Support for reading (build 5546) type 19 extrusions and writing (5531) IFMEextrusion geometries.
- Support for writing (5547) IFMEBox geometries.
- Tag writing now supported for V8 DGN datasets
- MapInfo TAB
- MITAB writer now has an optional setting to write more a efficient spatial index. The result is faster spatial queries when using the dataset in MapInfo (~30x faster) but at the cost of a slower translation (~5x slower).
- MITAB reader now supports MapInfo TAB datasets whose attribute information is stored in Access MDB and Excel XLS files
- AutoCAD DWG and AutoCAD Map 3D Object Data
- Added reader support for MPolygon entity, as an aggregate of topological loops. Has autocad_entity value of autocad_mpolygon, and behaves much like autocad_hatch
- Added the keyword APPLY_WORLD_FILE to apply related .wld files
- Added an option to read MText as exploded text entity parts. Each line becomes a separate IFMEText feature, which can be aggregated as required using autocad_entity_handle as an identifier. The keyword is EXPLODE_MTEXT and - for backwards compatibility - the default value is no.
- ESRI Shape
- Support for reading and writing Shape datasets up to 4.29GB in size.
- Support for reading Shape datasets that do not have an index file, or whose index is damaged
- Adobe PDF
- Added ability to write accented Characters
- Added ability to customize the background colour
- Added ability to customize the page size
- Added ability to customize specular/ambient colours (currently we support diffuse only)
- Added ability to merge vertices and generate averaged normals. (for both performance reasons and for Gouraud Shading (http://en.wikipedia.org/wiki/Gouraud_shading))
- ESRI GeoDatabase
- Added geodb_font_size format attribute for reading and writing, to enable better control of annotation sizes.
- Added PERSISTENT_CONNECTION keyword that specifies whether to create a connection to SDE that persists and can be shared by other SDE Readers, Writers, and SDE30QueryFactories. Subsequent connections are approximately 50% faster with this keyword turned on, though at the cost of higher memory usage. This is designed for use in batch processing and FME Server data streaming.
- Added geodb_text_character_width format attribute to represent the ArcGIS parameter called "Character Width".
- Added reading and writing of complex annotation geometries - ie those with non-point geometries such as curves
- Added support for historical markers
- JSON/GeoJSON
- Added feature type fanout functionality
- Added writer support for JSONP
- Added support for GeoJSON features in the JSONQueryFactory and JSONExploder transformer
- Updated to support GeoJSON v1.0 specification
- Oracle
- Allow multiple SQL statements in reader and writer before/after translation fields using a semi-colon delimiter.
- Before/After translation SQL is now edited in a source code dialog
- Microsoft Access Database
- Allow multiple SQL statements in writer before/after translation fields using a semi-colon delimiter.
- Before/After translation SQL is now edited in a source code dialog
- Microsoft Excel Spreadsheet
- Allow multiple SQL statements in writer before/after translation fields using a semi-colon delimiter.
- Before/After translation SQL is now edited in a source code dialog
- Microsoft SQL Server Database
- Allow multiple SQL statements in writer before/after translation fields using a semi-colon delimiter.
- Before/After translation SQL is now edited in a source code dialog
- MySQL Database
- Allow multiple SQL statements in writer before/after translation fields using a semi-colon delimiter.
- Before/After translation SQL is now edited in a source code dialog
- SQLite Database
- Allow multiple SQL statements in writer before/after translation fields using a semi-colon delimiter.
- Before/After translation SQL is now edited in a source code dialog
- ESF (Electronic Submission Format)
- Combined all four BC MOF ESF formats into one reader which will automatically detect the source type
- Updated FSP (Forest Stewardship Plan) reader and writer to version 1.2
- Safe FFS
- Added support for raster features in FFS format. Raster data is written to a corresponding .frs (FME Raster Store) file
- OGC KML
- Add basic support for writing 3D (surface/solid) geometries to polygon faces
|
[edit] Raster Formats |
New Raster Formats
- ArcGIS Image Server
- Added a new reader for ArcGIS Image Server
- ER Mapper ERS
- Added a new reader and writer for ER Mapper ERS format
- Shuttle Radar Topography Mission (SRTM) Height
- Added a new reader for SRTM Height datasets
Raster Format Updates
- General Updates
- FME will now try to predict when a raster writer is likely to create an output too large for the format and/or file system. Raw formats which can be more easily predicted will cause the translation to fail with an error. Compressed formats are less easily predicted and will only cause a warning.
- TIFF/GEOTIFF
- Added the option to create BigTIFF format files - TIFF files that may be greater than 4GB in size. Some applications may not be able to view BigTIFF files (of any size), so this is a user option that must be specifically activated.
- Added support for writing tifftag metadata
- DTED
- Added a "group by filename" option to the reader settings box.
- USGSDEM
- Added a "group by filename" option to the reader settings box.
|
[edit] Functionality |
|
[edit] Core |
- Arc Stroking
- Added a new directive FME_STROKE_MAX_DEVIATION to specify the maximum deviation between arc and chord when stroking arcs. Exposed as a general Workbench setting so that it can be applied to FME internal operations (for example when a destination format doesn't support arcs and the writer must stroke them). For backwards compatibility the default value is zero, which in effect turns off the functionality.
- New Attribute Types
- Added two new types of attribute: FME_Int64 and FME_UInt64.
- FME Server Connections
- Added support for connecting to FME Server via SOAP (applies to Server publish/download wizard and ServerJobSubmitter transformer)
- Measures and 3D
- Added measures support for 3D surface geometries
- Multi-Threading
- Implement multi-threading on various calculations for research and testing purposes
|
[edit] Transformers |
New Transformers
- XMLFeatureMapper
- The XMLFeatureMapper is basically the XML reader wrapped as a transformer. It uses an xfmap to turn XML documents into true FME features, where the XML document was downloaded by one of the HTTP transformers.
- RasterExpressionEvaluator
- The RasterExpressionEvaluator allows per pixel calculations on multiple input features, for example Output = Input1 * Input2. Input features require the same number of rows and columns; i.e. this is simple cell math rather than a spatial calculation.
- RasterCellOriginSetter
- The RasterCellOriginSetter allows a user to set the cell origin. This could be used to ensure that accuracy is not lost when, for example, rasterizing points then coercing them back to vector again.
- XSLT
- Implemented new transformer for XSLT transformation
Transformer Updates
- Clipper
- Now supports non-rectangular raster clipping by directing raster clippees to the RasterClippingFactory
- Added support for the use of raster features as clippers
- ArcStroker
- Added ability to use new arc stroking directive FME_STROKE_MAX_DEVIATION
- Rasterizer
- Split into ImageRasterizer and NumericRasterizer to provide the ability to output different interpretations
- TopologyBuilder
- Now has an option to build topology without first intersecting existing linework (uses new ASSUME_CLEAN_DATA keyword)
- NeighborFinder
- The NeighborFinder now has a Candidates First option to speed up translations (in the same way as the Clipper's "Clippers First" option)
- The NeighborFinder also has an option to add an extra vertex on the Base feature that is closest to the candidate (it used to be stored only as an attribute)
- Orientor
- Output features now have an attribute to indicate if their orientation has been modified. The value will be either "yes" or "no". For aggregates or multi-geometry features, the return value is yes if any one or more of the features or geometries has its orientation modified.
- Generalizer
- The Generalizer is a new transformer that combines the four original generalizer/smoother transformers. This has an extra option to preserve shared boundaries along with a new algorithm.
- Logger
- The Logger has been updated with a setting which lets you specify the feature type to use for features written to the FFS spatial log dataset.
- RasterResampler
- Several efficiency improvements in raster resampling and reprojection (see @ResampleRaster function below)
- SQLExecutor
- Multiple SQL statements are now supported, using a semicolon as a delimiter
- Log each SQL statement (once per transformer, not once per feature)
- Added ability to comment out lines
- Added option to ignore errors in failed SQL
- CaseChanger
- Title case mode now capitalizes the first character of the first word, instead of the first character of the string (which might be a non-alphabetic character such as <space> or <dollar>)
- DEMGenerator
- Added new interpolation type "AUTO" which will pick the best available method for each individual point. Specifically, to avoid NaNs, planar is used if the point is over a surface triangle and constant is used otherwise
- RasterDEMGenerator
- Added new interpolation type "AUTO" which will pick the best available method for each individual point. Specifically, to avoid NaNs, planar is used if the point is over a surface triangle and constant is used otherwise
- SurfaceDraper
- Added new interpolation type "AUTO" which will pick the best available method for each individual point. Specifically, to avoid NaNs, planar is used if the point is over a surface triangle and constant is used otherwise
- Chopper
- Improved chopping algorithm, particularly for area features.
- Sampler
- Added a 'NOT_SAMPLED' output port through which emerge all features not part of the sample set.
- ListSearcher
- Updated the settings dialog to allow selection of the search string as an existing attribute.
- SurfaceModeller
- Added an option to save the surface model to an external file for later use. Overwrite creates the file, Append reads it back (and adds any new features)
- RasterCellCoercer
- Renamed from RasterToPointCoercer
- Added support for converting raster cells into polygon features
- Visualizer
- Now supports proper handling of raster data
- Now permits saving of the intermediate data files it creates - previously it just wrote into a temporary directory
- Added Raster visualization options for subsets and resampling
- GeometryValidator
- In "valid" mode, attributes are added to invalid features to describe why and where they were found invalid
|
[edit] Factories |
New Factories
- RasterEvaluationFactory
- Allows per pixel calculations on multiple input features
- RasterClippingFactory
- Specific factory for clipping rasters. Supports non-rectangular clippers.
- XSLTFactory
- Implemented new factory for XSLT transformation
Factory Updates
- VectorToRasterFactory
- Added option to specify output interpretation, and split the Rasterizer into the ImageRasterizer and NumericRasterizer (PR#14814)
- TopologyFactory
- Added an option ASSUME_CLEAN_DATA which indicates the input is topologically clean and noded properly, and that FME should not intersect it (PR#5207 PR#9403)
- ProximityFactory
- Added Candidates First option. This speeds up translations with a large number of Base features (PR#10469)
- ReferenceFactory
- Added options GEOM_BUILD_LINES and GEOM_AND_ATTR_BUILD_LINES to construct a line geometry from ordered point references (PR#15202)
- RasterToVectorFactory
- Added support for converting raster cells into polygon features
- TransporterFactory
- Added support for raster features
|
[edit] Functions |
New Functions
- @RasterCellOrigin
- A function to allow users to to set the cell origin.
Function Updates
- @Orient
- Add an output attribute that indicates if the orientation of a feature has been modified (PR#10654)
- @ResampleRaster
- Several efficiency improvements in raster resampling and reprojection. The magnitude of improvement may vary from translation to translation, but these operations should be approximately 30-50% faster than in previous builds. Raster reprojection benefits particularly when dealing with multi-band rasters. (PR#14520)
- @Arc
- Added ability to use new arc stroking directive FME_STROKE_MAX_DEVIATION
- @CheckpointRaster
- Switched to use Raster FFS instead of GeoTIFF reader/writer
- @OGCGeometry
- In "valid" mode, attributes are added to invalid features to describe why and where they were found invalid
|
[edit] Coordinate Systems |
- Add new EPSG mapping for the SPHERICAL_MERCATOR system
|
[edit] Scripting |
Tcl
Python
- Added an embedded Python interpreter (v2.5)
- Enhanced initialization of FME_MacroValues
- Added pyfme.macros object


