поменять X и Y местами. Как?
-
- Гуру
- Сообщения: 879
- Зарегистрирован: 17 июн 2010, 23:14
- Репутация: 207
- Откуда: Москва
поменять X и Y местами. Как?
Подобный вопрос давно меня интересовал как таковой, а тут на днях подвалила и задача. Был проект, выполненный в панораме. Экспортировали в .mif/.mid, однако, так как панорама работает с геодезической системой координат, .mif/.mid тоже получились некорректными в плане "перевёрнотости" X и Y. Сам проект был утерян. Соответственно в итоге я имею .tab файл с кучей объектов (тип геометрии разный) с перевёрнутыми координатами.
Каким образом можно попытаться "пересчитать" геометрию так, чтобы получились корректные координаты? Была мысль воспользоваться каким-нибудь приложением, где можно было бы при экспорте указывать математическую/геодезическую систему (проще говоря, перевернуть объекты при экспорте)
Имею в наличии различные гис и сапр системы (MI, arcgis, qgis, cad/cad map 3d).
Каким образом можно попытаться "пересчитать" геометрию так, чтобы получились корректные координаты? Была мысль воспользоваться каким-нибудь приложением, где можно было бы при экспорте указывать математическую/геодезическую систему (проще говоря, перевернуть объекты при экспорте)
Имею в наличии различные гис и сапр системы (MI, arcgis, qgis, cad/cad map 3d).
Последний раз редактировалось Slinger 08 дек 2011, 20:34, всего редактировалось 1 раз.
-
- Активный участник
- Сообщения: 185
- Зарегистрирован: 26 июл 2010, 08:54
- Репутация: 30
- Откуда: Ногинск
Re: поменять X и Y местами. Как?
Выгрузите в Панораму, разверните координаты (есть специальная процедура) и верните обратно.
- nadiopt
- Гуру
- Сообщения: 4744
- Зарегистрирован: 29 янв 2009, 13:27
- Репутация: 495
- Ваше звание: хрюкало
- Откуда: Санкт-Петербург
- Контактная информация:
Re: поменять X и Y местами. Как?
а если попробовать тупо из мифа запихать координаты в эксель и поменять местами колонки, потом шапку мифа сверху дописать?
ин гроссен фамилен нихт клювен клац клац
- novia
- Гуру
- Сообщения: 2261
- Зарегистрирован: 29 апр 2011, 15:06
- Репутация: 489
- Откуда: Тель-Авив
-
- Гуру
- Сообщения: 879
- Зарегистрирован: 17 июн 2010, 23:14
- Репутация: 207
- Откуда: Москва
Re: поменять X и Y местами. Как?
Попробую найти, спасибо. Хотя по возможности лучше без Панорамы попытаться обойтисьАлекс писал(а):Выгрузите в Панораму, разверните координаты (есть специальная процедура) и верните обратно.
Помимо шапки, перед каждыми координатами, присутствует описание объекта. То есть отдельное описание для сммвола, фонта, полигона и прочего. Их много, описания везде разные, и явно без какого-никакого программинга там не обойтись. А программить не позволяет опыт и времяnadiopt писал(а):а если попробовать тупо из мифа запихать координаты в эксель и поменять местами колонки, потом шапку мифа сверху дописать?

Там результаты топосъемки, так что геометрия самая разношёрстнаяnovia писал(а):тип геометрии у вас какой?
- novia
- Гуру
- Сообщения: 2261
- Зарегистрирован: 29 апр 2011, 15:06
- Репутация: 489
- Откуда: Тель-Авив
Re: поменять X и Y местами. Как?
берите точечные объекты. добавляйте два поля с типом double.
считайте координаты командой вычислить геометрию.
потом на основе таблицы атрибутов - создайте слой точек (команда Добавить данные XY) где используйте правильные x и y
а после - панель инструментов Векторная трансформация
делайте связи смещения точка (id_в старом наборе = id_в новом наборе) - точка.
применяйте трансформацию ко всем слоям
profit.
з.ы. алгоритм рассчитан на ArcGIS. знаете как сделать то же самое в другом ПО, делайте в нем.
считайте координаты командой вычислить геометрию.
потом на основе таблицы атрибутов - создайте слой точек (команда Добавить данные XY) где используйте правильные x и y
а после - панель инструментов Векторная трансформация
делайте связи смещения точка (id_в старом наборе = id_в новом наборе) - точка.
применяйте трансформацию ко всем слоям
profit.
з.ы. алгоритм рассчитан на ArcGIS. знаете как сделать то же самое в другом ПО, делайте в нем.
понравилось? жми палец вверх 

-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: поменять X и Y местами. Как?
Не стоит ли прочитать документацию? Хотя бы к формату MIF/MID. В ней указано два варианта решения задачи:
а) манипуляции с масштабами и направлениями осей
на пример здесь http://mapinfo.forum.hut2.ru/viewtopic.php?id=32
а) манипуляции с масштабами и направлениями осей
на пример здесь 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 ) ]
-
- Гуру
- Сообщения: 879
- Зарегистрирован: 17 июн 2010, 23:14
- Репутация: 207
- Откуда: Москва
Re: поменять X и Y местами. Как?
Опцию нашёл, свою задачу решил, ещё раз спасибо.Алекс писал(а):Выгрузите в Панораму, разверните координаты (есть специальная процедура) и верните обратно.
Спасибо, суть понял, обязательно попробуюnovia писал(а):берите точечные объекты. добавляйте два поля с типом double.
считайте координаты командой вычислить геометрию.
...
Про трансформ в курсе, однако каким образом задание квадрантов и обычных смещений поможет поменять местами X/Y - понять не смог.Boris писал(а): а) манипуляции с масштабами и направлениями осей
Если честно - вообще не понял. Можно чуть более конкретно?Boris писал(а):б) задание аффинной трансформации для системы координат
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: поменять X и Y местами. Как?
можно.
аффинная трансформация - способ линейного отображения двух систем координат друг на друга. поддерживает: масштабирование по каждой оси, поворот, отражнение.
Коэффициенты (6 штук) находятся путем решения линейного уравнения о трех точках. В случае замены осей они составляют : 0, -1, 0, -1, 0, 0. Что в соответсвии с хелпом задает:
x1 = 0*x + -1*y +0
y1 = -1*x + 0*y +0
аффинная трансформация - способ линейного отображения двух систем координат друг на друга. поддерживает: масштабирование по каждой оси, поворот, отражнение.
Коэффициенты (6 штук) находятся путем решения линейного уравнения о трех точках. В случае замены осей они составляют : 0, -1, 0, -1, 0, 0. Что в соответсвии с хелпом задает:
x1 = 0*x + -1*y +0
y1 = -1*x + 0*y +0
-
- Гуру
- Сообщения: 879
- Зарегистрирован: 17 июн 2010, 23:14
- Репутация: 207
- Откуда: Москва
Re: поменять X и Y местами. Как?
Запоздал я с ответом на месяц, однако решить Вашим методом не получилось. Пробую следуя синтаксису:
В результате получаю ошибку, что "встретилось Affine, где ожидается Units". Так что синтаксис с NonEarth почему-то не прокатывает.
Пробовал с первым синтаксисом, там где Earth Projection. MI код съел, однако координаты не перевернул.
Мой заголовок в .mif файле:Синтаксис 2
CoordSys Nonearth
[ Affine Units unitname, A, B, C, D, E, F ]
Units unitname
[ Bounds ( minx, miny ) ( maxx, maxy ) ]
Код: Выделить всё
CoordSys NonEarth Affine Units "m", 0, -1, 0, -1, 0, 0 Units "m" Bounds (-10000000, -10000000) (10000000, 10000000)
Пробовал с первым синтаксисом, там где 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)
-
- Гуру
- Сообщения: 1695
- Зарегистрирован: 14 июн 2011, 16:47
- Репутация: 133
- Ваше звание: Завсегдатай
- Откуда: Череповец
Re: поменять X и Y местами. Как?
Опцию нашёл, свою задачу решил, ещё раз спасибо.
Не могу опцию найти. Подскажите "где у нее кнопка"
(панорама 10.6.)
Не могу опцию найти. Подскажите "где у нее кнопка"

-
- Активный участник
- Сообщения: 185
- Зарегистрирован: 26 июл 2010, 08:54
- Репутация: 30
- Откуда: Ногинск
Re: поменять X и Y местами. Как?
Выделить все объекты. потом:
В прикладных задачах, в группе "Контроль и исправление данных" задачка "Исправление метрики объектов".
В прикладных задачах, в группе "Контроль и исправление данных" задачка "Исправление метрики объектов".
-
- Гуру
- Сообщения: 1695
- Зарегистрирован: 14 июн 2011, 16:47
- Репутация: 133
- Ваше звание: Завсегдатай
- Откуда: Череповец
Re: поменять X и Y местами. Как?
Спасибо.
- Olga_@@@
- Гуру
- Сообщения: 715
- Зарегистрирован: 24 фев 2009, 15:42
- Репутация: 0
- Ваше звание: городошник
- Откуда: Екатеринбург
- Контактная информация:
Re: поменять X и Y местами. Как?
эх... поздно тему увидела.
Это в AutoCAD Map или Civil очень просто делается.
Импортируте mif/mid (команда _mapimport с нужными настройками), потом в командную строку скопируйте это выражение: _MIRROR _ALL 0,0 1000,1000 _Y '_.zoom _e
ps после _.zoom _e пробел стоит не случайно, копируйте вместе с ним. Проверьте, чтобы после ALL стояло 2 пробела.
Если операцию надо повторять часто, есть смысл посадить этот макрос на кнопку.
Это в 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 дома только компот.
-
- Гуру
- Сообщения: 879
- Зарегистрирован: 17 июн 2010, 23:14
- Репутация: 207
- Откуда: Москва
Re: поменять X и Y местами. Как?
Olga_@@@
Огромное спасибо, всё получилось. Правда не так, как хотелось, так как после операции "_mirror _all" автокад всё ещё ждет подтверждения в плане нажатия волшебного Enter, а в макросе этого не указано. Или может быть какую-то настройку для када провести надо было. Так что пришлось в первый раз всё вручную вводить. В любом случае я этот замечательный макрос переписал для AutoHook'a и теперь всё работает. Вот бы ещё разгадать загадку, почему вторая точка зеркала 1000/1000...
Огромное спасибо, всё получилось. Правда не так, как хотелось, так как после операции "_mirror _all" автокад всё ещё ждет подтверждения в плане нажатия волшебного Enter, а в макросе этого не указано. Или может быть какую-то настройку для када провести надо было. Так что пришлось в первый раз всё вручную вводить. В любом случае я этот замечательный макрос переписал для AutoHook'a и теперь всё работает. Вот бы ещё разгадать загадку, почему вторая точка зеркала 1000/1000...
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость