Criação de um painel interativo no QGIS: análise dinâmica com Data Plotly, widgets e expressões

Objetivo

Criar uma interface de monitoramento dinâmico no QGIS com :

  • Gráficos interativos (via Data Plotly)
  • Filtros de usuário simples (intervalo, data, tipo de resíduo)
  • Indicadores-chave e estatísticas dinâmicos
  • Um mapa que se adapta aos dados filtrados

Tudo isso sem sair da interface do QGIS!

Caso de uso: monitoramento de resíduos em praias

Vamos pegar nossa camada releves_dechets com :

Campo Descrição
praia Nome da praia
tipo_resíduo Categoria do resíduo
quantidade Quantidade observada
data_obs Data da observação

Objetivo: permitir que um usuário filtre os dados (por intervalo, data etc.) e veja imediatamente:

  • Um mapa atualizado
  • Um gráfico dinâmico
  • Indicadores atualizados


Etapa 1: filtrar dados interativamente

  1. Abra a tabela de atributos da camada (clique com o botão direito do mouse > “Abrir a tabela de atributos”).
  2. Clique no ícone do funil para ativar o filtro.
  3. Em seguida, clique no ícone do formulário de filtro.

Os campos aparecerão com os widgets definidos (valores únicos, intervalo de datas, etc.). Selecione os valores desejados e clique em “Apply filter” (Aplicar filtro).

Esse filtro não modifica diretamente o mapa, mas você pode :

  • usar somente as entidades selecionadas no Data Plotly,
  • ou criar uma camada virtual com um filtro SELECT * FROM releves_waste WHERE ….


Etapa 2: Criar um gráfico interativo com o Data Plotly

  1. Abra o painel Data Plotly (menu View > Panels > Data Plotly).
  2. Escolha o tipo de gráfico (por exemplo, gráfico de barras).
  3. Configure:

    • Eixo X: type_dechet
    • Eixo Y: quantidade
    • Camada: sua camada filtrada
    • Marque Usar somente os recursos selecionados se estiver filtrando pela tabela

Assim que você modificar o filtro ou selecionar outros recursos, o gráfico será atualizado.


Etapa 3: exibir indicadores dinâmicos com rótulos

Para evitar scripts complexos ou visualizações temporárias, o QGIS permite que você exiba estatísticas dinâmicas diretamente no mapa, na forma de rótulos anexados às características.

Objetivo

Exibir, somente para características selecionadas:

  • O nome da praia
  • A quantidade total de resíduos observada nessa faixa

Método

  • Ative os rótulos em sua camada.
  • Na expressão do rótulo, use :

if(
  is_selected(),
  "plage"  || '\n'  ||  
  'Total déchets : ' || 
  aggregate(
    'suivi_plages_dechets',
    'sum',
    "quantite",
    filter:= "plage" = attribute(@parent, 'plage')
  ),
  ''
)

Essa expressão verifica se o intervalo está selecionado (is_selected()) e, em seguida, exibe :

  • Seu nome
  • A soma do lixo para esse intervalo, calculada dinamicamente por meio de aggregate().

Resultado

Quando você seleciona um ou mais intervalos, o rótulo é exibido somente para os selecionados, com seus respectivos totais de lixo.


Variante (opcional)

Você também pode filtrar por meio da tabela de atributos ou de um formulário de pesquisa, e os rótulos reagirão automaticamente à seleção.


Etapa 4: Organizar o espaço de trabalho

Crie uma interface de painel:

  • Esquerda: tabela de atributos ou filtros
  • Centro: mapa
  • Parte inferior: gráfico do Data Plotly
  • Direita: contadores/estatísticas (por meio de caixas de texto)

Salve seu layout em Project > Save layout (Projeto > Salvar layout).


Para resumir

Elemento Ferramentas usadas
Filtragem Tabela de atributos / Formulário
Gráficos reativos Data Plotly
Estatísticas dinâmicas Expressões / Widgets personalizado
Interface do usuário Organização do espaço de trabalho


Bônus: dicas avançadas

  • Crie uma camada virtual com um filtro dinâmico para centralizar os dados exibidos
  • Use as funções CASE e regexp_match() para agrupamentos avançados
  • Teste os plug-ins: Quick Filter, Attribute Table Filter, Input Widgets
  • Considere um projeto PostgreSQL/PostGIS com visualizações materializadas filtráveis por data ou local


Para continuar…

Em um artigo futuro, veremos como transformar esse painel do QGIS em uma interface da Web com o :

  • Exportação para o QGIS Server ou Lizmap
  • Painel on-line filtrável (intervalo, data, etc.)
  • Integração em um site participativo ou cidadão


Si cet article vous a intéressé et que vous pensez qu'il pourrait bénéficier à d'autres personnes, n'hésitez pas à le partager sur vos réseaux sociaux en utilisant les boutons ci-dessous. Votre partage est apprécié !

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *