[GIS] FME-pass the parameter to the reprojector transformer

fme

Let me describe the scenario. I have to make a statistical maps for a bunch of countries.
The FME workbench is going to use ESRI reprojector to reproject the shape of given country to lambert azimuthal equal area and after generate regular grid. Is there any way FME can pick up automatically the values of central meridian, latitute of origin for the country that the map is going to be created ? Could the information about the country center be passed to the reprojector automatically ?
I would like to avoid situation where I have to manually pass the parameters each time the new country is going to be processed.
Thank you in advance
Gregory

Best Answer

If you are not too attached to the ESRI reprojection engine the simplest solution is to use the CsmapReprojector instead. The _AZMEA_ dynamic coordinate system will automatically determine the origin point of each feature and reproject accordingly.

However, Alex Markov is on the right track when he suggests it is possible to use @Reproject to do this using the ESRI engine.

Assuming you have set central_meridian and lat_origin attributes on your features you can pass them to an FMEFunctionCaller transformer that contains this string:

@Reproject(ESRI,"ESRIWKT|GCS_WGS_1984|GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]","ESRIWKT|esri_azmea|PROJCS["esri_azmea",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",@Value(central_meridian)],PARAMETER["Latitude_Of_Origin",@Value(lat_origin)],UNIT["Meter",1.0]]",,Forward,--,NearestNeighbor,PreserveCells)

  • Note the @Value function being used to substitute your origin values into the WKT string that represents the ESRI coordinate system.
  • I generated the @Reproject parameters by creating an EsriReprojector with a specific input coordinate system and custom AZMEA target, then copied the transformer into a text editor to examine the underlying function.
  • If you are not working with WGS84 data you will need to pass different WKT to @Reproject.
Related Question