Страница 2 из 2
Re: Как поменять местами X и Y в полигональном слое?
Добавлено: 23 сен 2010, 14:58
Александр Мурый
А почему вы уверены, что угол должен быть именно 90 град?
Как я понимаю, афинное преобразование -- это перенос, масштабирование, поворот. В этом случае же коорд. просто меняются местами. Как считать-то?
Re: Как поменять местами X и Y в полигональном слое?
Добавлено: 23 сен 2010, 15:06
Александр Мурый
Подобная тема со скриптами для ArcGIS
http://forums.arcgis.com/threads/9004-S ... re-dataset
По сути описано то же, что делал я ))
Re: Как поменять местами X и Y в полигональном слое?
Добавлено: 23 сен 2010, 15:13
KolesovDmitry
Если вопрос стоит в том, чтобы поменять местами координаты 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, потом их нужно удалить (или вообще не создавать временных файлов).
Re: Как поменять местами X и Y в полигональном слое?
Добавлено: 23 сен 2010, 15:26
kryl
зачем делать за 3 шага если можно за 1?
v.transform input=test@kirov output=test_a3@kirov yscale=-1 zrot=90
Re: Как поменять местами X и Y в полигональном слое?
Добавлено: 23 сен 2010, 15:26
Александр Мурый
Дмитрий, спасибо )) все, пора учить математику..
Получилось, результат тот же:

- 2010-09-23-162325_1022x575_scrot.png (7.4 КБ) 6848 просмотров
Re: Как поменять местами X и Y в полигональном слое?
Добавлено: 23 сен 2010, 16:09
KolesovDmitry
kryl писал(а):зачем делать за 3 шага если можно за 1?
v.transform input=test@kirov output=test_a3@kirov yscale=-1 zrot=90
А потому, что не сообразил, что так можно

Re: Как поменять местами X и Y в полигональном слое?
Добавлено: 24 сен 2010, 08:21
kryl
Осталось придумать как это делать не конвертируя шейп в GRASS и будет вообще красота.