Skip to content

Commit 0408ad9

Browse files
author
doruk.ozturk
committed
Optimize min max algorithm
1 parent 5126390 commit 0408ad9

1 file changed

Lines changed: 13 additions & 4 deletions

File tree

dataqs/helpers.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -397,8 +397,15 @@ def add_keywords(keyword_list, extra_keywords):
397397

398398

399399
def _getMinMax(layer, field):
400-
fieldVal = [f.GetField(field) for f in layer]
401-
return {'properties': {'min': min(fieldVal), 'max': max(fieldVal)},
400+
min_value, max_value = float('inf'), float('-inf')
401+
for f in layer:
402+
value = f.GetField(field)
403+
if value < min_value:
404+
min_value = value
405+
if value > max_value:
406+
max_value = value
407+
408+
return {'properties': {'min': min_value, 'max': max_value},
402409
'type': 'numeric'}
403410

404411

@@ -407,7 +414,7 @@ def _getNumericFields(layer):
407414

408415
layerDefinition = layer.GetLayerDefn()
409416
numFields = []
410-
for i in range(layerDefinition.GetFieldCount()):
417+
for i in xrange(layerDefinition.GetFieldCount()):
411418
fieldName = layerDefinition.GetFieldDefn(i).GetName()
412419
fieldTypeCode = layerDefinition.GetFieldDefn(i).GetType()
413420
fieldDef = layerDefinition.GetFieldDefn(i)
@@ -423,7 +430,9 @@ def get_vector_layer_info(geojson):
423430

424431
dataSource = ogr.Open(geojson)
425432
layer = dataSource.GetLayer()
426-
geom = {1: 'point', 2: 'line', 3: 'polygon'}
433+
geom = {0: 'polygon', 1: 'point', 2: 'line',
434+
3: 'polygon', 4: 'polygon', 5: 'polygon',
435+
6: 'polygon'}
427436
subType = geom[layer.GetGeomType()]
428437
count = layer.GetFeatureCount()
429438
numFields = _getNumericFields(layer)

0 commit comments

Comments
 (0)