Imagine you have 10,000 hectares of wheat, but your agronomist can only survey 30% of fields per week. The remaining 70% is a black box. By the time a satellite detects an issue, it may be too late. Standard NDVI monitoring provides images every 5 days, but cloud cover can hide a field for up to two weeks. We solve this with composite images and diffusion model forecasting. We develop AI systems that transform satellite imagery, drone data, and IoT sensor readings into precise recommendations for each hectare. Our experience in agritech spans 5+ years, with 12+ projects for farms ranging from 500 to 50,000 hectares.
Remote Sensing and Satellite Analytics
Vegetation indices are the foundation of monitoring. The main one is NDVI (Normalized Difference Vegetation Index):
| Index | Formula | Range | What it shows |
|---|---|---|---|
| NDVI | (NIR - Red)/(NIR + Red) | -1..1 | Biomass state |
| NDRE | (NIR - Red Edge)/(NIR + Red Edge) | -1..1 | Chlorophyll content |
| NDMI | (NIR - SWIR)/(NIR + SWIR) | -1..1 | Crop moisture |
| EVI | 2.5*(NIR-Red)/(NIR+6Red-7.5Blue+1) | -3..3 | Resistant to saturation in dense canopy |
Additional indices and their application
We also use PSRI (Plant Senescence Reflectance Index) for early senescence detection, REP (Red Edge Position) for chlorophyll assessment, and PRI (Photochemical Reflectance Index) for photosynthetic stress. Combining indices improves stress type classification accuracy by 30%.NDVI < 0.2 — bare soil or dead vegetation; 0.4–0.6 — moderate growth; > 0.7 — dense healthy crop. Additionally, we use NDRE (more sensitive to chlorophyll) and NDMI for water stress maps.
import numpy as np
import rasterio
from rasterio.transform import from_bounds
import matplotlib.pyplot as plt
def calculate_vegetation_indices(satellite_image_path):
"""
Расчёт вегетационных индексов из мультиспектрального снимка.
Ожидаемые каналы: Blue, Green, Red, Red Edge, NIR, SWIR
"""
with rasterio.open(satellite_image_path) as src:
bands = src.read().astype(float)
meta = src.meta
blue, green, red, rededge, nir, swir = bands[:6]
eps = 1e-10
ndvi = (nir - red) / (nir + red + eps)
ndre = (nir - rededge) / (nir + rededge + eps)
ndmi = (nir - swir) / (nir + swir + eps)
evi = 2.5 * (nir - red) / (nir + 6*red - 7.5*blue + 1 + eps)
return {
'ndvi': np.clip(ndvi, -1, 1),
'ndre': np.clip(ndre, -1, 1),
'ndmi': np.clip(ndmi, -1, 1),
'evi': np.clip(evi, -3, 3)
}
def detect_problem_zones(ndvi_map, field_boundary, threshold=0.35):
"""Выделить зоны стресса для прецизионного вмешательства"""
masked = np.where(field_boundary, ndvi_map, np.nan)
stress_mask = masked < threshold
return stress_mask, np.nanmean(masked)
Yield prediction is built on regression using NDVI time series and climatic data. Features: NDVI by phenological phases (emergence, tillering, grain filling), total precipitation, GDD (Growing Degree Days). RMSE for wheat is 0.3–0.5 t/ha for prediction 30 days before harvest.
How AI Helps Detect Diseases and Pests?
We use Computer Vision on drone imagery: YOLOv8 or Mask R-CNN trained on agronomist-annotated data. We detect rust, powdery mildew, fusarium, aphids, caterpillars. Accuracy is 85–92% on well-lit images. The main limitation is training data quality, so we include a data collection and annotation phase with your agronomist.
Ground-level IoT monitoring complements the picture: camera traps count thrips and bugs, acoustic sensors detect insect sound in elevators, weather stations assess fungal disease risk via leaf wetness and temperature.
Why Precision Farming is More Profitable Than Traditional?
Variable rate application (VRA) reduces costs by 15–25% without yield loss. ML models predict fertilizer needs 3 times more accurately than tabular methods. Process:
- Soil analysis: sampling on a 300×300 m grid → laboratory
- Interpolation: kriging or IDW → nutrient map
- ML model: soil + NDVI → recommended N/P/K rate
- ISOBUS command: implement HORSCH, John Deere — precise dosing
| Application method | Fertilizer savings | Yield increase | Field time (man-h/ha) |
|---|---|---|---|
| Traditional | 0% | 0% | 0.02 |
| Variable rate | 15–25% | up to 10% | 0.03 |
| Precision (VRA + ML) | 25–35% | up to 12% | 0.05 |
For a 10,000 ha farm, fertilizer savings reach 2–3 million RUB per season. For irrigation, we apply FAO-56 water balance model and Reinforcement Learning for multi-day irrigation planning considering weather forecasts and electricity tariffs.
What Is Included in the Work?
- Audit of farm data and infrastructure
- Collection and annotation of training samples (with your agronomists)
- Development of monitoring model (NDVI, disease detection) on PyTorch / TensorFlow
- Integration with IoT devices and drones
- Deployment on your server or cloud (Kubeflow, MLflow for MLOps)
- Training your team on dashboard usage
- Technical support and model retraining per season
Timelines: from 2 weeks for basic monitoring to 10 months for a full platform. To evaluate your project, contact us — within 2 days we will prepare a plan and calculate the economic effect. We guarantee transparent timelines and budget.
Farm Analytics and Planning
Farm Management System (FMS) Dashboard combines:
- NDVI maps in dynamics over the season
- Yield maps from combine — feedback for the next season
- Comparison of fields with each other and with crop standard
- Financial analytics: costs/ha vs. yield — margin per field
We integrate grain price forecasting via LSTM on Moscow Exchange, CME Group, and USDA data. Recommendations on sales timing — so you lock the best price.
According to Wikipedia, NDVI is an industry standard, but we use it in combination with machine learning for accuracy unattainable by classical methods. Request a consultation — we will calculate ROI for your farm.







