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):
- 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 - 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
:See documentation.
So even if you use
transform
, the area is still calculated inEPSG:4490
. Use$area
instead of this to get areas calculated based on the ellipsoid used for this CRS.The help says regarding
$area
: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 likeEPSG:4490
, the difference can be huge.Screenshot: red area values from layer
Added geom info
(=your option 2), black labels are generated dynamically with the expression$area
on the layer inEPSG:4490
; project CRS is inEPSG: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) inEPSG:102025
, that's why they return an exact value (no decimals) withAdded geom info
in this CRS.