Как можно "натянуть" вектор на растр?
- Olga_@@@
- Гуру
- Сообщения: 715
- Зарегистрирован: 24 фев 2009, 15:42
- Репутация: 0
- Ваше звание: городошник
- Откуда: Екатеринбург
- Контактная информация:
Как можно "натянуть" вектор на растр?
Подскажите, пожалуйста, какой-нибудь способ подтягивания вектора к растру.
Нам дали растр 1: 25000 и вектор 1:100000. Работу выпускаем на 25-ке. Сравнили сегодня речную сеть, принципиально все совпадает, но точно не садится и ошибка идет не за счет некорректоного пересчета из одной СК в другую, а просто 100-ка по какой-то другой основе оцифрована. Особенно хорошо на меандре видно - рисунок петель заметно отличается, т.е. проблема не в СК. Хотелось бы как-то подтянуть вектор к растру, потому что цифровать и заново вводить семантику будет очень долго, территория не маленькая.
ЗЫ получить готовый вектор на 25-ку пока нереально, хотя всем понятно, что это было бы лучшим решением проблемы
Нам дали растр 1: 25000 и вектор 1:100000. Работу выпускаем на 25-ке. Сравнили сегодня речную сеть, принципиально все совпадает, но точно не садится и ошибка идет не за счет некорректоного пересчета из одной СК в другую, а просто 100-ка по какой-то другой основе оцифрована. Особенно хорошо на меандре видно - рисунок петель заметно отличается, т.е. проблема не в СК. Хотелось бы как-то подтянуть вектор к растру, потому что цифровать и заново вводить семантику будет очень долго, территория не маленькая.
ЗЫ получить готовый вектор на 25-ку пока нереально, хотя всем понятно, что это было бы лучшим решением проблемы
У меня из Apple дома только компот.
-
- Гуру
- Сообщения: 4170
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Как можно "натянуть" вектор на растр?
если умеете программировать, то несложно.Olga_@@@ писал(а):Подскажите, пожалуйста, какой-нибудь способ подтягивания вектора к растру.
Нам дали растр 1: 25000 и вектор 1:100000. Работу выпускаем на 25-ке. Сравнили сегодня речную сеть, принципиально все совпадает, но точно не садится и ошибка идет не за счет некорректоного пересчета из одной СК в другую, а просто 100-ка по какой-то другой основе оцифрована. Особенно хорошо на меандре видно - рисунок петель заметно отличается, т.е. проблема не в СК. Хотелось бы как-то подтянуть вектор к растру, потому что цифровать и заново вводить семантику будет очень долго, территория не маленькая.
1) Строим "вектора сдвига" - кого куда нужно подвинуть, получаем табличку (Xold,Yold,Xnew,Ynew)
2) Убираем систематическую составляющую (либо "жесткий" поворот с переносом, либо линейное-афинное преобразование). Получаем систематически "повернутые" координаты Xold.t,Yold.t и поправки к ним, полученные вычитанием "повернутых" из Xnew,Ynew => (Xold.t,Yold.t,dX,dY)
3) Строим модель dX=f(Xold.t,Yold.t), dY=g(Xold.t,Yold.t). Здесь дело вкуса, лучше использовать что-нибудь консервативное, например метод Акина поверх триангуляции Делоне. Чтобы избежать чудес при экстраполяции, лучше задать "на бесконечности" (по кругу, далеко от области) нулевые сдвиги. Геологи звали это "прижать крылышки". Можно использовать gam() из пакета mgcv (R), типа gam(dX~s(Xold.t,Yold.t,bs="cs",k=7) ...); ,k=7 (или 5) и bs="cs" добавит консерватизьма. Ну, и крылышки прижать.
4) Берем вектор, вытаскиваем координаты, "поворачиваем", применяем поправки, записываем координаты взад
5) Все это можно делать в R.
6) Смотрим, что получилось. Боюсь, локальные вещи типа меандров придется все равно руками доводить ...
-
- Гуру
- Сообщения: 3058
- Зарегистрирован: 19 май 2010, 19:44
- Репутация: 189
Re: Как можно "натянуть" вектор на растр?
Вектор на растр - используйте Autodesk Map 3D - позволяет совместить вектр по набору точек (исходная - конечная) с растром или другим вектром...
Нечто похожее есть в MapInfo и в ArcView (в утилитах), но более простой вариант...
Нечто похожее есть в MapInfo и в ArcView (в утилитах), но более простой вариант...
-
- Гуру
- Сообщения: 4170
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Как можно "натянуть" вектор на растр?
особенно хорошо уродует вектор Мапинфо. Для реальных работ от всей души не рекомендую. Остальные не знаю, но наверняка полином, который даст проблемы при экстраполяции.Донецков писал(а):Вектор на растр - используйте Autodesk Map 3D - позволяет совместить вектр по набору точек (исходная - конечная) с растром или другим вектром...
Нечто похожее есть в MapInfo и в ArcView (в утилитах), но более простой вариант...
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Как можно "натянуть" вектор на растр?
не хотелось бы портить научную дискуссию, но рисунок петель ничего не определяет в различии векторов, поднятых с разных масштабов. Надо бы что-то более "человечное" сравнить. Дороги, железные дороги, мосты и т.п. Все таки масштабы прилично разняться, и за счет разных коэффициенотов генерализации карт различия в кривизне и должны быть такими.
-
- Гуру
- Сообщения: 4170
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Как можно "натянуть" вектор на растр?
а это лечится только автокоррелятором, но я не знаю, есть ли он в промышленных системах (это вопрос скорее к товарищам из EasyTrace)Boris писал(а):не хотелось бы портить научную дискуссию, но рисунок петель ничего не определяет в различии векторов, поднятых с разных масштабов. Надо бы что-то более "человечное" сравнить. Дороги, железные дороги, мосты и т.п. Все таки масштабы прилично разняться, и за счет разных коэффициенотов генерализации карт различия в кривизне и должны быть такими.

То, что написал, лечит только неравномерность протяжки сканера и пр. аналогичные вещи.
- syroezhka
- Завсегдатай
- Сообщения: 290
- Зарегистрирован: 21 апр 2008, 21:22
- Репутация: 5
- Откуда: 50°26'N 30°31'E
- Контактная информация:
Re: Как можно "натянуть" вектор на растр?
А вот этот аргисовский способ не подойдет?
http://gis-lab.info/qa/shapewarp.html
http://gis-lab.info/qa/shapewarp.html
И может действительно речную сеть притяивать к снимку какому-нибуть свежему? Она-то наиболлее изменчивый элемент и различия в картах могут быть из-за различных годов издания, а не из-за масштаба.Boris писал(а):не хотелось бы портить научную дискуссию, но рисунок петель ничего не определяет в различии векторов, поднятых с разных масштабов. Надо бы что-то более "человечное" сравнить. Дороги, железные дороги, мосты и т.п. Все таки масштабы прилично разняться, и за счет разных коэффициенотов генерализации карт различия в кривизне и должны быть такими.
-
- Гуру
- Сообщения: 3058
- Зарегистрирован: 19 май 2010, 19:44
- Репутация: 189
Re: Как можно "натянуть" вектор на растр?
По поводу экстраполяции - сильно зависит от количество вводимых реперных точек, чем больше тем лучше, но меру знать надо, на практике вводил ок. 400 в Map 3D на территорию 70 на 30 км...
Последний раз редактировалось Донецков 13 ноя 2010, 20:16, всего редактировалось 1 раз.
-
- Гуру
- Сообщения: 4170
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Как можно "натянуть" вектор на растр?
результат экстраполяции зависит не столько от числа точек, сколько от использованной модели (в частности, интерполяция это или аппроксимация) и расположения точек. И для нормальных методов чем больше точек, тем лучше - мы и тысячи точек использовали (с коррелятора).Донецков писал(а):По поводу экстраполяции - сильно зависит от количество вводимых реперных точек, чем больше тем лучше, но меру знать надо, на практике вводил ок. 400 на территорию 70 на 30 км...
- Olga_@@@
- Гуру
- Сообщения: 715
- Зарегистрирован: 24 фев 2009, 15:42
- Репутация: 0
- Ваше звание: городошник
- Откуда: Екатеринбург
- Контактная информация:
Re: Как можно "натянуть" вектор на растр?
Спасибо всем, кто откликнулся. Но, проблема пока не решилась. Механическая подтяжка и трансформация вектора по набору точек в этом случае не поможет - это очень долго и все равно не совпадет, т.к. прорисовка разная.
У меня из Apple дома только компот.
-
- Гуру
- Сообщения: 4170
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Как можно "натянуть" вектор на растр?
аналогичная задача решалась в свое время для SPOT (видел статью). Там выделяли гидросеть на снимке (у вас - на "базовой" карте), а потом запускали коррелятор (snake) для того, чтобы поменять конфигурацию того, что "натягивают". Выделить "базовую" гидросеть можно, я думаю, использовав EasyTrace или цветоделение. Промышленных программ, реализующих snake, я не знаю, но исследовательских видел много. Может быть, проще оттрасировать гидросеть с растра ...Olga_@@@ писал(а):Спасибо всем, кто откликнулся. Но, проблема пока не решилась. Механическая подтяжка и трансформация вектора по набору точек в этом случае не поможет - это очень долго и все равно не совпадет, т.к. прорисовка разная.
- Olga_@@@
- Гуру
- Сообщения: 715
- Зарегистрирован: 24 фев 2009, 15:42
- Репутация: 0
- Ваше звание: городошник
- Откуда: Екатеринбург
- Контактная информация:
Re: Как можно "натянуть" вектор на растр?
Да, это было бы проще, но жалко терять заполненные атрибутивные данные.gamm писал(а):Может быть, проще оттрасировать гидросеть с растра ...
У меня из Apple дома только компот.
-
- Гуру
- Сообщения: 4170
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Как можно "натянуть" вектор на растр?
тогда ищите snake ... я это делал руками (в смысле программу), работает более-менее, но контроль "глазками" нужен. Другой вариант, если речь про атрибуты, векторизация растра, и указание (руками или по признаку пересечения), кто кому соответствует, это можно сделать в любой ГИС.Olga_@@@ писал(а):Да, это было бы проще, но жалко терять заполненные атрибутивные данные.gamm писал(а):Может быть, проще оттрасировать гидросеть с растра ...
- Olga_@@@
- Гуру
- Сообщения: 715
- Зарегистрирован: 24 фев 2009, 15:42
- Репутация: 0
- Ваше звание: городошник
- Откуда: Екатеринбург
- Контактная информация:
Re: Как можно "натянуть" вектор на растр?
Понятно, спасибо. Но, все равно, повторной векторизации мучительно хочется избежать 
По-гуглила, нашлась статья с упоминанием о snake и больше ничего пока.

По-гуглила, нашлась статья с упоминанием о snake и больше ничего пока.
У меня из Apple дома только компот.
-
- Гуру
- Сообщения: 4170
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Как можно "натянуть" вектор на растр?
я не советую искать и читать по русски, это обычно школярские перепевы того, что кто-то прочитал по английцки.Olga_@@@ писал(а):Понятно, спасибо. Но, все равно, повторной векторизации мучительно хочется избежать
По-гуглила, нашлась статья с упоминанием о snake и больше ничего пока.
вам скорее нужно искать snake line match image source, только отключите русские сайты. Получите что-то типа
http://goliath.ecnext.com/coms2/gi_0199 ... h-for.html
http://www.thefreelibrary.com/A+snake-b ... 0158683391
но искать можно долго ...
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя