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

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

Войти

  1. С 13.10.2020 снова работает авторизация/регистрация через социальные сети: VK (Вконтакте) и Facebook.
    Скрыть объявление

Сфероидическая геодезия

Тема в разделе "Помощь студентам", создана пользователем Malevaje, 17 май 2020.

  1. Malevaje

    Форумчанин

    Регистрация:
    19 июл 2015
    Сообщения:
    45
    Симпатии:
    1
    Вообщем допилил скрипт.
    Содержит в себе 6 функций:
    2 функции перевод из градусов в секунды и обратно;
    2 функции перевод секунд в радианы и обратно;
    1 функции считает по формулам ((5.16) пособия см. топик.) калибровал по таблице (5.1)
    1 функция считает по формулам ((5.20) пособия см. топик.) калибровал по таблице (5.2)

    По сравнению с таблицами 5.1, 5.2 значения коэффициентов совпадают до 8-9 разряда (кроме этого: ( l + (a3 + а5 * l^2) * l^2 * l * cosB) таблицы 5.1 у меня вообще другое получилось).

    Значения вычисляемых величин совпали в целой части:
    Мои | В таблицах
    x = 5728374.55 | x = 5728374,726
    y = 210198.2 | y = 210198.193
    |
    B = [51, 38, 43.9081] | 51° 38' 43,9024"
    l = [3, 2, 13.1366] | 3° 02' 13,1362'
    L = [24, 2, 13.1366] | 24° 02' 13,1362"

    Запустить проще всего под оболочкой Spyder (Anaconda), под PyCharm может понадобиться подгрузить модуль numpy.
     

    Вложения:

    #21
  2. StudentX

    Форумчанин

    Регистрация:
    1 июн 2019
    Сообщения:
    1.431
    Симпатии:
    547
    Адрес:
    Пермь
    Я прошу прощения, перепутал разряд. Это не 0.17 мм, а 0.17 м будет здесь. Это видно по расхождениям в координате Х, кстати. И вот 0.17 м - это не есть гут. Конечно, пункты ГГС по факту бывало определялись и с дециметровой точностью, но когда такие погрешности вносят вычисления - это, в общем, не допустимо.
    --- Сообщения объединены, 1 июн 2020, Оригинальное время сообщения: 1 июн 2020 ---
    При вычислениях хотя бы в разряде сантиметров всё должно сходиться. А один сантиметр в угловой мере соответствует 4 разряду после запятой в геодезических координатах, как и указано в таблицах.
    В общем... Могу задать вам новый критерий правильности расчётов - геодезические координаты должны совпадать с учебником.
     
    #22
  3. Malevaje

    Форумчанин

    Регистрация:
    19 июл 2015
    Сообщения:
    45
    Симпатии:
    1
    Проверить, точность вычислений по этому скрипту можно только по большому объёму данных, одной таблички мало, к тому же в пособии есть ошибки.
     
    #23
  4. StudentX

    Форумчанин

    Регистрация:
    1 июн 2019
    Сообщения:
    1.431
    Симпатии:
    547
    Адрес:
    Пермь
    Ошибки возможны, особенно если учесть то, какой объём данных там изложен. Но обычно во избежание таких ошибок вычисления выполнялись в две руки (если они выполнены вручную). Если у обоих вычислителей результаты сходились, их принимали. Другое дело - возможные опечатки, которые могли быть не обнаружены при создании учебника. Но здесь расхождения в широте полностью соответствуют расхождениям в координате Х, так что здесь речь не об опечатке. В общем, ошибка в учебнике лично мне кажется менее вероятной, чем ошибка в скрипте.
     
    #24
  5. Malevaje

    Форумчанин

    Регистрация:
    19 июл 2015
    Сообщения:
    45
    Симпатии:
    1
    Что ж, займусь этим пожалуй когда тему из раздела "помощь студентам" перенесут в раздел "геодезия как наука" :Cool:
     
    #25
  6. stout

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

    Регистрация:
    5 янв 2008
    Сообщения:
    3.879
    Симпатии:
    10.828
    Адрес:
    Златоглавая и Белокаменная
    Пока пишу комменты, чтобы вы не теряли время, начну с главного
    PyGeodesy вам в помощь. Конкретно – Module etm.
    Учебник Евгения Григорьевича неплохой. У него только одна проблема – он устарел уже в момент своего выхода лет на 30.
    Проверьте sek_r_grad(s) для s = -203986.99999::biggrin24.gif:: Не то чтобы совсем неправильно, но как-то неаккуратненько.
    IMHO, разряд округления надо добавить в параметры.
     
    #26
  7. Malevaje

    Форумчанин

    Регистрация:
    19 июл 2015
    Сообщения:
    45
    Симпатии:
    1
    Обязательно посмотрю, но позже, а то в сентябре сессия, в октябре госы. Нужно еще с небес на землю вернуться, в смысле по прикладной много работы есть.
    В.П. Морозов тот так вообще 1979 г., тож на то и выходит. Но это я как понял проблема не авторов пособий, а ВУЗа кодить мне например было предложено на Delphi ::rofl::
    Хм, ::huh.gif::
    sek_r_grad(-203986.99999)
    Out[2]: [-57, 20, 13.0]
    sek_r_grad(203986.99999)
    Out[3]: [56, 39, 47.0]
    Здесь уже да моя проблема, я весьма поверхностно коснулся организации точных вычислений на ЭВМ, по этому даже не представляю от чего такая лажа :(. Буду работать в этом направлении.
    Тут уже проблема в том, что скрипт на скорую руку, на "коленке писал", от того округлял первым, что под руку попалось, то есть '{:.n}'.format. Как в кавычки переменную засунуть я х.з., а городить огород из if, elif желания что то нет. А вообще полностью с вами согласен, и даже думал об этом когда писал.
     
    #27
  8. stout

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

    Регистрация:
    5 янв 2008
    Сообщения:
    3.879
    Симпатии:
    10.828
    Адрес:
    Златоглавая и Белокаменная
    180×60×60/π = 206 264.80624709635515647335733078
    Ещё cо времён раннего фортрана, если не определена величина π, то её вычисляют как π = 4×atan(1).
    Все современные процессоры, интерпретаторы и и.д. поддерживают стандарт IEEE 754 вычислений с плавающей точкой. А в нем предусмотрено 5 видов округлений. По умолчанию стоит, так называемое банковское округление, которое мы называем округлением по Гауссу.
    Геодезическую астрономию Василий Иванович Суслин проверяет, а ТФП – Юзефович?
    Это вы зря, перемудрили. Вместо
    z = float('{:.8f}'.format(y / (Nx * np.cos(Bx))))
    надо просто z = y / (Nx * np.cos(Bx)) и т.д.
    Нормальное предложение, приятный во всех отношениях язык, есть немного приличных библиотек по численным методам. Конечно, с Python не сравнить в этом плане.
    У меня есть простенькие формулы такого вида
    param_lat.gif
    где всего один член ряда (N=1) даёт такую точность (число верных десятичных знаков после запятой, расстояние в метрах)
    param_lat_N=1.png
    Т.е. чем больше широта, тем выше точность.
    Это к тому, что формулы разные бывают.

    Найдите Хемминг Р.В. - Численные методы для научных работников и инженеров - 1972
    В основу всей книги положены два тезиса, неоднократно повторяемых. Это «цель расчетов — понимание, а не числа» и «прежде чем решать задачу, подумай, что делать с ее решением».
    В 1954 году на русском языке вышел перевод с немецкого книги 1951 года Математические основы высшей геодезии и картографии Рюдигер Кениг, К. Вейзе. Другой книги такого уровня нет и поныне.
     
    #28
    ErnieBoyd, igor kruchkovskiy и StudentX нравится это.
  9. Malevaje

    Форумчанин

    Регистрация:
    19 июл 2015
    Сообщения:
    45
    Симпатии:
    1
    Снова попытался разобраться sek_r_grad(s), изменил получения остатка от деления с оператора "%" на функцию math.fmod() - значения отрицательных величин с положительными, ровно на градус одну минуту стали отличаться... Вообщем надо копать..
    Да. Буду с этим позже разбираться сейчас реально времени нет.
    Вот тут не могу сказать, я да дистанционном учусь, нам преподавателей перед сессией назначают. Василий Иванович Суслин к сожалению не знаю кто такой, у Юзефовича пару книжек прочитал, было бы интересно послушать.
    Учту, когда буду path_2 пилить :). Везде говорят, что, чем больше операций с плавающей точкой и чем выше разряд, тем больше накапливается ошибка вычислений, это была попытка типа точность повысить.
    Я не в смысле что язык плохой, слышал у нас на нём всё "высокоточное" летает. Я про порог вхождения. Нет если представить, что все студенты в школе с олимпиад по информатике не вылазили, то да можно хоть чистый "СИ" на первом курсе давать. Но в реальности это лучший способ привить стойкое отвращение к программированию у большей части студентов. Так, гораздо лучше дать сначала "простенький" скриптовый язык без компиляторов и прочего хардкора, потом показать сколько времени занимает обработка цикла у Python и сколько тот же цикл обрабатывает "СИ++"...
    Ну и да Delphi морально устарел.
    Ужас :Scare3:
    Нашёл. Изучим.
    [/QUOTE]
    А вот тут фейл. Есть только в библиотеке.
    Как она точно на английском называется? Может на английском её проще найти будет
     
    #29
  10. stout

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

    Регистрация:
    5 янв 2008
    Сообщения:
    3.879
    Симпатии:
    10.828
    Адрес:
    Златоглавая и Белокаменная
    Александр Павлович, чьи книги вы читали, умер в прошлом году. Сейчас этот курс ведёт его сын – Павел Александрович.

    Насколько знаю, на английском не издавалась. На родном немецком есть на генезисе.
    Mathematische Grundlagen der Höheren Geodäsie und Kartographie
     
    #30
    ErnieBoyd нравится это.

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

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