Generate Areas/Neighborhoods/Zones from Points

822
4
12-12-2011 02:59 PM
DerekMiller
New Contributor III
Hello all,

I have an interesting analysis task that I cannot solve. I have a collection of points that represent tax lot centroids in six separate areas of interest. My goal is the creation of bounding polygons to use as areas of interest in a map book using data-driven pages. Each area of interest should contain 50 points, resulting in 800 areas of interest.

The issue is that the points are not evenly distributed (spatially). In other words, the bounding polygons cannot be a consistent size. For example, creating a grid (250'/500'/etc.) and conducting a spatial join wouldn't work because one grid cell may have 250 points while another only 5, etc.

So here's the question : Anyone know of a processing tool/script/model that can search through a point feature class and create polygons that contain a desired number of points?

I'm interested to hear your thoughts.

Thanks.
0 Kudos
4 Replies
ChrisSnyder
Regular Contributor III
Not sure how you would pull that off if you wanted rectangular polygons...

Irregular polygons would be pretty easy though.

Some sort of Theisen polygons coupled with a recursive select by location?
0 Kudos
KimOllivier
Occasional Contributor III
Maybe try IDW Inverse Distance Weighting in Geostatistical Analysis, 3D Analyst or Spatial Analyst

You can set the max and min neighbours to get a circle of influence which could be turned into an index.
0 Kudos
DerekMiller
New Contributor III
Both of these solutions sound plausible. I've been leaning towards a looping select by location with a resulting field calculation using a python script. I'll have to look into these options as well. Thank you both.
0 Kudos
ChrisSnyder
Regular Contributor III
If you are interested: A quick way in Python to get a list (and thus counts) of selected feature OIDs in a feature layer where the feature layer contains some selected records:

#in this case, "roads" is the name of a feature layer that has selected records (selected by the SelectByLocation tool)
#works "pretty" fast - v10.0 is much faster than v9.3
fidSetList = [int(fid) for fid in arcpy.Describe("roads").fidSet.split(";")]
0 Kudos