Okay, so lets have a look at that script so far...
The definition of the "fields" dictionary isn't making a lot of sense.
fields = {
"OBJECTID": "OBJECTID",
"Global_ID": "Global_ID",
"Global_Copy": "Global_Copy",
"SHAPE@X": "POINT_X",
"SHAPE@Y": "POINT_Y",
"SHAPE@X": "LAT",
"SHAPE@Y": "LONG"
}
Each row is a pair of key : value. Supposedly to map fields in the Fc with output fields in the csv. But why would "SHAPE@X/Y" appear twice? Because rows come out of a dict in an arbitrary order, what is mapping the XY to the name in the csv?
The tokens "SHAPE@X" & "SHAPE@Y" recover the X & Y from the geometry column of the Fc and will be whatever coordinate system the Fc is in.
Reading geometries—Help | ArcGIS Desktop
So, maybe this little example will give you an idea. I made a small point feature (5 points), in UTM35S_WGS84.
I can read it and print the XY metres, and also the Long/Lat.
import sys, os, arcpy
inFgdb = r"C:\Data\ESRI-SA\ForumProblem\scratch.gdb"
inFc = "TestPoints_UTM"
inData = os.path.join(inFgdb, inFc)
inFlds = ["OID@", "SHAPE@"]
srIN = arcpy.Describe(inData).SpatialReference
print "Input SR is {}".format(srIN.name)
srOUT = arcpy.SpatialReference(4326)
print "Output SR is {}".format(srOUT.name)
with arcpy.da.SearchCursor(inData, inFlds) as Cur:
for row in Cur:
ID = row[0]
geom = row[1]
X, Y = geom.centroid.X, geom.centroid.Y
geom2 = geom.projectAs(srOUT)
X2, Y2 = geom2.centroid.X, geom2.centroid.Y
print "ID {}, UTM metres {:.1f} {:.1f}, Long/Lat {:.6f} {:.6f}".format(ID, X, Y, X2, Y2)
Gives me this output
>>>
Input SR is WGS_1984_UTM_Zone_35S
Output SR is GCS_WGS_1984
ID 1, UTM metres 542579.7 7064795.0, Long/Lat 27.427425 -26.536807
ID 2, UTM metres 562671.5 7084560.1, Long/Lat 27.628134 -26.357606
ID 3, UTM metres 590440.6 7078026.2, Long/Lat 27.906892 -26.415105
ID 4, UTM metres 595994.4 7060057.9, Long/Lat 27.963929 -26.576958
ID 5, UTM metres 574759.2 7034085.6, Long/Lat 27.752251 -26.812725
>>>
In your script you are using the XY tokens, so have to construct a point geometry from them so it can be projected.
I chose do do it using the geometry object itself.
Hope this helps.