top of page

🚜Do Mapa de Colheita às Zonas de Manejo com Python

  • Foto do escritor: Alexandre Rodrigues
    Alexandre Rodrigues
  • 2 de mar.
  • 4 min de leitura

Atualizado: 6 de mar.


Você já tem o mapa de produtividade da soja. Mas… como transformar isso em decisão agronômica real?


Esse script faz exatamente isso 👇


Bibliotecas importadas (as “ferramentas”)



  • pandas (pd): lê Excel e organiza dados em tabela (DataFrame).

  • numpy (np): faz contas rápidas e matrizes (grid, máscara, etc.).

  • matplotlib (plt): desenha os mapas/gráficos.

  • geopandas (gpd): trabalha com dados geográficos (shapefile, CRS, etc.).

  • shapely Point: cria pontos (x,y) para virar geometria no mapa.

  • cKDTree: acelera a busca de vizinhos mais próximos (essencial no IDW).

  • KMeans: cria grupos (zonas) automaticamente.


1. Carregar dados de produtividade



Aqui abre o Excel do monitor de colheita (ou do processamento) que tem colunas como:


  • yield_kg_ha (produtividade)

  • moisture (umidade)

  • longitude, latitude (coordenadas)

  • speed (velocidade da colhedora)


Correção para 13% de umidade



  • Produtividade medida com umidade diferente “engana” na comparação.

  • A fórmula ajusta para 13%, padrão comum para comparar rendimento.

  • Depois converte kg/ha → sc/ha, assumindo 1 saca = 60 kg.


Remover outliers e pontos ruins



Isso é “higienização”:


  • Remove produtividades absurdas (muito baixa/alta) que geralmente são erro de sensor, manobra, falha de GPS etc.

  • Remove pontos com velocidade baixa (manobra/parada), que costumam distorcer a produtividade.


Por que isso importa?

Porque dados ruins viram “manchas” falsas no mapa e podem criar zonas erradas.


2. Criar GeoDataFrame e reprojetar para UTM (metros)


2.1. Transformar lat/long em pontos e cria GeoDataFrame com CRS WGS84


  • EPSG:4326 = lat/long (graus), padrão GPS.


2.2. Reprojetar para UTM 22S (SIRGAS 2000)



Agora as coordenadas ficam em metros, o que é essencial para:

  • calcular distâncias corretamente

  • interpolar (IDW depende de distância)


2.3. Ler o talhão (shapefile) e garantir mesmo CRS



Abre o polígono do talhão e coloca no mesmo sistema UTM.


3. Cálculo da variabilidade (estatística descritiva)



  • Média: produtividade média do talhão

  • Desvio padrão: quanto os pontos variam em torno da média

  • CV (coeficiente de variação): variabilidade relativa (%)


Por que isso importa?

O CV te ajuda a decidir se vale a pena criar zonas de manejo. Alta variabilidade = grande chance de retorno com manejo localizado.


4. Interpolação IDW (Inverso do Quadrado da Distância)


Separar x, y e produtividade (z)



  • x, y: coordenadas em metros (UTM)

  • z: produtividade em sc/ha


Criar uma grade (grid) cobrindo o talhão



  • total_bounds pega o retângulo mínimo que envolve o talhão.

  • 300j cria uma malha de 300 x 300 pontos (quanto maior, mais detalhado e mais pesado).


Encontrar os 8 vizinhos mais próximos



  • cKDTree é um jeito rápido de achar vizinhos próximos.

  • k=8 usa 8 pontos para estimar cada célula do grid.

  • Distância zero pode acontecer se cair exatamente em cima de um ponto, então evita divisão por zero.


Calcular IDW (peso maior para quem está mais perto)



  • Peso = 1 / d² → mais perto = influencia mais.

  • Resultado: um “tapete” contínuo de produtividade.


Por que isso importa?

Colheita é ponto a ponto. Interpolação transforma isso num mapa contínuo que dá leitura visual e base para manejo.


5. Máscara do talhão (recortar só dentro do polígono)



Aqui o script pergunta, para cada célula do grid:


“Esse ponto está dentro do polígono do talhão?"

Depois aplica a máscara:



  • Dentro do talhão: mantém valor

  • Fora: vira NaN (não desenha)


6. Mapa contínuo interpolado (visualização)



  • contourf cria um mapa em “manchas” contínuas.

  • levels=20 define quantas faixas de cor (mais faixas = transição mais suave).

  • RdYlGn é uma paleta típica: vermelho (baixo) → verde (alto).


Borda do talhão e barra de cores:



7. Classificação em zonas (K-Means)



  • O K-Means cria 3 grupos (zonas) com base somente na produtividade.

  • Cada ponto recebe um rótulo de zona (0, 1, 2).


Ordenar as zonas por produtividade média



Isso é um detalhe muito bom:


  • K-Means pode chamar “zona 0” a mais alta ou a mais baixa, aleatoriamente.

  • Aqui reorganiza para que:

    • zona 0 = menor média

    • zona 1 = média intermediária

    • zona 2 = maior média


8. Mapa de zonas de manejo



Define cores fixas para cada zona.


Depois plota os pontos por zona:



  • Cada ponto vira uma bolinha colorida.

  • s=8 controla o tamanho do ponto.


Borda do talhão e legenda:


Por que isso importa?

Zonas transformam “mapa bonito” em decisão prática:

  • zonas de baixa produtividade → investigar compactação, fertilidade, drenagem, pragas…

  • zonas altas → manter estratégia, ajustar insumos para estabilidade.


9. Média por zona



Mostra a produtividade média de cada zona (ótimo para comparar potencial e planejar manejo).


10. Estatística detalhada por zona



Aqui vê:

  • média e desvio (consistência)

  • mínimo e máximo (extremos)

  • quantos pontos caíram em cada zona (representatividade)


11. Amplitude produtiva do talhão



A amplitude diz o “tamanho” da diferença entre o pior e o melhor ponto do talhão.


Por que isso importa?

Amplitude grande geralmente indica:

  • alto potencial de ganho com manejo localizado

  • forte heterogeneidade (solo, relevo, água, fertilidade, etc.)


Este script transforma dados brutos do monitor de colheita em informação de decisão: ele corrige a produtividade para 13% de umidade, remove pontos errados, converte as coordenadas para UTM (metros), gera um mapa contínuo por interpolação IDW recortado ao talhão e, por fim, divide o campo em 3 zonas de manejo com K-Means, além de imprimir estatísticas gerais e por zona. O resultado é uma base prática para investigar causas de baixa produtividade e planejar intervenções localizadas (adubação, corretivo, drenagem, compactação, população de plantas etc.).


Comentários


Uberlândia - Minas Gerais

Tel: (34) 99178- 88477

© 2026

Siga-nos

  • Facebook
  • Instagram

Entre em contato comigo


bottom of page