[Qgis-user] QGIS - Vector layer with multiple entities

Drew French fullboarfarm at gmail.com
Thu Jun 24 08:39:46 PDT 2021


If you just run Intersection with FIELD as input and TOWN as overlay you
will get the data you need. You could join the TOWN and results layer using
a key. Is there a reason you need to use an expression?

On Thu, Jun 24, 2021 at 9:43 AM Edouard Bourgine <edouard.bourgine at acosol.fr>
wrote:

> Hi,
>
>
>
> I’m running qgis 3.16 on w10.
>
>
>
> I have two vector layers with multiple entities :
>
> ·         One with each town borders (? I’m note sure if this is the
> right word) I mean the area for each zip code. (TOWN_LAYER) (polygon vector)
>
> ·         The second with cropfields and meadows (polygon vector)
> (FIELD_LAYER)
>
>
>
> I want the total area of cropfield and Meadows in each Town from the first
> layer. (Exemple : one town have 31 fields/meadows -> total town area is
> 55km² (i have that info) and cropfield/meadows area is 26km² (i need that
> one for each town)
>
>
>
> First i tried something like :
>
> ·         Sum(area(intersection($geometry,geometry(‘FIELD_LAYER_ID’))),group_by :=FIELD
> WITH SAME VALUE EVERYWHERE)
>
>
>
> But it is not a valid expression (geometry(‘FIELD_LAYER_ID’) don’t work)
>
>
>
> Some meadows span over several town. Some juste inside one.
>
> I’ve « cut » the FIELD_LAYER with the TOWN_LAYER
>
>
>
> My first vector layer as a field specific and i’m looking for the formula
> that would give me the right answer.
>
>
>
> I’ve tried :
>
>
>
> ·         aggregate (layer :=’FIELD_LAYER_ID’,
> aggregate :=’sum’,expression :=$area, filter := intersects($geometry,
> geometry(@parent)))
>
>
>
> It doesn’t work because the borders are overlapping : each fields just
> touching the borders even if they belong to another town are included.
>
>
>
> « Contains » instead of « intersects » doesn’t work either because some
> borders of the field are overlapping and those are not included.
>
>
>
> Exemple with « count » instead of « sum »
>
>
>
> A town have 31 fields spanning over 26km² : Intersects give me a total
> count of 38 and 48km² and contains give me 12 and 4,7 km² because of
> borders overlap.
>
>
>
> I think the solution is with intersection, but i can’t reach a valid
> expression.
>
>
>
> Another solution may be splitting the FIELD_LAYER in as much layer as town
> (I did that) and batch process for each layer :
>
> ·         sum($area,group_by := FIELD WITH SAME VALUE EVERYWHERE)
>
>
>
> then get the result in the TOWN_LAYER.
>
>
>
> But i don’t know how to batch process it and get the result in the first
> layer.
>
>
>
> And for informations I’m talking hundreds of towns and thousands of
> fields/meadows entities so one by one calculation is not possible.
>
>
>
> I hope I make sense and that someone know how to deal with that.
>
>
>
> Thanks,
>
>
>
> *Edouard BOURGINE*
>
> *Ingénieur Environnement*
>
>
>
> Tél/Fax : 03.83.22.69.09
>
> Port : 06.63.12.99.63
>
>
>
> ACOSOL
>
> 26 rue de l’Ornain
>
> 54520 LAXOU
>
>
>
>
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> Garanti
> sans virus. www.avast.com
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
> <#m_4845219931750753823_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
>


-- 
Drew French
(715) 986-8088
www.ecologicaldesign.land
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20210624/2b025c84/attachment.html>


More information about the Qgis-user mailing list