If it helps, here is some Python code that among other things calculates the % overlap of a "Spruce Zone" layer with a "watershed layer" (that is, the code figures out what pct of the watershed is covered by the spruce zone layer). Parts of it a bit cryptic (cause this code snipit is running in a large loop that I didn't include), but it should help demonstarte the process. And yes, the process is probably easier if you use the the union tool... Otherwise with intersect you would not recieve back any tabular data concerning the areas that did not overlap (FID_* = -1).... And would then you wouldn't be able to make the "full-picture" overlap % summary table if you were lacking the records where ovlp% was 0 (I guess you could do some aditional steps to put those records back in... Anyway, union is probably your best bet).watershedFC = fgdbPath + "\\" + watershedLyr
arcpy.Dissolve_management(oesfWatershedsFC, watershedFC, watershedLyrDict[watershedLyr][0], "", "SINGLE_PART"); showGpMessage()
arcpy.AddField_management(watershedFC, "ACRES", "DOUBLE"); showGpMessage()
arcpy.CalculateField_management(watershedFC, "ACRES", "!shape.area@acres!", "PYTHON_9.3", ""); showGpMessage()
union1FC = "in_memory\\union1"
arcpy.Union_analysis([watershedFC, spruceZoneFC], union1FC, "ALL", "" , "GAPS"); showGpMessage()
arcpy.DeleteField_management(union1FC, "ACRES"); showGpMessage()
arcpy.AddField_management(union1FC, "ACRES", "DOUBLE"); showGpMessage()
arcpy.CalculateField_management(union1FC, "ACRES", "!shape.area@acres!", "PYTHON_9.3", ""); showGpMessage()
arcpy.MakeFeatureLayer_management(union1FC, "fl", "FID_spruce_zone <> -1"); showGpMessage()
freq1Tbl = "in_memory\\freq1"
arcpy.Frequency_analysis("fl", freq1Tbl, watershedLyrDict[watershedLyr][0], "ACRES"); showGpMessage()
arcpy.AddField_management(watershedFC, "SPRUCE_PCT", "DOUBLE"); showGpMessage()
arcpy.AddField_management(watershedFC, "SPRUCE_FLG", "DOUBLE"); showGpMessage()
arcpy.MakeFeatureLayer_management(watershedFC, "fl"); showGpMessage()
arcpy.AddJoin_management("fl", watershedLyrDict[watershedLyr][0], freq1Tbl, watershedLyrDict[watershedLyr][0], "KEEP_ALL"); showGpMessage()
arcpy.CalculateField_management("fl", "SPRUCE_PCT", "[freq1.ACRES] / [" + watershedLyr + ".ACRES]", "VB", ""); showGpMessage()
arcpy.RemoveJoin_management("fl", "freq1"); showGpMessage()
arcpy.MakeFeatureLayer_management(watershedFC, "fl", "SPRUCE_PCT < .5 OR SPRUCE_PCT IS NULL"); showGpMessage()
arcpy.CalculateField_management("fl", "SPRUCE_FLG", "-1", "PYTHON_9.3", ""); showGpMessage()
arcpy.MakeFeatureLayer_management(watershedFC, "fl", "SPRUCE_PCT >= .50"); showGpMessage()
arcpy.CalculateField_management("fl", "SPRUCE_FLG", "1", "PYTHON_9.3", ""); showGpMessage()
freq2Tbl = "in_memory\\freq2"
arcpy.Frequency_analysis(intersect1FC, freq2Tbl, watershedLyrDict[watershedLyr][0], "STRM_MILES"); showGpMessage()
arcpy.AddField_management(watershedFC, "STRM_MILES", "DOUBLE"); showGpMessage()
arcpy.MakeFeatureLayer_management(watershedFC, "fl"); showGpMessage()
arcpy.AddJoin_management("fl", watershedLyrDict[watershedLyr][0], freq2Tbl, watershedLyrDict[watershedLyr][0], "KEEP_ALL"); showGpMessage()
arcpy.CalculateField_management("fl", "STRM_MILES", "[freq2.STRM_MILES]", "VB", ""); showGpMessage()
arcpy.RemoveJoin_management("fl", "freq2"); showGpMessage()