Новшества в Easy Trace Pro 9.6.2170

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница является черновиком статьи.


Что нового можно найти в очередной версии Easy Trace Pro 9.6.2170?

Условно, все основные доработки можно разбить на шесть категорий:

Новый формат проекта Easy Trace PRO

Формат: ET-проект изменился внешне. Теперь это монолитный файл данных, без отдельного каталога с набором атрибутивных таблиц векторных слоёв. Формат по-прежнему закрыт, и открывать его мы не планируем.

Быстродействие: Резко, в несколько раз, изменилась скорость открытия и сохранения проекта на диске. Особенно сильно это заметно при работе с насыщенными проектами и сводными покрытиями, собранными из десятков листов.

Ограничения: Рудименты, унаследованные от старого формата данных (ограничение в 8190 вершин на линию, перемычки между внутренними и внешними контурами полигонов), пока остались, но их исчезновение - вопрос времени. Осталось только "перелопатить" большой объём кода. Ограничений со стороны формата хранения данных больше нет.

Совместимость: Для начала работы с новым форматом от пользователя никаких дополнительных действий не требуется. После установки новой версии вы открываете свой рабочий проект, он быстро конвертируется, и ... всё! Ваш рабочий проект по-умолчанию запишется в новом формате. Точно так же, нет никаких ограничений на использование ранее выполненных проектов в роли проектов-прототипов. Все ваши новые проекты могут автоматически наследовать структуру данных, настройку рабочей среды, пользовательские инструменты, стратегии трассировщиков и утилит и т. д., подготовленные вами в предыдущих версиях пакета.

Обратная совместимость: Даже если обновлённый пакет в составе рабочей группы всего один, именно он должен "возглавить" эту группу. Одного рабочего места вполне достаточно для обработки растров новых проектов, автовекторизации, первичной "зачистки" и коррекции "вектора", передаваемого остальным операторам. Наконец, сборки, сшивки по границам, оптимизации и контроля данных полного векторного покрытия. Всё это в новой версии пакета делается гораздо быстрее.

Для передачи проектов операторам более ранних версий пакета, следует выполнить только одну операцию - Компоновка проекта. Т. е. указать, что сохранять проект надо в формате 7.х-9.х и куда следует его "положить". И всё. Тем не менее, можно продолжать работать и со старым форматом проекта. При загрузке старого проекта программа спрашивает, нужно ли конвертировать его в новый формат. Просто ответьте "нет".

Оцифровка снимков

Интерактивная трассировка границ полигональных областей (NEW!)

Мы давно поглядывали в сторону интерактивной трассировки космоснимков. Ведь с точки зрения векторизатора, снимок - это просто ещё одна разновидность растра. Ну или пакета растров, в случае многозональных снимков. Тем более что большинству пользователей реально доступны лишь ортотрансформированные снимки в виде RGB- растров. Хуже того - синтезированные, трансформированные и скорректированные по цветовой гамме снимки, как правило, содержат "прореженную" палитру цветовых оттенков. Это сильно напоминает деградацию "истинных" цветов линий и заливок в растровых картах, "пережатым" JPEG-кодированием. Гистограммы таких растров напоминает расчёску, в которой уцелел лишь каждый 3-4 зуб...

Наш человеческий мозг - удивительная штука. Мы легко читаем текст, в котором едва ли не каждая вторая буква заменена на цифру, или буквы вообще стоят не на своих местах. То же и с изображениями - на глаз снимок выглядит вполне разборчиво, тогда как от исходной палитры остались только клочья.

Казалось бы, ну и что?! Границы же видно! Вот же они!! Ну да... Осталось только понять, как именно мы видим то, что видим.

Но так или иначе, трассировщик "забегал" по границам. Как-то он их там выделяет, несмотря на то, что перепады цвета и яркости на границах сильно "смазаны" прореженной гаммой оттенков космоснимка. В общем, лёд тронулся. Как обычно, инструмент возник во время работы над очередным проектом - инвентаризацией сельхоз-угодий (кстати, а вы знаете, что по данным Росреестра, в кадастр всё ещё не попали более 40% объектов?).

Текущая реализация интерактивной трассировки границ полигональных объектов на снимке выглядит так:

• выбираем трассировщик кривых, и в окне Параметры трассировки, создаём новую стратегию трассировки, способомТрассировка областей на снимках (Один раз! Далее новую стратегию только используем!);

• выбираем Автоматический режим интерактивной трассировки;

• указываем левой клавишей мыши внутрь области, подлежащей оконтуриванию - трассировщик показывает распознанный контур;

• удерживая клавишу Ctrl и вращая колесо мыши, расширяем или сужаем контур, уточняя его границы;

• фиксируем результат правой клавишей или через Esc.

Дополнительно, удерживая Shift и вращая колесо мыши, можно "зачистить" имеющиеся на границе каверны. А используя вращения колеса с нажатой клавишей Alt, можно уточнить степень сглаживания (оптимизации) построенной границы полигона. После уточнения параметров оптимизации, вам предложат их сохранить в текущей стратегии трассировщика для дальнейшего использования. Обычно, именно числовые параметры оптимизации формы линий вызывают у новичков самые большие затруднения. Теперь всё просто: вращаю колесо => вижу результат => сохраняю параметры оптимизации на будущее...

Если какие-либо из границ контура просматриваются откровенно плохо или являются простыми прямыми, то часть контура можно построить в ручном режиме. Затем перейти в "автомат" и указать точку внутри цифруемой области. Далее по тексту.

Конечно, полученный контур наверняка потребует "доработки напильником" (векторной стёркой и редактором прогиба), но в целом, по оценке наших операторов, скорость оцифровки сельхозугодий выросла примерно вдвое. Наибольший выигрыш трассировщик, естественно, даёт при выделении сложных криволинейных границ объектов.

Пример работы инструмента можно увидеть в этом видеоролике.

Еще стоит добавить, что обычный интерактивный трассировщик уже давно неплохо бегает по просёлочным грунтовым дорогам.

Полиэкранное отображение вектора поверх снимков в нескольких диапазонах (доработка)

Как правило, ручное дешифрирование границ сельхозугодий выполняется по пакету космоснимков. Обычно это снимок в естественных цветах плюс снимок в инфракрасном диапазоне. Или иной синтезированный снимок, проявляющий границы цифруемых объектов. Снимков (растров) может быть и больше двух - например, при использовании сезонных снимков.

Первое, что приходит в голову - сложить такой пакет снимков для просмотра "на просвет", используя опции прозрачности отображения растров. Такой фокус неплохо проходит, например, при наложении растра топокарты на снимок. Но с космоснимками это выглядит чудовищно. Лучше разделить экран на 2-4 окна и синхронно отслеживать вектор поверх нескольких растровых подложек (а ещё лучше - распределить эти окна по двум экранам!).

Собственно, такой режим отображения появился в ET уже довольно давно. Но только теперь можно видеть текущую "резиновую линию" или след автотрассировки синхронно сразу во всех открытых окнах. Ранее, надо было либо "скакать" по окнам для отслеживания совпадения, либо мириться с некоторым запаздыванием появления линии в дополнительных (не текущих) окнах.

Et2170 Imagery 4x.gif

Режим прозрачности растров

Режим полупрозрачного отображения пакета растров Прозрачность растров дополнился еще одним вариантом вывода - сделать "прозрачными" пикселы светлее заданного порога. Это позволяет накладывать цветные или серошкальные растры карт поверх изображения аэро- и космо-снимков без потери качества отображения последних. Т.е. на снимок "лягут" только линии и заливки, которые темнее некоторого заданного порога. "Грязный" серый фон растровых карт останется полностью прозрачным. Опция доступна для любых не черно-белых растров (черный фон ч.б. растров прозрачен по-определению).

Et2170 Transparency new.gif

Et2170 Transparency old.gif

Потоковый режим трассировки (доработка)

Пожалуй, наиболее популярным режимом трассировки при дешифрировании снимков является потоковая трассировка. Т. е. непрерывное создание линии непосредственно вслед за движущимся курсором мыши. Вот только для этого нужна очень твёрдая рука. Иначе всё дрожание рук "после вчерашнего" запечатлеется в результатах вашего труда. В этом инструменте очень важен встроенный механизм сглаживания строящейся линии. Вот собственно он и был подвергнут переработке. Теперь красивые линии могу рисовать даже я!

Пример работы инструмента в этом режиме можно увидеть в этом видеоролике.

Оцифровка полигональных покрытий

Утилита Фильтрация связного мусора (NEW!)

Типичный цикл АВТОМАТИЗИРОВАННОЙ векторизации (не будем говорить об "автоматической" векторизации - она применима только к очень узкому классу задач) состоит из ряда операций:

• выделение, чистка и, возможно, оскелечивание тематического растра;

• векторизация растра, чистка, сшивка и доводка векторных элементов;

• сборка, правка формы, классификация и атрибутирование векторных объектов.

При таком подходе к векторизации, на нагруженных материалах до 90% времени обычно занимает отделение "зёрен от плевел". Т. е. удаление "векторного" мусора, неизбежно возникающего после векторизации растра. Для скептиков сразу заметим: удаление мусора и доводка результатов В РАЗЫ БЫСТРЕЕ последовательной и аккуратной прокладки отдельных линий по растру любым известным нам способом.

Наиболее муторная ситуация с удалением "мусора" складывается при обработке материалов ручного исполнения. Например таких, как почвенные карты (ещё один наш недавний проект). Это очень толстые линии, обилие рукописного текста и условных знаков и, в довершение всего, раскраска карты цветными карандашами.

Большая толщина линий отнюдь не благо. При износе материала (а только такие и попадают на оцифровку) толстые линии "рассыпаются" на откровенную грязь с изобилием каверн и разрывов. Единственное лекарство для извлечения этих "следов в пыли" - это многократное размытие и повышение контраста изображения. Но увы, эти же операции приводят к неизбежной склейке между текстом, условными знаками и линиями. Дальнейшие шаги обработки приводят к образованию сложных векторных конгломератов, прилипших к границам полигонов.

От таких сложных конгломератов, да ещё и прилипших к границам полигонов уже не избавишься утилитой Векторная фильтрация. Для их поиска и удаления была разработана специальная утилита Фильтрация связного мусора. Поскольку ни о каком распознавании текста в таких клубках линий речь идти не может, для их опознания используется ряд характерных признаков. Это высокая компактность (большая протяжённость линий, образующих конгломерат при малом размере охватывающего его прямоугольника), малая длина и большое число входящих в конгломерат элементов и факт примыкания конгломерата к чему-то похожему на границу полигона (т. е. к протяжённой линии, имеющей малый изгиб).

Для работы с подобными растрами и была написана эта утилита. Это почвенные карты, используемые для уточнения кадастровой стоимости земель сельхозугодий. Здесь показан исходный и выделенный из него толстый "чёрный" растр. Для выделения границ участков использовалась довольно длинная связка команд под управлением Комбинированного растрового инструмента. "Вытаскивание" границ, закрашенных тёмно-коричневым цветом выполнялось в этой связке утилитой Локальное повышение контраста.

Et2170 Color.gif

Et2170 Color1.gif

Et2170 Thick.gif

Перечень параметров утилиты Фильтрация связанного мусора выглядит несколько устрашающе. Но это не проблема, поскольку в утилиту встроен режим Просмотр, и есть возможность указания образцов удаляемых конгломератов непосредственно на экране. Т.е., задав векторный слой, подлежащий очистке, и нажав кнопку Сбросить предыдущие значения параметров, следует просто указать образцы связанного мусора, подлежащие удалению.

Для удобства контроля, яркость исходного вектора приглушается, а удаляемые конгломераты, напротив, ярко подсвечиваются. "Выползание" удаляемых конгломератов на границы полигонов пресекается нижней группой параметров, ограничивающей их рост. Предварительное сглаживание исходных данных позволяет повысить достоверность распознавания конгломератов. Сами векторные данные не изменяются.

Конечно, ряд "правильных" векторных сегментов неизбежно "попадёт под раздачу". Но они легко восстанавливаются утилитами Сшивка разрывов и Коррекция топологии (операцией Дотягивание концов линий), так как утраченные сегменты имеют малую протяжённость.

Et2170 FilteringConnectedTrash.gif


Трассировщик по вектору (доработка)

Альтернативным способом выделения границ полигонов из тяжёлой "грязи" или отделение элементов рельефа от горизонталей, является "трассировка по вектору". Напомню, что в отличие от обычных интерактивных трассировщиков по растру, этот трассировщик "бегает" по векторным цепочкам, созданным утилитой Трассировка линий. Такой способ трассировки появился в ET тоже давно. Сейчас он был доработан и обрёл новую способность. Теперь, в режиме Слежение за курсором, трассировщик, не задавая лишних вопросов, легко "соскакивает" с текущей векторной цепочки и переходит к указанному продолжению линии в месте её разрыва.

Здесь речь вовсе не об обычных разрывах в линиях - такие преграды трассировщик умеет преодолевать от рождения. Тут ситуация несколько сложнее и требует пояснений. "Грязные" растры, в которых цвет линий мало отличается от фона, требуют особой обработки. Это могут быть полустёртые карандашные линии, малоразличимые на грязном фоне изношенной "пятисотки", или линии границ на "карте-раскраске" как в примере растра, приведённом выше. В таких случаях обязательно используется сочетание двух растровых операций - Размытие и Усиление резкости (Unsharp). Первая операция позволяет "собрать" следы линии в одно целое, вторая - отделить линию от окружающего фона.

И здесь очень важен параметр Радиус маски в операции Усиление резкости. Именно он отвечает на вопрос: "а что, собственно, будем усиливать?". Т.е. значение этого параметра однозначно "завязано" на толщину выделяемых линий. Так вот, в местах пересечений и примыканий линий их "толщина" увеличивается в разы. Ну а далее срабатывает "закон подлости" - утолщение в месте примыканий линий расценивается как фон (всё тёмное, в пределах радиуса маски перепадов яркости нет!), усиление резкости не срабатывает, и в итоге одна из линий, входящих в это примыкание (обычно самая "слабая" и тонкая), "отваливается".

Особенно эффективно "вытаскивает" линии, от которых остались одни следы, утилита Локальное усиление контраста. Но за всё приходится платить - в этом случае слабые примыкающие линии "отваливаются" заметно чаще. Обычно, "отвалившиеся" линии легко возвращаются на место с помощью операции Дотянуть концы линий утилиты Коррекция топология. Вот только на перегруженных растрах к таким линиям обязательно приклеится мусор, оставшийся от текста или топографических символов, собственно поэтому здесь и стоит использовать трассировку по вектору.

Конечно, отваливаются вовсе не все линии, а только те, которые перед примыканием к узлам сильно "похудели", т. е. уже были практически оторваны. Но в целом на нагруженных растрах подобных случаев более чем достаточно. Так вот, теперь трассировщик, сталкиваясь с таким "развалившимся" узлом, может перескакивать через разрыв на продолжение линии вместо поиска обходных путей через остальные, выходящие из этого узла, ветви.

Новая способность трассировщика отлично себя показала при прослеживании элементов рельефа (обрывов, промоин, скальных выходов, утолщённых линий на скалах), границ заштрихованных областей (не залитых, а именно заштрихованных диагональной или иной штриховкой), контуров зданий с большим числом примыкающих линий границ покрытий и коммуникаций и т.д. Например, в проекте с почвенными картами, это позволило сохранить нам массу времени при восстановлении контуров протяжённых оврагов. Мало того, что в этих узких полигонах границы практически соприкасались, так они ещё и были раскрашены в тёмно-коричневый цвет, мало отличающийся от цвета границ.

Утилита Распознавание точечных символов (доработка)

Ещё одна доработка позволила кардинально разгрузить растры почвенных карт от изобилия текста и топографических символов. Изначально, эта утилита предназначалась для распознавания и точной локализации точки вставки топографических символов. Причём распознаваемые символы могут быть повёрнуты, отличаться по размерам и состоять из нескольких, не связанных друг с другом элементов. В нашем случае, распознавание символов не требовалось (они кодировались атрибутами почвенных полигонов), а вот способность утилиты стирать с растра распознанные объекты пришлась очень кстати.

Был увеличен максимальный размер распознаваемых символов, точность распознавания и интерфейса указания образцов распознаваемых/удаляемых объектов. Это позволило избавиться не только от множества топосимволов, но и от изобилия длинных штрихов пунктира, изображавшего грунтовые дороги. Естественно, что они были того же цвета, что и границы полигонов и пересекали их совершенно произвольным образом.

В результате, за 7-10 минут удавалось очистить растр от нескольких десятков тысяч "мусорных" объектов. Это время уходило на указание образцов удаляемых объектов (все карты рисовались разными людьми, и общий в них был только смысл).

Указываемые образцы масок теперь связываются не с текущим векторным слоем, а с произвольным - заданным в строке таблицы распознаваемых образцов. Т. е. достаточно оставить поле Слой в строке этой таблицы пустым, и все найденные объекты будут распознаваться "в никуда", т. е. просто стираться с растра.

Et2170 AutodetectPoints.gif

Комбинированная обработка растра (NEW!)

Если ваш компьютер не полный "тормоз" (а ещё лучше, если в нём установлена современная графическая карта на процессоре от NVIDIA), то вам доступна возможность сразу оценить результат применения целой последовательности операций к исходному растру. Даже такая простая, базовая последовательность операций как Размытие - Усиление контраста - Конвертация в монохромный растр, вызывает у слушателей наших курсов непременное желание узнать некие секретные значение параметров операций, подходящие на все случаи жизни. А их-то как раз и нет!!!

Есть ряд довольно простых правил подбора этих параметров. И все они завязаны на разрешение растра, его текущее состояние, алгоритм и степень сжатия, которыми растр был упакован, плотность представленной на растре информации, оттенки цветов, которые надо отделить друг от друга и ещё Бог весть на что! А правила действительно просты - выделенные линии не должны рваться, слипаться и, по возможности, разделяться на отдельные растры по цветам. Всё.

Вот только как объяснить, до какой степени мутности растр должен быть размыт, чтобы после усилении резкости каверны на линиях "схлопнулись", "шипы" исчезли, "грязь" на фоне не "всплыла", а тонкие и слабые линии не исчезли? Особенно, если не знаешь этого сам? Ведь, как правило, приходится делать несколько пробных попыток, прежде чем добьёшься приличного результата. Особенно на наших картах.

Но оно того стоит. Ведь разница во времени оцифровки хорошо и плохо выделенного растра это РАЗЫ, а не проценты. Так что игра стоит свеч!

И вот теперь всё стало до смешного просто. Подобрать оптимальные параметры можно классическим методом "научного тыка". Берёте типовую стратегию прямо из утилиты или составляете набор операций, посмотрев один из видеоуроков или пост на нашем форуме, и смело подбираете параметры. Как? А по конечному результату! Ведь теперь его можно увидеть сразу!!!

Всего после нескольких попыток вы сами почувствуете, к чему ведут изменения тех или иных параметров в каждой из операций. На первых порах стоит попробовать погонять движки инструментов от упора до упора - так легче понять, на что они влияют (но всё же стоит учиться на копиях базовых стратегий - просто измените их имя и нажмите кнопку Save).

Кроме того, прямо в инструменте спрятан небольшой учебник в виде пар картинок (было/стало), стратегии, которая это сделала, описание смысла и назначение выполнявшихся операций, ну и, фрагмент растра с которого были сняты эти картинки. Так что всё можно попробовать в живую.

Et2170 tl compound.gif

Оцифровка "пятисоток"

Дешифрирование космоснимков

Всё остальное