Pular para o conteúdo
← projetos
DadosFull-stackGeo

Monitoramento de lavoura por satélite

Painel que acompanha o vigor de cada talhão por NDVI e aponta onde a lavoura está perdendo força antes de dar para ver do chão.

fazenda → talhão → leitura
3 níveis
assíncrona ponta a ponta
API REST

O problema

Quem toca uma área grande descobre problema de lavoura tarde. Mancha de solo compactado, falha de irrigação ou ataque de praga já custou produtividade quando alguém finalmente passa por ali. A informação existe — está em imagem de satélite pública, atualizada a cada poucos dias — mas não chega em formato que um produtor use para decidir a rota da semana.

A solução

Uma plataforma que transforma essa imagem em uma pergunta simples: qual talhão devo visitar primeiro?

O modelo de dados segue como o produtor pensa a propriedade: fazenda → talhão → leitura. Cada leitura é um NDVI datado para um talhão específico, então o histórico de cada pedaço de terra é consultável e comparável ao vizinho.

Backend

API em FastAPI com SQLAlchemy 2.0 assíncrono e validação por Pydantic. Rotas separadas por recurso — fazendas, talhões e leituras — com os esquemas de entrada e saída desacoplados do modelo de banco, para que a forma da tabela mude sem quebrar contrato de API.

A coleta roda como script independente da API: busca a imagem, calcula o índice por talhão e grava a leitura. Separar ingestão de serviço é o que permite reprocessar histórico sem derrubar o painel.

Dashboard

Front em Next.js com mapa de talhões colorido por vigor, painel de inspeção ao clicar em uma área, cartões de indicador e legenda de escala. A entrada é uma visualização de globo que aterrissa na propriedade — decisão deliberada: o usuário precisa entender em dois segundos que aquilo é a terra dele vista de cima.

A demonstração

A plataforma foi construída para cliente, então nada de propriedade privada aparece aqui. A demonstração abaixo roda sobre dado inteiramente público: a produção agrícola municipal do IBGE (SIDRA, agregado 5457) e o NDVI derivado de Sentinel-2, para os 25 maiores municípios produtores do país.

É a mesma mecânica do produto, um nível acima na escala: onde o cliente vê talhão dentro da fazenda, aqui você vê célula de ~440 m dentro do município. Clique em um município para carregar a grade.

Nota técnica

A grade dos 25 municípios sai do pipeline com 12 MB de GeoJSON — 42.025 polígonos, 1.681 por município em malha regular de 0,004°. Como a malha é regular, cada município virou um PNG de 41×41 e um vetor de inteiros de 8 bits para a leitura sob o cursor: 162 KB no total, carregados sob demanda. A conversão está em scripts/build_lavoura.py.

Os 25 maiores municípios produtores do país, dimensionados pela produção e classificados por vigor da lavoura. Clique em um deles para carregar a grade de NDVI daquele município — célula de aproximadamente 440 m, o mesmo recorte que a plataforma usa por talhão.

Tecnologias

  • FastAPI
  • SQLAlchemy 2.0 async
  • Pydantic
  • PostgreSQL
  • Next.js
  • React
  • Docker