Трансформация векторного слоя

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
MalevDV
Новоприбывший
Сообщения: 2
Зарегистрирован: 05 ноя 2009, 21:57
Репутация: 0

Трансформация векторного слоя

Сообщение MalevDV » 11 апр 2013, 04:08

Здравствуйте!

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


Буду благодарен за помощь и идеи!
Спасибо!

PS: трансформация не обязательно Аффинная...

gamm
Гуру
Сообщения: 4170
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Трансформация векторного слоя

Сообщение gamm » 11 апр 2013, 06:28

MalevDV писал(а):Имеется проблема - необходимо векторный слой (пусть будет шейп файл с линейными объектами в неизвестной системе координат) скорректировать по реперным точкам, т.е. произвести действия аналогично растровой привязки файла но к векторному слою...
затаскиваем в R реперные точки. Дальше 2 варианта:

- если это система координат, пробуем определить ее параметры (поищите MSK, статей на эту тему на сайте есть)

- если никаких предположений нет, затаскиваем файл в R через rgdal, координаты будут доступны. Строим преобразование - если оно сильно нелинейное, то сначала вычитаем линейную часть (или проективную - зависит от наших предположений), а потом невязки от нее интерполируем сплайном с конечным носителем (отдельно по X и Y, лучше программами из пакета MBA - чтобы не получить артефактов экстраполяции, заодно подбираем число уровней иерархии, чтобы сгладить шум). Это нужно, чтобы в местах отсутствия данных получить нулевые поправки к линейной части. Дальше преобразуем координаты и сохраняем результат.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Трансформация векторного слоя

Сообщение Denis Rykov » 11 апр 2013, 08:15

2gamm

Подобный вопрос возникает очень часто и чтобы каждый раз не отвечать - не могли бы вы написать статью по этому вопросу, чтобы всех к ней отсылать? Есть подобный материал по ArcGIS и ArcView, но как это сделать в открытом ПО - нет.
Spatial is now, more than ever, just another column- The Geometry Column.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: Трансформация векторного слоя

Сообщение Александр Мурый » 11 апр 2013, 09:17

Denis Rykov писал(а):Есть подобный материал по ArcGIS и ArcView, но как это сделать в открытом ПО - нет.
Указанные статьи — по привязке векторных данных, а то, что говорил gamm, скорее, по подборке параметров преобразования координат. Т.е. то — практика, а это — аналитика.
Редактор материалов, модератор форума

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Трансформация векторного слоя

Сообщение Дмитрий Барышников » 11 апр 2013, 09:42

Denis Rykov писал(а):2gamm

Подобный вопрос возникает очень часто и чтобы каждый раз не отвечать - не могли бы вы написать статью по этому вопросу, чтобы всех к ней отсылать? Есть подобный материал по ArcGIS и ArcView, но как это сделать в открытом ПО - нет.
http://trac.osgeo.org/gdal/ticket/4604
Между тем уже вышел GDAL 1.10RC1 - ждем релиза!

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Трансформация векторного слоя

Сообщение Denis Rykov » 11 апр 2013, 09:54

Отлично, то есть в 1.10 можно будет получать привязанный вектор с помощью ogr2ogr. Останется добавить к этому какой-нибудь GUI для расстановки точек. Интересно, а как соотносится подход, используемый в GDAL, с теми теоретическими выкладками, что предлагает gamm?
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Трансформация векторного слоя

Сообщение Дмитрий Барышников » 11 апр 2013, 10:08

В случае OGR используется стандартное преобразование, как и для растров (gdalwarp) - GDALCreateGCPTransformer. Это примерно тоже самое что и описал выше gamm. Отличие скорее всего в деталях - форма полинома или сплайна и т.п.

gamm
Гуру
Сообщения: 4170
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Трансформация векторного слоя

Сообщение gamm » 11 апр 2013, 12:55

Дмитрий Барышников писал(а):В случае OGR используется стандартное преобразование, как и для растров (gdalwarp) - GDALCreateGCPTransformer. Это примерно тоже самое что и описал выше gamm. Отличие скорее всего в деталях - форма полинома или сплайна и т.п.
нужно смотреть. У меня сильное сомнение, что в GDAL реализованы shrinking splines, которые имеют конечный носитель и не дают артефактов на бесконечности. Скорее всего, там обычные полиномы высокой степени, которыми гордился ERDAS, и которые заворачивают изображение в баранку при экстраполяции :mrgreen:

дьявол - он в деталях :twisted:

Striker
Новоприбывший
Сообщения: 9
Зарегистрирован: 04 янв 2019, 23:57
Репутация: 0
Откуда: Украина

Re: Трансформация векторного слоя

Сообщение Striker » 05 янв 2019, 15:35

Здравствуйте!
Столкнулся с похожей задачей, но не знаю как ее решить в qgis (версия 3.4).
Есть массив участков (полигоны в .shp) которые "лежат" не совсем там где нужно.
Есть уже правильный вариант в акаде.

Я закинул .dxf в qgis, но не нашел инструмента который бы делал смещение с поворотом что бы "подсадить" свой шейп на правильно усаженый dxf.

По факту я ищу в qgis аналог функции aligin или "выровнять", ну или перемещение по 4 точкам как в Gis 6.

Нашел плагин который делает то что я хочу - vector blender (https://www.youtube.com/watch?v=QxWgezMnUUU), но он на новые версии qgis не стает.

Подскажите как можно решить данную задачу?
Последний раз редактировалось Striker 06 янв 2019, 11:44, всего редактировалось 1 раз.

trir
Гуру
Сообщения: 5360
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Трансформация векторного слоя

Сообщение trir » 05 янв 2019, 23:45

сделай в AutoCAD
но лучше понять в какой СК исходные данные

Striker
Новоприбывший
Сообщения: 9
Зарегистрирован: 04 янв 2019, 23:57
Репутация: 0
Откуда: Украина

Re: Трансформация векторного слоя

Сообщение Striker » 06 янв 2019, 01:38

trir писал(а):
05 янв 2019, 23:45
сделай в AutoCAD
Я хочу понять можно ли это сделать в Qgis и как.
trir писал(а):
05 янв 2019, 23:45
но лучше понять в какой СК исходные данные
СК известная - СК63.

trir
Гуру
Сообщения: 5360
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Трансформация векторного слоя

Сообщение trir » 06 янв 2019, 02:47

СК известная
тогда просто создай нужную СК - QGIS сам всё совместит

Striker
Новоприбывший
Сообщения: 9
Зарегистрирован: 04 янв 2019, 23:57
Репутация: 0
Откуда: Украина

Re: Трансформация векторного слоя

Сообщение Striker » 06 янв 2019, 11:37

trir писал(а):
06 янв 2019, 02:47
тогда просто создай нужную СК - QGIS сам всё совместит
СК в Qgis создана.
Я наверное не совсем понятно описал ситуацию.
Оба объекта (файл в dxf и shp) в ск63. По факту это вообще два одинаковых массива участков.
Просто тот который в акаде сдвинули на другое место, в той же системе координат, просто сдвинули и немного повернули.
Теперь я хочу массив который в shp точно также сдвинуть и повернуть, что бы он в точности занял такое же положение. Вот как такая команда делается в акаде (https://www.youtube.com/watch?v=AzCABnBLQFw).

trir
Гуру
Сообщения: 5360
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Трансформация векторного слоя

Сообщение trir » 06 янв 2019, 13:22

просто сдвинули и немного повернули.
тогда это другая СК

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: Semrush [Bot] и 4 гостя