Страница 1 из 1

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

Добавлено: 11 апр 2013, 04:08
MalevDV
Здравствуйте!

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


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

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

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

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

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

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

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

Добавлено: 11 апр 2013, 08:15
Denis Rykov
2gamm

Подобный вопрос возникает очень часто и чтобы каждый раз не отвечать - не могли бы вы написать статью по этому вопросу, чтобы всех к ней отсылать? Есть подобный материал по ArcGIS и ArcView, но как это сделать в открытом ПО - нет.

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

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

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

Добавлено: 11 апр 2013, 09:42
Дмитрий Барышников
Denis Rykov писал(а):2gamm

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

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

Добавлено: 11 апр 2013, 09:54
Denis Rykov
Отлично, то есть в 1.10 можно будет получать привязанный вектор с помощью ogr2ogr. Останется добавить к этому какой-нибудь GUI для расстановки точек. Интересно, а как соотносится подход, используемый в GDAL, с теми теоретическими выкладками, что предлагает gamm?

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

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

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

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

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

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

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

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

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

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

Подскажите как можно решить данную задачу?

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

Добавлено: 05 янв 2019, 23:45
trir
сделай в AutoCAD
но лучше понять в какой СК исходные данные

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

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

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

Добавлено: 06 янв 2019, 02:47
trir
СК известная
тогда просто создай нужную СК - QGIS сам всё совместит

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

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

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

Добавлено: 06 янв 2019, 13:22
trir
просто сдвинули и немного повернули.
тогда это другая СК