[Qgis-user] Using aggregates functions to count intersected features from another layer

DelazJ delazj at gmail.com
Thu Oct 27 08:44:21 PDT 2016


Hi,


2016-10-19 21:53 GMT+02:00 Matthias Kuhn <matthias at opengis.ch>:

> Hi,
> The Expressions Plus plugin is there for sharing expressions that are of
> broader interest but for whatever reason did not make it (yet) to core [1]
>
> Though I have it installed, I wasn't aware of this objective. And I think
there are developers that may be in the same case.
Need some advertisement?


> Would be great to push there whatever is interesting so we don't have to
> install a bazillion different plugins.
>
> While it can be used as a repository for developers, I think for the end
user, a "Download function" button in the Function Editor dialog where he
can pick the functions he needs would be easier to use.
Am I repeating Akbar GSOC on another feature?

Regards,
Harrissou


> Matthias
>
> [1] https://plugins.qgis.org/plugins/qgsexpressionsplus/
>
>
> On 19/10/16 21:42, DelazJ wrote:
>
> Hi all,
> Thank you all for your answers. This is really a great community! I
> already knew that but let me say it loudly. It also shows all the
> capabilities of QGIS to solve a problem.
>
> Nicolas, as Andreas said, I'm looking for something dynamic, live.
>
> The virtual layer can indeed be an option despite the creation of an
> intermediate but somehow live layer. Would be nice to have Andreas
> questions documented in the user manual so that users are fully aware of
> any potential limitations of the feature or its great power.
>
> Another powerful feature I often neglect is the function editor. Maybe
> because there are so many functions in the list that I end up thinking that
> their combination would be enough. I think it's the way I will go as no
> intermediate layer is involved and despite your remarks (which are not far
> from Andreas questions about virtual layers). Thank you Germán for
> reminding me.
> That makes me wonder: we have in QGIS, ways to share processing scripts
> and models, to share symbols, styles... What about something to share
> custom expression functions? Plugins somehow already do that but I think
> there are many people that have an operational code (that fills some small
> and common needs like mine) but don't have time/skills to create the Gui
> around. Does it sound reasonable/feasible? Maybe should I open a discussion
> in dev list (or a ticket)?
>
> Back to the approach I was following to solve the issue (combining default
> functions in expression) may I understand that it was endless? No way to
> group by when using aggregate function...?
>
> Greetings,
> Harrissou
>
> Envoyé depuis mon HTC
>
> ----- Reply message -----
> De : "Germán Carrillo" <carrillo.german at gmail.com>
> Pour : "Neumann, Andreas" <a.neumann at carto.net>, "Harrissou 'DelazJ'" <
> delazj at gmail.com>
> Cc : "Nathan Woodrow" <madmanwoo at gmail.com>, "qgis-user" <
> qgis-user at lists.osgeo.org>, "Nicolas Cadieux" <
> nicolas.cadieux at archeotec.ca>
> Objet : [Qgis-user] Using aggregates functions to count intersected
> features from another layer
> Date : mer., oct. 19, 2016 18:04
>
> Hi All,
>
>
> Harrissou, have a look at [1] for a very similar question and one possible
> solution using the Function Editor (of course, instead of sum you would use
> count).
>
> Do you other devs find that approach useful? Any hint for keeping the
> index up-to-date?
>
> Is there any interest in having this kind of functions available for QGIS
> expressions? I could help with that.
>
>
> Regards,
>
> Germán
> --
> [1] http://gis.stackexchange.com/a/212762/4972
>
>
> 2016-10-19 7:42 GMT-05:00 Neumann, Andreas <a.neumann at carto.net>:
>
>> Good idea to use a virtual layer for that! It is probably also more
>> efficient than a QGIS expression.
>>
>> Just to understand the virtual layers correctly:
>>
>> when is the query behind the virtual layer executed?
>>
>> - at every redraw?
>>
>> - once at creation?
>>
>> - at project reload?
>>
>> Aren't the virtual layers automatically updated, at least when the
>> project reloads?
>>
>> Are the results cached or not?
>>
>> Would also make sense to add a "update" option for a virtual layer, if
>> that doesn't exist yet.
>>
>> Greetings,
>>
>> Andreas
>>
>>
>>
>> On 2016-10-19 14:32, Nathan Woodrow wrote:
>>
>> Maybe using a virtual layer query via DB Manager will work.  You have
>> full SQL join support. Speed isn't always the best but gives you the full
>> power of SQL which is the correct way to do this IMO.
>>
>> E.g SELECT LayerA.id, COUNT(*) FROM layerA
>> JOIN layerB ON ST_WithIn(layerA.geometry, layerB.geometry)
>> GROUP BY layerA.type
>>
>> Although you can't do an update but you can make a new layer with the new
>> counts.
>>
>> - Nathan
>>
>> On Wed, Oct 19, 2016 at 10:22 PM, Neumann, Andreas <a.neumann at carto.net>
>> wrote:
>>
>>> Well yes - but that is not a "live" point in polygon. It create separate
>>> layers which need to be kept up-to-date.
>>>
>>> Harrissou was after a "live" point in polygon, which is automatically
>>> kept up-to-date through a QGIS expression.
>>>
>>> Maybe Nyall knows how to write the correct aggregate expression for that?
>>>
>>> Greetings,
>>>
>>> Andreas
>>>
>>> On 2016-10-19 14:11, Nicolas Cadieux wrote:
>>>
>>>
>>> Try this.
>>>
>>> http://www.qgistutorials.com/fr/docs/points_in_polygon.html
>>>
>>> Nicolas
>>>
>>> Le 19 oct. 2016 à 06:37, DelazJ [via OSGeo.org] <[hidden email]> a
>>> écrit :
>>>
>>> Hi,
>>>
>>> I have a polygon layer and a point one.
>>> I'd like to calculate for each polygon feature, the number of points
>>> that it covers. I thought the aggregates functions could help me find an
>>> easier and straight expression to perform this (without creating
>>> intermediate layers) but I fail to find any correct syntax.
>>>
>>> I tried aggregate ('mypoint', 'count', "id", intersects ($geometry,
>>> geometry($currentfeature)))
>>>
>>>  And many variants of the fourth option but It always return the total
>>> of points or an error. Actually this option is a filter and I wonder if i'm
>>> not missing a "group by" option in the aggregate function (which seems to
>>> be the appropriate one in my case). Is it possible?
>>> The work around I found is to populate an ad'hoc field in the point
>>> layer with overlapping polygon id, thanks to the SpatialJoin plugin, then I
>>> create a one-to-many relation in the project between the two layers in
>>> other to use relation_aggregate function.
>>> But I expected something more direct.
>>>
>>> Any hint, please?
>>>
>>> Thanks,
>>> Harrissou
>>>
>>> _______________________________________________
>>> Qgis-user mailing list
>>> [hidden email]
>>> List info: http://lists.osgeo.org/mailman/listinfo/qgis-user
>>> Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-user
>>>
>>> ------------------------------
>>> If you reply to this email, your message will be added to the discussion
>>> below:
>>> http://osgeo-org.1560.x6.nabble.com/Using-aggregates-functio
>>> ns-to-count-intersected-features-from-another-layer-tp5291420.html
>>> To start a new topic under Quantum GIS - User, email [hidden email]
>>> To unsubscribe from Quantum GIS - User, click here.
>>> NAML
>>> <http://osgeo-org.1560.x6.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>>
>>>
>>> ------------------------------
>>> View this message in context: Re: Using aggregates functions to count
>>> intersected features from another layer
>>> <http://osgeo-org.1560.x6.nabble.com/Using-aggregates-functions-to-count-intersected-features-from-another-layer-tp5291420p5291443.html>
>>> Sent from the Quantum GIS - User mailing list archive
>>> <http://osgeo-org.1560.x6.nabble.com/Quantum-GIS-User-f4125267.html> at
>>> Nabble.com.
>>>
>>> _______________________________________________
>>> Qgis-user mailing list
>>> Qgis-user at lists.osgeo.org
>>> List info: http://lists.osgeo.org/mailman/listinfo/qgis-user
>>> Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-user
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Qgis-user mailing list
>>> Qgis-user at lists.osgeo.org
>>> List info: http://lists.osgeo.org/mailman/listinfo/qgis-user
>>> Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-user
>>
>>
>>
>>
>> _______________________________________________
>> Qgis-user mailing list
>> Qgis-user at lists.osgeo.org
>> List info: http://lists.osgeo.org/mailman/listinfo/qgis-user
>> Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-user
>>
>
>
>
> --
> -----------
>    |\__
> (:>__)(
>    |/
> Soluciones Geoinformáticas Libres
> http://geotux.tuxfamily.org/
> http://twitter.com/GeoTux2
> http://about.me/germancarrillo
>
> <http://gis.stackexchange.com/users/4972/germ%c3%a1n-carrillo>
>
>
> _______________________________________________
> Qgis-user mailing listQgis-user at lists.osgeo.org
> List info: http://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-user
>
>
>
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org
> List info: http://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20161027/1bad82d3/attachment.html>


More information about the Qgis-user mailing list