Calculating areas of polygons inside other polygons with GeoPandas
I think you are looking for the overlay
operation (see docs):
merged = geopandas.overlay(GDF1, GDF2, how='intersection')
This gives a GeoDataFrame
with all intersections of all combinations of both layers. In this way, you will be able to calculate the area of the different surface types for each of the classes.
There's a mistake above, the correct is:
merged = geopandas.overlay(GDF1, GDF2, how='intersection')