[GRASS-user] Re: Area Weighting for Vectors

Richard Chirgwin rchirgwin at ozemail.com.au
Wed Nov 3 16:40:10 EDT 2010


> Hi,
>
> I need to add some attributes from a soil polygon layer to a catchment
> polygon layer using area weighting. In other words, the contribution
> of the soil layer needs to be weighted by the amount with which its
> polygons overlap the catchment polygons.
>
> For example, suppose I want to weight soil infiltration rates. 30% of
> a catchment polygon overlaps with soil type 1 and 70% overlaps with
> soil type 2. Now I want a new attribute in the catchment polygon that
> takes 30% of the infiltration rate of soil type 1 and adds it to 70%
> of the infiltration rate of soil type 2.
>
> How can I do this in GRASS?
>
> Thanks
> Hanlie
Hanlie,

You would use v.overlay with operator=and to create a new vector that 
combines the two polygons.

Then, add an area column to the new vector, and upload the area of the 
overlay to that column. You will also want columns to record the areas 
of the original two vectors (soil_area and catchment_area, for example).

Use v.distance from your new polygon (from_type=centroid) to the 
original polygons (to_type=area and dmax=0) to upload the original areas 
into their respective columns.

Also add a soil type column to the new polygon and, once again, use 
v.distance to record the soil type into the new polygon.

You can then calculate percentages based on new_area/old_area.

Richard



More information about the grass-user mailing list