Полевая съёмка без интернета: офлайн-проект в QField, выгрузка в DXF и контроль данных
Полевой сегмент работ — это участок без связи, ограниченное время и данные, которые нельзя потерять. Отсюда три требования к офисной подготовке: проект должен работать полностью офлайн, синхронизация не должна приводить к конфликтам, а выгрузка в чужой формат (DXF) не должна превращаться в «картинку без географии». Ниже — рабочий порядок, собранный из документации QGIS, QField и GDAL.
Почему офлайн — это не «просто отключить интернет»
QField работает офлайн по умолчанию: подложки, слои и формы загружаются на устройство заранее, а сеть нужна только для синхронизации изменений. Это осознанная архитектура: в поле связь может пропасть на десятки минут, и приложение не должно ни терять геометрию, ни блокировать работу.
Отсюда правило: подготовка проекта в офисе — это отдельная работа, а не «сохранить и скопировать на планшет». Ниже — состав подготовки.
Шаг 1. Формат данных: GeoPackage, один слой — один файл
QField и QFieldCloud оптимизированы под GeoPackage (.gpkg); официальная документация рекомендует конвертировать слои в этот формат перед началом проекта (в QGIS: «Слой → Экспорт → Сохранить объекты как…» → Формат: GeoPackage).
Вторая рекомендация документации — модульная структура файлов: не хранить все слои в одной базе survey_data.gpkg, а разнести их по файлам (trees.gpkg, roads.gpkg, buildings.gpkg). Причина практическая: QFieldCloud делает резервную копию изменённого файла на каждую синхронизацию, и откат одного файла не должен затрагивать валидную работу по другим слоям.
Побочные выгоды GeoPackage: единый файл с атрибутами, пространственным индексом и CRS, устойчивость к проблемам с кодировкой имён атрибутов (в shapefile имена полей ограничены и приводятся к верхнему регистру) и отсутствие «потери точности», характерной для текстовых форматов.
Шаг 2. Пути и идентификаторы — две настройки, которые экономят день съёмки
Относительные пути. В QGIS: «Проект → Свойства → Общие → Пути → Сохранить как: Относительные». Абсолютные пути вида C:\Users\...\photo_001.jpg ломаются при переносе на мобильное устройство из-за другой файловой структуры — и это самая частая причина «пропавших» фотографий и подложек в поле.
Уникальные идентификаторы. Когда несколько человек собирают данные офлайн одновременно, обычная автоинкрементация (1, 2, 3…) приводит к конфликтам при применении дельт. Документация рекомендует:
- для связей и внешних ключей — отдельное текстовое поле (например,
survey_uuid) со значением по умолчаниюuuid()илиuuid('WithoutBraces'); - для встроенного
fidв GeoPackage — значение по умолчаниюepoch(now()), чтобы идентификатор был уникальным по времени; при этом «применять значение по умолчанию при обновлении» должно быть выключено, чтобы идентификатор не менялся при редактировании.
Заведите это поле сразу: переделать идентификаторы после съёмки — отдельная операция с риском задвоения связей.
Шаг 3. Атрибуты и формы
Проект — это не только геометрия. Покажите заказчику или бригаде перечень атрибутов до выезда: что обязательно, что заполняется списком, что требует фото. В QGIS атрибутные формы задаются в «Свойства слоя → Форма атрибутов», где для полей можно задать ограничения (список значений, числовые границы, обязательность).
Чем строже форма, тем меньше возвратов с объекта: «пустой» код материала или «на глаз» записанная категория потом разбираются в офисе часами.
Шаг 4. Упаковка проекта: QFieldSync
Плагин QFieldSync в QGIS готовит проект к работе на устройстве. Ключевые шаги:
- Подготовка базовой карты. Она должна быть растровым слоем (например, подготовленный GeoTIFF) или комбинацией слоёв, собранной в «тему карты». Подложка выбирается под рабочую область.
- Действия слоёв для каждого слоя:
Copy— скопировать на устройство без редактирования;Offline editing— рабочая копия, изменения которой потом синхронизируются обратно;Remove— не переносить вовсе (так исключают подложки);No action— только для WMS/WFS. - Область интереса (AOI). При упаковке выбирается участок, для которого будет отрисован базовый слой, — это прямо влияет на размер пакета и время подготовки.
- Упаковка в переносимую папку проекта, копирование на устройство.
| Режим QFieldSync | Что происходит при упаковке | Когда выбирать |
|---|---|---|
Offline editing |
Создаётся локальная GeoPackage-копия слоя с журналом дельт | Полевые точки, линии и полигоны, которые редактирует бригада |
Copy |
Файл копируется на устройство без отслеживания правок | Опорная сеть, кадастровая подложка, границы участка, GeoTIFF |
Remove |
Слой исключается из мобильного пакета | Тяжёлые архивные растры и временные черновые слои офиса |
No action |
Слой обращается к внешнему серверу напрямую | Только WMS/WFS при гарантированной сотовой связи |
После работы: копия изменённой папки возвращается на компьютер и синхронизируется с исходным проектом (плагин QFieldSync умеет и «собрать пакет», и «принять изменения обратно»).
Если используется QFieldCloud, схема та же, но с облачной синхронизацией; при этом работа с данными идёт через временный GeoPackage, и изменения остаются локальными до синхронизации — это защищает от потери данных при обрывах связи.
Шаг 5. Выгрузка в DXF: главная ловушка
DXF — формат обмена чертежами, а не геоданными. Драйвер GDAL/OGR прямо указывает: файлы DXF считаются не имеющими геопривязки. То есть при экспорте в DXF вы получите корректную геометрию, но информация о системе координат в самом файле не хранится — её нужно передавать отдельно.
Практические шаги, чтобы не превратить результат в «картинку»:
- Сначала приведите слой к целевой системе координат (перепроецируйте, а не «присвойте» метку) — про это отдельно: системы координат и пересчёт.
- Экспортируйте в DXF из QGIS («Экспорт → Сохранить объекты как…» → формат DXF). Драйвер умеет писать DXF, совместимый с AutoCAD 2004 и позднее; начиная с GDAL 3.12 читается и двоичный DXF.
- Приложите описание геопривязки отдельным файлом (
.prjс определением CRS) и укажите в сопроводительной записке, в какой системе записаны координаты. Без этого получатель вынужден угадывать. - Замкнутые контуры. По умолчанию драйвер отдаёт замкнутые POLYLINE/LWPOLYLINE как ломаные, а не как полигоны (опция
DXF_CLOSED_LINE_AS_POLYGONпо умолчаниюFALSE). Если границы участков должны читаться как площади, включайте эту опцию при экспорте — иначе площадь в CAD не посчитается. - Штриховки (HATCH) собираются в полигон, но заливка не передаётся; дуги и сплайны разбиваются на отрезки (шаг задаётся опцией
OGR_ARC_STEPSIZE); текст переносится с приблизительным позиционированием, потому что без метрик шрифта точное совпадение с CAD не гарантировано. Учитывайте это в ожиданиях: DXF — обмен, а не «идеальная копия» исходного чертежа. - Проверьте обратным импортом. Загрузите выгруженный DXF обратно в QGIS и сравните: число объектов, атрибуты, положение точек, отсутствие «съехавших» полигонов. Это единственная надёжная проверка, что обмен состоялся.
Шаг 6. Контроль качества данных: что проверять до сдачи
Контроль удобно разбить на четыре прохода.
1. Пространственные проверки
- координаты вне ожидаемой области (частая ошибка — забытый пересчёт или «присвоенная» метка);
- дубликаты точек и совпадающие коды в одном месте;
- «прыгающие» точки: соседние объекты с несопоставимым удалением;
- незамкнутые контуры там, где граница должна быть замкнутой.
2. Атрибутивные проверки
- заполненность обязательных полей (пустые коды, пропущенные категории);
- соответствие кодов справочнику проекта;
- типы значений: даты в одном формате, числа — числами, а не текстом.
3. Тематические проверки
- наличие контрольных точек, снятых в начале и в конце сессии;
- расхождение с эталонными координатами — и вывод о допустимости;
- сверка площади, посчитанной по геометрии, с площадью в учётных системах (ЕГРН, экспорт из ведомости). Расхождение — сигнал либо о геометрии, либо о неверной системе координат.
4. Логистические проверки
- полнота комплекта: журнал, выгрузка, протокол контроля, фотоматериалы;
- дублирование данных на двух носителях;
- совпадение версий ПО и данных (проект собран в QGIS 3.44, а поле идёт в QField другой версии — проверьте совместимость на этапе подготовки).
Чек-лист офисной подготовки
- [ ] Слои переведены в GeoPackage, каждый слой — в отдельный файл.
- [ ] Пути проекта — относительные; файлы данных лежат рядом с проектом.
- [ ] Уникальные идентификаторы:
uuid()для ключей,epoch(now())дляfid. - [ ] Атрибутные формы настроены: обязательные поля, списки, ограничения.
- [ ] Базовый слой подготовлен (растр или тема карты), выбрана область интереса.
- [ ] QFieldSync: действия слоёв заданы, пакет собран, объём проверен.
- [ ] Связка GNSS отработана в офисе, NTRIP-клиент определён (см. материал о RTK и NTRIP).
- [ ] Слой перепроецирован в целевую систему координат.
- [ ] Экспорт в DXF с включённой опцией замкнутых полигонов, рядом —
.prj. - [ ] Обратный импорт DXF выполнен и совпал с исходником.
FAQ
Можно ли работать в поле с планшетом без отдельного GNSS-приёмника? Можно, но точность будет ограничена возможностями встроенного модуля (единицы метров), чего недостаточно для кадастровых и топографических задач. Внешний приёмник, в том числе с RTK-поправками, подключается к QField по Bluetooth/BLE.
Почему после синхронизации появились дубли точек?
Обычно из-за идентификаторов: если в слое стоит автоинкрементация и несколько полевых сотрудников собирали данные одновременно, дельты конфликтуют. Лечится на этапе подготовки — уникальными uuid()/epoch(now()), а не склеиванием результатов вручную.
Чем отличается «присвоить CRS» от «перепроецировать» при выгрузке? Присвоение меняет только подпись системы координат, координаты остаются прежними. Перепроекцирование пересчитывает значения. Для выгрузки в DXF и передачи заказчику нужен именно пересчёт.
Файл DXF открылся, но объекты «уехали».
Скорее всего, не приложено описание системы координат (.prj) либо получатель интерпретирует координаты в другой СК. Проверьте, записаны ли координаты в метрах и в какой именно системе, и приложите .prj.
Можно ли редактировать в поле атрибуты, которых не было в проекте? Технически да, но схема должна быть продумана заранее: добавление полей в офисе после съёмки требует переноса данных и часто ручного заполнения. Практичнее заложить все нужные поля в форму до выезда.
Нужен ли интернет для QFieldCloud? Для синхронизации — да; для самой полевой работы — нет. Изменения остаются локально до синхронизации, что как раз и обеспечивает устойчивость к обрывам связи.
Рабочее место: что берут в поле
Офлайн-проект снимает вопрос «есть ли сеть», но добавляет требования к железу: достаточный объём накопителя (пакет проекта, фотографии и резервная копия места в поле — это десятки гигабайт за смену), ёмкость батареи и надёжность хранения. Практические ориентиры по таким станциям — в материале про лёгкие ноутбуки для командировок и про апгрейд памяти и накопителя. Обоснование допустимой погрешности измерений — в статье о средней квадратической погрешности Mt.