# How to calculate XY coordinates in Decimal Degrees from projected dataset in model or script?

Is it possible to calculate points XY coordinates in Decimal Degrees in model or script when a feature class is in projected coordinate system?

It's easy when a FC is in geographic coordinate system:

• using Add XY Coordinates tool or
• using Python expression eg. `!shape.extent.XMax!`

I've found that area and length properties of geometry field can be modified with geometry unit conversion keyword. For linear units of measue one can use @DECIMALDEGREES.
Unfortunatelly, `!shape.extent.XMax@decimaldegrees!` doesn't work as XMax is not a length.

In Calculate Geometry function (accessed from right-click) there's a possibility to choose Decimal Degrees output type even for projected feature class.
This should be easy in ArcGIS Python, isn't it?

EDIT
Here's a code snippet based on iRfAn's solution:

``````import arcpy, os
projectedFC = r"C:\tmp\test.gdb\points01_Projected"
prjFile = os.path.join(arcpy.GetInstallInfo()["InstallDir"],
r"Coordinate Systems\Geographic Coordinate Systems\World\WGS 1984.prj")
spatialRef = arcpy.SpatialReference(prjFile)

updCursor = arcpy.UpdateCursor(projectedFC,"", spatialRef)
for row in updCursor:
pnt = row.Shape.getPart(0)
row.X = pnt.X
row.Y = pnt.Y
updCursor.updateRow(row)

del updCursor, row
``````
-
Is it a necessity to keep the XY points in a projected CS? – Roy Jul 13 '12 at 11:14
@Roy: yes, I want to preserve a feature class in projected CS, but calculated decimal degrees. – Marcin Jul 13 '12 at 11:19

I think you can.

Just define the Spatial Reference in WGS-84 and use cursor using this Spatial Reference.

Coordinates are specified in the spatial_reference provided, and converted on the fly to the coordinate system of the dataset.

Fore more detail see this.

-
You can do it this way. From the `SHAPE` field you'll get a point geometry object, from which you can get the X and Y coords. – om_henners Jul 13 '12 at 15:17
@iRfAn: I thought that there's some more straightforward solution, but your's works perfectly. Thanks:) – Marcin Jul 16 '12 at 10:10
You are welcome :) – iRfAn Jul 17 '12 at 14:26

I'm not sure about a script, but I've this accomplished in a somewhat automated fashion using model builder: import your xy coordinates and project them into WGS 1984. Then add fields and calculate the geometry of the points in decimal degrees. Then bring your XY points back into the original coordinate system.

-
it is long way to go, i will rather use cursor and use WGS-84 as Spatial Reference and calculate. No need to re projecting and after then joining. – iRfAn Jul 16 '12 at 8:09
@mburkenysdot: This is a good workaround when someone doesn't want to use any scripting. – Marcin Jul 16 '12 at 10:15