I notice that on many geoprocessing operations (eg joining polygons to points), and with certain geoprocessing tools (eg Multiple Ring Buffer) then the created datasets have two new fields in them (Shape_Area, and Shape_Length)
My questions are two:
1. Why are these fields automatically created and populated when geoprocessing? I neither need nor want them.
They just clutter up my data.
2. And,more important, the values for these fields do not always make sense
(actually I wonder if they ever make sense: I have yet to find an example when they do)
Let me give you a simple example of item#2. I use the "Multiple Ring Buffer" tool, and create a single circular polygon
of radius one mile. One would think, therefore, that the Shape_Area would come out as pi sq miles: 3.141592...
But no, I see a value of 0.000936. (Screen shot attached as .png)
BTW: I am using the so-called "Equidistant Conic" projection.
Ok, so maybe the units are sq ft or sq meters.... No! The value would be much bigger.
Could they be in steradians: No! The radius of the earth is about 4000 miles and so the value would be pi divided by radius squared: approx 2e-7: much smaller than the value I see. Same comment applies to shape length. I see a value of 0.111. So, if I divide 2*pi*r by pi*r**2 I get 2/r=0.111/0.000936 => r=0.0169?????
So nothing seems to make any sense.
Can anyone shed some light on this??
Solved! Go to Solution.
My best guess here from reading this: ArcGIS Help 10.1 is that you are using the default option in the geoprocessing tool for distance. It states that when defaulted it uses the spatial reference of the feature on which the tool is running on and not the data frame of the map. This feature is probably using decimal degrees as you are right and those numbers look wonky.
I could be wrong, but try specifying the distance in the tool. If you are running a python script to perform this operation then adjust the parameter from "distance" to "miles" otherwise change the parameter manually within the tool gui.
The reason they are appended to the resulting attribute table is due to the majority of people wanting those fields in their results. If they are really bugging you - a python script could remove them if you have multiple features to edit or you can do it manually within the attribute tables themselves.
I really hope this helps.
Matt
My best guess here from reading this: ArcGIS Help 10.1 is that you are using the default option in the geoprocessing tool for distance. It states that when defaulted it uses the spatial reference of the feature on which the tool is running on and not the data frame of the map. This feature is probably using decimal degrees as you are right and those numbers look wonky.
I could be wrong, but try specifying the distance in the tool. If you are running a python script to perform this operation then adjust the parameter from "distance" to "miles" otherwise change the parameter manually within the tool gui.
The reason they are appended to the resulting attribute table is due to the majority of people wanting those fields in their results. If they are really bugging you - a python script could remove them if you have multiple features to edit or you can do it manually within the attribute tables themselves.
I really hope this helps.
Matt
You say: "I really hope this helps". I'll say it does! Matthew, you are the man.
That is exactly what is happening. I am getting some number
which is in degrees squared, or something very like.
What an absurd unit, even if the map does have a geographic
coordinate system. Not even steradians based on the earth's radius.
Oh well. Good. Now I just have to figure out how to change this
default in the workspace environment.
I guess something like this will always happen if one draws a
geometric figure about a point that was geocoded into
a latitude and longitude using the default value in
the environment which says for output coordinate
system, which says: "same as input".
Ty Matthew.
Rob
In a geodatabase those fields are created.
Your data are most likely in a geographic coordinate system with length in fractions of a degree and area is in degrees squared.
There are workarounds if you need your data to remain in a geographic coordinate system, but if you are using data for more than making a map and your area is a 100 or so km wide or less, use projected data. There is not problem having the same set of data in two coordinate systems, one geographic and one projected. They both have their purpose, advantages and disadvantages. So any requirement do do more that make a map such as doing any work that involves calculations with geometry such as area length, etc would best be done in a projected coordinate system. If you want to whip some points etc on google earth/map then you might want its geographic incarnation.
Ty Dan
Yes. I think the problem has been that I have been running geocoding and
with the geocoder set to save results in a geographic coordinate system (WGS 84).
Whenever I use data created that way, any tool I use which honors the
application environment setting is going to create data items based on geographic coordinates.
I still do not understand the results I get. If, in my example case, you divide the
Shape_Area by the Shape_length you get a value for r/2, the radius of the feature divided by two.
Doing that, I get r=0.016863 in some units. I am using a radius of 1 mile,
so there appear to be about 59.3 miles in one of these mystery units.
That does not correspond to anything I know, even approximately.
Anyway, thx for help.
Rob Stevens
Perhaps you haven't seen this tool Add Geometry Attributes—Help | ArcGIS for Desktop which allows you to calculate your own area, lengths, in a coordinate system other than the one that the data are in. So if you are working with geographic coordinates (ie GCS WGS84) and you want units in projected coordinates (perhaps albers, UTM, lambert etc...equidistant is not the best unless you are working from a central point only)... you can do it by specifying the coordinate system you want as an option in the tool