If you use the Union tool instead you will be able to easily identify those parts which Identity would not have retained. You can then use the Select tool to retain the same polygons that Identity would have.
You will only need a Basic license to do this.
I've put together some code below which seems to create single segment lines from polyline (which can be multipart) feature classes while retaining their attributes.
I recommend that you run it against a small test dataset or two first, and if it seems to do what you want, then comment out or remove the print statements to gain some performance.
If you add this to a Python script tool then you should be able to use it in a model at either ArcGIS 10.1 or 10.2. Earlier versions will not be able to use it because I have included arcpy.da for performance.
import arcpy
inFC = r"C:\temp\testLines.shp"
outFC = r"C:\temp\testLinesSplit.shp"
if arcpy.Exists(outFC):
arcpy.Delete_management(outFC)
arcpy.CreateFeatureclass_management("C:/temp","testLinesSplit.shp","POLYLINE","#","DISABLED","DISABLED",inFC)
arcpy.AddField_management(outFC,"inFID","LONG","#","#","#","#","NULLABLE","NON_REQUIRED","#")
iCursor = arcpy.da.InsertCursor(outFC, ["inFID","SHAPE@"])
with arcpy.da.SearchCursor(inFC,["OID@", "SHAPE@"]) as sCursor:
for row in sCursor:
inFID = row[0]
# Print the current multipoint's ID
#
print("Feature {0}:".format(row[0]))
partnum = 0
# Step through each part of the feature
#
for part in row[1]:
# Print the part number
#
print("Part {0}:".format(partnum))
# Step through each vertex in the feature
#
prevX = None
prevY = None
for pnt in part:
if pnt:
# Print x,y coordinates of current point
#
print("{0}, {1}".format(pnt.X, pnt.Y))
if prevX:
array = arcpy.Array([arcpy.Point(prevX, prevY),
arcpy.Point(pnt.X, pnt.Y)])
polyline = arcpy.Polyline(array)
iCursor.insertRow([inFID,polyline])
prevX = pnt.X
prevY = pnt.Y
else:
# If pnt is None, this represents an interior ring
#
print("Interior Ring:")
partnum += 1
del iCursor
arcpy.JoinField_management(outFC,"inFID",inFC,"FID","#")
Best Answer
You can clip a raster to an irregularly shaped polygon (following the polygons geometry) using the tool you tried before, Clip.
Scrolling down a little further in your screenshot, click the checkmark to enable Clipping Geometry (see image). You should have this available at v9.3; This screen is from 9.3.1