Для пересчёта координат в Excel на VBA засунул Гост_32453-2013 и 2017

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

  1. Valang

    Valang Форумчанин

    Не совсем по теме, но очень близко.
    В общем такое дело: в Excel на VBA засунул Гост_32453-2013 и 2017.
    Результаты сравниваю с PHOTOMOD GeoCalculator GOST 32453-2017. Получается какая-то ерунда:
    если пересчитывать только между системами ПЗ (90, 90.02 и 90.11), то разница с PHOTOMOD по нулям. Все остальные варианты пусть и не много, но различаются: до 0,09" по B, и по L до 0.00005". Формула одна для всех общая, значит в моих формулах ошибок нет. Параметры, думаю,тоже одинаковые: не могли же они ввести левые. Остаются только вспомогательные величины:
    a = (a_P + a_Pz) / 2 'Среднее Большая полуось Пулково 42-ПЗ90
    e2 = (e2_P + e2_Pz) / 2 'Средний квадрат эксцентриситета Пулково 42-ПЗ90
    da = a_Pz - a_P 'Разница больших полуосей Пулково 42-ПЗ90
    de2 = e2_P z^ 2 - e2_P ^ 2 'Разница квадратов эксцентриситета Пулково 42-ПЗ90

    Аналогично для других систем, а вот если пересчитывать из ПЗ в любую другую ПЗ, то эти величины будут такими:
    a = (a_Pz + a_Pz) / 2 'Среднее Большая полуось Пулково 42-ПЗ90 - значение останется без изменений
    e2 = (e2_Pz + e2_Pz) / 2 'Средний квадрат эксцентриситета Пулково 42-ПЗ90 - значение останется без изменений
    da = a_Pz - a_Pz 'Разница больших полуосей Пулково 42-ПЗ90 - da=0
    de2 = e2_Pz ^ 2 - e2_Pz ^ 2 'Разница квадратов эксцентриситета Пулково 42-ПЗ90 - de2=0
    т.к. у них отсчетная поверхность одна и та же.

    e2 вычислял двумя разными способами, результат один и тот же, оставил который проще.

    Вот у меня и вопрос: кто-нибудь исследовал этот калькулятор?
    В самих формулах ГОСТа косяк в формуле вычисления M - там указана степень -3/2. Во всех других источниках степень равна 3/2.
     
  2. trir

    trir Форумчанин

    zvezdochiot нравится это.
  3. Valang

    Valang Форумчанин

    Информативный ответ::huh.gif::
     
  4. trir

    trir Форумчанин

    какой тип данных используешь в расчётах?
     
  5. zvezdochiot

    zvezdochiot Форумчанин

    Всё чётко ответил @trir . Где здесь возникла нужда в VBA? Использование VBA в данном случае - чистейшая ошибка.
     
  6. Valang

    Valang Форумчанин

    Double
    --- Сообщения объединены, 8 фев 2021, Оригинальное время сообщения: 8 фев 2021 ---
    По поводу Single в курсе - с этим типом данных результат не предсказуем
     
  7. zvezdochiot

    zvezdochiot Форумчанин

    UB? Ты матрицу чтоле обращаешь? Откуда UB?
     
  8. Valang

    Valang Форумчанин

    Даже не понял о чем ты.
     
  9. zvezdochiot

    zvezdochiot Форумчанин

    UB - неопределённое поведение. Откуда оно? Что его порождает?
     
  10. Valang

    Valang Форумчанин

    Это я и сам хочу узнать. Щас почти все варианты сделал кроме из WGS. Формула одна на всех. Из систему в систему и обратно переменные отличаются только знаками, а первоначальный результат немного, но отличается. В VB такие косяки бывают, а тут и в VBA то же самое.
     
  11. zvezdochiot

    zvezdochiot Форумчанин

    Основной источник UB - переполнение целочисленных величин. Но в нашем деле наиболее распространён UB при обращении плохообусловленной матрицы.
     
  12. trir

    trir Форумчанин

    а ты проверь - всегда ли у тебя Double
     
  13. Уважаемый Valang!
    сделал то же что и Вы на VBA
    сравнил с PHOTOMOD, все считается одинаково до 5-го знака в секундах.
    Думаю нужно смотреть ваши исходники. VBA_vs_PHOTOMOD.png PHOTOMOD_BLH.png VBA_vs_PHOTOMOD.png PHOTOMOD_BLH.png PHOTOMOD_NE.png
    VBA_vs_PHOTOMOD.png
     
  14. stout

    stout Форумчанин

    Оффтоп

    Статья в общем неплохая, но даже в комментах указаны не все неточности статьи. Например, фраза "Поэтому уже в самых первых машинах начали использовать трюк, делая первый бит мантиссы всегда положительным. Такое предаставление назвали нормализованным" не соответствует действительности. На IBM 360/370 (следовательно, и на ЕС ЭВМ) нормализация числа была по основанию 16, т.е. в мантисе 3 ведущих бита могли быть нулевыми. Более того, число с расширенной точностью (80-битное х87) не имеет скрытого бита. Ну, и как всегда, страшилка про невозможность использовать арифметику с плавающей точкой для бухгалтеров. Покажите мне человека, которому не хватает диапазона в ±36 893 488 147 419 103 231 копеек.


    На сорцы то можно взглянуть? Иначе не понятно, что обсуждаем.
     
  15. Valang

    Valang Форумчанин

    В ресурсах давно выложена. В архиве все модули по отдельности и готовый файл "Геодезия_Excel_2003_2.xls", где все модули уже подгружены. Сам код в принципе не большой, просто в нем много коментов: делал ведь для начинающих программистов, вот чтобы понятней им было.
    --- Сообщения объединены, 7 мар 2021, Оригинальное время сообщения: 7 мар 2021 ---
    Да косяки в формулах ГОСТ-а убрал и все нормально стало
     
  16. stout

    stout Форумчанин

    Ну так дали бы ссылку на ресурсы, иначе действительно не понятно.
    Так в ресурсах уже исправленная версия или ещё с опечатками?
     
  17. Valang

    Valang Форумчанин

    Исправленная.
    https://geodesist.ru/resources/excel-dlja-geodezii-v2-0.304/
    ЗЫ:
    Только хелп сначала гляньте, а то будете как Звездочет наезжать: для него если в ячейках нет формул, значит все плохо. Чел ваще не знает, что такое VBA.
    Паролей никаких нет, код полностью открыт.
     
    Последнее редактирование: 8 мар 2021
    мирось и Qvinto нравится это.
  18. stout

    stout Форумчанин

    Оффтоп
    Не буду. Я вообще ругаться не люблю. А вот VBA люблю.::laugh24.gif::
     
  19. Valang

    Valang Форумчанин

    Оффтоп

    По поводу VBA умные люди пишут:
     
  20. Valang

    Valang Форумчанин

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