How to get dynamic county information into mapbook?
I have access to ArcMap 10.0 (ArcInfo/Workstation) on Windows 7 SP1.
My usual scenario is to produce a map book having 3 shapes:
1 polyline (a road track about 200-300 km without any useful attribute data)
1 polygon (boundaries with all the county data like county names, numbers etc. in the attribute table)
1 polygon (road track based Strip Map Index Feature (SMIF) to get the DDP running with attributes generated by ArcMap)
All works fine and ArcMap produces around 130-150 ISO A4-PDF pages per map book at a given scale.
But how to get the county names fieldbased on each single page without some manual action?
I know that ArcMap only uses the SMIF-Layer with fixed attribute data as a valid source for DDP, so no Joins/Relates to the attribute table are allowed. And adding new fields manually to SMIF table and filling them actually works, I did that last time, but, you know, it stinks somehow.
So, how to get the attributes from boundaries.shp into SMIF.shp to provide dynamic data for each page in DDP?
I finally figuerd it out. It may seem a little awkward since it is no arcpy solution, but it worked for me.
Create the regular trackbased SIMPLE_SMIF.shp
Run INTERSECT from toolbox with SIMPLE_SMIF.shp county.shp as input layers. Note that the rank (which of these layers is put above the other) in the dialogue window will influence the result. I placed SIMPLE_SMIF.shp above county.shp. The result layer is INTER_SMIF.shp with all the required county data 'stamped' in it, but it is cracked in far too many pieces, so...
Run DISSOLVE from toolbox with INTER_SMIF.shp as input having the "wanted" fields 'PageNumber', 'CountyInfo1', 'CountyInfo2' as dissolve fields. The result layer DISS_SMIF.shp looks much more handy now with less records, but still there are multiple values for each PageNumber.
To get unique PageNumbers, Add Field 'Area', Type 'Double', Edit, run Calculate Geometry, set Area/sq km. Now you've got a 'decider' on which PageNumber to take.
Now run SUMMARIZE STATISTICS from toolbox with DISS_SMIF.shp as input. It will produce an Info Table 'maxgroup' as a result with a new field 'MAX_Area' by calculating the maximum value from a PageNumber group having set these parameters in the dialogue before: Statistics Field = Area, Method = MAX, Case Field = PageNumber.
Now JOIN DISS_SMIF.shp with 'maxgroup' Info Table by 'MAX_Area' and 'Area' keeping only matching records. Export this layer into DISS_SUM_SMIF.shp to have the attributes fixed to the new feature. It should have unique PageNumber values and required county infos as well.
Finally JOIN SIMPLE_SMIF.shp with DISS_SUM_SMIF.shp by 'PageNumber' keeping all records. This helps providing the previous settings for overlapping and prevents from creating empty pages in the PDF, f.e. because of missing county.shp of neighborhood. Export this result into VALUED_SMIF.shp and yippieh,
Choose VALUED_SMIF.shp for main dialogue of DDP setup.
To get the attributes from boundaries.shp into SMIF.shp I would use the Union (Analysis) tool:
Computes a geometric union of the input features. All features and their attributes will be written to the output feature class.
Once you have that you will probably see that some of your SMIF polygons fall within more than one of your county polygons so you will need to decide how you wish them to be allocated. I would suggest using either the county that it is mostly in by area, or to list all counties that it falls within comma separated.
All of the above should be easily automated using ArcPy.