2 votos

Rellenar las características de la tabla de atributos utilizando otra característica en QGIS

Me gustaría rellenar una tabla de atributos en QGIS para la característica 'Color' basada en otra característica de la tabla de atributos.

En este momento se ve así para las características "Dirección" y "Color":

Dirección Color

norte ninguno sur ninguno este ninguno oeste ninguno

Me gustaría llenar la característica Color con códigos de color RGB para trazarlos directamente usando mi código. De momento sólo he conseguido añadir un nuevo campo para la característica Color (las otras características ya están implementadas). Por ejemplo, si hay Norte, el código de color '0,165,0,255' se insertará en la otra característica.

# b is the shapefile applied

   from PyQt4.QtCore import * 
        b.dataProvider().addAttributes([ QgsField("Farben", QVariant.String) ])
        b.updateFields()

3voto

Anton8000 Puntos 165

Puede utilizar un diccionario :

lyr = iface.activeLayer()

d = {'N':'1,1,1',
     'S':'2,2,2',
     'W':'3,3,3',
     'E':'4,4,4'} #Add more directions here

dirfield = 'Direction'
rgbfield = 'RGB'

lyr.startEditing()
for f in lyr.getFeatures():
    if f[dirfield] in d:
        newval = d[f[dirfield]]
    else:
        newval = '0,0,0'
    _=f.setAttribute(f.fieldNameIndex(rgbfield), newval)
    _=lyr.updateFeature(f)

lyr.commitChanges()

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X