1

I have 2 layers. LayerA are multiple polygons of the area that i'm evaluating (Red boundarys). LayerB is a MSAVI raster to vector with the data (multicolor greens - blues).

I want to calculate the area of each LayerA polygon that has a range value from -1 to 0 from layerB for example like "how much bare soil", "how much dense vegetation"..

What i have done. Calculated MSAVI form clipped raster from the area. MSAVI traspased to vector with "raster pixels to polygons" because of float data. Tried the aggregate function on field calculator.

I'm correct with the process?

boundary over MSAVI

2 Answers 2

1
  1. Reclassify your raster, e.g. range from -1 to 0 becomes class 1 etc. Use the Reclassify tool or Raster Calculator.

  2. Use Zonal Histogram to calculate the number of pixels for each category.

  3. Multiply the number of pixels for each category with the pixels size to get the area.

Left: initial raster with polygons; right: reclassified raster with 3 classes: enter image description here

Output of Zonal Historgram (felds HISTO_0, HISTO_1 and HISTO_2) as well as calculated area, based on pixel size 4 (2m x 2m); see rough measurement of the black area (corresponds to HISTO_0) of the larger polygon - confirming that area calculation is correct: enter image description here

1
  • 1
    Thank you. This is the answer that I was searching for.
    – erichnagy
    Commented Jan 17 at 19:59
0

Hmm, tricky... Here's a possible idea:

  1. Use the dissolve tool to dissolve the polygons by their attibute (eg: LANDCOVER).
  2. Then, clip those dissolved polygons by the boundaries layer.
  3. Finally, join attributes by location between the clipped layer and the boundaries layer.

Hope this helps - I cannot provide screenshots at this time, but please reply if you get stuck.

1
  • Thank you for the response.
    – erichnagy
    Commented Jan 17 at 20:00

Not the answer you're looking for? Browse other questions tagged or ask your own question.