Interesante, esto también trabajó para mí antes (yo lo he utilizado varias veces), pero también falla para mí en QGIS 2.18.2.
De todos modos, una alternativa es crear en su lugar un campo que contiene las zonas para cada característica y, a continuación, utilizar este campo en su expresión select. Usted puede hacer esto mediante la creación de una secuencia de comandos que se pueden agregar por ir a:
Processing Toolbox > Scripts > Tools > Create new script
El siguiente código es tomado de su enlace, pero ligeramente modificado para que se ejecute desde el procesamiento de la caja de herramientas:
##Example=name
##Layer=vector point
##Field_Name=string
from qgis.core import QgsField
from math import floor
from PyQt4.QtCore import QVariant
layer = processing.getObject(Layer)
layer.dataProvider().addAttributes([QgsField(str(Field_Name), QVariant.String)])
layer.updateFields()
idx = layer.fieldNameIndex(str(Field_Name))
layer.startEditing()
for feat in layer.getFeatures():
pt = feat.geometry().centroid().asPoint()
longitude = pt.x()
latitude = pt.y()
zone_number = floor(((longitude + 180) / 6) % 60) + 1
if latitude >= 0:
zone_letter = 'N'
else:
zone_letter = 'S'
layer.changeAttributeValue(feat.id(), idx, '%d%s' % (int(zone_number), zone_letter))
layer.commitChanges()
Ejemplo:
-
Rellena conjunto de datos desde el enlace:
-
Interfaz de secuencia de comandos:
-
Nuevo campo de atributo añadido que contienen zonas de
-
Resultado de la selección de las zonas por la expresión (resaltado en amarillo):