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.
Aqui estão os capítulos disponíveis para explorar neste projeto:
- Projeto: Análise Espacial de Indicadores
- Introdução
- Menu
- Instalação De Dependências do Projeto
- Merge de Indicadores Shapefiles em Malha
- Merge de Indicadores Rasters em Malha
- Geração de Histogramas e Matrizes de Confusão
- Matriz de Confusão para N Casos
- Geração de Legendas QML para CSV
- Geração de Legendas XLSX para CSV
- Geração de Legendas e Descrição a partir de Valores
- Reprojeção de Malhas com Sufixo
- Licença
- Erros Comuns
- Python 3.12 ou superior
- Poetry para gerenciamento de dependências
# 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)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.
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 installPara 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çãoglobpara 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.
O script realiza o seguinte processo:
- Carrega a malha geoespacial a partir do arquivo Shapefile especificado.
- Verifica se existe um arquivo de relação de colunas. Se não existir, cria um novo.
- Procura e carrega os arquivos dos indicadores (Shapefiles) baseados na máscara fornecida.
- Itera sobre cada arquivo de indicador, realizando as etapas de pré-processamento e junção (interseção) com a malha.
- 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. - Atualiza a malha com os novos valores dos indicadores.
- Salva o novo arquivo da malha atualizado e o arquivo de relação de colunas.
- 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.
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.
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_meshNeste 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).
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.
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 installPara 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çãoglobserá 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.
O script realiza o seguinte processo:
- Carrega a malha geoespacial a partir do arquivo Shapefile especificado.
- Verifica se existe um arquivo de relação de colunas. Se não existir, cria um novo.
- Procura e carrega os arquivos dos indicadores Raster baseados na máscara fornecida.
- Itera sobre cada arquivo de indicador Raster, realizando as etapas de pré-processamento e junção com a malha geoespacial.
- 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. - Atualiza a malha com os novos valores dos indicadores.
- Salva o novo arquivo da malha atualizado e o arquivo de relação de colunas.
- 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.
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.
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_meshNeste 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).
- 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)
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.
O script realiza o processamento dos indicadores e da malha para gerar as matrizes de confusão e histogramas.
Ele executa as seguintes etapas:
- Carrega as bibliotecas e realiza os imports necessários.
- Carrega os parâmetros passados na linha de comando.
- Cria os diretórios de saída caso não existam.
- Encontra os arquivos dos indicadores usando a função glob.
- Carrega a malha e os indicadores a partir dos arquivos shapefile.
- Realiza a transformação da malha para o CRS padrão (5880).
- Verifica a relação entre os indicadores e as colunas da malha.
- Define padrões para encontrar a coluna do indicador.
- Realiza a junção (interseção) entre a malha e os indicadores.
- Define os intervalos de bins para as matrizes de confusão.
- Gera as matrizes de confusão e os histogramas para cada indicador.
- Salva os resultados nos diretórios de saída.
- 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.
O script gera dois tipos de saída:
- Matrizes de Confusão: São salvas no diretório
confusion_matricesdentro do diretório de saída definido. - Histogramas: São salvos no diretório
histogramsdentro do diretório de saída definido.
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_matricesNeste 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.
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.
- Python 3.x
- Bibliotecas: geopandas, pyproj, pandas, os, seaborn, glob, matplotlib, sklearn
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.
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.
- 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.
- 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.
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/.
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.
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.txtExecute 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.csvCertifique-se de fornecer os caminhos corretos para os arquivos QML, o diretório de saída e o nome do arquivo de saída.
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.
- 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.
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'.
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.
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.
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.
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.txtExecute 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 arquivosettings_labels.csvque 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.csvCertifique-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.
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.
- 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.csvdeve conter informações sobre as legendas, incluindo os campos 'label', 'color', 'order' e 'tag'.
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'.
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.
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.
- Python 3.x
- Bibliotecas:
pandas,openpyxl
As dependências do projeto já incluem essas bibliotecas via Poetry.
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 \
--debugParâmetros:
--values_file: Arquivo Excel com colunas de indicadores. A colunaid(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 comoindicator_id.--description_file: Arquivo Excel de descrição contendo a colunacodigo(ID do indicador). O script cria/preenche a colunalegendacom 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.
- Lê
settings_labels.csv,valores.xlsxedescricao.xlsx. - Para cada indicador em
valores.xlsx, calculaminemaxe gera 5 intervalos contínuos (bins), validando a continuidade entre eles. - Gera uma tabela de legendas com colunas:
codigo(ID da legenda por indicador),label,cor,minimo,maximo,ordem. - Faz o match entre
descricao.codigo(ID do indicador) e oindicator_idda legenda, preenchendodescricao.legendacom o ID da legenda correspondente. - Salva os resultados em Excel na pasta de 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 colunalegendapreenchida.
- O script espera colunas numéricas válidas para cálculo de
minemax; se houverNaNapenas 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êmminimo/maximovazios. - O script normaliza tipos (numéricos) para evitar falhas de correspondência na etapa de merge entre descrição e legendas.
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.csvEste 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.
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.
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.txtExecute 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_shapefilesCertifique-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).
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.
- 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.
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.
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.
Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter mais informações.
Talvez seja necessário instalar algumas dependências no Linux e versões específicas de pacotes:
pip3 uninstall rtree
sudo apt install libspatialindex-dev
pip3 install rtree==1.0.1pip3 install progress progressbar2 alive-progress tqdmconda create -n adapta_pre -c conda-forge python numpy pandas scikit-learn -y
poetry install