Máximos, mínimos y número de registros para los campos obtenidos mediante una QgsFieldComboBox en un plugin de QGIS

En el post pasado se señaló cómo programar en un Plugin de QGIS una QgsFieldComboBox. El objetivo, para cada capa vectorial que obtenía su referencia a través de una QgsMapLayerComboBox, fue el despliegue automático de los nombres de sus campos de atributos. En este post vamos a usar esa referencia nominal para obtener el índice del campo y así poder obtener sus valores mínimos y máximos con vista a una consulta de tipo SQL. Como siempre, las pruebas las vamos a ejecutar a través de la Python Console.

El método ‘pendingFields’ de la clase QgsVectorLayer convierte objetos de tipo vectorial en objetos de la clase QgsField; para los cuales es muy sencillo obtener el índice del campo cuando se le pasa como argumento el nombre de este. El índice es el parámetro que se necesita para evaluar los valores mínimos y máximos de cada campo mediante métodos de QgsVectorLayer.

El extracto de código siguiente representa la programación del slot asociado al click del botón OK:

.
.
.

    def sql_function(self):
        
        vlayer = self.wcbL.currentLayer()
        n = vlayer.featureCount()
        field_name = self.wcbF.currentText()
        idx_field = vlayer.pendingFields().fieldNameIndex(field_name)
        print "{} features in {}".format(n, vlayer.name())
        print "minimum of {} is {}".format(field_name, vlayer.minimumValue(idx_field))
        print "maximum of {} is {}".format(field_name, vlayer.maximumValue(idx_field))
.
.
.

Cuando se ejecuta el plugin con los dos vectoriales de la imagen siguiente en la Map View, la Python Console registra que la layer random_points presenta 25 features y valores mínimos y máximos de 1306.0 y 2527.0, respectivamente, para el campo rast_value (después del primer click en OK). Cuando se selecciona la capa line, automáticamente se tienen en la Combo Box de campos los nombres de estos y al escoger ‘type’, que es de string de caracteres, el hecho de clickear en OK nuevamente produce en la ventana de la Python Console el resultado de 3 features y valores mínimos y máximos, respectivamente, de ‘first’ y ‘third’.

query1

La evaluación previa del tipo e intervalo de valores de los atributos y el número de registros serían la base de una consulta más específica del tipo SQL.

Esta entrada fue publicada en Plugin, PyQGIS, QGIS, SIG, Software Libre. Guarda el enlace permanente.

2 respuestas a Máximos, mínimos y número de registros para los campos obtenidos mediante una QgsFieldComboBox en un plugin de QGIS

  1. Pingback: Display de estadísticas de campos de atributos en un plugin de QGIS | El Blog de José Guerrero

  2. Pingback: Plugin de QGIS para producir vectoriales por selección de rasgos con base en consultas tipo SQL | El Blog de José Guerrero

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s