The Safe Software Blog
Mark Ireland


Get the Blog Newsletter

Delivered by FeedBurner

About FME    |   June 2, 2011   |   By Mark Ireland

FME2011 Use Case: Coordinate Swapping

Hi FME’ers,
Here’s a short and sweet post about a new transformer in FME2011: the CoordinateSwapper

The CoordinateSwapper transformer does as you’d imagine and swaps coordinates from one axis to another; for example X becomes Y and Y becomes X. I can see three potential uses for such a transformer.

Lat/Long Swapping
You’re probably aware of the controversy about coordinate order in spatial data; should it be lat-long (Y/X) or long-lat (X/Y)? I think it’s generally accepted that long-lat (X/Y) is the preferred option, but you might still find some datasets where this is reversed.

This is the reason why this transformer was created. It was intended as a way to allow users to quickly and easily switch their lat-long data to long-lat (or vice versa if they preferred).

Very simply you just place the transformer and specify an X <-> Y swap….

…which will have this effect:


The nice thing about this transformer is that it also includes the ability to swap the X or Y coordinate with the Z value. That way you can create cross-sections of data very easily.

Check out this workspace (click to enlarge):

The source data is a transit line that I would like a cross section of. The data prep consists of providing Z values by draping the transit line over a DEM. The only transformer of real interest there is the Scaler, where I am scaling the Z values to give a better display of elevation change in the output.

There are two CoordinateSwapper transformers. Firstly I swap X and Y, because the line runs North to South and I wish to see it run from Left to Right on the output.

Then I swap Y and Z to turn it into a cross-section. The output looks like this:

Not visually stunning, but not bad for a couple of minutes work. It clearly shows how the line increases in elevation – at a very much exaggerated scale – as it heads north out of the city. It wouldn’t be too much work to plot stations on there as well (I just don’t have that data).

I suppose if I had rider numbers I could attach them as a Z value (instead of elevation) and see where ridership spikes occur.

For another example, check out the CoordinateSwapper page on fmepedia, where I swap coordinates on a 3d model of the Gavle Goat to get a view in different perspectives:

No reason why you couldn’t do the same with a more realistic CAD or BIM 3D model!

Data QA
But what might be the most useful function of this transformer is as a tool for data QA.

For example, it’s very hard to tell from a 2D view if a feature is missing Z values or has a wildly incorrect Z value:

But with the CoordinateSwapper transformer, you can swap in the Z values for X or Y, and get a much clearer view of where there are problems:

As you can see, it’s a very powerful tool for locating spikes in Z values.

I hope this short post will be of use – and don’t forget to check out the What’s Great page on fmepedia for a full list of the new transformers in FME2011.


Webinar: How to Create GIS and BIM Interoperability
May 6 - Discover how to solve the most common problems with BIM and GIS integration. See how to easily move data between IFC, Autodesk Revit, SketchUp 2015, Esri ArcGIS, AutoCAD, and more. You?ll also learn how to use automated techniques to get simplified BIM geometries into GIS, combine attribute or tabular data with existing models, perform space extraction, QC data, and much more.