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

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

Войти

"Раскрашивание" треугольника в Геодезии.

Тема в разделе "Геодезия как наука", создана пользователем zvezdochiot, 10 ноя 2021.

  1. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    6.011
    Симпатии:
    2.127
    Адрес:
    г. Москва
    Данная тема предназначена для ознакомления с интерполяционными методами применительно к результатам спутниковых наблюдений.

    Для того, чтобы не связываться со сложным и неустойчивым аффинным преобразованием из одного треугольника в другой зачастую применяют более простую технику: "закрашивание" треугольника разностями (или интерполяция разностей). Здесь имеется очень хорошая визуальная аналогия с непосредственным закрашиванием треугольников трёхкомпонентными цветами в компьютерной графике:
    [​IMG]
    Только в геодезии в качестве цветов выступают разности координат вершин двух "похожих" треугольников.

    Рассматривать окончательный оптимизированный алгоритм не буду, он ухудшает понимание действия, рассматривать буду только базовый алгоритм.

    Имеются 3 исходных пункта {A, B, C} с координатами и эти же пункты в спутниковой съёмке {a, b, c}. Помимо них внутри треугольника содержится множество съёмочных точек {m}. Для треугольника A-B-C известны разности координат исходных и съёмочных:

    d{A,B,C}{x,y,h} = {A,B,C}{x,y,h} -{a,b,c}{x,y,h}

    Для "закрашивания" (интерполяции/экстраполяции) точки m{x,y,h} строим дополнительную прямую, например из точки a через точку m на линию b-c, получив на ней вспомогательную точку s.

    PS: Здесь есть "слабое" место - это когда линия a-m параллельна линии b-c. В этом случае следует поменять расстановку точек {a,b,c}.

    В зависимости от того, попадает точка s{x,y,z} в промежуток b-c, точка m либо может принадлежать треугольнику, либо точно не принадлежит. Ежели точка m находится ближе точки s к точке a и выполняется предыдущее условие, то точка m находится внутри треугольника, иначе точно не находится внутри.

    Для точки s{x,y,z} по линии b-c линейной интерполяцией/экстраполяцией от точек {b и c} определяются значения разностей координат точки S:

    dS{x,y,h} = lineint({b,c,s}{x,y,h}, d{B,C}{x,y,h})

    Переходим теперь к линии a-s и тем же самым линейным интерполированием/экстраполированием определяем значения разностей точки M:

    dM{x,y,h} = lineint({a,s,m}{x,y,h}, d{A,S}{x,y,h})

    Ну и сами "закрашенные" координаты точки m:

    M{x,y,h} = m{x,y,h} + dM{x,y,h}

    Данный метод не оптимизирован от слова совсем. В компьютерной графике применяются методы с многочисленными оптимизациями, но они мешают увидеть суть "окрашивания" (интерполяции/экстраполяции) треугольника.

    --------------------------------------------------------

    Описание линейной интерполяции lineint().

    Распишу на примере координаты x:

    dS.x = lineint({b,c,s}x, d{B,C}x) = dB.x + (dC.x - dB.x) * s.l / c.l

    s.l = sqrt((s.x - b.x)^2 + (s.y - b.y)^2 + (s.h - b.h)^2)
    c.l = sqrt((c.x - b.x)^2 + (c.y - b.y)^2 + (c.h - b.h)^2)

    --------------------------------------------------------

    Пересечение S линий A-M и B-C:

    d = (b.x*(m.y-a.y)+c.x*(a.y-m.y)+(c.y-b.y)*m.x+a.x*(b.y-c.y))
    kL = -(a.x*(c.y-b.y)+b.x*(a.y-c.y)+(b.y-a.y)*c.x)/d
    s.x = a.x + (m.x-a.x)*kL
    s.y = a.y + (m.y-a.y)*kL
    s.h = a.h + (m.h-a.h)*kL

    Всё.
     
    #1
    stavr, Olimpix, мирось и 2 другим нравится это.
  2. Deleted member 122005

    Deleted member 122005 Только чтение

    Возникает вопрос. А не проще ли для "закрашивания" точки m сделать следующее... "Цвет" точки m равен совокупности трёх "цветов" в вершинах треугольника (эти три "цвета" условно обзову "исходными цветами"). Вес каждого "исходного цвета" назначить обратно пропорциональным расстоянию от точки m до соответствующей вершины треугольника. "Цвет" точки m принять равным среднему весовому.
     
    #2
  3. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    6.011
    Симпатии:
    2.127
    Адрес:
    г. Москва
    Это уже радиальная интерполяция. Она образует три ярко выраженные окружности вокруг вершин с особой точкой в самой вершине. Такая интерполяция нелинейна. Но при желании можно конечно.

    Ты не обратил внимание на главное! "Уравнивание" в данном случае предполагает (и это хорошо видно на картинке) нахождение съёмочных точек внутри треугольников исходных точек. В этом подвох! Зачастую это условие тупо не выполняется!
     
    #3
  4. Deleted member 122005

    Deleted member 122005 Только чтение

    Нет, я понял, что речь опять же о неком поле поправок по типу NTv2. Вопрос в том, какую интерполяцию лучше выбрать. Я считаю, что лучше сделать так, поскольку в линейной модели влияние одной из вершин может быть сведено практически к нулю в том случае, когда точка m расположена вблизи стороны треугольника. В то же время целесообразно обеспечить сходимость точки m не только по отношению к двум наиболее близким к ней точкам (например, А и B, которые образуют сторону треугольника), но и ко всем ближайшим исходным пунктам в принципе. В том числе и к тем, которые находятся за пределами треугольника, но также включены в сеть.
     
    #4
    zvezdochiot нравится это.
  5. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    6.011
    Симпатии:
    2.127
    Адрес:
    г. Москва
    Сделал тестовую таблицу.
     

    Вложения:

    • tricolor.xls
      Размер файла:
      31,5 КБ
      Просмотров:
      19
    #5
  6. andrew_klikunov

    Форумчанин

    Регистрация:
    30 сен 2015
    Сообщения:
    1.333
    Симпатии:
    531
    Адрес:
    Пенза
    В NTv2 используется билинейная.
     
    #6
  7. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    6.011
    Симпатии:
    2.127
    Адрес:
    г. Москва
    Ну здесь тоже какбэ не одномерная, на секундочку.

    Добавил рабочий вариант таблицы.
     

    Вложения:

    #7
  8. andrew_klikunov

    Форумчанин

    Регистрация:
    30 сен 2015
    Сообщения:
    1.333
    Симпатии:
    531
    Адрес:
    Пенза
    Тут ещё такой момент...Всё таки, NTv2 - это грид, прямоугольная сетка, не треугольники там. И там преобазование идет между датумами, проекций там нет. Про TIN в пересчетах статью прикладываю.
     

    Вложения:

    #8
  9. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    6.011
    Симпатии:
    2.127
    Адрес:
    г. Москва
    Я даже более того скажу, NTv2 - это скорее растр, чем какая то сетка. Но в данной теме разговор ведётся за что то более нашенское, отечественное: https://geodesist.ru/threads/kalibrovka-ili-uravnivanie.89266/#post-1033804
     
    #9
  10. andrew_klikunov

    Форумчанин

    Регистрация:
    30 сен 2015
    Сообщения:
    1.333
    Симпатии:
    531
    Адрес:
    Пенза
    Да, он так и строится, в начале растры разностей B и L, потом уже в специфический формат и всё.

    Так уже изобрели таблицу поправок от СК-32 к СК-42 по листам 1:1 000 000. Задолго до той инструкции...
     
    #10
  11. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    6.011
    Симпатии:
    2.127
    Адрес:
    г. Москва
    Ну мало ли, что изобрели. Метод то остался. Раньше вообще всё "любили" по таблицам делать.
    "Был у меня тоже один изобретатель..."
     
    #11
  12. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    6.011
    Симпатии:
    2.127
    Адрес:
    г. Москва
    Для сравнения сделал таблицу с радиальной интерполяцией. Нелинейность значительная. Но конкретнее можно говорить "за/против" только после продолжительного тестирования.
     

    Вложения:

    #12
  13. ВЯЗ

    Форумчанин

    Регистрация:
    17 май 2012
    Сообщения:
    842
    Симпатии:
    701
    Адрес:
    Любимый Иркутск - середина земли.
    Ну что. Симпатично. И даже цветисто. Но поразмыслив чуток, прихожу к мнению, что ваше предложение все же не является средством решения задачи выбора набора исходных пунктов, не отягощающих построение ошибками исходных данных. Скорее -это решение задачи сглаживания морщин дисторсий геодезического построения, имеющего ошибки исходных данных. Причем эти ошибки уже должны быть втиснуты в определенные рамки. Иначе сглаживать придется весьма серьезные деформации, лишающие решение вского смысла. Установление рамок применимости вашего решения, видимо, ждет завершения вашего исследования.
    Вот кстати, для анализа и визуализации деформаций ваше решение будет весьма уместно.
    Успехов!
     
    #13
    Ohr, мирось и В.Шуфотинский нравится это.
  14. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    6.011
    Симпатии:
    2.127
    Адрес:
    г. Москва
    Это не исследование, а аналитический аналог графическому методу из https://geodesist.ru/threads/kalibrovka-ili-uravnivanie.89266/#post-1033804 . В нём не указано, что есть какие то ограничение на разность координат, указано только, что "это" должно быть сделано.
     
    #14
    мирось и ardi.stroi нравится это.
  15. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    6.011
    Симпатии:
    2.127
    Адрес:
    г. Москва
    Добавил простейшую перестановку вершин для максимального сокращения количества невалидных точек.
     

    Вложения:

    #15
  16. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    6.011
    Симпатии:
    2.127
    Адрес:
    г. Москва

    Вложения:

    #16
    мирось нравится это.
  17. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    6.011
    Симпатии:
    2.127
    Адрес:
    г. Москва
    Коли речь зашла за "исследования"...

    Линейная и радиальная интерполяция являются простыми распределениями величин без учёта самих величин. А ежели поставить "задачу" шире? Ежели потребовать, чтобы распределение величин зависело от самих величин?

    Вот вам и "исследование". В качестве альтернативы линейной и радиальной интерполяции добавил нелинейную "интерполяцию" (распределение) с помощью трёх "единичных сфер".
     

    Вложения:

    #17

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

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