GithubHelp home page GithubHelp logo

fabianomorelli / gerador-kml-focos-queimadas Goto Github PK

View Code? Open in Web Editor NEW

This project forked from christopherfrige/gerador-kml-focos-queimadas

0.0 0.0 0.0 426 KB

Estudo da criação de KMLs por meio do uso do Pandas, SQLAlchemy (com PostgreSQL), entre outras bibliotecas importantes.

Python 7.94% Jupyter Notebook 92.06%

gerador-kml-focos-queimadas's Introduction

Gerador-KML-Focos-Queimadas

Esse projeto foi desenvolvido no INPE - Instituto Nacional de Pesquisas Espaciais, e aborda a aplicação do Python com bibliotecas relacionadas a Geoprocessamento.

Tendo em vista isso, este repositório aborda sobre a criação de KMLs, que consiste num formato de arquivo baseado em XML, para fazer a representação de dados geográficos em aplicativos, como por exemplo o Google Earth.
Mais informações sobre o formato KML aqui.

Dessa forma, apesar de todos os testes no Jupyter Notebook estarem utilizando a biblioteca FastKML, foi estudado diferentes formas de ingestão de dados e criação do arquivo, seja por meio do Pandas atuando com um CSV, ou realizando consultas ao banco de dados PostgreSQL.

Pontos coloridos: Focos de Queimadas, com cor baseada no intervalo desde que ocorreu (legenda).

Área em laranja: Frente de Fogo Ativo do dia atual (área de 500m ao redor do foco).
Área em preto: Frente de Fogo Ativo do dia anterior.

Requisitos

Notebooks de Estudo

Atualmente o projeto conta com três Notebooks, correspondentes aos testes de geração do arquivo KML:

  • Gerar por meio de um CSV com os dados preestabelecidos, utilizando a biblioteca Pandas para a leitura, montagem e filtragem do dataframe;
  • Gerar por meio de consultas no banco de dados, operação que foi feita usando a biblioteca SQLAlchemy;
  • Gerar por meio de consultas no banco de dados, em que não só é obtido os pontos dos focos mas também é feito a criação de um buffer (frente de fogo ativo).

Desenvolvimento dos notebooks

Com os dados obtidos (em que foi estudado diferentes formas para essa obtenção), construiu-se o KML a partir do FastKML, em que a geração é feita num formato semelhante a estar adicionando itens numa lista, por meio do append.

Pandas-CSV

A construção do projeto teve como início a leitura de um arquivo CSV gerado por meio do sistema de monitoramento BDQueimadas, desenvolvido pelo INPE. Dessa forma, por meio da biblioteca Pandas filtrou-se as colunas desejadas e trabalhou-se com os dados adquiridos.

Pandas-SQLAlchemy

Desenvolvida posteriormente à supracitada, foi construido o KML por meio de uma conexão e consulta a um banco de dados, utilizando um método nativo do pandas chamado read_sql, no qual foi necessário a biblioteca SQLAlchemy em conjunto com a psycopg2 para coletar os dados desejados.

GeoPandas-SQLAlchemy

Como forma de otimizar o trabalho com objetos Geo, utilizou-se a biblioteca GeoPandas que, além do pandas que está incluído nela, possui também novas libraries com classes e métodos que auxiliam as operações que precisam ser desenvolvidas.

O arquivo gerador.py utiliza como base essa versão, e dentro dele ela está constantemente sendo melhorada, adicionando-se funcionalidades e realizando otimizações.

Execução

É necessário realizar a instalação das bibliotecas requisitadas, que podem ser feitas de duas maneiras:

  • criação de um ambiente virtual com a biblioteca virtualenv e usando o pip
  • criação de um ambiente de desenvolvimento pelo conda, instalando as bibliotecas posteriormente

Após a instalação das bibliotecas, fazer as modificações, dependendo da versão a ser executada:

Pandas-CSV

Com tudo necessário instalado, alterar o arquivo CSV lido na pasta csv, se desejar:

file = r'csv\Focos_2021-11-01_2021-11-03.csv'

Pandas-SQLAlchemy e GeoPandas-SQLAlchemy

Alterar as informações para o acesso ao banco de dados:

engine = create_engine(f'postgresql+psycopg2://USER:PASS@HOST:PORT/DATABASE', poolclass=pool.NullPool)

gerador-kml-focos-queimadas's People

Contributors

christopherfrige avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.