I need help understanding the difference in feature geometry area calculations in an SQL Server sde geodatabase vs calculated area values in ArcGIS Pro via the calculate geometry tool.
I have a feature class with impervious areas within an sql sde geodatabase. The area geometry field automatically added to the feature class upon creation is Shape.STArea(). The dataset uses the Colorado State Plane Central (Feet) coordinate system.
I added two additional fields, Planer Sqft & Geodesic Sqft, and calculated their geometries using the Calculate Geometry gp tool using the Planer or Geodesic method respectively in square feet. See the image for example values.
I understand the difference between the calculated geodesic value and planer value. I do not understand how the Shape.STArea() geometry field is calculated. Shouldn't this value be the same as either the planer or geodesic values? Is there another method that sql uses to calculate area geometry values? The difference in this case between the STArea() and Planer values is about 9.86. The amount of discrepancy seems to be related to polygon size.
In terms of best practices, which values is more accurate and should be used, the sql STArea() or the calculated area value in ArcGIS Pro?
Whenever discussing issues like this, it is most helpful to share how the shapes are being stored in the DBMS (GEOMETRY, GEOGRAPHY, SDEBINARY) and what projections and datums are involved.
The geometry model implemented by ArcGIS products and DBMSs don't always line up exactly, especially or usually when dealing with true curves. For SQL Server, this is mentioned SQL Server spatial types and ArcGIS—ArcGIS Pro | Documentation:
ArcGIS adds a column to store extra geometric elements
The geometry and geography types cannot store all types of geometric elements that geodatabases must support. Therefore, when you create or register a feature class that uses the geometry or geography storage type with a geodatabase in SQL Server, ArcGIS adds a column to the business table to store these additional geometric elements. The column is called gdb_geomattr_data. The additional geometric elements include the following:
- Parametric objects such as circular arcs and Bezier curves created with advanced editing tools
- Multipatch features
- Surface patches from ArcGIS Spatial Analyst extension
When ArcGIS detects the data source has these additional geometric elements, a simple geometric representation is stored in the shape column and the unmodified data (including the additional elements) is stored in the gdb_geomattr_data column.
It may be that ArcGIS Pro and SQL Server are not calculating area on the exact same object for each record.