2

I have what should be a simple problem: erase a large multipart polygon layer from a larger polygon (see below for example). However, I believe the Arc Erase tool is trying to erase each part of the multipart from the larger polygon. I'm currently pushing 24 hours processing with ample storage and 12gb ram...

I have tested the Erase vs. Dissolve --> Erase workflow on a smaller dataset, and Erase runs substantially faster with the single dissolved polygon (~2 minutes for Erase with multipart, ~1 second with single feature in test dataset). Unfortunately, Dissolve also takes around 2 minutes with the same dataset.

So, is there an alternative to Dissolve that will return the outer extent of my feature class? I can not simplify the boundary with a convex hull or minimum bounding extent, I just need the feature mask. I'm open to python options as well.

feature class sample for test case. Must erase inner blue features from green polygon.

UPDATE: Unfortunately, none of the provided answers gave me any great improvement in processing. I ended up buffering the inner dataset by 1 cm (smallest integer value available in Arc Buffer tool, and difference between inner and outer layers is ~150m) and erasing with that single polygon dataset.

  • Have you tried just a select by attributes and then delete the selected features (blue multipart)? – MapinTX Dec 20 '17 at 22:29
  • 1
    I'd try union, and delete features with fid =-1 for small layer. – FelixIP Dec 20 '17 at 22:56
  • One option is: Make copy of blue layer; Edit the copy> select all features > click the editor drop-down menu > select merge. This will merge all the polygons into on continuous polygon (same result as dissolve). Then you can use the merged polygon to erase the other layer. Make sure you make a copy because this modifies the input data. – jbalk Dec 21 '17 at 4:07
  • Have you tried running your workflow in ArcGIS Pro? I have found where ArcMap falls over Pro can happily process it. – Hornbydd Dec 21 '17 at 12:05
1

An alternative to dissolve is to create lines, keep the outer boundaries and then build polygon from the outer boundaries. This will also take some time, but it should be a little bit faster than dissolve because you don't merge all the small polygons.

In practice, you can identify the outer boundaries based on the -1 attribute after running "Polygon to line" (not feature to line).

0

Another alternative, probably faster (if you use the latest gdal tool) but leading to degraded boundaries, is to convert your polygons to raster with a single attribute value, and the back to polygon.

0

Perhaps Explode the multi part first then Erase. That would allow spatial indexing to speed the process up.

0

I know it is way past but one thing I do notice if you turn off the layer, it makes a difference.

I have had run into problems when I leave the layer on and running with a very large data and it prevents me, so I turn the layer off and it runs smoothly.

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.