Question

Generating IMDF Georeferencing Parameters


I am working on exporting our facility GIS floorplan data to IMDF format. I have been following along with all the tutorials, sample data, and workbenches for Victoria (which is all awesome, thanks)! But I can't figure out how to obtain the scale, rotation, and translation parameters for the georeferencing steps (here). Apple had previously helped us convert old CAD data to IMDF and gave us the GeoJSON they created. Our data is shifted from their data by between 1-2 meters across the facility. It doesn't seem to be a translation alone, but more of an affine transform. I am able to correctly adjust our facility to the data Apple provided in ArcMap using the Spatial Adjust tool, but I can't seem to figure out how to get the scale, translation, and rotation parameters to feed into the IMDF workflow. I don't want to have to maintain a shifted version of my GIS data in our database and using the inline transformer from the IMDF workbench seems a better solution. I'm going down a bit of a rabbit hole with trying to solve for the affine parameters using least squares, but I don't seem to be getting the same results that ArcMap is reporting. Any help would be appreciated! @lizsanderson, halp!


2 replies

Userlevel 2
Badge +17

Hi @jondandois,

If you have both the original and adjusted version of your data, note the location of several (4-5) reference points in both copies, then add these locations to a CSV file (ie, x0,y0,x1,y1).

Create a new workspace to read the CSV, and use a couple of VertexCreators to create lines from x0,y0 to x1,y1.

Add the FME Hub transformer 3DAffineWarper, then connect the second VertexCreator output to the Control port. Connect the Parameters port to a CSV writer to write the calculated affine . parameters to a new file.

That worked like a charm, thanks @daveatsafe. I chained two VertexCreators, the first with x0,y0, the second with x1,y1 which created the necessary line vectors. I passed this into 3DAffineWarper and then applied the resulting parameters to the floorplan data using the Affiner transformer and it looks great! Thanks so much for your help!

Reply