Как поменять местами X и Y в полигональном слое?

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

Re: Как поменять местами X и Y в полигональном слое?

Сообщение Александр Мурый » 23 сен 2010, 14:58

А почему вы уверены, что угол должен быть именно 90 град?
Как я понимаю, афинное преобразование -- это перенос, масштабирование, поворот. В этом случае же коорд. просто меняются местами. Как считать-то?
Редактор материалов, модератор форума

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

Re: Как поменять местами X и Y в полигональном слое?

Сообщение Александр Мурый » 23 сен 2010, 15:06

Подобная тема со скриптами для ArcGIS
http://forums.arcgis.com/threads/9004-S ... re-dataset

По сути описано то же, что делал я ))
Редактор материалов, модератор форума

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Как поменять местами X и Y в полигональном слое?

Сообщение KolesovDmitry » 23 сен 2010, 15:13

Если вопрос стоит в том, чтобы поменять местами координаты X и Y, то это можно сделать так:
1) Меняем систему координат, повернув ее на 45 градусов против часовой стрелки.
2) Отображаем в новой системе координат y := -y все объекты
3) Возвращаемся обратно в нужную систему координат.

Этот процесс можно проделать где угодно, где только есть возможность произвести аффинное преобразование. В GRASS GIS, например, это будет выглядеть так:

Код: Выделить всё

# Поворачиваем оси
v.transform in=sdvig out=tmp1 zrot=45
# Производим зеркальную трансформацию
v.transform in=tmp1 out=tmp2 yscale=-1
#Возвращаемся обратно, с сохранением преобразований
v.transform in=tmp2 out=tmp3 zrot=-45
v.transform in=tmp3 out=result yscale=-1 xscale=-1
В скрипте создаются промежуточные карты tmp1..tmp3, потом их нужно удалить (или вообще не создавать временных файлов).

kryl
Завсегдатай
Сообщения: 324
Зарегистрирован: 14 фев 2010, 20:42
Репутация: 0

Re: Как поменять местами X и Y в полигональном слое?

Сообщение kryl » 23 сен 2010, 15:26

зачем делать за 3 шага если можно за 1?
v.transform input=test@kirov output=test_a3@kirov yscale=-1 zrot=90

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

Re: Как поменять местами X и Y в полигональном слое?

Сообщение Александр Мурый » 23 сен 2010, 15:26

Дмитрий, спасибо )) все, пора учить математику..

Получилось, результат тот же:
2010-09-23-162325_1022x575_scrot.png
2010-09-23-162325_1022x575_scrot.png (7.4 КБ) 6732 просмотра
Редактор материалов, модератор форума

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Как поменять местами X и Y в полигональном слое?

Сообщение KolesovDmitry » 23 сен 2010, 16:09

kryl писал(а):зачем делать за 3 шага если можно за 1?
v.transform input=test@kirov output=test_a3@kirov yscale=-1 zrot=90
А потому, что не сообразил, что так можно :)

kryl
Завсегдатай
Сообщения: 324
Зарегистрирован: 14 фев 2010, 20:42
Репутация: 0

Re: Как поменять местами X и Y в полигональном слое?

Сообщение kryl » 24 сен 2010, 08:21

Осталось придумать как это делать не конвертируя шейп в GRASS и будет вообще красота.

Ответить

Вернуться в «Общий - ПО»

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя