Любой крупный проект требует разбиения единой сложной задачи на небольшие подзадачи. Если понимать под проектом оцифровку большой территории, то разделение ее на небольшие участки и оцифровка этих участков по отдельности напрашиваются сами собой. Проблемы начинаются при попытке организовать процесс; и на этом мы остановимся подробнее.
Итак, сегментация проекта — это наиболее естественный способ контроля за временем исполнения проекта. Надо выполнить проект быстрее — делим его на большее число частей и раздаем большему числу операторов. Разумеется, можно создавать проекты для отдельных участков по отдельности. Но при использовании сегментации мы гарантированно имеем одинаковый состав слоев и совпадение всех возможных настроек во всех созданных подпроектах.
Кроме того, сегментация большого проекта — это единственно возможный способ избежать тирании количества, когда сотни тысяч объектов и множество подключённых растров катастрофически замедляют почти любые действия над проектом.
Как уже сказано, можно было бы просто создать ряд проектов по прототипу, покрыв всю площадь проекта (собственно, раньше мы так и делали), но сейчас есть гораздо более эффективные инструменты.
Создание подпроектов на основе полного покрытия
Полным покрытием мы будем называть проект, содержащий все растры, подлежащие оцифровке в рамках единой работы. Сборка полного покрытия гарантирует попадание каждого листа на свое место, избавляет от пропусков и позволяет наглядно планировать работу.
Для эффективного разделения работы нужно создать подпроекты примерно равной нагруженности. Для этой задачи полное покрытие тоже подходит как нельзя лучше. Наконец, выделение в подпроект группы смежных листов заметно уменьшает затраты на сводку и сшивку объектов, рассеченных границами листов.
Еще один плюс использования подпроектов — возможность «заглянуть за горизонт». Утилита сегментации автоматически окружает каждый подпроект «пограничной зоной», состоящей из узких фрагментов соседних растров. Это позволяет не ломать голову, выясняя происхождение обрывков рассеченных границей объектов. Кроме того, можно еще до сшивки исправить расхождения, встречающиеся на границах листов.
Подготовку подпроектов в EasyTrace Pro выполняет специальная утилита Создание подпроектов. Утилита выполняет следующие операции:
- готовит растровое покрытие подпроекта, включая фрагменты растров пограничной зоны;
- создает рамку по границе;
- создает рамки подпроектов на исходном проекте (полном покрытии) и подписи с именами растров;
- копирует в подпроект всю структуру исходного проекта, включая слои, таблицы атрибутов, домены значений атрибутов, а также настройки всех утилит и инструментов (трассировки, проверки и коррекции топологии и т.д.)
Результат работы утилиты — это папка, содержащая все необходимые элементы подпроекта. Эта папка никак не связана с исходным проектом, может переноситься на любой компьютер и обрабатываться совершенно автономно. При этом результаты обработки будут гарантировано совместимы с исходным полным проектом.
Допустим, мы имеем полное растровое покрытие. Алгоритм действий следующий:
- Открыть полный проект.
- Выбрать команду Утилиты->Создание подпроектов
- Указать левой кнопкой мыши в поле проекта на растры, на основе которых вы хотите создать подпроект. Для отмены выделения ошибочно выбранного растра достаточно еще раз щелкнуть по нему левой кнопкой мыши.
- В окне «Создание подпроектов» задать необходимые параметры:
- Задайте папку, в которой будут сохранены подпроекты. Каждый подпроект будет помещен в отдельную под-папку, имя которой совпадает с именем подпроекта. Если корневая папка не задана, то подпроекты будут сохраняться в папке исходного проекта.
- Можно автоматически создать рамки по границам подпроекта и/или по границам входящих в него растров. Для этого включите соответствующие опции и выберите слой для размещения рамок (структура слоев наследуется от исходного проекта).
- Выделяемый подпроект всегда окружается «пограничной зоной», состоящей из фрагментов прилегающих к подпроекту растров. Шириной этой зоны можно управлять, задавая «размер поля» (указывается в единицах проекта).
- Задание различных цветов для растров подпроекта и «пограничной зоны» поможет вам избежать неумышленного «перехода границы» при трассировке. Выберите цвет основных растров (которые находятся внутри подпроекта) и цвет дополнительных растров (окружающих основное поле). Выбор цвета возможен только для монохромных растров.
- На исходном проекте можно отметить растры, уже выделенные в отдельные подпроекты. Для этого можно взвести флаг «Создать рамку подпроекта» и указать слой для ее создания. Кроме того, такие растры можно пометить, отобразив их имена. Выберите опцию «Создать текст с именами растров» и укажите высоту и слой для размещения текста над каждым из растров, вошедшим в подпроект.
- Нажмите кнопку «Создать».
Сшивка векторных данных
При сборке полного векторного покрытия из отдельных планшетов или из сегментов-подпроектов необходимо выполнить сшивку векторных данных. Решение этой задачи, как правило, сопряжено с разрешением массы мелких конфликтов между данными соседних листов. Прежде всего, это некоторое (или значительное!) несовпадение координат сшиваемых концов линий или расхождение границ полигонов. Возможны рассогласования по слою, толщине линий, значению координаты Z и, конечно, расхождение в атрибутивных данных объектов.
Таким образом, сшивка проектов сводится к выполнению следующих операций:
- собрать в один проект векторные данные, подлежащие сшивке;
- определить границы, вдоль которой будет выполнятся сшивка;
- выполнить автоматическую сшивку для векторных объектов, не имеющих конфликтов;
- пометить объекты, сшивка которых не выполнялась, указав причины отказа в сшивке;
- выполнить проход по всем пометкам, вручную разрешая конфликтные ситуации.
В EasyTrace Pro сшивка может выполнятся вдоль произвольной векторной линии. Такая линия (или несколько линий) играют роль границ между сшиваемыми материалами. Естественно, эти линии должны как то отличаться от остальных векторных данных. Все отличие заключается в том, что они лежат на отдельном слое. Этот слой следует указать в опции «Взять границы со слоя». Очевидно, что никаких других линий на этом слое быть не должно!
Сбор векторных данных в один проект осуществляется через импорт подпроектов. При импорте все данные приводятся к единому масштабу и DPI, соответствующим подпроекту, в который производится импорт.
Следующий шаг — это определение границ, вдоль которых будет выполняться сшивка. Конечно, можно было бы использовать границы, созданные при выделении подпроектов. Но обычно они уже сильно «испорчены» общими вершинами, образованными при пристыковке к ним пограничных векторных объектов. Следовательно границы (линии сшивки) должны быть созданы заново.
Вот как это выглядит:
- Открываем первый подпроект (или исходный полный проект).
- Выполняем импорт остальных сегментов проекта — команда «Файл->Импорт». Попутно создаем границы сшивки, указав опцию импорта «Создать границу на слое» (для создаваемых границ можно задать имя нового слоя — он будет создан автоматически. Важно, чтобы на этом слое ничего, кроме границ, не было).
- Выполнив импорт, проверяем наличие и корректность положений линий сшивки. При необходимости, корректируем их.
- Выбираем команду Утилиты->Сшивка полилиний. В открывшемся окне указываем:
- слои, подлежащие сшивке;
- слой, содержащий границы сшивки;
- допуск, в пределах которого будет сшиваться линии;
- типы отслеживаемых ошибок и условий соединения линий.
- Исправляем все обнаруженные ошибки с помощью редактора примитивов
Замечание: граница сшивки может быть создана вручную. Это позволяет решать нестандартные задачи, например, сшивать карты соседних районов по их административной границе.