Hi FME’ers,
This short post is about what it means when FME doesn’t recognize your coordinate system – and highlights a very little known transformer: the CoordinateSystemDescriptionConverter

This situation is not the same as a dataset without a coordinate system (which would show as “Unknown” in the FME Viewer). Rather the dataset is tagged with a coordinate system, but FME does not recognize its description.

This doesn’t mean FME can’t reproject the data, but that you ought to perhaps check it’s interpretation. The workspace below will help with this.

Coordinate System Descriptions
A description of a coordinate system often isn’t just a name, but also a definition too, and – in the same way that there isn’t a single format for spatial data – there are several specifications for describing a coordinate system.

For example, some of the most common specifications are:

Converting Coordinate System Descriptions
Again, like with spatial data formats, FME has its own internal representation of coordinate systems. This helps handling the mapping of one representation to another during translations.

Normally we do this mapping automatically for you. For example, if you load data from an ESRI Shape dataset into an Oracle database, we automatically convert the ESRI WKT into an Oracle SRID (via the FME equivalent description).

However, sometimes you may want to do this manually and, when you do, the CoordinateSystemDescriptionConverter is the transformer to use.

Example: Scenario
This example – which you can also find on fmepedia – shows one instance (there are others) of when you might want to manually convert a coordinate system description: to check if FME is properly handling an unknown coordinate system.

So, here we have an ESRI dataset with a coordinate system which FME does not recognize. i.e. there is a prj file but FME does not recognize the contents.

Looking inside the PRJ file we can see the definition is this:

PROJCS["PCS_Lambert_Conformal_Conic",
GEOGCS["GCS_North_American_1983",
DATUM["D_North_American_1983",
SPHEROID["GRS_1980",6378137.0,298.257222101]],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]],
PROJECTION["Lambert_Conformal_Conic"],
PARAMETER["False_Easting",6200000.0],
PARAMETER["False_Northing",3000000.0],
PARAMETER["Central_Meridian",-91.86666666666666],
PARAMETER["Standard_Parallel_1",49.0],
PARAMETER["Standard_Parallel_2",77.0],
PARAMETER["Latitude_Of_Origin",63.390675],
UNIT["Meter",1.0]]

To find out what FME thinks the coordinate system represents, let’s use the CoordinateSystemDescriptionConverter transformer in a workspace.

Example: Workspace
This workspace – which I obtained from one of our developers – will tell me what the FME equivalent to this unknown coordinate system is:


Above: The CoordinateSystemDescriptionConverter parameters dialog

– Finally we set the FME representation as the new coordinate system and output the data to the Visualizer.


Above: The FME view of this dataset

So FME defines this as _FME_0, meaning it is not recognized. OK, we knew that, but click the […] icon and you get a full description of the coordinate system:

Above: FME’s definition of this coordinate system

What this gives you is a means to check if FME is interpreting your source data coordinate system correctly or not. If this definition matches what you believe to be correct, then you can be assured that reprojections will be OK, even though the coordinate system is not formally recognized.

Of course, you can make sure the coordinate system is recognized, by adding this definition into FME.

Adding the Unknown Coordinate System to FME
If I want to add this coordinate system to FME, so that it is automatically recognized, then I need first to copy the FME definition into the MyCoordSysDefs.fme file.


Above: The definition copied into the file

Now I need to clean it up by:

I can also make any other changes where I think FME has interpreted the source incorrectly.

Above: The edited definition

Re-run the workspace and the output looks like this:


Above: Hurrah! FME now recognizes my coordinate system

Re removing the ESRI WKT part of the definition, it’s true that this is not required for FME to know how to translate data. However, if I did leave it in then that string would get priority when writing data back out to Shape (using this coordinate system) in the future.

I hope you find this example useful. Here we used the PRJ file from a Shape dataset obtained from Elections Canada (via GeoGratis), but you could do the same with any dataset for which you had a recognized coordinate system description.

The key points are:

About FME Coordinate Systems Coordinates Data Transformation Databases Esri FME Desktop GIS OGC Shapefile

Mark Ireland

Mark, aka iMark, is the FME Evangelist (est. 2004) and has a passion for FME Training. He likes being able to help people understand and use technology in new and interesting ways. One of his other passions is football (aka. Soccer). He likes both technology and soccer so much that he wrote an article about the two together! Who would’ve thought? (Answer: iMark)

Comments

Comments are closed.

Related Posts