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

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Slinger
Гуру
Сообщения: 879
Зарегистрирован: 17 июн 2010, 23:14
Репутация: 207
Откуда: Москва

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

Сообщение Slinger » 07 дек 2011, 23:17

Подобный вопрос давно меня интересовал как таковой, а тут на днях подвалила и задача. Был проект, выполненный в панораме. Экспортировали в .mif/.mid, однако, так как панорама работает с геодезической системой координат, .mif/.mid тоже получились некорректными в плане "перевёрнотости" X и Y. Сам проект был утерян. Соответственно в итоге я имею .tab файл с кучей объектов (тип геометрии разный) с перевёрнутыми координатами.

Каким образом можно попытаться "пересчитать" геометрию так, чтобы получились корректные координаты? Была мысль воспользоваться каким-нибудь приложением, где можно было бы при экспорте указывать математическую/геодезическую систему (проще говоря, перевернуть объекты при экспорте)

Имею в наличии различные гис и сапр системы (MI, arcgis, qgis, cad/cad map 3d).
Последний раз редактировалось Slinger 08 дек 2011, 20:34, всего редактировалось 1 раз.

Алекс
Активный участник
Сообщения: 185
Зарегистрирован: 26 июл 2010, 08:54
Репутация: 30
Откуда: Ногинск

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

Сообщение Алекс » 08 дек 2011, 13:40

Выгрузите в Панораму, разверните координаты (есть специальная процедура) и верните обратно.

Аватара пользователя
nadiopt
Гуру
Сообщения: 4744
Зарегистрирован: 29 янв 2009, 13:27
Репутация: 495
Ваше звание: хрюкало
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение nadiopt » 08 дек 2011, 13:49

а если попробовать тупо из мифа запихать координаты в эксель и поменять местами колонки, потом шапку мифа сверху дописать?
ин гроссен фамилен нихт клювен клац клац

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

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

Сообщение novia » 08 дек 2011, 14:36

тип геометрии у вас какой?
понравилось? жми палец вверх :!:

Slinger
Гуру
Сообщения: 879
Зарегистрирован: 17 июн 2010, 23:14
Репутация: 207
Откуда: Москва

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

Сообщение Slinger » 08 дек 2011, 16:42

Алекс писал(а):Выгрузите в Панораму, разверните координаты (есть специальная процедура) и верните обратно.
Попробую найти, спасибо. Хотя по возможности лучше без Панорамы попытаться обойтись
nadiopt писал(а):а если попробовать тупо из мифа запихать координаты в эксель и поменять местами колонки, потом шапку мифа сверху дописать?
Помимо шапки, перед каждыми координатами, присутствует описание объекта. То есть отдельное описание для сммвола, фонта, полигона и прочего. Их много, описания везде разные, и явно без какого-никакого программинга там не обойтись. А программить не позволяет опыт и время :(
novia писал(а):тип геометрии у вас какой?
Там результаты топосъемки, так что геометрия самая разношёрстная

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

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

Сообщение novia » 08 дек 2011, 18:09

берите точечные объекты. добавляйте два поля с типом double.
считайте координаты командой вычислить геометрию.

потом на основе таблицы атрибутов - создайте слой точек (команда Добавить данные XY) где используйте правильные x и y

а после - панель инструментов Векторная трансформация
делайте связи смещения точка (id_в старом наборе = id_в новом наборе) - точка.
применяйте трансформацию ко всем слоям

profit.

з.ы. алгоритм рассчитан на ArcGIS. знаете как сделать то же самое в другом ПО, делайте в нем.
понравилось? жми палец вверх :!:

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

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

Сообщение Boris » 08 дек 2011, 20:00

Не стоит ли прочитать документацию? Хотя бы к формату MIF/MID. В ней указано два варианта решения задачи:
а) манипуляции с масштабами и направлениями осей
на пример здесь http://mapinfo.forum.hut2.ru/viewtopic.php?id=32
Предложение Transform (Преобразование)
б) задание аффинной трансформации для системы координат
Syntax 1
CoordSys Earth
[ Projection type, datum, unitname
[ , origin_longitude ] [ , origin_latitude ]
[ , standard_parallel_1 [ , standard_parallel_2 ] ]
[ , azimuth ] [ , scale_factor ]
[ , false_easting ] [ , false_northing ]
[ , range ] ]
[ Affine Units unitname, A, B, C, D, E, F ]
[ Bounds ( minx, miny ) ( maxx, maxy ) ]

Slinger
Гуру
Сообщения: 879
Зарегистрирован: 17 июн 2010, 23:14
Репутация: 207
Откуда: Москва

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

Сообщение Slinger » 08 дек 2011, 20:38

Алекс писал(а):Выгрузите в Панораму, разверните координаты (есть специальная процедура) и верните обратно.
Опцию нашёл, свою задачу решил, ещё раз спасибо.
novia писал(а):берите точечные объекты. добавляйте два поля с типом double.
считайте координаты командой вычислить геометрию.

...
Спасибо, суть понял, обязательно попробую
Boris писал(а): а) манипуляции с масштабами и направлениями осей
Про трансформ в курсе, однако каким образом задание квадрантов и обычных смещений поможет поменять местами X/Y - понять не смог.
Boris писал(а):б) задание аффинной трансформации для системы координат
Если честно - вообще не понял. Можно чуть более конкретно?

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

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

Сообщение Boris » 09 дек 2011, 01:24

можно.
аффинная трансформация - способ линейного отображения двух систем координат друг на друга. поддерживает: масштабирование по каждой оси, поворот, отражнение.
Коэффициенты (6 штук) находятся путем решения линейного уравнения о трех точках. В случае замены осей они составляют : 0, -1, 0, -1, 0, 0. Что в соответсвии с хелпом задает:
x1 = 0*x + -1*y +0
y1 = -1*x + 0*y +0

Slinger
Гуру
Сообщения: 879
Зарегистрирован: 17 июн 2010, 23:14
Репутация: 207
Откуда: Москва

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

Сообщение Slinger » 09 янв 2012, 21:28

Запоздал я с ответом на месяц, однако решить Вашим методом не получилось. Пробую следуя синтаксису:
Синтаксис 2
CoordSys Nonearth
[ Affine Units unitname, A, B, C, D, E, F ]
Units unitname
[ Bounds ( minx, miny ) ( maxx, maxy ) ]
Мой заголовок в .mif файле:

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

CoordSys NonEarth Affine Units "m", 0, -1, 0, -1, 0, 0 Units "m" Bounds (-10000000, -10000000) (10000000, 10000000)
В результате получаю ошибку, что "встретилось Affine, где ожидается Units". Так что синтаксис с NonEarth почему-то не прокатывает.

Пробовал с первым синтаксисом, там где Earth Projection. MI код съел, однако координаты не перевернул.

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

CoordSys Earth Projection 8, 1001, "m", 38.48333333333, 0, 1, 3250000, -12900.566000000001 Affine Units "m", 0, -1, 0, -1, 0, 0 Bounds (-10000000, -10000000) (10000000, 10000000)

Petruxin
Гуру
Сообщения: 1695
Зарегистрирован: 14 июн 2011, 16:47
Репутация: 133
Ваше звание: Завсегдатай
Откуда: Череповец

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

Сообщение Petruxin » 10 янв 2012, 05:50

Опцию нашёл, свою задачу решил, ещё раз спасибо.

Не могу опцию найти. Подскажите "где у нее кнопка" :D (панорама 10.6.)

Алекс
Активный участник
Сообщения: 185
Зарегистрирован: 26 июл 2010, 08:54
Репутация: 30
Откуда: Ногинск

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

Сообщение Алекс » 10 янв 2012, 06:42

Выделить все объекты. потом:
В прикладных задачах, в группе "Контроль и исправление данных" задачка "Исправление метрики объектов".

Petruxin
Гуру
Сообщения: 1695
Зарегистрирован: 14 июн 2011, 16:47
Репутация: 133
Ваше звание: Завсегдатай
Откуда: Череповец

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

Сообщение Petruxin » 10 янв 2012, 12:41

Спасибо.

Аватара пользователя
Olga_@@@
Гуру
Сообщения: 715
Зарегистрирован: 24 фев 2009, 15:42
Репутация: 0
Ваше звание: городошник
Откуда: Екатеринбург
Контактная информация:

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

Сообщение Olga_@@@ » 10 янв 2012, 22:19

эх... поздно тему увидела.
Это в AutoCAD Map или Civil очень просто делается.
Импортируте mif/mid (команда _mapimport с нужными настройками), потом в командную строку скопируйте это выражение: _MIRROR _ALL 0,0 1000,1000 _Y '_.zoom _e

ps после _.zoom _e пробел стоит не случайно, копируйте вместе с ним. Проверьте, чтобы после ALL стояло 2 пробела.
Если операцию надо повторять часто, есть смысл посадить этот макрос на кнопку.
Последний раз редактировалось Olga_@@@ 12 янв 2012, 13:20, всего редактировалось 1 раз.
У меня из Apple дома только компот.

Slinger
Гуру
Сообщения: 879
Зарегистрирован: 17 июн 2010, 23:14
Репутация: 207
Откуда: Москва

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

Сообщение Slinger » 12 янв 2012, 00:18

Olga_@@@

Огромное спасибо, всё получилось. Правда не так, как хотелось, так как после операции "_mirror _all" автокад всё ещё ждет подтверждения в плане нажатия волшебного Enter, а в макросе этого не указано. Или может быть какую-то настройку для када провести надо было. Так что пришлось в первый раз всё вручную вводить. В любом случае я этот замечательный макрос переписал для AutoHook'a и теперь всё работает. Вот бы ещё разгадать загадку, почему вторая точка зеркала 1000/1000...

Ответить

Вернуться в «Общие вопросы»

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

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