Updated – 8/18/2014
Fixed a bug with the Overflow parameter
Download the Custom Grid Toolbox – works with ArcGIS 10.1+
(contains 5 tools, 4 to make quarter and quarter quarter section grids with labels and 1 to make a custom grid)
This YouTube video is out-of-date, but still gives a good idea on how the tool works.
I was tasked with creating a quarter quarter section grid for a few Nebraska counties because the BLM didn’t have one available. They did have a section grid though. So, basically, I had to split each section grid into 16 parts and also add an attribute that will be used as a label for each quarter quarter section grid. Also, I know this isn’t a substitute for an actual survey grade quarter quarter section grid, but sometimes you’re required to work with what you have. And in this case, the quarter quarter section grid will be used by an electric utility to name their equipment and customers, so they actually prefer the sections to be split equally. It all depends on what you need.
I needed to create quarter quarter sections for about 3000 sections in Nebraska, so doing it manually was out of the question. Using Python was the only reasonable solution.
To do this, I created a search cursor on the Nebraska section grid which looped through each individual polygon and used its Shape geometry field to record the coordinates of each vertex in the polygon. At the same time, it also recorded the coordinates of each corner for the extent of the polygon.
After finding the coordinates of each vertex, I then found the distance of each vertex from each corner of the extent of the polygon. This allowed me to find which vertex corresponded to which corner. A little math was then performed to determine the coordinates of each quarter quarter section along the outside of the section grid, as show below.
Next, I created a Polyline geometry object and had it connect each point to the one directly across from it. An insert cursor was then used to insert each Polyline object into a new polyline feature class.
I then manually used the Split Polygons tool inside ArcMap in the Advanced Editing toolbar to split each section based on the polylines previously created. It was necessary to use a Cluster Tolerance of about 30 feet, but this will vary based on the grid used. This is because if the polygon had more than just one vertex at each corner, there could possibly be a gap between the end of the created polylines and the polygon border. After applying the Cluster Tolerance, I was left with exactly what I needed, but I still wasn’t done.
I also needed to attribute each quarter quarter section a specific number to be used as a label. The good news is that the numbers are the same for each section.
While thinking of how to do this, I realized I already had what I needed to create it. I just needed to do a little more math in order to find the centroid of each quarter quarter section. This script was similar to the first one. I used a search cursor to loop through each polygon and read the Shape geometry field to find the coordinates of each corner. From there I was able to find the centroid coordinates of each quarter quarter section, so I knew where each centroid was located within the polygon. This allowed me to record which label was linked to which quarter quarter section as shown above.
As I found the centroid for each quarter quarter section, I created a Point geometry object for each one. I then used an insert cursor to insert each Point object along with its appropriate label attribute into a new point feature class.
Finally, I added the newly created point feature class and the previously created quarter quarter section grid to ArcMap and performed a spatial join. This outputted a new quarter quarter section grid with the appropriate label joined to it.
I decided to go ahead and get rid of the hardcoding and make these scripts available through an ArcGIS Toolbox, so other people can utilize them. I also made two similar scripts for creating quarter section grids and labels. If you didn’t notice, the Toolbox is available for download at the top of this page.
I hope someone finds these scripts useful. If there are any questions or problems, please leave a comment and I’ll try to help.