¿Estilizar automáticamente el ráster con valores únicos en QGIS?

16

En ArcMap, es posible calcular automáticamente los valores únicos para un ráster y luego aplicar un estilo diferente a cada valor único (ver imagen 1).

Sin embargo, en QGIS, tengo que agregar manualmente valores para el estilo cuando uso el estilo "pseudocolor de banda única" (ver imagen 2). ¿Hay alguna forma de rellenar automáticamente los valores únicos como lo hace ArcMap?

ArcMap:

QGIS(¿cómorellenarautomáticamentelalistadevaloresconvaloresúnicos?):

    
pregunta Peet Whittaker 21.04.2016 - 11:00

2 respuestas

2

Para aquellos que todavía están buscando esto. Se han agregado valores ráster únicos a QGIS 3. "Agregado por Nyall Dawson hace aproximadamente 1 año

[FUNCIÓN] Permite clasificar el renderizador con paletas usando valores únicos desde una capa ráster

Agrega una forma fácil de diseñar rásteres discretos, como las clases de uso de la tierra utilizando el renderizador paleteado. Solo selecciona el renderizador paleteado, elige una banda, luego presiona el botón "Agregar valores únicos". El único Los valores de píxel se recuperarán de la capa y se asignará un color. a cada uno usando la rampa de color seleccionada actualmente. "

    
respondido por el Baswein 11.05.2018 - 16:15
7

Aquí hay un enfoque que podría ser útil. La herramienta GRASS r.report es capaz de calcular una estadística básica para cada valor único en una capa ráster:

Lasalidasepuedeescribircomounarchivodetextosimpleconesteaspecto(izquierda:valoresúnicos,derecha:áreacubiertaporcadavalor):

+-----------------------------------------------------------------------------+|CategoryInformation|square||#|description|miles||-----------------------------------------------------------------------------||1111|..............................|1.249845||1113|..............................|0.062666|[...]|3412|..............................|0.013926||4111|..............................|4.713902||4211|..............................|0.083555||4212|..............................|0.135777||-----------------------------------------------------------------------------||TOTAL|17.048727|+-----------------------------------------------------------------------------+

Elsiguientescriptdegeoprocesamientotomaestearchivodetextocomoentradayconfiguraunrenderizadoradecuado(concoloresaleatoriosparamayorcomodidad)paralacaparáster(InspiradoporLAWHEAD,J.:QGISPythonProgrammingCookbook,p.135):

##giswg=group##thexml=file##theraster=rasterfromrandomimportrandintfromPyQt4.QtGuiimportQColorfromqgis.coreimport*myraster=processing.getObject(theraster)infile=open(thexml,'r')univalues=[l.split('|')[1]forlin[fforfininfile.readlines()][4:-4]]s=QgsRasterShader()c=QgsColorRampShader()c.setColorRampType(QgsColorRampShader.EXACT)i=[]foruinunivalues:i.append(QgsColorRampShader.ColorRampItem(float(u),QColor('#%06x'%randint(0,2**24)),u))c.setColorRampItemList(i)s.setRasterShaderFunction(c)ps=QgsSingleBandPseudoColorRenderer(myraster.dataProvider(),1,s)myraster.setRenderer(ps)

GraciasalascapacidadesdeprocesamientolegendariasdeQGIS,puedeponerestosdosjuntosenelmodeladorgráficoyagregarunparámetrorasterparasimplementeelegirunacaparastercargada:

Despuésdeguardarelmodelo,alhacerdobleclicenélenlacajadeherramientasdeprocesamiento,sepuedeutilizarcomounaherramientanormal:

Conunresultadoconesteaspecto(afloramientodeunconjuntodedatosnatura2000rasterizado):

Oenlaspropiedadesdelacapa:

Creo que esto necesita un poco de refinamiento en la experiencia del usuario, pero es un primer paso.

    
respondido por el Jochen Schwarze 08.08.2016 - 12:18

Lea otras preguntas en las etiquetas