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?

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.



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).


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.


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.