Skip to content

Documentação do Projeto PRISMA

Vinicius Schneider edited this page Dec 13, 2024 · 9 revisions

Este projeto tem como objetivo auxiliar em tarefas relacionadas a geoprocessamento, análise de dados geoespaciais, geração de layouts, manipulação de camadas, entre outras funcionalidades no ambiente QGIS.

Abaixo, apresentamos a estrutura do projeto, organizada por diretórios e arquivos, com uma breve descrição da função de cada um.

Principais diretórios/arquivos do projeto


Estrutura Geral

O projeto segue uma estrutura modular, separando a lógica em diretórios específicos:

  • analysis/: Rotinas de análise geoespacial, sobreposição de camadas e cálculos.
  • controllers/: Controladores que gerenciam a lógica de operações e interface com o usuário.
  • databases/: Módulos de conexão e manipulação de dados armazenados em bancos.
  • docs/: Documentação adicional.
  • libs/: Bibliotecas externas ou internas customizadas.
  • qgis/: Scripts para integração direta com QGIS (layouts, canvas, etc.).
  • screens/: Telas e interfaces gráficas (.ui files e controladores).
  • settings/: Configurações, camadas, janelas de configuração e manipulação de JSON.
  • shapefiles/: Armazenamento de dados geoespaciais em formato Shapefile.
  • styles/: Estilos para camadas, layouts e elementos visuais.
  • utils/: Ferramentas utilitárias, funções de apoio, pré-configurações.

analysis

  • overlay_analysis.py: Análise de sobreposição entre camadas geoespaciais, interseções e cálculo de estatísticas.

controllers

  • operation_controller.py: Gerencia operações do sistema, basicamente é responsável por montar a variável json contendo todas camadas e informações da comparação que será realizada.
  • screen_controller.py: Controla a interação entre as janelas, lógica da interface gráfica e comunicação entre front-end e back-end. Também é daqui que as camadas de entrada são carregadas.

databases

  • db_connection.py: Estabelece conexões com o banco de dados, executa queries e gerencia autenticação.
  • handle_selections.py: Manipula as camadas que foram selecionadas para comparação (Ex: Leitura de camada Shapefile, WFS, Banco de dados).

docs

Diretório usado para documentação adicional do projeto (manuais, guias).


libs

Bibliotecas externas ou internas.


qgis

  • init.py: Torna o diretório um pacote Python.
  • layout_manager.py: Gerencia layouts no QGIS (impressão, legendas, escalas).
  • map_canvas.py: Controla o canvas do mapa, interações do usuário (zoom, pan, seleção).
  • memorial.py: Gera ou manipula memoriais descritivos de polígonos e áreas.
  • image_republica.jpeg: Recurso de imagem (possivelmente para layouts).
  • spu.png: Recurso de imagem, possivelmente para ícones ou layouts.

screens

Contém .ui files (Qt Designer) e classes Python para janelas específicas da aplicação.


settings

  • init.py: Pacote Python.
  • config_Json/: Armazena um JSON contendo informações de todas camadas cadastradas, bem como estilos de camadas, basemap utilizado, etc.
    • init.py
  • config_layers.py: Configurações de camadas do QGIS (ordem, simbologia, visibilidade).
  • config_layers.ui: Interface gráfica para configuração de camadas.
  • config_window.py: Controla a janela principal de configurações (caminhos de dados, parâmetros padrão).
  • config_window.ui: Interface gráfica da janela de configurações principais.
  • dependencies/: Scripts relacionados à verificação e instalação de dependências.
    • env_tools.py: Ferramentas para configuração de ambiente.
    • example_print_table.py: Exemplo de tabela impressa (teste ou utilitário).
    • flag_dependencies.py: Verifica e marca dependências necessárias.
    • install_dependecies.py: Automatiza instalação de dependências externas.
  • json_tools.py: Funções para leitura, escrita e validação de arquivos JSON.
  • layer_infor.py: Funções para obter informações sobre camadas (nome, atributos, fonte).
  • layer_infor.ui: Interface gráfica para exibir informações da camada.

shapefiles

Armazena dados geoespaciais em formato Shapefile.


styles

Armazena alguns arquivos .qml e .sld para estilização das camadas do Prisma.


utils

  • init.py: Pacote Python.
  • data_processing.py: Funções de processamento de dados, conversão e limpeza.
  • default_styles.py: Estilos padrão para camadas, facilitando a padronização visual (Rodado a primeira vez que o Prisma é executado).
  • lyr_utils.py: Funções auxiliares para manipulação de layers (obter lista, atualizar simbologia).
  • pre_config_json.py: Carrega pré-configurações a partir de JSON antes da interface.
  • utils.py: Possui algumas funções genéricas que são utilizadas durante o fluxo do código.
  • wfs_2_qgs_layer.py: Converte camadas WFS para camadas QGIS, possibilitando uso offline.

Fluxo do código

A seguir, um fluxo que o código segue desde a seleção das camadas para comparação até a geração dos PDF's.

Fluxograma código