FME Version
Introduction
Data that makes reference to an Esri-defined coordinate system can be readily ingested into FME. FME will attempt to map the Esri coordinate system definition parameters to the parameters of one of FME’s existing CS-MAP derived coordinate systems. This process typically runs smoothly without requiring the user to make any manual adjustments or additions to coordinate system definitions.
Occasionally, however, parameters are not precisely mapped between Esri and FME coordinate system definitions. These situations are where users may see coordinate system-related FME warnings or errors in translation logs. Sometimes these log messages involve mismatched coordinate system definition parameters; one-to-many relationships between FME and Esri coordinate systems; or even a lack of the corresponding coordinate system in FME for a given Esri coordinate system. These are just a few of the potential issues possible when moving from an Esri to FME coordinate system, or the reverse. This article examines some commonly asked questions on Esri coordinate systems, and specifically how these are handled by FME.
FAQ
How are Esri coordinate systems defined?
Esri coordinate system definitions are derived from the EPSG (European Petroleum Survey Group) model, where coordinate system information is stored in a comprehensive database. Each coordinate system is assigned an Esri-specific name, with the EPSG code included as an Authority parameter where applicable. Esri provides an export option within their product environments (ArcCatalog, ArcGIS Pro, ArcMap, etc) where users may obtain detailed coordinate system definitions in the form of Well-Known Text, and saved as .prj files. Please see this Esri Community post for more information on creating .prj files.
Within the Esri Well-Known Text is a unique identifier for the coordinate system called the Well-Known ID (WKID). This WKID may be an EPSG number if the coordinate system’s definition is based on EPSG specifications, or it may be an Esri-assigned number if the coordinate system’s definition is not tied to an EPSG specification. For more information, please see this Esri article.
PRJ file contents are generated by exporting a coordinate system definition from Esri’s ArcCatalog 10.8.1. This coordinate system is based on EPSG specifications and so has an EPSG number as its WKID.
Note: the Esri WKT definition and the OGC WKT definition of a coordinate system are not identical, and so should not be used interchangeably.
How are FME coordinate systems defined?
CS-MAP was the first reprojection engine added to FME, and FME’s native coordinate system infrastructure remains closely tied to the CS-MAP library of defined coordinate systems. CS-MAP was originally developed by Autodesk, and is currently a part of the OSGeo MetaCRS project. More information on the CS-MAP library is available in the CS-MAP User’s Guide.
FME coordinate system definitions which ship with FME Form (Desktop) can be viewed by first accessing the Coordinate System Gallery within FME Workbench (Tools → Browse Coordinate Systems). Next, select a coordinate system of interest therein, and then click on the Properties button at bottom right of the Coordinate System Gallery dialog.
Accessing the properties of a coordinate system in FME's Coordinate System Gallery
In the Coordinate System Properties window that opens, several sections are displayed which together provide a full definition of the selected coordinate system. This definition is shown in CS-MAP text, OGC WKT, and Esri WKT (when known).
Properties of a coordinate system from the FME Coordinate System Gallery
Custom FME coordinate system definitions are saved as .fme files stored at the following system location (Windows path):
C:\Users\<username>\Documents\FME\CoordinateSystems
Contents of a .fme custom coordinate system definition file
How are FME and Esri coordinate system definitions related to one another?
Both FME and Esri coordinate system definitions can make use of EPSG codes as well as WKT definitions. So relating an Esri coordinate system to a corresponding FME coordinate system (or vice versa) is fairly straightforward, so long as the WKT definition and / or EPSG code used is known by the FME and Esri projection engines.
In fact, the Esri WKT contained within a .prj file may be used to create a custom FME coordinate system definition (.fme file) in situations where the Esri coordinate system of interest does not appear to have a corresponding FME coordinate system. Please see the Using the Online Tool section of our About Custom Coordinate Systems documentation for more information.
How can I make sure my Esri coordinate system(s) are usable in FME?
The overwhelming majority of Esri coordinate systems already have an FME equivalent mapped out; most of the time, the coordinate conversion from Esri to FME and back can be performed without a hitch. However, for instances where FME does not already “know” a source or destination Esri coordinate system of interest, a custom FME coordinate system can be generated from the Esri WKT definition of the coordinate system of interest, using our online tool. Once the .fme file for the custom coordinate system is generated, it can be placed at the following system location, thereby making the coordinate system "known" to FME:
C:\Users\<username>\Documents\FME\CoordinateSystems\
If an Exception_<value>.db file is also generated, place this file at the following location:
C:\Users\<username>\Documents\FME\CoordinateSystemExceptions\
Will the following scenario work?
- the Coordinate System parameter of the FME reader object and FME writer object are both set to Read From Source;
- the source and destination coordinate systems are set to different Esri custom coordinate systems from within the EsriReprojector transformer; and
- no corresponding Esri WKT (well-known text) mappings or equivalent FME custom coordinate system(s) are defined
Yes, the above scenario will function as expected in most cases. The caveat here lay in those very rare cases where FME will pass an incorrect source or destination coordinate system in for the Esri custom coordinate systems, one which the user did not intend. This is a serious issue.
There is also a less rare occurrence where the translation will simply fail. To better avoid such translation failures, it is recommended that users produce an FME custom coordinate system that maps to the source Esri WKT coordinate system definition using our online tool as described above.
Are Esri predefined (out-of-the-box) coordinate systems and Esri custom coordinate systems handled by FME in the same way?
Esri predefined and custom coordinate systems are handled similarly by FME; however, predefined coordinate systems are more likely to have exceptions in FME's esriwkt.db file. The presence or absence of exceptions can influence the occurrence of the rare cases mentioned above. For more information on FME’s coordinate system exceptions, please refer to this article.
What happens in scenarios where there is a one-to-many relationship between FME and Esri coordinate systems? How are these mapped?
As an example, if two different Esri WKT coordinate system definitions are converted by FME to the same CS-MAP coordinate system definition, these can no longer both be correctly converted back to their original, independent Esri WKT coordinate systems. Therefore, downstream processes which depend on correctly re-identifying these separate Esri coordinate systems will not produce correct results.
What happens in scenarios where FME cannot convert an Esri WKT coordinate system to a CS-MAP coordinate system?
If an Esri WKT coordinate system definition cannot be converted to a CS-MAP coordinate system, the translation will fail. In these situations, users would be encouraged to obtain the Esri WKT of their coordinate system of interest as a .prj file, and then create an FME custom coordinate system from the Esri WKT using our online tool. Please see this Esri Community post for instructions on how to generate a .prj file for an Esri coordinate system of interest.
How does the EsriReprojector transformer work?
The EsriReprojector makes use of the Esri projection engine and Esri coordinate system definitions to reproject features from one coordinate system to another. Contrast this to the Reprojector transformer, which makes use of the FME reprojection engine and FME coordinate system definitions. If the use case is to reproject a dataset from one Esri coordinate system to another Esri coordinate system, then the EsriReprojector transformer is the most appropriate tool for the job.
FME provides a Reprojection Engine workspace parameter, where users may specify either FME or Esri as their preferred reprojection engine. How does the EsriReprojector transformer interact with this workspace parameter?
The actions of the EsriReprojector will override the Reprojection Engine workspace parameter. This is desired, as the EsriReprojector allows the user to specify a desired intermediary geographic transformation. Geographic transformations are required when shifting from one datum to another to maintain coordinate accuracy during reprojection. In order to have FME respect the chosen geographic transformation, the EsriReprojector must override the Reprojection Engine parameter.
The selection made for the Reprojection Engine parameter is respected by the implicit reprojections of FME readers and writers, as well as the Reprojector transformer. If a datum shift is involved, FME will select a "best-guess" geographic transformation when the EsriReprojector is not used.
In general, it is recommended to make use of the EsriReprojector rather than the Reprojection Engine parameter set to Esri, should users want to make use of the Esri projection engine.
The following coordinate system messages show up in a translation log. They look different but seem to be referencing the same coordinate system. What do these mean for this translation?
>`ESRI_LLWGS84_end' has value GEOGCS[GCS_WGS_1984,DATUM[D_WGS_1984,SPHEROID[WGS_1984,6378137.0,298.257223563]],PRIMEM[Greenwich,0.0],UNIT[Degree,0.0174532925199433]] >`ESRI_LLWGS84_start' has value GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.25<br>7223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
These messages show the values of cached Esri WKT coordinate system definitions. The slight differences between them are at the core of the rare problems mentioned above. Once an Esri WKT -> CS-MAP conversion has been done within a given translation, all future conversions from that CS-MAP system to Esri WKT will use the cached ESRI WKT, even preferentially over the definitions contained in the esriwkt.db exceptions file. This use of a cached ESRI WKT definition may (rarely) result in behavior and output changes that cause translation errors and / or incorrect coordinate system conversions.
The following Warning shows up in a translation log. What does this mean?
<br>2010-12-08 23:18:15| 3.0| 1.9|WARN |Reprojector: Specified<br>geotransformation `' (forward) may be inappropriate for reprojection from<br>`LL-WGS84' (GCS: `GCS_WGS_1984') to `UTM83-10' (GCS:<br>`GCS_North_American_1983') using the ESRI reprojection engine
This is a legitimate warning about a reprojection between two coordinate systems that use different underlying datums. The warning indicates that a geographic transformation has not been chosen, and so the resulting reprojection may be incorrect. In general, when a reprojection involves a shift from one datum to another, an intermediary geographic transformation must be specified to maintain the accuracy of resultant coordinates.
Additional Resources
How FME Identifies Coordinate Systems
Working with Coordinate Systems in FME
Reading Esri WKT Coordinate Systems Can Result in Prefixed / Suffixed Coordinate System Names
Reprojecting Data
Comments
0 comments
Please sign in to leave a comment.