Помогите найти алгоритм перевода из СК42 в СК-63

Тема в разделе "Исходные данные", создана пользователем antohahaha92, .

ГЕОДЕЗИСТ.RU
  1. #1
    К работе приступил недавно, опыт работы тоже весьма ничтожен, но от работодателя получил задание на поиск программы (способа) перевода координат из СК-42 в СК-63 и наоборот. Работодатель в свою очередь предоставил мне уже известные координаты 8-ми точек в обеих системах. Где бы я не искал и какие способы трансформации не пробовал, у меня получались отклонения от "эталонных" координат в СК-63, которые встречаются в каждой координате: по X - -0.69, по Y - 0.17. это данные только из одного конвертера. Остальные способы также дают подобные погрешности, которые стабильные для каждой точки.
    Почему возникают такие отклонения от "эталона" и как это можно исправить. Возможно, кто-то поможет подсказав алгоритм нахождения параметров перехода по уже известным точкам.
     
  2. stout

    stout Форумчанин

    #2
    http://geodesist.ru/forum/resources...lja-perescheta-koordinat-i-poiska-kljuchej.3/
    --- Сообщения объединены, , Оригинальное время сообщения: ---
    http://geodesist.ru/forum/resources...pereschjota-koordinat-po-obschim-tochkam.147/
     
    Geo_major нравится это.
  3. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    #3
    Учтите, что какой бы алгоритм Вы не получили, он будет подходить только для небольшого участка. Именно это было заложено в СК63 для введения в заблуждение тогдашнего наиболее вероятного противника и сегодняшнего геодезиста, т.к. тогдашние геодезисты, при наличии допуска, всегда имели на необходимый участок ключи перевода СК42 <> СК63.
     
  4. stout

    stout Форумчанин

    #4
    Уважаемый Владимир! Что есть небольшой участок в вашем понимании?
     
  5. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    #5
    По крайней мере не в соседнем районе.
     
  6. stout

    stout Форумчанин

    #6
    А что такого в соседнем районе, что для него нельзя?
     
  7. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    #7
    Приведите здесь любой ключ, на нём и обсудим.
     
  8. stout

    stout Форумчанин

    #8
    :Sorry:Это мне?
     
  9. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    #9
    Ну, да. Как без ключа обсуждать его возможности использования?!
     
  10. stout

    stout Форумчанин

    #10
    Сгенерировал с регулярным шагом сетку на восточном краю 6° зоны в проекции Гаусса-Крюгера (для определённости пусть это будет 7 зона), перевел координаты в соседнюю восточную зону. Эти координаты принял за опорные.
    Map002.png
    В названии точки закодированы её координаты относительно центра (N+000E+000) Так, N-100E-100 означает на смещение на 100 км на юг и 100 км на запад.
    Принял 9 координат за опорные (базовые). Ниже на рисунке отмечены галочками.
    Degree=4.png
    Посчитал коэффициенты преобразования, получил
    Код:
    FORMULA: ==================================================
     
    I^2 = -1;
    Zout = (Xout+I*Yout);
    Z = [(X+I*Y)-(XSo+I*YSo)]*scale;
    G[k] = (C[2*k+1]+I*C[2*k+2]);
    Zout = sum(G[k]*Z^k,k=0..Degree)/scale + (XTo+I*YTo)
     
    CODE: =====================================================
     
    U := (X - XSo)*scale;
    V := (Y - YSo)*scale;
    P[0] := 1;
    Q[0] := 0;
    P[1] := U;
    Q[1] := V;
    for j := 2 to Degree do
    begin
      P[j] := U*P[j - 1] - V*Q[j - 1];
      Q[j] := U*Q[j - 1] + V*P[j - 1];
    end;
    Xout := 0;
    Yout := 0;
    for k := Degree downto 0 do
    begin
      Xout := Xout + (C[2*k + 1]*P[k] - C[2*k + 2]*Q[k]);
      Yout := Yout + (C[2*k + 1]*Q[k] + C[2*k + 2]*P[k]);
    end;
    Xout := Xout/scale + XTo;
    Yout := Yout/scale + YTo;
    ===========================================================
     
     
    XSo =	 6 211 715.262871000  YSo =	   281 490.122246000
    XTo =	 6 209 000.000000000  YTo =	   656 000.000000000
    scale =	3.07714280984456E-005
    CurrentOrder =  4
    C[ 1] =   -4.99552992964485E-012
    C[ 2] =   -5.42786965001477E-012
    C[ 3] =	9.95947643859761E-001
    C[ 4] =   -8.66868963285015E-002
    C[ 5] =   -1.82642855298373E-005
    C[ 6] =   -1.47840019397034E-004
    C[ 7] =	4.44002111523613E-008
    C[ 8] =	3.74803366678066E-007
    C[ 9] =	2.06269777890296E-010
    C[10] =	2.73784072619332E-010
    
    Отсортировал по последнему столбцу (расстояние в метрах вычисленных координат от контрольных(опорных)).
    Нетрудно заметить, что для точки, находящейся на расстоянии в 3.33 раза дальше от центра (141.42 км), чем самая удалённая базовая(опорная) точка, ошибка составляет 0.08 мм.
    Кстати, вот вам и опровержение, что для локализации/калибровки опорные точки должны располагаться снаружи (или на границе) района работ.
    Но такая высокая точность возможна только потому, что мы можем точно пересчитать (не отнаблюдать!).
    Если уменьшить точность исходных координат до 1 мм, то результат получаем намного хуже.
    Но если в качестве базовых точек включить крайние, то результат получается вполне сносным, а диаметр района составляет ≅283 км.
    Это много или мало?
    Полученные ключи (коэффициенты) C[1]÷C[10] связаны строгой математической зависимостью с параметрами проекции, котоhую можно определить, зная параметры исходной.
    ParamGK(degree=4).png
    По большому счёту, получили значения, описывающие 7 зону проекции Гаусса-Крюгера.

    С этими параметрами проекции невязки на контрольных точках меньше,
    чем с использованием коэффициентов гармонического полинома C[1]÷C[10].
     

    Вложения:

    Geo_major нравится это.
  11. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    #11
    Насколько я помню, когда даже калькуляторы были за счастье, ключ был в виде формул для X и Y с синусами и косинусами. По-видимому, уважаемому antohahaha92 нужен именно такой, простой ключ, а не программа, которых, "как собак нерезаных".
     
  12. Geo_major

    Geo_major Форумчанин

    #12
    ИМХО. Судя по первому сообщении antohahaha92, ему нужна именно программа.
     
    Oigi нравится это.
  13. stout

    stout Форумчанин

    #13
    Синусы и косинусы – это вопрос интерпретации. Тот же результат и ту же точность можно получить, если обозначить

    И никаких синусов, косинусов не будет.
    Правда, в этом случае действительно район будет очень маленьким.
    Где-то был пример здесь на форуме, что для 20×20 км невязка может быть метровая.
    --- Сообщения объединены, , Оригинальное время сообщения: ---
    О, формулы в формате латеха глючат.::sad24.gif::
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление