Майки от BearDyugin shop ;)

Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти
  1. Доброго времени суток всем. Отключена личная переписка для только что зарегистрированных, в связи с массовой регистрацией СПАМ-ботов и рассылками. Форумчане, настоятельно просим, не переходите по ссылкам в личных переписках от женщин с «низкой социальной ответственностью», в т.ч. «перечисляющих» Вам деньги.
    Скрыть объявление

Подскажите программу для преобразования Гельмерта

Тема в разделе "Программы для пересчета координат и поиска ключей", создана пользователем GeOdessit, 31 окт 2015.

  1. GeOdessit

    Форумчанин

    Регистрация:
    19 дек 2013
    Сообщения:
    616
    Симпатии:
    115
    Адрес:
    из Мамы, Украина
    Имеется группа точек с прямоугольными координатами, которые нужно преобразовать в другую прямоугольную систему координат по некой подгруппе точек, координаты которых известны в обоих системах.
    Т. е. сначала нужно подобрать 7 параметров для преобразования Гельмерта методом наименьших квадратов, а затем пересчитать координаты всех точек в целевую СК.
    Пробовал Транскор, но проблема в том, что преобразование местных систем координат он выполняет только на плоскости, без учета Z.
    Кроме того, интересует такой вопрос (прошу прощения, если он банален - я очень поверхностно ориентируюсь в этой теме): если, скажем принудительно обнулить масштабный коэффициент, будет ли результат удовлетворять требованиям МНК для преобразования по 6-ти параметрам?
    Если нет, то есть ли программы, которые позволяют до подбора параметров замораживать некоторые из них?
     
    #1
  2. X-Y-H

    X-Y-H Администратор
    Команда форума Форумчанин Форумчанин

    Регистрация:
    18 май 2007
    Сообщения:
    16.396
    Симпатии:
    4.287
    Адрес:
    Россия
    vovkaf, транскор какой версии?
     
    #2
  3. GeOdessit

    Форумчанин

    Регистрация:
    19 дек 2013
    Сообщения:
    616
    Симпатии:
    115
    Адрес:
    из Мамы, Украина
    первый.
    а что есть кроме него?
     
    #3
  4. ЮС

    Форумчанин

    Регистрация:
    28 фев 2010
    Сообщения:
    3.817
    Симпатии:
    3.790
    Даже первая версия Транскора могла выполнять наиболее востребованные преобразования и определять параметры (ключи).
    Какие именно "прямоугольные координаты" имеются - пространственные XYZ, плоские в проекции Гаусса-Крюгера (Меркатора), плоские условные (тип Локальные по Транскору)?
    Пример с данными хотя бы по трём пунктам в обеих системах в студию.
     
    #4
  5. GeOdessit

    Форумчанин

    Регистрация:
    19 дек 2013
    Сообщения:
    616
    Симпатии:
    115
    Адрес:
    из Мамы, Украина
    Вот, пожалуйста:
    [​IMG]
    Слева - исходные координаты, справа - целевые.
    По сути, это местная СК, но её параметры мне не известны. Речь идет о том, чтоб её немного подравнять (выполнить калибровку съёмки GPS-приёмником). Поэтому, думаю, что можно рассматривать её как пространственную X,Y,Z.

    В принципе, уже разобрался с Транскором. Задал тип СК "геоцентрическая" и получил то, что хотел. Непонятно, почему всё-таки почему Транскор не пересчитывает высоты для типа СК "местная"?

    Ну и остается открытым вопрос, который я задавал выше:
     
    #5
  6. ЮС

    Форумчанин

    Регистрация:
    28 фев 2010
    Сообщения:
    3.817
    Симпатии:
    3.790
    Чтобы "выполнить калибровку съёмки GPS-приёмником" надо определить локальные параметры связи WGS-84 с МСК. Для этого надо иметь координаты точек в обеих системах, одна из которых WGS-84.
    Представленные координаты в обеих системах по сути условные (тип Локальные) так как нам не известны их параметры связи с отсчётной системой (элл. Красовского или WGS-84, тип проекции...). Поэтому напрямую выполнить так называемую "калибровку" для спутниковых измерений тут вряд ли получится.
    Однако, если те координаты, что Вы назвали "исходными", уже были как-то получены из спутниковых измерений, то выполнить дополнительное их преобразование в "целевые" можно.
    Как Вы заметили:
    Дело в том, что местные, в понимании Транскора, это плоские координаты X, Y, где H лишь может присутствовать, но не участвует в вычислениях-преобразованиях.
    Для получения 7 параметров связи нужны пространственные координаты.
    Надо задать тип координат пространственные (геоцентрические), где H представить как Z (что Вы и сделали) и можно вычислять те самые 7 параметров.
    Если обнулить масштабный коэффициент (поправку масштабного коэффициента), то параметров всё равно останется 7, просто один из них будет равен нулю. ::biggrin24.gif::
    Минимальная ошибка преобразования координат будет при использовании вычисленного масштабного коэффициента.
    Но если необходимо сохранить именно масштаб преобразуемой СК (например, она более точная, чем целевая), тогда можно коэффициент обнулить.
    Если целевая СК более точная, чем измерения, тогда с применением вычисленного коэффициента вместе с преобразованием произойдёт и калибровка измерений (подгонка к масштабу целевой СК).
     
    #6
    GeOdessit нравится это.
  7. GeOdessit

    Форумчанин

    Регистрация:
    19 дек 2013
    Сообщения:
    616
    Симпатии:
    115
    Адрес:
    из Мамы, Украина
    Уважаемый ЮС, спасибо Вам за подробный обстоятельный ответ. С Вашего позволения, помучаю Вас ещё немного ::smile24.gif::
    Честно говоря, это уже сделано.
    Приёмник я брал в аренду, работал от их базовой станции. В контролере уже была сделана калибровка по пунктам полигонометрии, но в другом районе города. В этой СК (я её назвал "исходной") с помощью разбивки нашёл ПП в нужном мне районе. Потом сделал съёмку ПП + опорных точек на своём объекте в двух СК: WGS-84 и "исходной".
    На основании съёмки в WGS-84 и имеющегося датума МСК (я так понял, может и ошибаюсь), хозяин приёмника сделал для меня калибровку (прямо в контролере, Leica CS10).
    Я же любопытства ради решил сделать трансформацию в Транскоре. Рассуждал я следующим образом: работаю на небольшом участке (не более, чем 2х2 км), исходные и целевые координаты имеют 2D расхождение не более 40 см (высоты, правда, расходятся больше - около 7м), исходная и целевая СК основаны на одном и том же датуме. Значит, можно выполнить трансформацию Гельмерта и с достаточной точностью получить координаты в целевой системе, минуя преобразование в пространственную геоцентрическую.
    Как Вы считаете, правомерны мои выводы?
    Однако, полученные в Транскоре результаты трансформации несколько отличаются от результатов калибровки в контроллере - в пределах 2 см. Почему - для меня пока не понятно.

    Всё равно не понятно: почему? Было бы ясно, если бы сначала выполнялось уравнивание в плоскости проекций (по X и Y), а затем уравнивание высот H. Т. е. повороты относительно осей X и Y исключаем (приравниваем нулю) и делаем по сути трансформацию по пяти параметрам.

    Это понятно. Не ясно другое. Во-первых, насколько я успел разобраться, подбор параметров для преобразования Гельмерта выполняется в Транскоре (и не только в Транскоре) не итерационными методами, а аналитически, по определенным формулам. Например, параллельный перенос осуществляется по барицентрам. Мне просто любопытно, гарантирует ли такой подход наименьшую сумму квадратов отклонений (это условие я и назвал выше требованием МНК)? Во-вторых, даже если так... Вот, подобрали мы например 7 параметров для трансформации, в результате которой сумма квадратов отклонений будет минимальной. Но решили отказаться от масштабного коэффициента (m=1) по причинам, изложенным Вами выше. Можем ли мы быть уверены, что сохранив все остальные параметры, мы получим мин. сумму кв. отклонений для 6-параметрического преобразования? А то вдруг, говоря попросту, если ещё немножко куда-то подвинуть/повернуть, то будет ещё лучше?

    Я сперва так и думал, зная что каталожные координаты ПП далеко не всегда точны (пара-тройка сантиметров расхождения в длине линии, да и по высоте тоже в наших краях - это дело житейское). С другой стороны, съёмку я выполнял в РТК. Поэтому, в моём случае масштабный коэффициент всё-таки нужно применять, так?
     
    #7
  8. ЮС

    Форумчанин

    Регистрация:
    28 фев 2010
    Сообщения:
    3.817
    Симпатии:
    3.790
    Я так и понял, что Вам просто интересно было попробовать 3D трансформирование. Конечно же на столь малой площади вполне можно обойтись 2D по Гельмерту, поскольку эти две СК практически лежат в одной плоскости или в параллельных плоскостях, что можно исправить простой поправкой в высоты пунктов.
    Какой алгоритм преобразований в контроллере?
    Вот и я не знаю... Кроме того, на экранах мы видим округление до определённого числа знаков, а в вычислениях используется несколько больше. Это тоже может сказаться на вычисленных параметрах.
    Просто потому, что к местным СК (тип Локальные в Транскоре) относятся по сути условные СК в параллельных плоскостях (не путайте с региональными МСК в проекции Гаусса-Крюгера). Соответственно и преобразование (пересчёт) в них выполняется простейшим способом по Гельмерту (разворот, сдвиг, масштабирование).
    Для других типов СК применяются другие алгоритмы. В последней версии Транскора их больше десятка.
    Повторяю, даже если мы установим масштаб преобразования =1 (поправка к м=0), то это всё равно будет 7-параметрическое преобразование, так как алгоритм вычислений останется тем же самым - 7-параметрическим с использованием в вычислениях данного масштабного коэффициента.
    А это легко проверить.
    Выполните преобразования с исправленным коэффициентом, получите преобразованные координаты, а затем, используя эти преобразованные координаты, попробуйте заново определить 7 параметров перехода в целевую СК. Сравните первые и вторые 7 параметров.
    Да, каталожные координаты часто оставляют желать лучшего. Но, выполняя съёмки, межевание и т.п. мы вынуждены опираться на те исходные, что имеем.
    Другое дело, когда создаётся, например, мониторинговая опорная сеть или ГРО (строительная сетка), где надо исключить влияние ошибок исходных и в то же время сохранить преемственность системы координат.
    То есть, то или иное решение надо принимать в зависимости от обстоятельств.
     
    #8
  9. GeOdessit

    Форумчанин

    Регистрация:
    19 дек 2013
    Сообщения:
    616
    Симпатии:
    115
    Адрес:
    из Мамы, Украина
    Удержание "запасных" знаков - типичный подход для вычислений. Он как раз и служит для того, чтоб не потерять исходную точность данных. Вот если б этого не делать, тогда да - могло бы "сказаться на вычисленных параметрах".

    Да, действительно - это своего рода "черный ящик". Обозначим его №1.
    Но и для Транскора я не нашёл (искал в справке) такого алгоритма. Имеем чёрный ящик №2.
    На входе в оба чёрных ящика одинаковые данные. (Попутно отмечу, что п. 1500 исключался из поиска параметров в обоих случаях, как дающий значительное отклонение по высоте). На выходе из чёрных ящиков получаем существенно разные результаты. Вопрос: какому доверять больше? ;)

    Пусть параллельные, но Вы же сами писали выше:
    Вот я и не пойму, почему Транскор не вычисляет эту самую поправку по высоте (т. е. подбирает только 4 параметра вместо 5)? Или Вы предлагаете вычислять и вводить её вручную?
    Вопрос, конечно, уже не принципиальный (коль скоро есть возможность перейти к геоцентрическим СК и вычислить нужные параметры). Просто мне остается непонятной логика разработчика.

    Не могу понять почему Вы так на этом настаиваете. В чём принципиальная разница с точки зрения интересующего меня вопроса (поиск наилучшего решения при условии фиксированного m=1)?

    Проверить-то легко. Вот только не уверен, что такая проверка будет корректной (почему - объясню ниже).
    Тем не менее, я проделал предложенные Вами манипуляции и получил вот такой результат.
    Вот параметры, подобранные Транскором для 1-го преобразования:
    [​IMG]
    Обнуляем m (это, кстати, в определении самого Транскора, фактически имеется в виду ∆m), делаем преобразование и повторный подбор семи параметров:
    [​IMG]
    Как видим, 6 параметров (параметры "движения") близки к нулю, а масштабный коэффициент несколько отличается (во 2-м знаке мантиссы).
    Можно ли считать такое отличие значительным - не знаю, скорее всего нет.
    Но я всё-таки сомневаюсь в корректности такого подхода. Ведь если мы имеем определенный алгоритм подбора 7-ми параметров по определенным формулам (а не слепым подбором или итерационными методами), то даже если двойной подбор даст схожие результаты (как в моём примере выше), это ещё не гарантия того, что мы получили наилучшее решение. Ведь наш алгоритм "заточен" на поиск 7-ми параметров, а мы принудительно его "урезаем". Возможно, это Вы имели в виду, когда настаивали, что преобразование остается 7-ми параметрическим?

    Итак, остаются актуальными вопросы:
    Какой алгоритм подбора 7 параметров использует Транскор? Такой?:
    http://wiki.gis-lab.info/w/Конформное_преобразование
    Удовлетворяет ли он условию МНК? Или он разработан на базе каких-то других критериев?
    Как найти параметры преобразования МНК при условии принудительного обнуления одного или даже нескольких из них?
    --- Сообщения объединены, 9 ноя 2015, Оригинальное время сообщения: 9 ноя 2015 ---
    Из справки Транскора:
    "Преобразование координат по Хельмерту. В этом преобразовании по общему по всем направлениям масштабному коэффициенту меняются только длины линий, углы остаются неизменными. Это преобразование используется при вставке уравненной сети в более точную сеть исходных пунктов.
    ...
    Афинное преобразование координат из одной прямоугольной системы в другую производится общим по формулам афинного преобразования. В этом преобразовании в зависимости от положения пункта меняются длины линий и углы. Формулы используются при вставке уравненной сети в менее точную сеть исходных пунктов."


    А почему так? Казалось бы, должно быть наоборот. Ведь если сеть, снятая и уравненная исполнителем (в "исходных" координатах) точнее, чем опорная (в "целевых" координатах), то нужно ведь сохранить углы и даже расстояния. То есть, необходим Гельмерт с m=1. Или я ошибаюсь?
     
    #9
    adon73 нравится это.
  10. ЮС

    Форумчанин

    Регистрация:
    28 фев 2010
    Сообщения:
    3.817
    Симпатии:
    3.790
    Алгоритм какого именно преобразования Вам нужен? Их там больше десятка разных типов. В справочной системе перечислены основные функции
    Из справочной системы (раскрыть)

    Основные функции

    Преобразование геоцентрических, геодезических координат по задаваемым параметрам связи референцных и геоцентрических систем.
    Преобразование координат по установленным параметрам полиномиального преобразования и введенным данным пользователем с клавиатуры.
    Реализация работы системы для типов проекций – поперечно-цилиндрической проекции Меркатора, конической проекции Ламберта с двумя или одной стандартными параллелями, цилиндрической проекции Меркатора и псевдомеркатора, ортографической.
    Преобразование прямоугольных координат из системы в систему:
    в разных геоцентрических (референцных и общих) системах - по задаваемым параметрам проекции и параметрам связи референцных и геоцентрических систем;
    в одной геоцентрической (референцной или общей) системе, одной картографической проекции из зоны в зону (СК42, СК95, UTM84 и др.) или произвольную (СК63, местную) систему координат.
    Определение параметров связи прямоугольных систем координат в афинном, Хельмерта, Хельмерта - полные формулы с ПК, нелинейном преобразованиях с оценкой и контрольной оценкой точности.
    Термин "ПК - постоянные коэффициенты" был введен А.П.Герасимовым в работе "Местные системы координат. Москва, 2010".
    Определение параметров связи общеземных и референцных геоцентрических систем координат.
    Установление параметров связи между пространственной/геодезической и плоской системами координат в плане и по высоте (Ключ 2D(Хельмерт)+H).
    Установление параметров связи с использованием полиномиального преобразования до 5-й степени включительно с применением МНК.
    Определение ключа местных систем координат в нескольких вариантах образования местных СК.
    Определение ключа местных систем координат в ортографической проекции и поперечно-цилиндрической проекции Меркатора.
    Расчет масштабного коэффициента.
    Расчет среднего радиуса кривизны эллипсоида для территории.
    Расчет Гауссова сближения меридианов.
    Расчет аномалии высоты для выбранной модели геоида.

    А формулы есть в учебниках и справочниках. Вряд ли нужно всё переписывать в справочную систему к программе, хотя там есть и формулы.
    Если есть какие-то сомнения в расчётах Транскора, выполните их вручную. Обнаружите ошибки - пишите разработчикам.
    Да всё потому, что пересчёт прямоугольных координат на плоскости по Гельмерту не включает в себя задачу пересчёта высот.
    Вы пользуетесь очень старой версией Транскора. В новых (даже не самых последних) есть функция вычисления среднего значения координат и высот хоть с нескольких страниц. Вычисляете среднюю высоту пунктов в той и другой системах, получаете разность и прибавляете её опять же ко всем выделенным пунктам на одной или нескольких страницах. Никаких ручных вычислений.
    По-моему Вы уже запутались в своих размышлениях и вдобавок к этому не совсем чисто провели эксперимент. По всей видимости, для повторного определения параметров данные вводились вручную, при этом результаты первого преобразования округлялись до мм. Из-за этого при повторном определении параметров наблюдаются остаточные углы разворота по осям и сдвижке по X.
    Если данные скопировать из правой панели на левую или просто поменять панели местами, тогда скрытые доли мм сохранятся и преобразование пройдёт корректно. И развороты по осям и сдвижки будут равны нулю.
    Естественно поправка к масштабному коэффициенту будет отличаться от нуля. Ведь Вы сами же отказались от коэффициента преобразования, предложенного Транскором (-0.00000640) и вместо него ввели так нужный Вам нуль. Как следствие, получаются координаты в новой системе с минимумом отклонений, но с сохранением масштаба старой (исходной) системы. Всё как Вы хотели.
    Сомневаетесь в расчётах - вычислите полученную сумму квадратов отклонений по всем пунктам. Потом попробуйте смещать всю группу пунктов в ту или иную сторону, разворачивать её на какой-то угол и при этом каждый раз вычислять сумму квадратов отклонений. Найдёте вариант с координатами пунктов при меньшей суммой квадратов, чем вычислил Транскор - файл в студию.
    Видимо, в справке имелась в виду точность именно угловых сетей (триангуляции). По Хельмерту углы не деформируются и угловая точность в сети сохраняется. А в зависимости от того, какая ставится задача, масштаб сети может или сохраняться (1), или подгоняться под масштаб целевой сети.
    Если задача сохранить точность (масштаб) линейной или линейно-угловой сети, то конечно же нужно применять масштаб =1.
     
    #10
  11. GeOdessit

    Форумчанин

    Регистрация:
    19 дек 2013
    Сообщения:
    616
    Симпатии:
    115
    Адрес:
    из Мамы, Украина
    ЮС, я понял, что по сути заданных мной вопросов Вам ответить нечего. Последние несколько постов мы толчем воду в ступе.
    Получается что-то вроде "я не знаю, по какому алгоритму работает Транскор и почему... Но если кто-то сомневается в результатах - пусть попробует сделать лучше".
    Вы изначально меня неправильно поняли. Нет у меня никаких претензий к Транскору, я лишь пытался разобраться в его алгоритме, а заодно глубже понять сущность преобразования Гельмерта (а именно - подбор параметров). А сомнения если и имеют место, то лишь как способ познания, в духе принципа "сомневайся во всём".
     
    #11
  12. ЮС

    Форумчанин

    Регистрация:
    28 фев 2010
    Сообщения:
    3.817
    Симпатии:
    3.790
    Да, я тоже это заметил. Вы в разных интерпретациях уже несколько раз задали по сути один и тот же вопрос:
    На что я тоже не раз ответил:
    Алгоритмы? Вот из справочной системы Транскора:
    И о 7-и параметрическом преобразовании...
    Сколько можно повторять, что если для решения применяется тот же алгоритм, то он и останется 7-параметрическим, как бы мы не изменяли масштаб преобразования.
    Алгоритмы? Вот из справочной системы Транскора:
    В Транскоре всё, что возможно, выполняются по достаточно строгим формулам и по МНК.
    А если есть сомнения (и это нормально), то развеять их можно только одним способом - вычислить всё самостоятельно. Другого пути нет. Ведь кто бы и чтобы не говорил, Вы всё равно можете продолжать сомневаться...
     
    #12
  13. RASAMAHA24RUS

    Регистрация:
    16 ноя 2015
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте, подскажите как перейти от 10 параметров Маладенский -Бадекас к 7 параметрам Гельмерта, может существует программа, буду очень признателен.
     
    #13
  14. stout

    Форумчанин Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    3.253
    Симпатии:
    8.848
    Адрес:
    Златоглавая и Белокаменная
    Какая нахрен программа, 12 умножений и 9 сложений. Забыли как матрицу на вектор-столбец умножать?
     

    Вложения:

    #14

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление