How can one use the displacement link table created for use in the interactive Spatial Adjustment toolbar with the Rubbersheet Features geoprocessing tool?

The toolbar method uses a text file of displacement links, following pattern of ID Source X Y Destination X Y:

1   905653.9545 728436.4238 905130.0745 727809.7597 
2   914841.5615 724105.0236 914777.3853 723706.6229 
3   865711.6414 722514.3278 865431.546  722264.887  

The gp tool can only use a line feature class for the displacement links.

Line displacement link screenshot

We have the input text table already. It was very expensive to create involving many hours by several people to generate some 3500 displacement links, so there's a strong incentive to leverage it!

  • Mat, you have two options here either use the spatial adjustment toolbar or create a two point line feature class... which one would you prefer? I have done both and the two point lines works best - spatial adjustment can run out of memory with a lot of links or features to move. Do you have access to FME Workbench? When I did this years ago the FME rubber sheeter worked much better than Esri. – Michael Stimson Sep 3 '15 at 21:48
  • Maybe I misunderstood Q, but you can create 2 points classes, merge them and use points to line using objectid as line id – FelixIP Sep 4 '15 at 1:44
  • @FelixIP, I wrote a python script when I did this with a similar table.. I hunted around for the code but I seem to have misplaced it (it was 9.2 GP) perhaps on one of my backups.. again the displacement links were very expensive to create, commissioned by a previous manager and the current manager had no idea what to do with them - but didn't want to be seen doing nothing with a million dollar project. The links were applied to many feature classes individually and some complex ones were subsetted for performance reasons; not many needed to be diced due to crashing but it did happen. – Michael Stimson Sep 4 '15 at 4:52
  • 1
    @MichaelMiles-Stimson like with many tools there is a good chance that rubbersheet tool will accept list of geometries as input. It means there is no need to physically create polyline features. One can do it on the go using table available – FelixIP Sep 4 '15 at 6:35
  • 1
    @MichaelMiles-Stimson I want to use the geoprocessing tool, both for easier automation, and so we can use 64bit background processing (and thereby hopefully sidestep the out of memory problems). We need to avoid FME because the solution is to be shared with a variety of organizations who don't have access to it. – matt wilkie Sep 4 '15 at 17:42

Always work from a copy. Both Spatial Adjustment and Rubbersheet tools modify data in place.

Clean identity links text file

The interactive Spatial Adjustments tool saves links as fixed width text, using multiple delimiters (tabs) where needed to line things up. The XYToLine tool doesn't understand these, so pre-process input link files to remove extra delimiters:

Convert text to Displacement and Identity links

Both displacement links and identity links are saved in the same file. There is no marker to set the types apart; the identity links merely have the same coordinates for source and destination. (This likely accounts for the lengthy pause when loading the links table interactively. ArcMap needs to scan for and separate the identity links.)

  • Create displacement vectors from text file with XYToLine
  • Make a Feature Layer or selected set from 0 length lines
  • Copy the selected identity links to a new feature class, then create XY Event point layer from it, (Extra step necessary because XY Event ignores the selected set from the feature layer.), then save to "Identity Links" feature class
  • Invert the selection, then save to "Displacement Links" feature class
  • Delete the intermediate feature class

Geoprocessing Model

The model is tested and works, but the exported script fails on assigning the spatial reference. It should still be good for study material.

Geoprocessing model diagram

Apply Rubbersheet tool

Not much to say here, provided no mistakes in above the tool will just work. Make sure interpolation method is set to match Spatial Adjustment tool. We used Natural Neighbour.

The tool is under "Editing Tools >> Conflation", Advanced license required.

Validate results

Compare the Rubbersheet geoprocessing tool results with the Spatial Adjustment tool results and verify it makes sense with your data. In our tests the two do not produce identical results. They're very close, 94%, but not identical.

In our data the differences have only been observed on outer edges. This is also where our identity links lie. Figuring out if the variance is about different identity calculation approaches or edge of data is left as an exercise for a future endeavour, though I lean to edge of data. There is less than 0.15m variance along borders with identity links, and up to 3m elsewhere.

Map depicting tool results and variance locations
hi-res version

2017-07-05: Bug Confirmation

Esri has confirmed there is a bug up to and including ArcGIS Desktop 10.5:

BUG-000105702 - Rubbersheet Features tool does not produce the same output as the Rubbersheet Method from the Spatial Adjustment toolbar when using the same displacement links.

The bug is specific to the Rubbersheet method ... but they are also seeing differences with the projective method. ... found that when using the rubbersheet method the vertices appear to vary when they are outside of an imaginary bounding box around the displacement links. Therefore, one potential workaround would be to add more displacement points so that all of the vertices are inside that imaginary bounding polygon.

When asked which method is most correct they responded "the Spatial Adjustment Toolbar". I'm cautious about accepting the statement wholesale because previous experience with vertex coordinate drift was because the graphical interface (ArcMap) took math shortcuts for performance improvements during interactive edit sessions. (It used the single precision of the data frame rather than that of the dataset.) Admittedly that was a long time ago, circa 2004. Either way, the proof will in the testing and results. ;-)

  • I like that answer, it's very detailed and informative, but I can't find that tool in ArcGis Desktop - is that ArcGis Pro? When I'm given the choice between linear and natural_neighbor in a geoprocessing tool I find linear is quicker but not as good; I always use natural_neighbor first and if it fails or is taking far too long then try linear.. – Michael Stimson Sep 8 '15 at 22:03
  • Thanks @Michael! I'm using ArcGIS Desktop 10.3.1 and the tool is in "Editing Tools >> Conflation", i.imgur.com/gDRCNpk.png. Advanced license required. (Avoiding Pro until they offer a permanent non-expiring license, same as Desktop) – matt wilkie Sep 8 '15 at 22:15
  • Ah, I'm on 10.1... I have to stay with the minimum version as all the addins I compile are forward compatible but not backward. I am hoping by the end of the year that I can upgrade to 10.3. I'm somewhat interested in ArcGis Pro but it would be good if it could tie in with the existing (floating) licenses - perhaps Pro v2 might, if enough users ask for it. Sometimes I'm advanced, mostly I'm standard and occasionally I have to go to basic, usually just to test that tools will still work with a basic license. – Michael Stimson Sep 8 '15 at 22:44
  • 1
    As I recall the Conflation tools were introduced at 10.2 @Michael – matt wilkie Sep 8 '15 at 23:00

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.