[GIS] Keep nonintersecting polygons during clip

arcgis-10.0arcgis-desktoparcpyintersection

I am using ArcMap 10. I have two datasets, one of which consists of many small contiguous polygons, and one which has many small non-contiguous polygons. The first dataset is census blocks, and the second is a polygon outline of urban areas generated from the raster datasets NLCD provides. What I want to do is clip each census block such that each census block polygon only contains the urban area specified by the NLCD polygon. Running clip with the census blocks as the input features gives me this. However, there are additional constraints: If the area of the intersection between a census block and the NLCD polygon is under a certain threshold (say, 1000 sq ft), then the entire census block should be kept in the output.

In this example, the green polygon is the NLCD data, and the red outlines are the census blocks. You can see the resulting clip.

http://i.imgur.com/ASYrc.png
http://i.imgur.com/OBDkr.png

The issue comes when there is no intersection between the census block and the NLCD polygon; nothing is kept in the output for that census block.

I need to do this for a large amount of data, probably in arcpy. What strategy would you suggest?

Best Answer

I would approach this by first using the Union tool.

The output from that will have attributes that enable you to distinguish three sets of polygons i.e. those where the two input feature classes overlap, and those where one or other exists but do not overlap with the other.

From this foundation you can start to apply your other rules - perhaps using a combination of Select, Dissolve and Append/Merge.

Once you have your procedure it should be amenable to turning into a model or Python script.