Como estilizar pontos no QGIS com base em vários atributos

13

Enquanto tentava encontrar uma maneira útil de exibir terremotos, notei que não é tão fácil de gerenciar.

Eu gostaria de poder reconhecer "Magnitude", "Data" e "Profundidade" a partir do estilo da questão. Algo como:

  • tamanho: com base na magnitude
  • profundidade: cor básica (ex. <15 vermelho, 15-30 amarelo,> 30 azul)
  • data: intensidade da cor como sombreamento de 100% de cor para branco / ...

Existe uma maneira de fazer isso sem definir dezenas de regras?

Chris Pallasch
fonte

Respostas:

14

Por que não usar a rotulagem baseada em regras? Você pode facilitar muito a tarefa, se usar categorias para vários gradientes com base nos dados de seu atributo. Do meu ponto de vista, o uso de categorias na rotulagem baseada em regras é uma das principais vantagens do QGIS.

Para seus dados (sem conhecer a estrutura), eu recomendaria o seguinte fluxo de trabalho:

  • Faça um gradiente simples baseado em regras para os valores de data por meio do modelador de pontos categorizados ou graduados (estilo branco ou cinza).
  • Ajuste o tamanho dos pontos clicando em "avançado" e "tamanho de campo dimensionado". Aqui, selecione a magnitude dos seus pontos. Salve o estilo resultante como estilo SLD!
  • Vá para a rotulagem baseada em regras, carregue no seu SLD e adicione para cada ponto de dados por clique com o botão direito do mouse em uma categoria (ou intervalo) com o gradiente de cores de sua preferência para a sua profundidade e aplique-o a cada conjunto de regras.

Assim (você também pode criar uma categoria sobre regras em uma categoria ;-)): insira a descrição da imagem aqui

  • Depois, não se esqueça de ajustar a ordem de renderização e, talvez, controlar o tamanho dos pontos.

Entendo que esta solução depende de algum esforço (cliques do mouse) em seu site, mas no final, um mapa bonito sempre vale a pena.

Maçarico
fonte
4

Atualizado para QGIS 2.8

Supondo dados como este:

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

Usando um estilo definido por dados, defina o tamanho a ser controlado pelo campo de magnitude.

Para a cor, definida por data e profundidade, você pode usar a seguinte expressão

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

Os pontos "antigos" de 1900 serão hsl brancos (x, x, 100), enquanto os novos pontos são mais coloridos até hsl (x, x, 50).

underdark
fonte
3

A outra opção é usar um assistente de tamanho disponível para cada estilo de camada de dados. Digamos que você categorizou seus dados de ponto com base na cor usando um determinado atributo. Simplesmente clique com o botão direito do mouse em cada categoria e selecione Alterar tamanho. Ele deve exibir uma caixa de diálogo de tamanho. Em seguida, clique no filtro de expressão e selecione Assistente de tamanho.

insira a descrição da imagem aqui

A caixa de diálogo do assistente de tamanho tem a opção de escolher a coluna a ser dimensionada. Você também pode escolher o método de dimensionamento pelo qual deseja dimensionar seus símbolos e, em seguida, fornecer o intervalo de tamanhos e o intervalo correspondente dos seus valores de dados. insira a descrição da imagem aqui Observe que você precisará fazer isso para cada categoria dos seus dados.

sherpas
fonte
Eu não sei por que essa resposta não é mais voted- é isso que eu queria, e é de longe o mais rápido
Scott Staniewicz
0

O @spatialthoughts executa um site tutorial muito bom para o qgis. Ele mudou o endereço desde que publicou originalmente há muitos anos atrás, e uma resposta para esta pergunta agora pode ser encontrada em http://www.qgistutorials.com/en/docs/3/basic_vector_styling.html . Ele aponta a mesma solução que o @sherpas faz aqui.

vtnate
fonte