[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