что относится к интерактивной векторизации по подложке

Ручная и интерактивная векторизация по подложке.

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

Растровые изображения получают с помощью сканера. Отсканированное изображение выводится на экран компьютера, и сама векторизация осуществляется по этой растровой подложке с помощью курсора мыши.

Используются три способа векторизации растровых изображений:

— полуавтоматический – с обучением системы и участием оператора в интерактивном режиме;

— ручной – обводка каждой линии оператором вручную;

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

Автоматический способ векторизации практически не применяется в геоинформационных технологиях, так как этот способ делает затруднительным расслоение сложных по нагрузке карт и заполнение атрибутивной базы.

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

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

Исправление всех возможных ошибок при векторизации осуществляется в два этапа:

— корректировка растрового изображения – чистка растра

— корректировка векторных образов – редактирование.

Точность векторизации характеризуется суммой накопленных искажений:

— ошибка положения контуров цифровой карты относительно источника;

— ошибка передачи размеров и формы объекта при векторизации;

— ошибка положения контуров относительно местности, связанная с источником получения цифровой карты (деформация бумаги, искажение растра в результате сканировании).

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

Следующий функциональный уровень ГИС – идентификация введенных объектов. Суть этой функции заключается в необходимости связи пространственного объекта с его содержательной сущностью. Это позволяет осуществить доступ к содержательной сущности объектов, как тематическому элементу геосистемы, так и к конкретному тематическому множеству.

Заполнение атрибутивных таблиц.Атрибуты могут вводиться с клавиатуры или указанием в заранее подготовленных и по мере необходимости пополняемых списках возможных значений атрибутов.

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

По механизму генерации таблицы могут быть нескольких типов:

1) таблицы атрибутивных данных, созданные в других программах или путем задания структуры и содержания пользователем;

2) информационные таблицы, содержащие информацию о топологических связях пространственных объектов в слое, генерируемые автоматически;

3) таблицы-запросы к таблицам атрибутивных данных (таблицы запросов), в которых содержится (вводится) информация о конкретных параметрах запросов и название запроса; они могут сохраняться и повторно проигрываться.

Выбор таблицы для слоев (добавление, удаление, переименование, создание новых таблиц) осуществляется пользователем. Данные в таблице можно редактировать.

Комбинация созданных тематических слоев составляет основу базы данных на территорию или основу геоинформационного пакета (ГИП).

База данных в геоинформационных системах строится по многослойному принципу с тематической ориентацией каждого слоя. Каждая база данных содержитвсю необхо­димую для функционирования подсистемтематической обработкиме­трическую, атрибутивную и параметрическую информацию:

— карты в векторной и матричной форме представления,

— классификаторы картографических объектов и свойств терри­торий, списки и коды классов объектов и другие данные, предста­вляющие легенды карт;

— объектно-привязанные текстовые описания;

— наборы картографических знаков и другие данные.

База данных может включать три основных типа форматов геоданных – векторных, матричных и атрибутивных, а также метаданные, позволяющие связать всю информацию воедино и обеспечить целостность цифровой модели

Источник

Ручная и интерактивная векторизация по подложке

Автоматическое цифрование

Подразумевается очень небольшое по сравнению с другими способами вмешательства оператора в работу системы. Карта вначале сканируется, а затем автоматически переводится в векторный формат. Этот вид ввода информации состоит из этапов: предварительного редактирования; непосредственного перевода из растрового формата в векторный; окончательное редактирование программных продуктов – корректируется возможные помехи (пятна, грязь). Эти системы по заложенным в них образцам распознают символы, линии, окружности. Предварительное редактирование занимает 8-17% времени от общего объёма. Окончательное редактирование проводится обязательно, оно необходимо, т.к. программа может неправильно распознать объект, принять символ за группу точек, определить площадь как набор линий. Время заключительного редактирования занимает 65-75% общего времени.

Технология цифрования с помощью дигитайзера

Возникновение баз данных

Основная идея организации структуры базы данных заключается в том, чтобы максимально нормализовать их, т. е. разбить на смысловые и функциональные группы.

При организации базы данных различают:

тип данных [картографические и атрибутивные (описатель­ные)];

структуру данных (топология и слои);

модель данных (иерархические, сетевые, реляционные, гиб­ридные);

форму предоставления пространственных данных (векторную, растровую, трехмерную).

Реляционные модели данных

Особо широкое применение при разработке программного обеспечения ГИС получили реляционные СУБД.

Общие положения Федер. закона об информации и информатизации.

1. Настоящий Федеральный закон регулирует отношения, возникающие при:

-формировании и использовании информационных ресурсов на основе создания,

сбора, обработки, накопления, хранения, поиска, распространения и предоставления

потребителю документированной информации;

-создании и использовании информационных технологий и средств их обеспечения;

-защите информации, прав субъектов, участвующих в информационных процессах

2. Федеральный закон не затрагивает отношений, регулируемых

Законом Российской Федерации «Об авторском праве и смежных правах».

Источник

Ручная и интерактивная векторизация по подложке

Векторизация с помощью дигитайзера

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

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

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

Растровые изображения получают с помощью сканера. Отсканированное изображение выводится на экран компьютера, и сама векторизация осуществляется по этой растровой подложке с помощью курсора мыши.

Используются три способа векторизации растровых изображений:

— полуавтоматический – с обучением системы и участием оператора в интерактивном режиме;

— ручной – обводка каждой линии оператором вручную;

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

Автоматический способ векторизации практически не применяется в геоинформационных технологиях, так как этот способ делает затруднительным расслоение сложных по нагрузке карт и заполнение атрибутивной базы.

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

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

Исправление всех возможных ошибок при векторизации осуществляется в два этапа:

— корректировка растрового изображения – чистка растра

— корректировка векторных образов – редактирование.

Точность векторизации характеризуется суммой накопленных искажений:

— ошибка положения контуров цифровой карты относительно источника;

— ошибка передачи размеров и формы объекта при векторизации;

— ошибка положения контуров относительно местности, связанная с источником получения цифровой карты (деформация бумаги, искажение растра в результате сканировании).

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

Следующий функциональный уровень ГИС – идентификация введенных объектов. Суть этой функции заключается в необходимости связи пространственного объекта с его содержательной сущностью. Это позволяет осуществить доступ к содержательной сущности объектов, как тематическому элементу геосистемы, так и к конкретному тематическому множеству.

Заполнение атрибутивных таблиц.Атрибуты могут вводиться с клавиатуры или указанием в заранее подготовленных и по мере необходимости пополняемых списках возможных значений атрибутов.

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

По механизму генерации таблицы могут быть нескольких типов:

1) таблицы атрибутивных данных, созданные в других программах или путем задания структуры и содержания пользователем;

2) информационные таблицы, содержащие информацию о топологических связях пространственных объектов в слое, генерируемые автоматически;

3) таблицы-запросы к таблицам атрибутивных данных (таблицы запросов), в которых содержится (вводится) информация о конкретных параметрах запросов и название запроса; они могут сохраняться и повторно проигрываться.

что относится к интерактивной векторизации по подложке. Смотреть фото что относится к интерактивной векторизации по подложке. Смотреть картинку что относится к интерактивной векторизации по подложке. Картинка про что относится к интерактивной векторизации по подложке. Фото что относится к интерактивной векторизации по подложке

Выбор таблицы для слоев (добавление, удаление, переименование, создание новых таблиц) осуществляется пользователем. Данные в таблице можно редактировать.

Комбинация созданных тематических слоев составляет основу базы данных на территорию или основу геоинформационного пакета (ГИП).

База данных в геоинформационных системах строится по многослойному принципу с тематической ориентацией каждого слоя. Каждая база данных содержитвсю необхо­димую для функционирования подсистемтематической обработкиме­трическую, атрибутивную и параметрическую информацию:

— карты в векторной и матричной форме представления,

— классификаторы картографических объектов и свойств терри­торий, списки и коды классов объектов и другие данные, предста­вляющие легенды карт;

— объектно-привязанные текстовые описания;

— наборы картографических знаков и другие данные.

База данных может включать три основных типа форматов геоданных – векторных, матричных и атрибутивных, а также метаданные, позволяющие связать всю информацию воедино и обеспечить целостность цифровой модели

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Источник

Справка

ArcScan облегчает создание новых пространственных объектов из отсканированных растровых изображений. Этот процесс может существенно сократить время на включение растровых данных в векторную базу данных.

В этом упражнении вы создадите пространственные объекты из отсканированной карты участка путем интерактивной трассировки ячеек растра. Для начала откройте ArcMap и загрузите документ карты, который содержит набор растровых данных и два слоя.

Настройка параметров среды ArcScan

Предварительное условие:

Необходимо установить и зарегистрировать дополнительный модуль ArcScan для ArcGIS. Кроме того, запустите ArcMap и добавьте на экран панели инструментов Редактор и ArcScan.

Установка среды замыкания растра

Модуль ArcScan предназначен для работы в сочетании со средой редактирования ArcMap и активируется только при запуске сеанса редактирования. Необходимо настроить ряд опций замыкания при редактировании и использовании ArcScan.

Создание линейных пространственных объектов путем трассировки ячеек растра

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

Сейчас линейный объект представляет внешние границы отсканированных лотов участков.

что относится к интерактивной векторизации по подложке. Смотреть фото что относится к интерактивной векторизации по подложке. Смотреть картинку что относится к интерактивной векторизации по подложке. Картинка про что относится к интерактивной векторизации по подложке. Фото что относится к интерактивной векторизации по подложке

Создание полигональных объектов путем трассировки ячеек растра

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

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

Источник

Разработчик на распутье: как векторизовать?!

что относится к интерактивной векторизации по подложке. Смотреть фото что относится к интерактивной векторизации по подложке. Смотреть картинку что относится к интерактивной векторизации по подложке. Картинка про что относится к интерактивной векторизации по подложке. Фото что относится к интерактивной векторизации по подложке

На тему векторизации написано немало интересного. Вот скажем, отличный пост, который много полезного объясняет по работе автовекторизации, очень рекомендовал бы его к прочтению. Мне интересен другой вопрос. Сейчас в руках у разработчиков большое количество способов, чтобы создать «векторный» код – от чистого ассемблера до того же автовекторизатора. На каком же способе остановиться? Как найти баланс между необходимым и достаточным? Об этом и поговорим.

Итак, получить «заветные» векторные инструкции можно несколькими способами. Представим схематично в виде следующей таблицы:

что относится к интерактивной векторизации по подложке. Смотреть фото что относится к интерактивной векторизации по подложке. Смотреть картинку что относится к интерактивной векторизации по подложке. Картинка про что относится к интерактивной векторизации по подложке. Фото что относится к интерактивной векторизации по подложке

Если мы опытные гуру и можем себе позволить писать на чистом ассемблере, то, пожалуй, этот путь даст нам 100% уверенности в использовании максимума в нашем коде. Ещё бы, мы сразу напишем на нужных инструкциях и используем все возможности процессора. Вот только «заточен» он будет под конкретный набор инструкций, а значит, и под конкретное «железо». Выход очередных новых инструкций (а прогресс не стоит на месте), потребует глобальной переработки и новых трудозатрат. Очевидно, стоит подумать о чём-то более легком в использовании. И на следующей «ступеньке» появляются intrinsic функции.

Это уже не чистый ассемблер, тем не менее, времени на переписывание кода всё равно потребуется немало. Скажем, простой цикл, в котором складывают два массива, будет выглядеть так:

В данном случае мы используем AVX intrinsic функции. Тем самым мы гарантируем генерацию соответствующих AVX инструкций, то есть опять привязаны к конкретному «железу». Трудозатраты уменьшились, но использовать этот код в будущем мы не сможем – рано или поздно его придётся снова переписывать. И так будет всегда, пока мы явно выбираем инструкции, «прописывая» их в исходном коде. Будь то чистый ассемблер, intrinsic функции или SIMD intrinsic классы. Тоже, кстати, интересная вещь, представляющая следующий уровень абстракции.

Тот же самый пример перепишется следующим образом:

В этом случае нам уже не нужно знать, какие функции использовать. Код сам по себе выглядит вполне элегантно, а разработчику достаточно создавать данные нужного класса. В этом примере, F64 означает тип float размера 64 бита, а vec4 говорит об использовании Intel AVX (vec2 для SSE).

Я думаю, всем понятно, почему и этот способ нельзя назвать лучшим по соотношению «цена/качество». Правильно, портируемость всё ещё неидеальна. Поэтому разумным решением является использование компилятора для решения подобных задач. С ним, пересобирая наш код, мы сможем создавать бинарники под нужную нам архитектуру, какой бы она не была, и использовать последние наборы инструкций. При этом нам нужно убедиться, что компилятор в состоянии векторизовать код.

Пока мы шли по табличке снизу вверх, обсуждая «сложные» пути векторизации кода. Поговорим о более простых способах.
Очевидно, самый простой – переложить всю ответственность на компилятор и наслаждаться жизнью. Но не всё так просто. Каким бы умным не был компилятор, до сих пор существует множество случаев, когда он бессилен что-либо сделать с циклом без дополнительных данных или подсказок. Кроме того, в ряде случаев, код, удачно векторизованный с одной версией компилятора, уже не векторизуется с другой. Всё дело в хитрых компиляторных эвристиках, поэтому полагаться на автовекторизацию на 100% нельзя, хотя штука, безусловно, полезная. Например, современный компилятор может векторизовать такой код:

Если бы мы пытались создать аналог кода на intrinsic функциях, гарантируя векторизацию, то получилось бы что-то подобное:

Хорошо, когда компилятор умеет делать это за нас! Жаль, что не всегда… и в тех случаях, когда компилятор не справляется, разработчик может помочь ему сам. Для этого можно использовать специальные «хитрости» в виде директив. Например, #pragma ivdep подскажет, что в цикле нет зависимостей, а #pragma vector always позволит не обращать внимания на «политику эффективности» векторизации (часто, если компилятор считает, что векторизовать цикл неэффективно, скажем, из-за доступа к памяти, он этого не делает). Но эти директивы из разряда «возможно помогут». Если компилятор уверен, что зависимости есть, то цикл он так и не будет векторизовывать, даже если имеется pragma ivdep.

Поэтому я выделил ещё один способ, который основан на директивах, но несколько других принципах работы. Это директивы из нового стандарта OpenMP 4.0 и Inte Cilk Plus #pragma omp simd и #pragma simd соответственно. Они позволяют совсем «забывать» компилятору о собственных проверках, и целиком полагаться на то, что говорит разработчик. Ответственность, в этом случае, естественно, перекладывается на его плечи и голову, так что действовать нужно аккуратно. Отсюда и появляется потребность в ещё одном способе.

Как бы сделать так, чтобы проверки всё же оставались, но и код гарантированно был векторизован? К сожалению, с существующим в С/С++ синтаксисе, пока никак. А вот с использованием возможностей специального синтаксиса для работы с массивами (array notation), являющегося часть Cilk Plus’a (см. предыдущий пост для того чтобы понять, как много там всего есть), это возможно. Причём синтаксис весьма простой, чем то напоминает Фортран, и имеет следующий вид:

Задаём имя, начальный индекс, число элементов, шаг(опционален) и вперёд. Предыдущий пример перепишется с ним так:

Двоеточие означает, что мы обращаемся ко всем элементам. Можно так же осуществлять более сложные манипуляции. Скажем этот код

перепишется более компактно, и главное, гарантирует векторизацию:

Таким образом, мы видим, что способов добиться векторизации действительно много. Если говорить о балансе, то раз уж мы перечислили все способы в табличке «от простого к сложному», то с точки зрения требуемых затрат и результата на выходе, золотая середина сходится на Cilk Plus’е. Но это не значит, что всё так очевидно. Если пациент болен, ему же не всегда сразу выписывают антибиотики, верно? Так же и здесь. Для кого-то может оказаться достаточно автовектризации, для кого-то директивы ivdep и vector always будут вполне разумным решением. Важнее вовлекать компилятор, чтобы не болела голова при выходе новых инструкций и «железа», а здесь у Intel всегда есть что предложить. Так что до новых постов, друзья!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *