Este post aborda o processo de configuração de simbologia através do atributo RGBA, permite ultrapassar uma limitação do QGIS, que se encontra ainda por resolver (http://hub.qgis.org/issues/11491). Resultou da necessidade de produzir a simbologia oficial para a carta de ocupação de solos Corine Land Cover (CLC) com base nos valores RGB.
Objetivo inicial:
Simbolizar a carta de ocupação de solos Corine Land Cover 2006 (CLC2006), por classes utilizando o sistema de cores RGBA.
1. A preparação União da tabela de atributos da CLC2006 com a tabela da nomenclatura que possuía os valores RGB. (Fig. 1) da informação consistiu:

2. Criação de novo campo denominado [rbga] do tipo texto com a concatenação dos campos R, G, B e a criação do parâmetro A (alfa) que corresponde ao grau de opacidade (Fig. 2).

Nota: Os valores do campo devem variar entre 0 e 255 separados por vírgula, o valor da opacidade é 255 para todas as classes (Fig. 3)

3. Com a coluna rgba criada na tabela de atributos, procedeu-se à configuração do estilo.

Problema
O mapa aparece corretamente simbolizado, mas a legenda não reflete as categorias criadas, todas aparecem a negro, não permitindo uma interpretação correta da informação.
Identificou-se que se trata-se de uma limitação do QGIS, que se encontra ainda por resolver (http://hub.qgis.org/issues/11491)
Solução
Criar um script python que faça a associação da cor à classe respetiva.
Com a ajuda do Alexandre Neto do grupo de utilizadores do QGIS PT, que produziu o seguinte script, é possível ultrapassar com sucesso o problema. Script disponível aqui.
from PyQt4.QtGui import QColor
iface = qgis.utils.iface
mc = iface.mapCanvas()
layer = mc.currentLayer()
features = layer.getFeatures()
color_dict = dict()
for feature in features:
cat = feature.attribute('designacao')
rgba_value = feature.attribute('rbga')
color_dict[cat] = rgba_value
renderer = layer.rendererV2()
categories = renderer.categories()
for category in categories:
value = category.value()
cat_id = renderer.categoryIndexForValue(value)
print cat_id
if value != u'':
rgba = color_dict[value].split(',')
rgba = [int(i) for i in rgba ]
color = QColor(rgba[0],rgba[1],rgba[2],rgba[3])
symbol = category.symbol()
symbol.setColor(color)
renderer.updateCategorySymbol(cat_id,symbol)
mc.refresh()
qgis.utils.iface.legendInterface().refreshLayerSymbology(layer)
Procedimentos de utilização do script:
1. Abrir a consola python (Módulos > Consola Python);

2. Dentro da consola abrir o script;

3. Editar as linhas 12 e 13 e adaptar ao nome das colunas relativas ao campo das categorias e ao campo com os valores RBGA. Gravar.

4. Definir estilo categorizado utilizando o campo respetivo;

5. Desativar a opção Substituir dados definidos;

6. Correr o script.

Resultado final
Mapa corretamente simbolizado com a respetiva legenda!

