[GIS] Why does FME Reprojector create coordinate values 0

coordinate systemfme

I'm using the NeighborFinder transformer in FME Desktop 2013, and I need it to use a maximum distance in meters. My input data, however, are points and lines in WGS84, so before sending them into the NeighborFinder, I'm using Reprojector to convert the geometry into FME's dynamic coordinate systems AZMED or AZMEA.

The lines reproject okay. The points, however, all reproject to 0,0. So when the points go to NeighborFinder, they create meaningless output.

Here's a part of the setup before NeighborFinder:

enter image description here

enter image description here

Using Inspection, I can see a point before entering the Reprojector:

enter image description here

And after leaving the Reprojector:

enter image description here

Note the loss of geometry.

I've tried leaving the Source Coordinate System as "Read from Feature", but still no gold.

The Transformer Description for Reprojector gives an example of reprojecting a point to AZMED or AZMEA. And I can't find any indication online that points aren't supported.

I can reproject the points by changing the Destination Coordinate System to the relevant UTM zone (EPSG:32617, UTM Zone 17). But I'd prefer a scalable solution because I have global data to feed into the workbench.

Does anyone know why I can't reproject my points into AZMED or AZMEA?

Best Answer

That is the expected behavior. Each point is getting its own unique coordinate system, where the point is placed at the origin.

In your example, your point has been placed into the coordinate system _AZMED_WGS84_-71.496825_42.8188720 which is a unique system with origin at -71.496825, 42.8188720. As a result, every point ends up at 0,0 (or rather, every point ends up at 0,[some extremely small number which rounds to 0]).

NeighborFinder is not going to work with the _AZMED_ projection on the Reprojector transformer.

Instead, use the CommonLocalReprojector transformer with an AZMED projection type. This will still be a dynamic projection, but using one single projection for the entire dataset. Do not use the Group By setting when feeding these results into NeighborhoodFinder.

Note: CommonLocalReprojector is a blocking transformer, this will affect your performance for large datasets.