AI Irrigation and Fertilization Optimization System

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
AI Irrigation and Fertilization Optimization System
Medium
~1-2 weeks
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1212
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    822

Разработка AI-системы для оптимизации полива и удобрений

Полив и питание — два крупнейших управляемых фактора урожайности. При неправильном поливе теряется 30–50% воды, при избытке удобрений — значительная часть вымывается. AI-система управляет этими ресурсами с точностью до участка поля и дня.

Модель водного баланса почвы

Расчёт эвапотранспирации (ET)

FAO Penman-Monteith — стандарт для расчёта потребности в воде:

import numpy as np
import pandas as pd

def calculate_et0_penman_monteith(weather_df):
    """
    FAO-56 Penman-Monteith для расчёта референсной ET₀.
    Входные данные: температура (мин/макс), влажность, ветер, радиация.
    """
    T = (weather_df['t_max'] + weather_df['t_min']) / 2  # средняя температура
    Rs = weather_df['solar_radiation']   # МДж/м²/день
    u2 = weather_df['wind_speed_2m']     # м/с на высоте 2м
    RH_mean = (weather_df['rh_max'] + weather_df['rh_min']) / 2

    # Психрометрическая константа и наклон кривой насыщенного пара
    delta = 4098 * (0.6108 * np.exp(17.27*T / (T+237.3))) / (T+237.3)**2
    gamma = 0.000665 * 101.3  # кПа/°C при давлении моря

    # Насыщенный пар
    es = (0.6108 * np.exp(17.27 * weather_df['t_max'] / (weather_df['t_max']+237.3)) +
          0.6108 * np.exp(17.27 * weather_df['t_min'] / (weather_df['t_min']+237.3))) / 2
    ea = es * RH_mean / 100

    # Чистая радиация (упрощение)
    Rn = 0.77 * Rs - 4.903e-9 * (((weather_df['t_max']+273)**4 + (weather_df['t_min']+273)**4)/2) * \
         (0.34 - 0.14*np.sqrt(ea)) * (1.35 * Rs/weather_df.get('Rs0', Rs*1.1) - 0.35)

    # PM-формула
    ET0 = (0.408*delta*Rn + gamma*(900/(T+273))*u2*(es-ea)) / (delta + gamma*(1+0.34*u2))
    return ET0.clip(lower=0)

Soil Water Balance:

Ежедневный расчёт водного баланса для каждой зоны полива:

  • TAW (Total Available Water): запас воды в корневой зоне
  • Θ_t+1 = Θ_t + Rain + Irrigation - Kc × ET₀ - Drainage
  • RAW (Readily Available Water): 40–50% от TAW → порог начала полива

ML-улучшение классической модели

Классическая FAO-модель не учитывает специфику почвы конкретного поля. ML-коррекция:

  • Датчики влажности почвы (TDR, FDR) в нескольких точках → обучающий сигнал
  • LSTM обучается предсказывать реальную влажность по входным данным
  • Поправочные коэффициенты Kc (культурный коэффициент) per-field из исторических данных

Предсказание потребности в поливе:

  • Входы: прогноз погоды на 5–7 дней (Open-Meteo API), текущий Θ
  • Выход: нужен ли полив сегодня и сколько мм
  • Интеграция с расписанием насосной станции и тарифами электроэнергии

Дифференцированное внесение удобрений

Карты питательных веществ:

Кригинг-интерполяция точечных почвенных проб → растровая карта N/P/K по полю. ML-коррекция:

  • NDVI коррелирует с потребностью в азоте → использовать спутник вместо или вместе с пробами
  • Исторические карты урожайности: слабые зоны хронически — возможно, почвенный дефицит или дренажная проблема

Variable Rate Application (VRA):

import geopandas as gpd
import rasterio
import numpy as np

def generate_vra_prescription(
    field_boundary,
    ndvi_map,
    soil_ph_map,
    target_yield,
    crop='wheat',
    base_n_rate=120  # кг N/га базовая норма
):
    """
    Генерация prescription map для вариабельного внесения азота.
    """
    # Нормализация NDVI к отклонению от среднего по полю
    field_mean_ndvi = np.nanmean(ndvi_map[field_boundary])
    ndvi_deviation = ndvi_map - field_mean_ndvi

    # Скорректировать дозу: где NDVI ниже среднего — больше азота
    n_adjustment = -ndvi_deviation * 80  # -80кг N за единицу NDVI отклонения

    # Поправка на pH (при pH<6 снижаем дозу, известкование важнее)
    ph_factor = np.where(soil_ph_map < 6.0, 0.7,
                 np.where(soil_ph_map > 7.5, 0.85, 1.0))

    prescription = np.clip(
        (base_n_rate + n_adjustment) * ph_factor,
        a_min=60, a_max=180  # агрономические ограничения
    )

    return prescription

Результат: prescription map в формате SHP/ISOBUS → загрузка в терминал разбрасывателя (John Deere GreenStar, CLAAS S-Technologies).

Прогнозная аналитика питания

Дефицит питательных веществ по симптомам:

Computer Vision по снимкам листьев или дроновой съёмке:

  • Хлороз (пожелтение): азотный или серный дефицит
  • Пурпурный оттенок: фосфорный дефицит
  • Краевое побурение: калийный дефицит

CNN классификатор (EfficientNet) на 15 классов дефицитов. Точность 78–85% при хорошем освещении.

Интеграция с оборудованием

  • Капельный полив: контроллеры Netafim, Hunter (Modbus/REST API)
  • Дождевание: Rain Bird, Lindsay (SCADA интеграция)
  • Разбрасыватели: CLAAS, Amazone, John Deere (ISOBUS Task Controller)
  • Насосные станции: частотные преобразователи, сигнал 4–20мА → целевой поток

Срок разработки: 3–5 месяцев для системы управления поливом и питанием с интеграцией погоды, датчиков почвы и ISOBUS-оборудования.