[QGIS-Developer] point in polygon strikes again: big performance issue

Jorge Gustavo Rocha jgr at di.uminho.pt
Sun Mar 14 16:53:22 PDT 2021


Hi Nyall,

I've tried with:

array_sum( overlay_contains( '03-04-21', Active ) )

as suggested by Harrissou. Now I understand why it isn't much faster
than an aggregate.

We have a call for grants ending within a week. Maybe someone jumps in
to rewrite the expression engine with speed improvements ;-)

Regards,

Jorge

Às 23:40 de 14/03/21, Nyall Dawson escreveu:
> On Mon, 15 Mar 2021 at 09:34, Jorge Gustavo Rocha <jgr at di.uminho.pt> wrote:
>>
>> Hi David,
>>
>> Thanks for replication this issue. "Join attributes by location
>> (summary)" is definitely the best choice for this use case. It creates
>> the new layer in a few seconds. That's why I think we are missing
>> something (spatial indexes?, dependency graph?) in the expression engine.
> 
> Actually there's LOTS missing
> - if you're not using the overlay_* method, then spatial indices won't
> be used at all
> - even if you use the overlay_* methods, the overlay tests are not
> optimised in any way (they don't use prepared geometries), so will
> always be orders of magnitude slower than the processing tools.
> 
> Nyall
> 
> 
> 
>>
>> There are anomalies in the data. That's almost the same with any dataset
>> we start working with :-)
>>
>> Regards,
>>
>> Jorge
>>
>> Às 21:47 de 14/03/21, David Strip escreveu:
>>> I was able to replicate your problem on my system (Win 10, QGIS 3.10.5).
>>>
>>> I tried "Join attributes by location (summary)". This computed the
>>> result in about 5 seconds.
>>> There are some anomalies in the data, however. For example, there's an
>>> entry for Belgium with province value "Unknown" and no lat/lon, so it
>>> doesn't get included in the total. Also, the point for Northern
>>> Territories, Australia, lies in the ocean, so it is not contained in the
>>> Australia polygon.
>>>
>>
>> J. Gustavo
>> --
>> Jorge Gustavo Rocha
>> Departamento de Informática
>> Universidade do Minho
>> 4710-057 Braga
>> Gabinete 3.29 (Piso 3)
>> Tel: +351 253604480
>> Fax: +351 253604471
>> Móvel: +351 910333888
>> skype: nabocudnosor
>> _______________________________________________
>> QGIS-Developer mailing list
>> QGIS-Developer at lists.osgeo.org
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

J. Gustavo
-- 
Jorge Gustavo Rocha
Departamento de Informática
Universidade do Minho
4710-057 Braga
Gabinete 3.29 (Piso 3)
Tel: +351 253604480
Fax: +351 253604471
Móvel: +351 910333888
skype: nabocudnosor


More information about the QGIS-Developer mailing list