Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microserviços para GeoData com Python Flask

Abner Anjos
September 09, 2019

Microserviços para GeoData com Python Flask

Vamos falar sobre micro serviços? Sim, então vamos começar a conversar sobre uma solução simples que encontrei para um problema corrente, uma plataforma para construção de aplicações muito grande com muitas variáveis e que muitas vezes não atendem as suas expectativas e funcionalidades e como se pode resolver esse problema, a solução pode ser um micro serviço que fornece exatamente a funcionalidade necessária da aplicação em desenvolvimento e esse serviço é desenvolvido por você e o melhor feito em python. Nessa apresentação há uma discussão sobre esse problema e a solução encontrada, e mais alguns códigos desenvolvidos no INPE.

Abner Anjos

September 09, 2019
Tweet

Other Decks in Programming

Transcript

  1. Quem sou eu? • Estudante de Análise e Desenvolvimento de

    Sistemas na FATEC São José dos Campos - Prof. Jessen Vidal; • Estagiário de Iniciação Científica no Instituto Nacional de Pesquisas Espaciais;
  2. Roteiro • Como era antes? • Mas por que? •

    Os primeiros erros... • Microserviços • GeoData • Pandas • Estrutura de dados • API Python Flask • Postgres e Python • Conclusão
  3. Como era antes? • O TerraMA2 processa as imagens Geotiff

    em cruzamento com um polígono; • No caso, um polígono com dados dos 5.556 municípios registrados no Brasil; • Quem conhece o TerraMA2 já sabe...
  4. Como era antes? • A busca de dados era feita

    com chamadas no geoserver pela interface API Restful; • Para buscar as camadas e as legendas processadas pelo TerraMA2; • A resposta era muito longa e poluída com dados desnecessários;
  5. Mas por que? • O python retorna apenas o dados

    que a aplicação precisa; • Por causa da estrutura de dados pandas, ótima para contruir gráficos;
  6. Os primeiros erros... • Como integrar a linguagem python com

    o framework angular versão 8? • Como integrar uma tecnologia relativamente nova em um sistema sem documentação? • Simples usando um microserviço...
  7. Microserviços • Software independente que fornece dados e processos específicos

    para um determinado cliente; • A arquitetura de microserviço é usada em grandes empresas onde times trabalham separadamente; • AUTONOMIA E INDEPENDÊNCIA;
  8. GeoData • ShapeFile => Arquivo com polígonos e localização, representado

    por uma tabela no banco de dados; • GeoTiff => Imagem com dados em valores reais com localização no mapa, geralmente representada por uma matriz; Objeto Monitorado
  9. GeoData • Como o python interpreta esses dados? • Georasters

    => biblioteca python para leitura e manipulação de dados geográficos; # pip install georaters
  10. Pandas • É uma biblioteca OpenSource para facilitar o uso

    de estrutura de dados e ferramentas de análise em python; • Ou seja, a biblioteca perfeita para Data Science e trabalhos com grande volume de dados! # pip install pandas
  11. Estrutura de dados • Área da computação que estuda diversas

    formas de organização e tipos dos dados; • Tabelas, DataFrames, Dicionários e JSON's; • Qual a melhor maneira para leitura de dados?
  12. API Python Flask • Flask é um micro-framework desenvolvido em

    python para web; • WerkZeug => App WSGI, WebSerser; • Jinja2 => Template engine; • Good Intentions => Estruturar sua API; # pip install Flask
  13. Postgres e Python • Postgres é o banco de dados

    padrão para o TerraMA2, por causa da extensão PostGIS; • O python possui um interpretador postgres; # pip install psycopg2
  14. Conclusão • Dependendo do problema os microserviços podem ser a

    solução; • Foi uma solução eficaz e eficiente para a plataforma SMH da Fapesp;
  15. Conclusão • Mais projetos atualmente no INPE estão seguindo essa

    • linha com desenvolvimento em python; • PESQUISE, ESTUDE E APLIQUE!