Skip to content

AdaptaBrasil/PreProcessing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projeto: Análise Espacial de Indicadores

Introdução

O Projeto de Análise Espacial de Indicadores é uma iniciativa que visa aprimorar a análise e visualização de dados espaciais, permitindo a junção de indicadores em malhas geoespaciais, geração de matrizes de confusão para N casos e o merge de indicadores raster em malhas. O projeto utiliza ferramentas e bibliotecas Python, como geopandas, pandas, pyproj, rasterio, entre outras, para manipulação e processamento de dados tabulares e espaciais.

Menu

Aqui estão os capítulos disponíveis para explorar neste projeto:

Instalação De Dependências do Projeto

Pré-requisitos

  • Python 3.12 ou superior
  • Poetry para gerenciamento de dependências

Instalação

# 1.1 Clone o repositório
git clone https://github.com/AdaptaBrasil/PreProcessing
cd PreProcessing

#  1.2 Crie e ative um ambiente virtual (opcional, mas recomendado)
python -m venv .venv

# 1.3 Ative o ambiente virtual
source .venv/bin/activate # No Linux/MacOS
.venv\Scripts\activate # No Windows

# 2. Instale o Poetry (se necessário)
pip install poetry

# 3. Instale as dependências
poetry install

# 4. Ative o ambiente virtual
eval $(poetry env activate)

Merge de Indicadores Shapefiles em Malha

Este script Python, chamado merge_shapefiles_mesh.py, permite realizar o merge de indicadores armazenados em arquivos Shapefile com uma malha geoespacial. O script utiliza diversas bibliotecas Python, como pandas, geopandas, pyproj, entre outras, para manipulação e processamento dos dados espaciais e tabulares.

Requisitos

Certifique-se de ter os seguintes requisitos instalados:

  • Python 3
  • Bibliotecas Python: pandas, geopandas, pyproj, glob3, progress

Você pode instalar as bibliotecas necessárias executando o seguinte comando:

poetry install

Como usar

Para executar o script, utilize o seguinte comando:

python3 merge_shapefiles_mesh.py --mesh_file=<mesh_file_path> --mesh_file_pk=<mesh_file_pk> --indicator_files_mask=<indicator_files_mask> --column_relation_file=<column_relation_file_name> --new_mesh_file=<updated_mesh_file_path> --average --debug --output_folder=<output_folder_path>
  • --mesh_file: Caminho para o arquivo Shapefile que contém a malha geoespacial.
  • --mesh_file_pk: Nome do campo que serve como chave primária (ID) na malha.
  • --indicator_files_mask: Caminho para a máscara de arquivos dos indicadores. O script usará a função glob para encontrar os arquivos indicadores.
  • --column_relation_file: Caminho para o arquivo que contém a relação entre os nomes dos arquivos indicadores e as colunas associadas na malha.
  • --new_mesh_file: Caminho para o novo arquivo Shapefile atualizado, que conterá as informações dos indicadores raster agregados aos polígonos da malha geoespacial.
  • --average: Parâmetro opcional para calcular a média dos valores dos pixels dentro de cada polígono da malha. Se não for fornecido, o valor máximo será considerado.
  • --debug: Parâmetro opcional para ativar o modo de depuração, exibindo informações adicionais durante a execução.
  • --output_folder: Caminho para o diretório onde os arquivos de saída serão salvos. O diretório será criado caso não exista.

Funcionamento

O script realiza o seguinte processo:

  1. Carrega a malha geoespacial a partir do arquivo Shapefile especificado.
  2. Verifica se existe um arquivo de relação de colunas. Se não existir, cria um novo.
  3. Procura e carrega os arquivos dos indicadores (Shapefiles) baseados na máscara fornecida.
  4. Itera sobre cada arquivo de indicador, realizando as etapas de pré-processamento e junção (interseção) com a malha.
  5. Calcula a média ponderada ou o valor máximo dos indicadores para cada polígono da malha, dependendo do valor do parâmetro --average.
  6. Atualiza a malha com os novos valores dos indicadores.
  7. Salva o novo arquivo da malha atualizado e o arquivo de relação de colunas.

Observações

  • Certifique-se de que o ambiente Python tenha as bibliotecas necessárias instaladas. Caso não tenha, você pode instalar as dependências listadas anteriormente.
  • O script suporta apenas arquivos Shapefile (.shp) para a malha e os indicadores.

Saída

A saída deste script inclui a criação de um novo arquivo Shapefile atualizado, contendo as informações dos indicadores raster agregados aos polígonos da malha geoespacial. Além disso, é gerado um arquivo de relação de colunas, no formato Excel, que mostra a correspondência entre os nomes dos arquivos indicadores e as colunas associadas na malha. Durante a execução, o script também apresenta informações sobre o progresso do processamento, incluindo o número de arquivos de indicadores processados e o tempo decorrido. Eventuais erros e exceções são mostrados para facilitar a depuração e o ajuste necessário no processo de mesclagem.

Exemplo de Uso

python3 merge_shapefiles_mesh.py --mesh_file=local_data/malha/ferrovias.shp --mesh_file_pk=object_id --indicator_files_mask=local_data/indicadores/*.shp --column_relation_file=relacao_arquivos_colunas_malha_rodovias.xlsx --new_mesh_file=indicadores_rodovias.shp --average --debug --output_folder=output/result_shapefiles_mesh

Neste exemplo, o script será executado com o arquivo Shapefile da malha em local_data/malha/ferrovias.shp, usando o campo object_id como chave primária na malha. Os arquivos indicadores serão procurados na pasta local_data/indicadores/, e as informações sobre os indicadores e as colunas utilizadas serão lidas a partir do arquivo relacao_arquivos_colunas_malha_rodovias.xlsx. O novo arquivo Shapefile da malha atualizada será salvo em output/result_shapefiles_mesh, com a opção de calcular a média dos valores dos pixels dentro de cada polígono ativada (--average). O modo de depuração será ativado para exibir informações adicionais durante a execução (--debug).

Merge de Indicadores Rasters em Malha

Este script Python, denominado merge_rasters_mesh.py, permite realizar o merge de indicadores armazenados em arquivos Raster com uma malha geoespacial. O script utiliza bibliotecas Python como rasterio, numpy, pandas, cv2 (OpenCV), entre outras, para processar dados espaciais e tabulares.

Requisitos

Certifique-se de ter os seguintes requisitos instalados:

  • Python 3
  • Bibliotecas Python: rasterio, numpy, pandas, opencv-python-headless, progress, pyproj

Você pode instalar as bibliotecas necessárias executando o seguinte comando:

poetry install

Como usar

Para executar o script, utilize o seguinte comando:

python3 merge_rasters_mesh.py --indicator_files_mask=<indicator_files_mask> --mesh_file=<mesh_file_path> --column_relation_file=<column_relation_file_name> --new_mesh_file=<updated_mesh_file_path> --average --debug --output_folder=<output_folder_path>
  • --indicator_files_mask: Caminho para a máscara de arquivos dos indicadores. A função glob será usada para encontrar os arquivos indicadores. Exemplo: directory/*.tif.
  • --mesh_file: Caminho para o arquivo Shapefile que contém a malha geoespacial. Exemplo: mesh.shp.
  • --column_relation_file: Caminho para o arquivo que contém a relação entre os nomes dos arquivos indicadores e as colunas associadas na malha. Exemplo: relation.xlsx.
  • --new_mesh_file: Caminho para o novo arquivo Shapefile atualizado, que conterá as informações dos indicadores Raster agregados aos polígonos da malha geoespacial. Exemplo: new_updated_mesh.shp.
  • --average: Parâmetro opcional para calcular a média dos valores dos pixels dentro de cada polígono da malha. Se não for fornecido, o valor máximo será considerado.
  • --debug: Parâmetro opcional para ativar o modo de depuração, exibindo informações adicionais durante a execução.
  • --output_folder: Caminho para o diretório onde os arquivos de saída serão salvos. O diretório será criado caso não exista.

Funcionamento

O script realiza o seguinte processo:

  1. Carrega a malha geoespacial a partir do arquivo Shapefile especificado.
  2. Verifica se existe um arquivo de relação de colunas. Se não existir, cria um novo.
  3. Procura e carrega os arquivos dos indicadores Raster baseados na máscara fornecida.
  4. Itera sobre cada arquivo de indicador Raster, realizando as etapas de pré-processamento e junção com a malha geoespacial.
  5. Calcula a média ponderada ou o valor máximo dos indicadores para cada polígono da malha, dependendo do valor do parâmetro --average.
  6. Atualiza a malha com os novos valores dos indicadores.
  7. Salva o novo arquivo da malha atualizado e o arquivo de relação de colunas.

Observações

  • Certifique-se de que o ambiente Python tenha as bibliotecas necessárias instaladas. Caso não tenha, você pode instalar as dependências listadas anteriormente.
  • O script suporta apenas arquivos Raster (.tif) para os indicadores e arquivos Shapefile (.shp) para a malha.

Saída

A saída deste script inclui a criação de um novo arquivo Shapefile atualizado, contendo as informações dos indicadores Raster agregados aos polígonos da malha geoespacial. Além disso, é gerado um arquivo de relação de colunas, no formato Excel, que mostra a correspondência entre os nomes dos arquivos indicadores e as colunas associadas na malha. Durante a execução, o script também apresenta informações sobre o progresso do processamento, incluindo o número de arquivos de indicadores processados e o tempo decorrido. Eventuais erros e exceções são mostrados para facilitar a depuração e o ajuste necessário no processo de mesclagem.

Exemplo de Uso

python3 merge_rasters_mesh.py --indicator_files_mask=local_data/rasters/*.tif --mesh_file=local_data/malha/ferrovias.shp --column_relation_file=relacao_arquivos_colunas_malha_rodovias.xlsx --new_mesh_file=indicadores_rodovias.shp --average --debug --output_folder=output/result_rasters_mesh

Neste exemplo, o script será executado com a máscara local_data/rasters/*.tif para encontrar os arquivos indicadores Raster na pasta local_data/rasters/, utilizando o arquivo Shapefile da malha em local_data/malha/ferrovias.shp. As informações sobre os indicadores e as colunas utilizadas serão lidas a partir do arquivo relacao_arquivos_colunas_malha_rodovias.xlsx. O novo arquivo Shapefile da malha atualizada será salvo em output/result_rasters_mesh, com a opção de calcular a média dos valores dos pixels dentro de cada polígono ativada (--average). O modo de depuração será ativado para exibir informações adicionais durante a execução (--debug).

Geração de Histogramas e Matrizes de Confusão

Requisitos

  • Python 3.x
  • Bibliotecas listadas no arquivo pyproject.toml
  • Shapefile da malha (arquivo .shp)
  • Shapefiles dos indicadores (arquivos .shp)
  • Planilha de relação dos indicadores com as colunas da malha (arquivo .xlsx)

Como usar

O script generate_histograms_matrices.py é utilizado para gerar histogramas e matrizes de confusão a partir de dados geoespaciais contidos em shapefiles. Ele aceita os seguintes argumentos:

python3 generate_histograms_matrices.py --mesh_file=path/to/mesh_file.shp --indicator_files_mask=path/to/indicator_files/*.shp --indicators_spreadsheet=path/to/indicators_spreadsheet.xlsx --m --h --debug --output_folder=path/to/output_folder
  • --mesh_file: Caminho para o arquivo shapefile da malha.
  • --indicator_files_mask: Caminho para o diretório contendo os shapefiles dos indicadores, que será usado com a função glob para encontrar os arquivos.
  • --indicators_spreadsheet: Caminho para a planilha Excel que contém a relação dos indicadores com as colunas da malha.
  • --m: Parâmetro opcional para gerar as matrizes de confusão.
  • --h: Parâmetro opcional para gerar os histogramas.
  • --right_cut: Parâmetro opcional para definir o valor máximo do eixo x dos histogramas.
  • --debug: Ativar o modo de depuração para exibir informações adicionais.
  • --output_folder: Caminho para o diretório onde os arquivos de saída serão salvos.

Funcionamento

O script realiza o processamento dos indicadores e da malha para gerar as matrizes de confusão e histogramas.

Ele executa as seguintes etapas:

  1. Carrega as bibliotecas e realiza os imports necessários.
  2. Carrega os parâmetros passados na linha de comando.
  3. Cria os diretórios de saída caso não existam.
  4. Encontra os arquivos dos indicadores usando a função glob.
  5. Carrega a malha e os indicadores a partir dos arquivos shapefile.
  6. Realiza a transformação da malha para o CRS padrão (5880).
  7. Verifica a relação entre os indicadores e as colunas da malha.
  8. Define padrões para encontrar a coluna do indicador.
  9. Realiza a junção (interseção) entre a malha e os indicadores.
  10. Define os intervalos de bins para as matrizes de confusão.
  11. Gera as matrizes de confusão e os histogramas para cada indicador.
  12. Salva os resultados nos diretórios de saída.

Observações

  • Certifique-se de que o ambiente Python tenha as bibliotecas necessárias instaladas. Caso não tenha, você pode instalar as dependências listadas no arquivo pyproject.toml.
  • O script suporta apenas arquivos shapefile (.shp) para a malha e os indicadores e uma planilha Excel (.xlsx) para a relação entre os indicadores e as colunas da malha.

Saída

O script gera dois tipos de saída:

  1. Matrizes de Confusão: São salvas no diretório confusion_matrices dentro do diretório de saída definido.
  2. Histogramas: São salvos no diretório histograms dentro do diretório de saída definido.

Exemplo de Uso

python3 generate_histograms_matrices.py --mesh_file=data/mesh/mesh_file.shp --indicator_files_mask=data/indicators/*.shp --indicators_spreadsheet=data/planilhas/indicators_spreadsheet.xlsx --m --h --debug --output_folder=output/result_histograms_matrices

Neste exemplo, o script será executado com o arquivo shapefile da malha em data/mesh/mesh_file.shp, os shapefiles dos indicadores em data/indicators/*.shp, a planilha de relação dos indicadores em data/planilhas/indicators_spreadsheet.xlsx, e irá gerar as matrizes de confusão e os histogramas em output/result_histograms_matrices.

Matriz de Confusão para N Casos

Este código permite gerar a matriz de confusão para N casos, comparando os valores estimados de indicadores espaciais com os valores originais. Ele utiliza arquivos shapefiles que contêm informações espaciais e colunas de valores dos indicadores. Além disso, o código requer uma planilha que relaciona os indicadores às colunas utilizadas na matriz de confusão.

Requisitos

  • Python 3.x
  • Bibliotecas: geopandas, pyproj, pandas, os, seaborn, glob, matplotlib, sklearn

Como usar

Execute o seguinte comando para rodar o script:

python3 matriz_confusao_n_casos.py --arquivo_malha=<arquivo_malha> --mascara_indicadores=<mascara_indicadores> --planilha_indicadores=<planilha_indicadores>
  • <arquivo_malha>: Caminho para o arquivo shapefile da malha espacial.
  • <mascara_indicadores>: Caminho do diretório onde estão as máscaras de arquivos indicadores. O script usará o glob para encontrar os arquivos indicadores.
  • <planilha_indicadores>: Caminho da planilha que contém as relações de indicadores por colunas.

Funcionamento

O script carrega a malha espacial a partir do arquivo shapefile especificado. Em seguida, lê os arquivos indicadores (shapefiles) a partir do diretório indicado pela máscara. Ele também lê a planilha que contém as relações entre os indicadores e as colunas utilizadas na matriz de confusão.

Para cada indicador, o script faz o merge com a malha e realiza a interseção para obter os valores originais e estimados. Em seguida, gera a matriz de confusão comparando esses valores. A matriz de confusão é salva como uma imagem no diretório de saída.

Observações

  • O código realiza ajustes no CRS (Coordinate Reference System) da malha para EPSG 5880, se necessário.
  • A matriz de confusão é gerada com rótulos específicos (0.00 a 0.01, 0.01 a 0.25, 0.25 a 0.50, 0.50 a 0.75, 0.75 a 1), que podem ser personalizados conforme necessário.
  • O script ignora warnings durante a execução.

Saída

  • Imagens da matriz de confusão: Para cada indicador, uma imagem da matriz de confusão é salva no diretório 'output'. Os nomes dos arquivos de saída seguem o padrão matriz_confusao_indicador_<i>_<nome_indicador>.png, onde <i> é o índice do indicador e <nome_indicador> é o nome do indicador usado para a geração da matriz.

Exemplo de Uso

python3 matriz_confusao_n_casos.py --arquivo_malha=malha/ferrovias.shp --mascara_indicadores=indicadores/*.shp --planilha_indicadores=planilhas/solução_risco_desl_para_matriz.xlsx

Esse comando realiza a geração da matriz de confusão para os indicadores contidos na pasta indicadores/, utilizando o arquivo de malha malha/ferrovias.shp. As informações sobre os indicadores e colunas utilizadas são lidas a partir da planilha solução_risco_desl_para_matriz.xlsx. As imagens da matriz de confusão são salvas no diretório output/.

Geração de Legendas QML para CSV

O script generate_legends.py é usado para processar arquivos QML e extrair informações de estilo, como cores e valores mínimos e máximos de legendas. Esses dados são então organizados em uma tabela CSV que pode ser usada para criar legendas em visualizações de dados geoespaciais.

Requisitos

Certifique-se de ter os seguintes requisitos instalados:

  • Python 3.x
  • Bibliotecas Python: pandas

Você pode instalar as bibliotecas necessárias executando o seguinte comando:

pip install -r requeriments.txt

Como usar

Execute o script generate_legends.py passando os argumentos necessários. O script requer os seguintes argumentos:

  • --qml_files: Caminho para o diretório onde os arquivos QML estão localizados. Use padrões glob para encontrar os arquivos QML.
  • --debug: Ativa o modo de depuração.
  • --output_folder: Caminho para o diretório onde os arquivos gerados serão salvos.
  • --output_file: Nome do arquivo de saída.

Aqui está um exemplo de como executar o script:

python3 generate_legends.py --qml_files=local_data/qml/**/*.qml --debug --output_folder=output/export_legends --output_file=legends_indicators.csv

Certifique-se de fornecer os caminhos corretos para os arquivos QML, o diretório de saída e o nome do arquivo de saída.

Funcionamento

O script começa lendo os argumentos fornecidos e iniciando o processamento. Ele utiliza a biblioteca xml.etree.ElementTree para analisar os arquivos QML e extrair informações relevantes, como as cores dos símbolos e os valores das legendas. As informações extraídas são então organizadas em uma tabela CSV.

Observações

  • O modo de depuração (--debug) fornece informações adicionais durante a execução do script, facilitando a verificação do progresso e dos resultados.
  • O script cria uma pasta de saída especificada, se ela ainda não existir.

Saída

A saída deste script é um arquivo CSV que contém as informações de estilo extraídas dos arquivos QML. O arquivo CSV terá as colunas: 'id', 'label', 'color', 'minvalue', 'maxvalue', 'legend_id', 'indicator', 'tag', 'order'.

Exemplo de Uso

python3 generate_legends.py --qml_files=local_data/qml/**/*.qml --debug --output_folder=output/export_legends --output_file=legends_indicators.csv

Esse comando processará os arquivos QML encontrados no diretório local_data/qml/ e seus subdiretórios, ativando o modo de depuração. Os resultados serão salvos na pasta output/export_legends com o nome do arquivo de saída legends_indicators.csv.

Geração de Legendas XLSX para CSV

Este repositório contém um script Python chamado generate_legends_from_xlsx.py que permite a geração de legendas em formato CSV a partir de arquivos XLSX. O script processa arquivos XLSX que contêm informações sobre a formatação de legendas e as converte em uma tabela em formato CSV.

Descrição

O script generate_legends_from_xlsx.py é usado para processar arquivos XLSX que contêm informações de formatação para legendas. Ele analisa esses arquivos, extrai informações relevantes e as organiza em uma tabela CSV que pode ser usada para gerar legendas em visualizações de dados geoespaciais.

Requisitos

Certifique-se de ter os seguintes requisitos instalados:

  • Python 3.x
  • Bibliotecas Python: pandas

Você pode instalar as bibliotecas necessárias executando o seguinte comando:

pip install -r requeriments.txt

Como usar

Execute o script generate_legends_from_xlsx.py passando os argumentos necessários. O script requer os seguintes argumentos:

  • --xlsx_files: Caminho para o diretório onde os arquivos XLSX estão localizados. Use padrões glob para encontrar os arquivos XLSX.
  • --debug: Ativa o modo de depuração.
  • --settings_labels: Nome do arquivo settings_labels.csv que contém informações sobre as legendas (rótulos, cores, ordem e tags).
  • --output_folder: Caminho para o diretório onde os arquivos gerados serão salvos.
  • --output_file: Nome do arquivo de saída.

Aqui está um exemplo de como executar o script:

python3 generate_legends_from_xlsx.py --xlsx_files=local_data/legendas/entrada1/*.xlsx --debug --output_folder=output/export_legends --output_file=legends_indicators.csv --settings_labels=data/settings_labels.csv

Certifique-se de fornecer os caminhos corretos para os arquivos XLSX, o arquivo settings_labels.csv, o diretório de saída e o nome do arquivo de saída.

Funcionamento

O script começa lendo os argumentos fornecidos e iniciando o processamento. Ele utiliza a biblioteca pandas para ler os arquivos XLSX e extrair informações relevantes, como os rótulos, cores e ordens das legendas. Em seguida, combina essas informações com valores obtidos a partir dos dados dos arquivos XLSX para criar uma tabela em formato CSV.

Observações

  • O modo de depuração (--debug) fornece informações adicionais durante a execução do script, facilitando a verificação do progresso e dos resultados.
  • O arquivo settings_labels.csv deve conter informações sobre as legendas, incluindo os campos 'label', 'color', 'order' e 'tag'.

Saída

A saída deste script é um arquivo CSV que contém as informações de formatação das legendas extraídas dos arquivos XLSX. O arquivo CSV terá as colunas: 'id', 'label', 'color', 'minvalue', 'maxvalue', 'legend_id', 'order', 'tag', 'indicator'.

Exemplo de Uso

python3 generate_legends_from_xlsx.py --xlsx_files=local_data/legendas/entrada1/*.xlsx --debug --output_folder=output/export_legends --output_file=legends_indicators.csv --settings_labels=data/settings_labels.csv

Esse comando processará os arquivos XLSX encontrados no diretório local_data/legendas/entrada1/, ativando o modo de depuração. Os resultados serão salvos na pasta output/export_legends com o nome do arquivo de saída legends_indicators.csv. O arquivo settings_labels.csv será utilizado para obter informações sobre as legendas.

Geração de Legendas e Descrição a partir de Valores

Este script, generate_legends_description_from_values.py, lê uma planilha de valores por indicador e uma planilha de descrição, calcula faixas contínuas (bins) para cada indicador com base no mínimo e máximo observados, gera as legendas usando um arquivo de rótulos (labels) e preenche a coluna legenda na planilha de descrição com o ID da legenda correspondente a cada indicador.

Requisitos

  • Python 3.x
  • Bibliotecas: pandas, openpyxl

As dependências do projeto já incluem essas bibliotecas via Poetry.

Como usar

Execute o script informando os caminhos dos arquivos de valores, descrição, o CSV de labels e a pasta de saída:

python3 src/generate_legends_description_from_values.py \
  --values_file local_data/novos_dados/impactos3_1709_seg_hid/valores.xlsx \
  --description_file local_data/novos_dados/impactos3_1709_seg_hid/descricao.xlsx \
  --output_folder local_data/temp/impactos3_1709_seg_hid/ \
  --settings_labels data/settings_labels.csv \
  --debug

Parâmetros:

  • --values_file: Arquivo Excel com colunas de indicadores. A coluna id (se existir) será descartada. Os nomes das colunas devem começar com o código do indicador, opcionalmente seguido de sufixos separados por - (ex.: 123-ALGUM_TEXTO). O prefixo antes de - é usado como indicator_id.
  • --description_file: Arquivo Excel de descrição contendo a coluna codigo (ID do indicador). O script cria/preenche a coluna legenda com o ID da legenda gerada.
  • --settings_labels: CSV com as definições das classes de legenda (campos esperados: label, color, order, tag). Ex.: data/settings_labels.csv.
  • --output_folder: Pasta onde os arquivos de saída serão gravados.
  • --debug: Opcional para logs detalhados.

Funcionamento

  1. settings_labels.csv, valores.xlsx e descricao.xlsx.
  2. Para cada indicador em valores.xlsx, calcula min e max e gera 5 intervalos contínuos (bins), validando a continuidade entre eles.
  3. Gera uma tabela de legendas com colunas: codigo (ID da legenda por indicador), label, cor, minimo, maximo, ordem.
  4. Faz o match entre descricao.codigo (ID do indicador) e o indicator_id da legenda, preenchendo descricao.legenda com o ID da legenda correspondente.
  5. Salva os resultados em Excel na pasta de saída.

Saída

São gerados dois arquivos em --output_folder:

  • legenda.xlsx: Tabela de legendas por indicador.
  • descricao.xlsx: Planilha de descrição atualizada com a coluna legenda preenchida.

Observações

  • O script espera colunas numéricas válidas para cálculo de min e max; se houver NaN apenas nessas colunas, ocorrerá erro.
  • O número de classes é inferido a partir de settings_labels.csv (tipicamente 5). Labels com texto "Dado indisponível" têm minimo/maximo vazios.
  • O script normaliza tipos (numéricos) para evitar falhas de correspondência na etapa de merge entre descrição e legendas.

Exemplo de Uso

python3 src/generate_legends_description_from_values.py \
  --values_file local_data/novos_dados/impactos3_1709_seg_hid/valores.xlsx \
  --description_file local_data/novos_dados/impactos3_1709_seg_hid/descricao.xlsx \
  --output_folder local_data/temp/impactos3_1709_seg_hid/ \
  --settings_labels data/settings_labels.csv

Reprojeção de Malhas com Sufixo

Este repositório contém um script Python chamado reproject_shapefiles.py que permite a reprojeção de malhas geoespaciais em um sistema de coordenadas específico, adicionando um sufixo opcional aos nomes dos arquivos de saída.

Descrição

O script reproject_shapefiles.py é usado para realizar a reprojeção de malhas geoespaciais contidas em arquivos shapefile (.shp). Ele permite especificar um sistema de coordenadas de destino (EPSG) para a reprojeção. Além disso, é possível adicionar um sufixo opcional aos nomes dos arquivos de saída reprojetados.

Requisitos

Certifique-se de ter os seguintes requisitos instalados:

  • Python 3.x
  • Bibliotecas Python: geopandas, tqdm

Você pode instalar as bibliotecas necessárias executando o seguinte comando:

pip install -r requeriments.txt

Como usar

Execute o script reproject_shapefiles.py passando os argumentos necessários. O script requer os seguintes argumentos:

  • --input_mask: Máscara de arquivo para buscar arquivos shapefile (incluindo subdiretórios).
  • --epsg: Código EPSG de destino para a reprojeção.
  • --suffix: Sufixo a ser adicionado aos nomes dos arquivos de saída reprojetados (opcional).
  • --output_dir: Diretório de saída para os arquivos shapefile reprojetados (opcional).

Aqui está um exemplo de como executar o script:

python3 reproject_shapefiles.py --input_mask=local_data/indicadores/*.shp --epsg=4326 --suffix=_shpreprojected --output_dir=output/new_shapefiles

Certifique-se de fornecer a máscara de arquivo correta para os arquivos shapefile, o código EPSG de destino, o sufixo (se necessário) e o diretório de saída (se necessário).

Funcionamento

O script começa lendo os argumentos fornecidos e iniciando o processo de reprojeção. Ele utiliza a biblioteca geopandas para ler os arquivos shapefile, realizar a reprojeção conforme o EPSG especificado e salvar os arquivos reprojetados no diretório de saída. O processo é acompanhado por uma barra de progresso fornecida pela biblioteca tqdm.

Observações

  • Se o arquivo shapefile já estiver no sistema de coordenadas desejado (EPSG), uma mensagem de log será impressa.
  • O sufixo é opcional e permite diferenciar os arquivos reprojetados dos originais.
  • O diretório de saída será usado para armazenar os arquivos shapefile reprojetados. Se não for fornecido, os arquivos serão salvos no mesmo diretório dos arquivos originais.

Saída

A saída deste script é uma série de arquivos shapefile reprojetados, que contêm as mesmas geometrias da malha original, porém em um sistema de coordenadas diferente. O sufixo (se fornecido) é adicionado aos nomes dos arquivos de saída reprojetados.

Exemplo de Uso

python3 reproject_shapefiles.py --input_mask=local_data/indicadores/*.shp --epsg=4326 --suffix=_shpreprojected --output_dir=output/new_shapefiles

Esse comando irá reprojetar os arquivos shapefile encontrados no diretório local_data/indicadores/, utilizando o código EPSG 4326 para a projeção. Os arquivos reprojetados serão salvos no diretório output/new_shapefiles, e um sufixo _shpreprojected será adicionado aos nomes dos arquivos de saída.

Licença

Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter mais informações.

Erros Comuns

Talvez seja necessário instalar algumas dependências no Linux e versões específicas de pacotes:

Erro do rtree

pip3 uninstall rtree
sudo apt install libspatialindex-dev
pip3 install rtree==1.0.1

Erro do progress bar

pip3 install progress progressbar2 alive-progress tqdm

Criando o ambiente virtual

conda create -n adapta_pre -c conda-forge python numpy pandas scikit-learn -y
poetry install

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •