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

Microserviços para GeoData com Python Flask

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Abner Anjos 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.

Avatar for Abner Anjos

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!