Opened 3 hours ago

Last modified 3 hours ago

#37179 assigned Cleanup/optimization

Slicing a GDAL layer should scan layer once only — at Initial Version

Reported by: wongcht Owned by: wongcht
Component: GIS Version: dev
Severity: Normal Keywords: gdal
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: yes UI/UX: no

Description

In django.contrib.gis.gdal.layer's Layer.__getitem__, if a layer (with n features) does not support random read, slicing the layer would call _make_feature at most n times which this method scan the whole layer until feature id matched.

E.g. Slicing a layer for 3 features (id= 1,2,3) would scan the layer 3 times: [1] for id=1, [1,2] for id=2, [1,2,3] for id=3. Worse case would call __iter__ (capi.get_next_feature) for n(n+1)/2 times

A better iteration should scan the layer once only to get all features required. A possible fix FYR

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top