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.
Tecnologias
- FastAPI
- SQLAlchemy 2.0 async
- Pydantic
- PostgreSQL
- Next.js
- React
- Docker