Автоматическое построение карты полей и объектов предприятия по трекам техники
1. Зачем это нужно#
Чтобы вести наряды, заявки и факт обработки по полям, в системе должна быть карта полей: каждое поле — геозона с точным контуром и площадью. Раньше её рисовали вручную: открывали карту и обводили поле за полем, площадь получалась приблизительной. Новый способ использует то, что в системе уже есть, — GPS-треки техники.
- Поля, где реально работала техника, находятся автоматически — по «следам» тракторов.
- Границы поля берутся по спутниковому снимку, поэтому поле достраивается до видимого края, даже если трек неполный.
- Так же находятся места, где техника стоит и заправляется: фермы, дворы, склады, АЗС.
- Результат — геозоны, «Объекты работ» и справочники, готовые для нарядов и выгрузки в 1С.
2. Что нужно перед началом#
| Условие | Пояснение |
|---|---|
| GPS-объекты компании | Техника с трекерами в разделе «Объекты». Данные у «Вербиловского» начинаются с 11.07.2026 — раньше трека нет, поэтому анализируется вся доступная история. |
| Период трека | Чем длиннее период и больше техники, тем полнее покрыты поля. Если трек по полю неполный — поле достраивается по снимку (шаг 5). |
| Права | Роль с доступом к разделам «Объекты», «Геозоны», справочникам «Наряды». Вход выполняет пользователь. |
| Подложка карты | «Google спутник» (кнопка слоёв на карте). По снимку виден край поля: лесополоса, дорога, смена культуры. |
| Браузер | Окно не меньше 1100 px по ширине. Карта шире окна, при необходимости страница прокручивается вправо. |
3. Схема метода#
| Шаг | Что делаем | Результат |
|---|---|---|
| 1 | Смотрим треки по одному объекту за месяц | Понимаем, где работала техника |
| 2 | Включаем слой «рабочие точки» (жёлтая подсветка) | Видны формы полей и дороги |
| 3 | Грубо обводим поле — первичный контур | Контур-«семя» |
| 4 | Уточняем контур по спутнику (ИИ-обработка) | Точная граница и площадь |
| 5 | Ищем непокрытые места, добавляем поля | Все поля хозяйства |
| 6 | Находим базы, склады, ферму по стоянкам | Геозоны объектов |
| 7 | Находим АЗС по заправкам датчиков топлива | Геозоны заправок |
| 8 | Заполняем справочники и привязываем технику | Готовность к нарядам |
4. Пошагово (с примерами на «Вербиловском»)#
Шаг 1. Смотрим треки: один объект, один месяц#
В разделе «Объекты» отмечаем одну машину, выбираем период (месяц) и нажимаем «Трек за период». Треки смотрим помесячно и по одному объекту — иначе данных слишком много. Метки остановок можно скрыть: левый клик по любой метке остановки → «Скрыть точки остановки», правый клик по карте → «Показать».
Переключаем подложку на «Google спутник» — на снимке видны границы полей, под которые попадают проходы.
Шаг 2. Слой «рабочие точки» (жёлтая подсветка)#
Трек по одному объекту показывает мало: нужна картина по всей технике сразу. Для этого собираем рабочие точки — точки телеметрии со скоростью 3–20 км/ч и надёжным GPS (не меньше 4 спутников). Стоянки и быстрые дороги отсеиваются, остаётся «где катались трактора». Точки рисуются жёлтыми кружками поверх спутника.
- Запрос по суткам. Один запрос трека отдаёт не больше 1 800 точек, поэтому данные берём по суткам, только за дни с движением (у «Вербиловского» — 334 «объект-суток»).
- По форме скопления видно поле: плотная заливка — работа в поле, тонкая линия — дорога.
- Время событий в системе — UTC0, как и в телеметрии: сдвигать часовой пояс не нужно.
Шаг 3. Первичный контур поля («семя»)#
Включаем режим «Геозоны» и создаём группу «Поля». Затем «Создать многоугольник» и грубо обводим поле по снимку — 5–12 вершин. Этот контур нужен как «семя»: он показывает, какие точки относятся к полю и где соседние поля.
- Группа-родитель — «Поля». Имя — «Поле N».
- Backspace (или Ctrl+Z) убирает последнюю вершину, Esc отменяет рисование, Enter не нужен — достаточно «Сохранить».
- Общую границу соседних полей лучше брать по уже созданному контуру соседа — тогда поля не накладываются.
- Площадь в гектарах показывается сразу под формой и сохраняется вместе с геозоной.
Шаг 4. Уточнение контура по спутнику (ИИ-обработка)#
Первичный контур грубый и «срезает» углы, а площадь важна. Поэтому каждый контур уточняется автоматически:
- загружается спутниковый снимок вокруг поля (тайлы Google, ≈0,7 м/пиксель);
- по рабочим точкам трека определяется цвет этого поля (в системе Lab, с допуском на текстуру борозд);
- область поля «растёт» по пикселям такого же цвета — но не дальше 70 метров от первичного контура и не заходя на соседние поля;
- тонкие протечки по дорогам срезаются, разрывы и «дыры» закрываются;
- граница трассируется и упрощается до вершин с шагом 4 м.
Почему не только по трекам: если по полю есть пропуски (часть полосы не обработана или период трека короткий), контур по точкам занижает площадь. По снимку поле достраивается до видимой границы.
Сравнение площадей по первым полям (га):
| Поле | Ручной контур | После уточнения по снимку |
|---|---|---|
| Поле 3 | 100 | 97 |
| Поле 4 | 104 | 116 |
| Поле 5 | 124 | 130 |
| Поле 9 | 211 | 225 |
| Поле 10 | 295 | 239 |
| Поле 12 | 139 | 147 |
Шаг 5. Ищем непокрытые места и добавляем поля#
После первого прохода оставляем на карте только точки вне созданных полей. Если вокруг ещё есть жёлтые заливки — это пропущенные поля. Для каждого делаем первичный контур и уточняем (шаги 3–4). Цикл повторяем, пока не останутся только дороги и дворы.
Шаг 6. Базы, склады, ферма#
Объекты хозяйства находим по стоянкам: техника стоит ≥10 минут в радиусе 60 м. Стоянки группируются в радиусе 200 м; на карте их можно показать красными кружками (чем дольше стояли, тем крупнее). Места, где вся техника проводит много времени, — это база, ферма, двор, склад.
| Объект | Признак по трекам | Группа геозон |
|---|---|---|
| База Вербилово (стоянка техники) | Главная точка схождения всех треков, ≈6 900 машино-часов | Базы и стоянки |
| Ферма (МТФ) | ≈1 000 стоянок, в основном погрузчик Messey | Базы и стоянки |
| Машинный двор (мастерские) | Маневры техники у строений рядом с базой | Базы и стоянки |
| Силосные траншеи (кормовой склад) | Многократные стоянки у земляных траншей | Склады и пункты погрузки |
Шаг 7. Заправки (АЗС/ТРК)#
Места заправок определяем по событиям датчиков топлива: система фиксирует заправки (рост уровня), а координаты берём в точке начала заправки — там машина стоит у колонки (к концу заправки она часто уже уезжает). Координаты событий без позиции восстанавливаются по телеметрии на то же время. Заправки группируются в радиусе 150 м, по кластеру строится контур.
- На главную площадку приходится большинство заправок: около 180 событий и 31 тыс. л за период.
- Небольшие объёмы у фермы и траншей — передвижная ТРК: оформляются точечными геозонами с радиусом 45 м.
- Все заправочные геозоны собираются в группу «Заправка (АЗС/ТРК)».
Шаг 8. Справочники и привязка техники#
Когда карта готова, поля становятся «Объектами работ», а техника получает тип, подразделение, модель и график смен. Всё заводится так же, как у других компаний (Агротех, КМК):
| Справочник | Что заведено для «Вербиловского» |
|---|---|
| Единицы измерения | га, т, моточас, рейс |
| Виды работ | 14: вспашка, дискование, культивация, боронование, сев, внесение удобрений, опрыскивание, уборка урожая, скашивание кормовых, заготовка кормов, погрузка, транспортировка, закладка силоса, вспомогательные |
| Модели техники | МТЗ, Кировец, Claas Axion 940, KRONE (кормоуборочная), Massey Ferguson, ТРК — с видами работ |
| Объекты работ | 26 полей со ссылкой на геозону (код П-01…П-26) |
| Культуры | типовой кормовой набор; культуру каждого поля указывает агроном |
| Причины простоев | 8: заправка, погрузка/разгрузка, поломка, погода, ожидание агрегата, нет фронта работ, обед, переезд |
| График смен | одна смена «Сутки» (24 часа) |
| Подразделение, техника | все объекты — тип «Сельхозтехника», подразделение, гос. номер; карточки автотранспорта привязаны к объектам по IMEI |
5. Как проверить точность#
- Включите «Google спутник» и посмотрите все контуры целиком (масштаб ≈13): край каждого поля должен идти по видимой границе.
- Сравните площадь по контуру со знанием хозяйства или с планом посева: расхождение больше 10% — повод пересмотреть поле.
- Включите слой оставшихся точек: непокрытые заливки — пропущенные поля.
- Посмотрите стыки соседних полей: общие стороны не должны накладываться и не должны оставлять щель.
6. Ограничения и типичные ошибки#
| Ситуация | Что делать |
|---|---|
| По полю мало точек трека (редкая выборка) | Контур по снимку получается неполным — оставить ручной контур по снимку или добавить период/технику. |
| Соседние поля одного цвета без видимой границы | Разделять первичными контурами вручную; общую границу брать по контуру соседа. |
| Овраги, лесополосы шириной меньше 20 м | Могут «склеиваться» при закрытии разрывов — проверить жёлтый контур глазами и поправить вершины. |
| Лимит 1 800 точек на запрос трека | Всегда запрашивать трек по суткам, не за месяц целиком. |
| Карта «прыгает» при кликах (старая версия) | Исправлено: при рисовании карта больше не перецентровывается; кнопка «Отмена» стирает черновик. |
| Нет кадастровых данных и культур по полям | В открытом доступе их нет — культуры по полям вносит агроном из севооборота. |
7. Где лежат инструменты#
Скрипты и описание метода хранятся в репозитории: docs/agro-dispatch/field-outlining/ (папка js/ — 6 скриптов: сбор треков и слой подсветки, помощники геозон, уточнение по точкам, уточнение по спутнику, стоянки и заправки, справочники). Для ИИ-ассистента Claude Code есть навык outline-fields-from-tracks, который повторяет весь порядок работ.