Как поменять местами X и Y в полигональном слое?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как поменять местами X и Y в полигональном слое?
А почему вы уверены, что угол должен быть именно 90 град?
Как я понимаю, афинное преобразование -- это перенос, масштабирование, поворот. В этом случае же коорд. просто меняются местами. Как считать-то?
Как я понимаю, афинное преобразование -- это перенос, масштабирование, поворот. В этом случае же коорд. просто меняются местами. Как считать-то?
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как поменять местами X и Y в полигональном слое?
Подобная тема со скриптами для ArcGIS
http://forums.arcgis.com/threads/9004-S ... re-dataset
По сути описано то же, что делал я ))
http://forums.arcgis.com/threads/9004-S ... re-dataset
По сути описано то же, что делал я ))
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Как поменять местами X и Y в полигональном слое?
Если вопрос стоит в том, чтобы поменять местами координаты X и Y, то это можно сделать так:
1) Меняем систему координат, повернув ее на 45 градусов против часовой стрелки.
2) Отображаем в новой системе координат y := -y все объекты
3) Возвращаемся обратно в нужную систему координат.
Этот процесс можно проделать где угодно, где только есть возможность произвести аффинное преобразование. В GRASS GIS, например, это будет выглядеть так:
В скрипте создаются промежуточные карты tmp1..tmp3, потом их нужно удалить (или вообще не создавать временных файлов).
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
-
- Завсегдатай
- Сообщения: 324
- Зарегистрирован: 14 фев 2010, 20:42
- Репутация: 0
Re: Как поменять местами X и Y в полигональном слое?
зачем делать за 3 шага если можно за 1?
v.transform input=test@kirov output=test_a3@kirov yscale=-1 zrot=90
v.transform input=test@kirov output=test_a3@kirov yscale=-1 zrot=90
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как поменять местами X и Y в полигональном слое?
Дмитрий, спасибо )) все, пора учить математику..
Получилось, результат тот же:
Получилось, результат тот же:
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Как поменять местами X и Y в полигональном слое?
А потому, что не сообразил, что так можноkryl писал(а):зачем делать за 3 шага если можно за 1?
v.transform input=test@kirov output=test_a3@kirov yscale=-1 zrot=90

-
- Завсегдатай
- Сообщения: 324
- Зарегистрирован: 14 фев 2010, 20:42
- Репутация: 0
Re: Как поменять местами X и Y в полигональном слое?
Осталось придумать как это делать не конвертируя шейп в GRASS и будет вообще красота.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя