You can use QGIS expressions to directly calculate the area above a certain latitude in one step without any further geoprocessing. Simply create that part of the polygon that lies north of your latitude, than calculate its area. See below for the expression to use.
To get the part of the polygon above a certain latitude, create a polygon based on this latitude from 180 degrees east to 180 degrees west and up to the north pole (red area in the screenshot), then get the intersection of this with your polygons to get the blue area.
Be aware: For correct area calculations, use an appropriate CRS! I used a world equal area CRS for the layer, code: ESRI:54034
.
The expression calculates the area in blue: that part of each polygon that is above a certain latitude (=intersects the red area) - here north of 10 degrees south.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/fBiAc.png)
Use this expression to calculate the part of each polygon north of a certain latitude. The latitude can be freely defined in line 3 (here: -10 = 10 degrees south). On the 5th last line, replace ESRI:54034
by the code of the CRS of your layer. You might use the variable @layer_crs
, then you don't have to care about what CRS is used. However, this works only for EPSG-codes (e.g. when using EPSG:6933
) - this projection here, however, has an ESRI code.
area (
with_variable(
'lat',
-10, -- change this value to match your needs
intersection (
$geometry,
transform (
make_polygon (
make_line (
make_point (-180, @lat) ,
make_point (180, @lat),
make_point (180, 90),
make_point (-180,90)
)
),
'EPSG:4326',
'ESRI:54034' -- change this to the CRS of your layer
)
)
)
)