Hello,
There are "Georeferencing" Tools in the Georeferencing toolbar that might help.
View / Toolbars / Georeferencing
In the drop down list you have options to flip horizontally or vertically. I don't know if this will work if you have multiple polygons, but I imagine it would work with a single polygon.
I hope this helps!
# -------------------------------------------------------------------------
#Tool Name: Polygon_Mirror
#Source Name: Polygon_mirror.py
# ESRI SW Version: ArcGIS 10.0
# Application Version 1.0
#Author: Steven R. Lambert, ESRI, Inc.
#
#Revision(s): Version 1.0 Date: August 03, 2010
#
# Input: Polygon feature class whise X,Y coordinates are to be reversed
# (Supports multipart polygon features)
# Output: Polygon featureclass with X,Y coordinates reversed
#
# -------------------------------------------------------------------------
# Import system modules
import arcpy
import sys
import os
import traceback
import string
def Reverse_XY(infc, outfc):
# Reverses the X,Y coordianates of a polygon feature class (mirrors)
# Test to see in infc & outfc exist
if not arcpy.Exists(infc):
AddMsgAndPrint("Input feature class not found")
return
if not arcpy.Exists(outfc):
AddMsgAndPrint("Output feature class does not exists")
return
# Define cursors for input & output
mrows = arcpy.SearchCursor(infc)
mrow = mrows.next()
fcrows = arcpy.InsertCursor(outfc)
fcrow = fcrows.next()
AddMsgAndPrint("Cursors Created...")
# Update progress info in dialog box
arcpy.SetProgressor("default")
result = arcpy.GetCount_management(infc)
count = int(result.getOutput(0))
fcount = 0
AddMsgAndPrint("Progressor Created...")
# Create temporary geometry objects
aPoly_Array = arcpy.Array()
aPt = arcpy.Point()
rPt = arcpy.Point()
# For each discrete feature in the source feature set
shapefieldname = arcpy.gp.Describe(infc).ShapeFieldName
while mrow:
fcount += 1
partnum = 0
aPoly = mrow.getValue(shapefieldname)
partcount = aPoly.partCount
# Update progressor message
progressMessage = "Processing source feature: " + str(fcount) + " of " + str(count)
arcpy.SetProgressorLabel(progressMessage)
while partnum < partcount:
part = aPoly.getPart(partnum)
aPt = part.next()
while aPt:
rPt.X, rPt.Y = aPt.Y, aPt.X
aPoly_Array.append(rPt)
aPt = part.next()
rPoly = fcrows.newRow()
rPoly.Shape = aPoly_Array
fcrows.insertRow(rPoly)
partnum += 1
aPoly_Array.removeAll()
mrow = mrows.next()
return
def AddMsgAndPrint(message):
arcpy.AddMessage(message)
print message
return 0
#
#+-------------------------------------------------------------------------------------+
# Main Process Loop
#+-------------------------------------------------------------------------------------+
# Create the Geoprocessor object and set the overwrite setting
arcpy.OverWriteOutput = True
try:
#
# Input Parameters
#
# infc - input polygon feature class
# outfc - output feature class
infc = arcpy.GetParameterAsText(0)
outfc = arcpy.GetParameterAsText(1)
Reverse_XY(infc, outfc)
AddMsgAndPrint("Polygon mirroring completed...")
# Done
except arcpy.ExecuteError:
# Get the geoprocessing error messages
msgs = arcpy.GetMessage(0)
msgs += arcpy.GetMessages(2)
# Return gp error messages for use with a script tool
arcpy.AddError(msgs)
# Print gp error messages for use in Python/PythonWin
print msgs
except:
# Get the traceback object
#
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate information together concerning the error into a
# message string
#
pymsg = tbinfo + "\n" + str(sys.exc_type)+ ": " + str(sys.exc_value)
# Return python error messages for use with a script tool
#
arcpy.AddError(pymsg)
# Print Python error messages for use in Python/PythonWin
#
print pymsg