#37179: Slicing a GDAL layer should scan layer once only
-------------------------------------+-------------------------------------
Reporter: wongcht | Owner: wongcht
Type: | Status: closed
Cleanup/optimization |
Component: GIS | Version: dev
Severity: Normal | Resolution: needsinfo
Keywords: gdal | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 1 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by David Smith):
* resolution: => needsinfo
* status: assigned => closed
Comment:
A benchmark script for performance improvements is helpful to assess both
the current situation and to compare any improvements against.
I wonder if a simplification of the current code is enough.
[
https://gdal.org/en/latest/doxygen/ogr__api_8h.html#a29d378c5092db944966398de8d1ac964
get_featre()] has a fallback if random read is not supported and therefore
we could rely on the underlying c library. Reducing the number of c api
calls is likely to be beneficial, but would need to have a benchmark to
prove.
That is `_make_feature()` could become.
{{{
def _make_feature(self, feat_id):
"""
Helper routine for __getitem__ that constructs a Feature from the
given
Feature ID.
"""
try:
return Feature(capi.get_feature(self.ptr, feat_id), self)
except GDALException:
pass
raise IndexError("Invalid feature id: %s." % feat_id)
}}}
I'll mark as needs info - a benchmark script showing the performance issue
would be the next step here. Do you have the capacity to write one up?
--
Ticket URL: <
https://code.djangoproject.com/ticket/37179#comment:2>