I am working on a (generic) FME Workbench that clips and exports data from ArcSDE database into the File Geodatabase (FGDB) format.

The SDE features are clipped using an AOI, that arrives in the workbench in the form of an ESRI JSON parameter. The ESRI JSON string / AOI is converted into a FME geometry using a ‘GeometryReplacer’. So far, so good.

AOI = {"rings" :[[[131064.8258, 451340.5549], [131064.8258, 454729.4129], [135194.9964, 454729.4129], [135194.9964, 451340.5549], [131064.8258, 451340.5549]]],"spatialReference" :{"wkid" : 28992}}

The first thing I notice is that after interpreting the AOI as a FME geometry some floating point differences occur. Which are not really a reason for concern at this point.:

Figure 1 - AOI coordinates after interpreting the geometry.

The next step is to clip features from ArcSDE using the AOI. Actually I am also interested in the features outside the project area that are intersecting the AOI, since the original shape of the features will be restored in another process.

Figure 2 - Result of the clipping process.

In Figure 2 above, the results of the clipping process is presented. So far, so good. On the ‘clipping line’ new coordinates are added which get known values from the AOI. (xmax 135194.9964).

During the next step, the features are written to separate FGDB’s (exportinside.fgdb and exportoutside.fgdb) (based on an XML template extracted from SDE), with the exact same precision and domain settings etc.

Figure 3 - Feature 'outside' as stored in FGDB.

Figure 4 - Feature 'inside' as stored in FGDB.

In the above figures the features are extracted from the FGDB’s. As you can see the coordinates are changed to 135194.997000000137 and 135194.99639999886. I do understand that the coordinates can be changed while writing them to FGDB, due to the precision and domain values. What I do not understand is that the same coordinate is stored different for both features.

The (received) AOI clipper is not necessarily on the same scale and precision as the clippees / features that are extracted from the ArcSDE. In most cases the AOI will origin from ESRI Workflowmanager, but actually the workbench should be able to support any ESRI JSON polygon as AOI.

Improvements that I already made: •Use XML template for both FGDB’s (based on origin SDE). • Experimented with preprocessing the AOI by using the CoordinateRounder, ArcSDEGridSnapper and AnchoredSnapper.

I really need to have full control over the coordinates after clipping and exporting. The coordinates of the new vertexes that are introduced because of the clipping need to be (stored) exactly the same for both the exportinside.fgdb and exportoutside.fgdb. Also I need to be able to ‘gridsnap’ the AOI before clipping, so that I can predict what the coordinates will be. Because of the slight changes I am not able to use the data in the next steps, e.g. within spatial filters.

I don’t understand why I am not able to fix this by using the ArcSDEGridSnapper to ‘project’ the AOI and the XML templates control the FGDB’s.

Figure 5 - ArcSDE and FGDB settings.

Figure 6 - ArcSDE Domain, Resolution and Tolerance

Figure 7 - ArcSDEGridSnapper settings

enter image description here

  • In the interest of readability, would you mind editing your post so that the separate figures appear in the text rather than one giant image at the end? There is also a huge unnecessary blank space at the bottom of your figure. Having said that, have you looked at the CoordinateRounder transformer? – Fezter Nov 17 '15 at 1:00
  • I have removed the unnecassary empty space at the end of my post. I have experimented with the coordinaterounder. I was able to reduce some of the effects. However, the main issue is that the same coordinate leads to a different interpretation for both FGDB writers. – user62413 Nov 17 '15 at 9:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.