Cómo diseñar puntos en QGIS en función de múltiples atributos

13

Mientras trataba de encontrar una forma útil de mostrar terremotos, noté que no es tan fácil de administrar.

Me gustaría poder reconocer la "Magnitud", la "Fecha" y la "Profundidad" desde el estilo del punto. Algo como:

  • tamaño: basado en la magnitud
  • profundidad: color básico (ej. <15 rojo, 15-30 amarillo,> 30 azul)
  • fecha: intensidad del color como sombreado del 100% del color al blanco / ...

¿Hay alguna manera de hacerlo sin definir docenas de reglas?

Chris Pallasch
fuente

Respuestas:

14

¿Por qué no usar el etiquetado basado en reglas? Podría facilitar mucho la tarea si usa categorías para varios gradientes en función de los datos de sus atributos. Desde mi punto de vista, el uso de categorías en el etiquetado basado en reglas es una de las principales ventajas de QGIS.

Para sus datos (sin conocer la estructura) recomendaría el siguiente flujo de trabajo:

  • Haga un gradiente simple basado en reglas para sus valores de fecha a través del modelador de puntos categorizado o graduado (estilo blanco o grisáceo).
  • Ajuste el tamaño de los puntos haciendo clic en "avanzado" y "tamaño de campo escalado". Aquí selecciona la magnitud de tus puntos. ¡Guarde el estilo resultante como estilo SLD!
  • Vaya al etiquetado basado en reglas, cargue su SLD y agregue para cada punto de datos por clic derecho una categoría (o rango) con el gradiente de color de su gusto para su profundidad y aplíquelo a cada conjunto de reglas.

De esta manera (también puede hacer una categoría de reglas en una categoría ;-)): ingrese la descripción de la imagen aquí

  • Después, no olvide ajustar el orden de renderizado y tal vez controlar el tamaño de los puntos.

Entiendo que esta solución depende de algún esfuerzo (mouseclicks) en su sitio, pero al final un mapa hermoso siempre vale la pena.

Zarapito
fuente
4

Actualizado para QGIS 2.8

Suponiendo datos como este:

id | magnitude | date | depth
 1 |     4     | 1912 |  100
 2 |     3     | 1932 |   85

Usando un estilo definido por datos, establezca el tamaño que será controlado por el campo de magnitud.

Para el color, que se define por fecha y profundidad, puede usar la siguiente expresión

CASE 
  WHEN depth < 15 
       THEN color_hsl(1, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 15 AND depth < 30 
       THEN color_hsl(60, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 30 
       THEN color_hsl(240, 100, scale_linear(date, 1900, 2015, 100, 50)
END

Los puntos "antiguos" de 1900 serán blancos hsl (x, x, 100) mientras que los nuevos puntos son más coloridos hasta hsl (x, x, 50).

bajo oscuro
fuente
3

La otra opción es usar un asistente de tamaño que esté disponible para cada estilo de capa de datos. Supongamos que clasificó sus datos de puntos en función del color utilizando un determinado atributo. Simplemente haga clic derecho en cada categoría y seleccione Cambiar tamaño. Debería mostrar un cuadro de diálogo de tamaño. Luego haga clic en el filtro de expresión y luego seleccione Asistente de tamaño.

ingrese la descripción de la imagen aquí

El cuadro de diálogo del asistente de tamaño tiene la opción de elegir la columna para dimensionar. También puede elegir el método de escala por el que desea escalar sus símbolos y luego proporcionar el rango de tamaños y el rango correspondiente de sus valores de datos. ingrese la descripción de la imagen aquí Tenga en cuenta que deberá hacer esto para cada categoría de sus datos.

sherpas
fuente
No sé por qué esta respuesta no es más votada, esto es lo que quería, y es, con mucho, la más rápida
Scott Staniewicz