QGIS – How to Calculate Area for Chinese Cities Accurately

coordinate systemequal areaqgis

The task is to calculate areas for small project sites (polygons) in various Chinese cities. The dataset is available as EPSG:4490, the project CRS is also set to EPSG:4490. To get accurate comparable areas I should use an equal area projection for China, such as Asia North Albers Equal Area Conic (ESRI:102025)

To calculate the areas there are 2 options in QGIS (3.16.11):

  1. Create a new field with the field calculator area(transform($geometry, 'EPSG:4490','ESRI:102025')). I got it from a different question in this forum. Used functions: area & transform
  2. add Geometry attributes calculated by layer CRS after reprojecting from EPSG:4490 to ESRI:102025 (including area)

My problem with 1. is that it returns the area not in m². From my knowledge as the unit of ESRI:102025 is specified in meters, it should use that. I don't find any other unit in the settings, which should override that. If I use 2. it gives me m².

Of course I could add the area I get from 2., back to the source (EPSG:4490), or just stick with ESRI:102025 for the data, but I'm eager to learn more.

Best Answer

Quick answer

Use $area.

Explanation

The first option does not work because the function area:

Returns the area of a geometry polygon object. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry

See documentation.

So even if you use transform, the area is still calculated in EPSG:4490. Use $area instead of this to get areas calculated based on the ellipsoid used for this CRS.

The help says regarding $area:

The area calculated by this function respects both the current project's ellipsoid setting and area unit settings. For example, if an ellipsoid has been set for the project then the calculated area will be ellipsoidal, and if no ellipsoid is set then the calculated area will be planimetric.

Be aware: also using Add geometry attributes (see documentation), you have to define a CRS (for planimetric measurements) or select ellipsoidal measurement: this last calculation method considers Earth's curvature (as modelled by the ellipsoid used).

For an equal area projection, however (as EPSG:102025), the difference between planar and ellipsoid measurement should be minimal - that's in fact what "equal area" is about. For other CRS like EPSG:4490, the difference can be huge.

enter image description here

Screenshot: red area values from layer Added geom info (=your option 2), black labels are generated dynamically with the expression $area on the layer in EPSG:4490; project CRS is in EPSG:4490 as well. Values are divided by 1'000'000 to turn square meters to square km. The polygons were initially created as squares with side lengths of 32, 53, 41 and 45 km (from left to right) in EPSG:102025, that's why they return an exact value (no decimals) with Added geom info in this CRS. enter image description here

Related Question