Pro 3.1
This may be a duplicate of another Idea but I can't find it.
A while back I had a project whose data I had to shift geographically at the last minute to obscure precise locations. With something like 15 different files of varying geometries, I decide to script it.
import arcpy
def shift(fc):
shi = 2000
with arcpy.da.UpdateCursor(fc, ["SHAPE@XY"]) as cursor:
for row in cursor:
try:
cursor.updateRow([[row[0][0] + shi, row[0][1] +shi]])
except:
continue
return
shift(r"filepath")
This worked great! All my data (points, lines, polygons) successfully moved by 2 kilometers to the northeast.
Unfortunately, it did not work for my many, many annotations. Or rather, the geometry moved, but the text stayed in the same place?
Before the shift:

After the shift

This is kind of screwy.
As I result, I had to undo my shift and manually move all my annotations, which was incredibly time-intensive.
(Yes, I refreshed and re-added the data. Still had this problem)
Please let geometry functions be used for Annotations.