3

DATA: I have two polygon datasets that have no attributes in common other than location, so must be joined using a spatial join. One dataset is polygons of cadastral parcels (i.e. properties) and the other of hunting districts. Every part of the country is officially assigned to a hunting district, so both datasets completely cover the same area.

DESIRED OUTPUT: Each cadastral parcel should have all of the hunting districts responsible for it listed. This relationship is clearly one-to-many (i.e. one cadastral parcel to many hunting districts) -- most parcels belong to only one hunting district, but larger parcels often belong to 2+.

PROBLEM: The problem is that the boundaries between the datasets don't match completely (i.e. the hunting dataset boundaries were slightly simplified at some point) and often overlap most neighboring cadastral parcels ever so slightly, rendering a spatial join based on "INTERSECT" useless. The "HAVE CENTER IN" works perfectly for all parcels that belong to only one hunting area, which is the majority, but produces false results for parcels belonging to more than one hunting area.

This whole analysis would be easier to do in any number of other spatial databases with SQL, but I am unfortunately limited to ArcGIS for this task.

QUESTIONS: The only thing I can think of is to try a negative search radius. One can set a negative search radius for "INTERSECT" and "WITHIN A DISTANCE", but I am uncertain as to how these two queries differ in ArcGIS when giving a negative search distance. Do they not then become synonymous?

11
  • 2
    My approach to this would be to do a polygon overlay operation like Union followed by some ArcPy cursor processing to flatten the multiple districts per parcel into perhaps a comma separated list.
    – PolyGeo
    Commented Aug 2, 2016 at 10:29
  • I changed it to one question. Sorry for the newbie mistake. I assumed that they all fell under the same question of of what Parameters can be set under spatial join.
    – h.Augustin
    Commented Aug 2, 2016 at 10:30
  • What about Buffering the Parcels a negative distance, inward. Then using that result for the Spatial Join to Hunting boundaries.
    – klewis
    Commented Aug 2, 2016 at 12:34
  • If the problem really is just the simplifying, you might try: 1 to use the Integrate or Snap tools to get them to match, or 2 use klewis's suggestion or the scale tool to "avoid" the overlaps, or 3 use PolyGeo's suggested overlay but with a large enough tolerance to get rid of the tangle. After 1 or 2 use a spatial join one to one but in the dialog box field map properties for hunting districts set a merge rule and delimiter. After 3 you might try a pivot table or group by of the results and join back to your original layer.
    – John
    Commented Aug 2, 2016 at 13:37
  • 2
    The Buffer tool is about 10 times faster than setting a negative search radius for the Spatial Join tool, so do the negative buffer of the hunting districts. So there is a radical difference in the optimization of the two tools when using a negative buffer. If you use the one-to-one with the Join merge rule and a delimiter be sure to make the field you are joining a text field and increase the length to 255 (or at least big enough to hold the longest list of districts). Commented Aug 2, 2016 at 14:08

0