Вообщем допилил скрипт. Содержит в себе 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.
Я прошу прощения, перепутал разряд. Это не 0.17 мм, а 0.17 м будет здесь. Это видно по расхождениям в координате Х, кстати. И вот 0.17 м - это не есть гут. Конечно, пункты ГГС по факту бывало определялись и с дециметровой точностью, но когда такие погрешности вносят вычисления - это, в общем, не допустимо. --- Сообщения объединены, 1 июн 2020, Оригинальное время сообщения: 1 июн 2020 --- При вычислениях хотя бы в разряде сантиметров всё должно сходиться. А один сантиметр в угловой мере соответствует 4 разряду после запятой в геодезических координатах, как и указано в таблицах. В общем... Могу задать вам новый критерий правильности расчётов - геодезические координаты должны совпадать с учебником.
Проверить, точность вычислений по этому скрипту можно только по большому объёму данных, одной таблички мало, к тому же в пособии есть ошибки.
Ошибки возможны, особенно если учесть то, какой объём данных там изложен. Но обычно во избежание таких ошибок вычисления выполнялись в две руки (если они выполнены вручную). Если у обоих вычислителей результаты сходились, их принимали. Другое дело - возможные опечатки, которые могли быть не обнаружены при создании учебника. Но здесь расхождения в широте полностью соответствуют расхождениям в координате Х, так что здесь речь не об опечатке. В общем, ошибка в учебнике лично мне кажется менее вероятной, чем ошибка в скрипте.
Что ж, займусь этим пожалуй когда тему из раздела "помощь студентам" перенесут в раздел "геодезия как наука"
Пока пишу комменты, чтобы вы не теряли время, начну с главного PyGeodesy вам в помощь. Конкретно – Module etm. Учебник Евгения Григорьевича неплохой. У него только одна проблема – он устарел уже в момент своего выхода лет на 30. Проверьте sek_r_grad(s) для s = -203986.99999 Не то чтобы совсем неправильно, но как-то неаккуратненько. IMHO, разряд округления надо добавить в параметры.
Обязательно посмотрю, но позже, а то в сентябре сессия, в октябре госы. Нужно еще с небес на землю вернуться, в смысле по прикладной много работы есть. В.П. Морозов тот так вообще 1979 г., тож на то и выходит. Но это я как понял проблема не авторов пособий, а ВУЗа кодить мне например было предложено на Delphi Хм, 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 желания что то нет. А вообще полностью с вами согласен, и даже думал об этом когда писал.
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 не сравнить в этом плане. У меня есть простенькие формулы такого вида где всего один член ряда (N=1) даёт такую точность (число верных десятичных знаков после запятой, расстояние в метрах) Т.е. чем больше широта, тем выше точность. Это к тому, что формулы разные бывают. Найдите Хемминг Р.В. - Численные методы для научных работников и инженеров - 1972 В основу всей книги положены два тезиса, неоднократно повторяемых. Это «цель расчетов — понимание, а не числа» и «прежде чем решать задачу, подумай, что делать с ее решением». В 1954 году на русском языке вышел перевод с немецкого книги 1951 года Математические основы высшей геодезии и картографии Рюдигер Кениг, К. Вейзе. Другой книги такого уровня нет и поныне.
Снова попытался разобраться sek_r_grad(s), изменил получения остатка от деления с оператора "%" на функцию math.fmod() - значения отрицательных величин с положительными, ровно на градус одну минуту стали отличаться... Вообщем надо копать.. Да. Буду с этим позже разбираться сейчас реально времени нет. Вот тут не могу сказать, я да дистанционном учусь, нам преподавателей перед сессией назначают. Василий Иванович Суслин к сожалению не знаю кто такой, у Юзефовича пару книжек прочитал, было бы интересно послушать. Учту, когда буду path_2 пилить :). Везде говорят, что, чем больше операций с плавающей точкой и чем выше разряд, тем больше накапливается ошибка вычислений, это была попытка типа точность повысить. Я не в смысле что язык плохой, слышал у нас на нём всё "высокоточное" летает. Я про порог вхождения. Нет если представить, что все студенты в школе с олимпиад по информатике не вылазили, то да можно хоть чистый "СИ" на первом курсе давать. Но в реальности это лучший способ привить стойкое отвращение к программированию у большей части студентов. Так, гораздо лучше дать сначала "простенький" скриптовый язык без компиляторов и прочего хардкора, потом показать сколько времени занимает обработка цикла у Python и сколько тот же цикл обрабатывает "СИ++"... Ну и да Delphi морально устарел. Ужас Нашёл. Изучим. [/QUOTE] А вот тут фейл. Есть только в библиотеке. Как она точно на английском называется? Может на английском её проще найти будет
Александр Павлович, чьи книги вы читали, умер в прошлом году. Сейчас этот курс ведёт его сын – Павел Александрович. Насколько знаю, на английском не издавалась. На родном немецком есть на генезисе. Mathematische ndlagen der Höheren Geodäsie und Kartographie