Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

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!

share|improve this question
    
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
add comment

4 Answers 4

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!!!

share|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
add comment

Not a popular suggestion, but I would recommend that you keep unprojected data and projected data as separate files. Area and other planar measures only make sense in a projection and there are differences in the values obtained within each. Project your data to what you want, maintain documentation and use accordingly. Having an "Area" field in a file is going to do you no good unless you know what the projection was.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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)

share|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
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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