Slide 1

Slide 1 text

Entregas rápidas em tão pouco tempo! Microserviços para GeoData com Python Flask

Slide 2

Slide 2 text

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;

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Como era antes?

Slide 5

Slide 5 text

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...

Slide 6

Slide 6 text

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;

Slide 7

Slide 7 text

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;

Slide 8

Slide 8 text

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...

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

Microserviços

Slide 11

Slide 11 text

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;

Slide 12

Slide 12 text

GeoData

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

GeoData • Como o python interpreta esses dados? • Georasters => biblioteca python para leitura e manipulação de dados geográficos; # pip install georaters

Slide 15

Slide 15 text

Pandas

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

Estrutura de dados

Slide 18

Slide 18 text

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?

Slide 19

Slide 19 text

API Python Flask

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

API Python Flask

Slide 22

Slide 22 text

API Python Flask

Slide 23

Slide 23 text

API Python Flask

Slide 24

Slide 24 text

API Python Flask

Slide 25

Slide 25 text

Postgres e Python

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

Postgres e Python

Slide 28

Slide 28 text

Postgres e Python

Slide 29

Slide 29 text

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;

Slide 30

Slide 30 text

Conclusão • Mais projetos atualmente no INPE estão seguindo essa • linha com desenvolvimento em python; • PESQUISE, ESTUDE E APLIQUE!

Slide 31

Slide 31 text

Obrigado! AbnerErnaniADSFatec Abner Ernâni dos Anjos