I have a fishnet that defines my zones for my analysis, and am interested in the area of different hydrologic soil groups (A, B, C, D) within these zones. Each soil group has a corresponding score (1, 0.65, 0.3, 0.05). I want to calculate a weighted average of the soil group scores for each zone. How do I go about doing this?

Soil groups within zones in watershed.

Table with Fishnet ID (FID_CarpWS_FishNet), Soil Group (hydgrpcdc), and the Score for each group (Soil_Score)

1 Answer 1


The easiest way to do this would be to start by creating two fields in your initial fishnet dataset.

Call the fields Fisharea in the fishnet. Calculate the area of the fishnet in this field. This is the initial area. Next create a field called FishID and give each fishnet polygon a unique ID.

Next run the intersect tool between the fishnet and soils layer. Create a field called FSoilArea. Calculate the area of the polygons in your intersected layer.

Create a new field called Weight. Take the newly calculated FSoilArea and divide it by the Fisharea field. This is the proportion of the soil layer in the fishnet.

Next create a new field called WSoilIndex. Multiply the Weight field into the field containing the soil index values.

Take the intersected layer and run the dissolve tool. Select FishID and Soil Type as the dissolve fields. Under the Statistics options select the WSoilIndex as the input and Sum as operation.

You will now have a Fishnet with the soil indices weighted by area.

  • Thanks! Why choose sum as the operation and not mean?
    – nso921
    May 16, 2018 at 16:57
  • I guess average would work too. Sorry re-reading the question I see you not looking for the weighted score value. Averaging it up should work. May 17, 2018 at 8:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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