6

What are the units of the Shape_Area field in a wgs84 feature class? Is it decimal degree squared? I would like to convert that to something more meaningful like square miles without reprojecting the feature class... Is there a formula for it out there? I am looking to recalc the field programmatically. Thanks for your help!

  • if the field does contain calculated dd2 it would be an inaccurate calculation. As any difference in lattitude will induce a difference in both length/area in lat/long. I think you would want to transform any data to a local crs (for the best accuracy) and then cacluate the area. – Brad Nesom May 2 '11 at 20:54
6

Here is the really easy way. Add a field to your existing feature class. Right click on the field title and choose "Calculate Geometry". You'll then have the option to pick your desired coordinate system and units of measure. One note: This calculation is static, so you will need to recalculate anytime you make changes.

|improve this answer|||||
5

You can temporally re-project the data on the fly in arcmap and use

CTRL+SHIFT+G to open the Calculate Geometry dialog box

and calculate the area with the current projection (meter/feet)

after the field is populated you can go back to WGS84 but the area will remain (unless you recalculate the area again)

|improve this answer|||||
  • This is great to know! But what I am really interested in: how do I update this field without using arcmap so using arcobjects (arcpy?) only? Is there a formula? Thanks! – saim May 2 '11 at 21:14
2

You can use ArcPy to do this. Create a new field and then calculate area (my example is in kilometers).

arcpy.AddField_management("MyDataset","AREA_KM","DOUBLE",12,6)
arcpy.CalculateField_management("MyDataset","AREA_KM","!shape.area@SQUAREKILOMETERS!","PYTHON")

BEWARE: coordinate reference systems. I don't know your CRS but I'll use the area I work in as an example. We use the European Datum and often work in Square Kilometeres. To calculate area in kilometers I use the UTM Zones shapefile and I do this whole process in Python - as a guide here are the steps:

  • Select first UTM zone and use selection to select polygons in the zone
  • Reproject selected polygons to that ED UTM Zone
  • Calculate area for those polygons
  • Append values back to main dataset

This way each polygon is calculated in the right UTM zone so has the correct area based on it's location. The UTM shapefile contains paths to the projection files.

BEWARE BEWARE: Don't forget transformations if you change datums on the coordiantes systems!!!

|improve this answer|||||
  • I'll try that - but I can only run your arcpy script after reprojecting my dataset to UTM first, right? Any chance you have an arcpy script that does that too? Thanks! – saim May 9 '11 at 2:48
  • Yes - you can't change the CRS of a map in Arcpy. So in the script exprt the selection based on UTM zone, calculate the areas in that UTM to a new field, then copy the values back to the original datasets (by either using cursor or a join and field calculate) – Rob Clark May 9 '11 at 7:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.