Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Калькулятор перевода географических координат в прямоугольны
СообщениеДобавлено: 18 окт 2022, 11:34 
Не в сети
Начинающий
Зарегистрирован:
18 окт 2022, 10:39
Сообщений: 6
Cпасибо сказано: 1
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Приветствую участников форума.
Я заинтересовался вопросом составления калькулятора перевода географических координат в координаты Гаусса Крюгера.

Нашёл программный код для я.п. python. (Будет представлен ниже)
Его взял за основу, не знаю, что из этого выйдет, но решил попробовать.

Возникла трудность в подсчете выражения где необходимо возвести в отрицательную степень.
Под корнем получается отрицательное число и соответсвенно не вижу этому решения в обычном виде без комплексных чисел.

v = a*F*(1-e2*(sin(Lat)**2))**-0.5
p = a*F*(1-e2)*(1-e2*(sin(Lat)**2))**-1.5

Математикой давно не занимался, не могу вспомнить как правильно решить эти выражения правильно.

Буду очень благодарен, если кто то даст какие то разъяснения.




    # Перевод географических координат (широты и долготы) точки в прямоугольные
    # координаты проекции Гаусса-Крюгера (на примере координат Москвы).

    # Географические координаты точки (в градусах)
    dLon = 37.618 # Долгота (положительная для восточного полушария)
    dLat = 55.752 # Широта (положительная для северного полушария)

    # Номер зоны Гаусса-Крюгера (если точка рассматривается в системе
    # координат соседней зоны, то номер зоны следует присвоить вручную)
    zone = int(dLon/6.0+1)

    # Импорт математических функций
    from math import sin, cos, tan, pi

    # Параметры эллипсоида Красовского
    a = 6378245.0 # Большая (экваториальная) полуось
    b = 6356863.019 # Малая (полярная) полуось
    e2 = (a**2-b**2)/a**2 # Эксцентриситет
    n = (a-b)/(a+b) # Приплюснутость

    # Параметры зоны Гаусса-Крюгера
    F = 1.0 # Масштабный коэффициент
    Lat0 = 0.0 # Начальная параллель (в радианах)
    Lon0 = (zone*6-3)*pi/180 # Центральный меридиан (в радианах)
    N0 = 0.0 # Условное северное смещение для начальной параллели
    E0 = zone*1e6+500000.0 # Условное восточное смещение для центрального меридиана

    # Перевод широты и долготы в радианы
    Lat = dLat*pi/180.0
    Lon = dLon*pi/180.0

    # Вычисление переменных для преобразования
    v = a*F*(1-e2*(sin(Lat)**2))**-0.5
    p = a*F*(1-e2)*(1-e2*(sin(Lat)**2))**-1.5
    n2 = v/p-1
    M1 = (1+n+5.0/4.0*n**2+5.0/4.0*n**3)*(Lat-Lat0)
    M2 = (3*n+3*n**2+21.0/8.0*n**3)*sin(Lat-Lat0)*cos(Lat+Lat0)
    M3 = (15.0/8.0*n**2+15.0/8.0*n**3)*sin(2*(Lat-Lat0))*cos(2*(Lat+Lat0))
    M4 = 35.0/24.0*n**3*sin(3*(Lat-Lat0))*cos(3*(Lat+Lat0))
    M = b*F*(M1-M2+M3-M4)
    I = M+N0
    II = v/2*sin(Lat)*cos(Lat)
    III = v/24*sin(Lat)*(cos(Lat))**3*(5-(tan(Lat)**2)+9*n2)
    IIIA = v/720*sin(Lat)*(cos(Lat)**5)*(61-58*(tan(Lat)**2)+(tan(Lat)**4))
    IV = v*cos(Lat)
    V = v/6*(cos(Lat)**3)*(v/p-(tan(Lat)**2))
    VI = v/120*(cos(Lat)**5)*(5-18*(tan(Lat)**2)+(tan(Lat)**4)+14*n2-58*(tan(Lat)**2)*n2)

    # Вычисление северного и восточного смещения (в метрах)
    N = I+II*(Lon-Lon0)**2+III*(Lon-Lon0)**4+IIIA*(Lon-Lon0)**6
    E = E0+IV*(Lon-Lon0)+V*(Lon-Lon0)**3+VI*(Lon-Lon0)**5

    print ('Широта: ', dLat)
    print ('Долгота: ', dLon)
    print ('Северное смещение: ', N)
    print ('Восточное смещение:', E)

    Вернуться к началу
     Профиль  
    Cпасибо сказано 
     Заголовок сообщения: Re: Калькулятор перевода географических координат в прямоугольны
    СообщениеДобавлено: 18 окт 2022, 13:06 
    Не в сети
    Light & Truth
    Зарегистрирован:
    10 дек 2013, 02:33
    Сообщений: 3268
    Cпасибо сказано: 263
    Спасибо получено:
    417 раз в 407 сообщениях
    Очков репутации: 51

    Добавить очки репутацииУменьшить очки репутации
    Код я не разбирал.

    А каким образом Вы переводдите сферические координаты в прямоугольные?

    Вернуться к началу
     Профиль  
    Cпасибо сказано 
     Заголовок сообщения: Re: Калькулятор перевода географических координат в прямоугольны
    СообщениеДобавлено: 18 окт 2022, 14:58 
    Не в сети
    Последняя инстанция
    Зарегистрирован:
    08 апр 2015, 12:21
    Сообщений: 7567
    Cпасибо сказано: 229
    Спасибо получено:
    2749 раз в 2537 сообщениях
    Очков репутации: 473

    Добавить очки репутацииУменьшить очки репутации
    Uvle4ennii писал(а):
    Под корнем получается отрицательное число и соответсвенно не вижу этому решения в обычном виде без комплексных чисел.
    v = a*F*(1-e2*(sin(Lat)**2))**-0.5
    p = a*F*(1-e2)*(1-e2*(sin(Lat)**2))**-1.5

    Этого быть не может, потому что по Вашим данным 0<e2<1.

    Вернуться к началу
     Профиль  
    Cпасибо сказано 
     Заголовок сообщения: Re: Калькулятор перевода географических координат в прямоугольны
    СообщениеДобавлено: 18 окт 2022, 23:10 
    Не в сети
    Начинающий
    Зарегистрирован:
    18 окт 2022, 10:39
    Сообщений: 6
    Cпасибо сказано: 1
    Спасибо получено:
    0 раз в 0 сообщении
    Очков репутации: 1

    Добавить очки репутацииУменьшить очки репутации
    [/math]
    michel писал(а):
    Uvle4ennii писал(а):
    Под корнем получается отрицательное число и соответсвенно не вижу этому решения в обычном виде без комплексных чисел.
    v = a*F*(1-e2*(sin(Lat)**2))**-0.5
    p = a*F*(1-e2)*(1-e2*(sin(Lat)**2))**-1.5

    Этого быть не может, потому что по Вашим данным 0<e2<1.



    Извиняюсь, что ввёл в заблуждение, так как взял неверные переменные. Вместо e2 взял экспоненту в квадрате.
    Сейчас принялся исправлять ошибки

    Вернуться к началу
     Профиль  
    Cпасибо сказано 
     Заголовок сообщения: Re: Калькулятор перевода географических координат в прямоугольны
    СообщениеДобавлено: 18 окт 2022, 23:31 
    Не в сети
    Начинающий
    Зарегистрирован:
    18 окт 2022, 10:39
    Сообщений: 6
    Cпасибо сказано: 1
    Спасибо получено:
    0 раз в 0 сообщении
    Очков репутации: 1

    Добавить очки репутацииУменьшить очки репутации
    С учетом исправленных ошибок, конечные значения оказались не верны.

    Ошибка в N порядка 2000, ошибка в E порядком 4000.
    В чем проблема не понимаю.

    Можете проверить, правильно ли я преобразовал выражения для v и p под Excel

    Исходное:

    v = a*F*(1-e2*(sin(Lat)**2))**-0.5
    p = a*F*(1-e2)*(1-e2*(sin(Lat)**2))**-1.5

    Преобразованное:

    V=a*F*sqrt(1/(1-e2*sin (Lat)^2))
    P=a*F*(1-e2)*sqrt(1/(1-e2*sin (Lat)^2)^3)

    Вернуться к началу
     Профиль  
    Cпасибо сказано 
     Заголовок сообщения: Re: Калькулятор перевода географических координат в прямоугольны
    СообщениеДобавлено: 18 окт 2022, 23:34 
    Не в сети
    Начинающий
    Зарегистрирован:
    18 окт 2022, 10:39
    Сообщений: 6
    Cпасибо сказано: 1
    Спасибо получено:
    0 раз в 0 сообщении
    Очков репутации: 1

    Добавить очки репутацииУменьшить очки репутации
    sergebsl писал(а):
    Код я не разбирал.

    А каким образом Вы переводдите сферические координаты в прямоугольные?



    Не понял к чему Ваш вопрос. У меня нет необходимости переводить сферические координаты в прямоугольные

    Вернуться к началу
     Профиль  
    Cпасибо сказано 
     Заголовок сообщения: Re: Калькулятор перевода географических координат в прямоугольны
    СообщениеДобавлено: 19 окт 2022, 00:28 
    Не в сети
    Light & Truth
    Зарегистрирован:
    02 дек 2016, 22:55
    Сообщений: 5208
    Cпасибо сказано: 341
    Спасибо получено:
    923 раз в 872 сообщениях
    Очков репутации: 131

    Добавить очки репутацииУменьшить очки репутации
    Uvle4ennii писал(а):
    v = a*F*(1-e2*(sin(Lat)**2))**-0.5
    p = a*F*(1-e2)*(1-e2*(sin(Lat)**2))**-1.5

    Преобразованное:

    V=a*F*sqrt(1/(1-e2*sin (Lat)^2))
    P=a*F*(1-e2)*sqrt(1/(1-e2*sin (Lat)^2)^3)

    Суть формул не разбирал. Советую освоить редактор.
    Только для переменной [math]v[/math]:
    Исходное выглядит так:
    [math]v=\frac{ aF }{ \sqrt{1-e_2\sin^2{(Lat)}} }[/math]
    А преобразованное так:
    [math]v=\frac{ aF }{ \sqrt{1-e_2\sin{(Lat)^2}} }[/math]

    Проверьте, возможно вы берёте квадрат не от синуса, а от его аргумента.
    Вторую переменную не смотрел.

    Вернуться к началу
     Профиль  
    Cпасибо сказано 
    За это сообщение пользователю Booker48 "Спасибо" сказали:
    Uvle4ennii
     Заголовок сообщения: Re: Калькулятор перевода географических координат в прямоугольны
    СообщениеДобавлено: 19 окт 2022, 00:44 
    Не в сети
    Начинающий
    Зарегистрирован:
    18 окт 2022, 10:39
    Сообщений: 6
    Cпасибо сказано: 1
    Спасибо получено:
    0 раз в 0 сообщении
    Очков репутации: 1

    Добавить очки репутацииУменьшить очки репутации
    Спасибо за помощь.
    Но мои сомнения были в своих знаниях преобразования отрицательной степени в положительную с соответствующими изменениями.
    Проверив себя сам, я убедился, что сделал всё верно.
    Оказывается необходимости в этом не было, excel без проблем понимает функцию возведения числа в отрицательную степень.

    Что касаемо квадрата синуса. В обоих случаях там нужен квадрат аргумента.

    Вернуться к началу
     Профиль  
    Cпасибо сказано 
     Заголовок сообщения: Re: Калькулятор перевода географических координат в прямоугольны
    СообщениеДобавлено: 19 окт 2022, 00:56 
    Не в сети
    Начинающий
    Зарегистрирован:
    18 окт 2022, 10:39
    Сообщений: 6
    Cпасибо сказано: 1
    Спасибо получено:
    0 раз в 0 сообщении
    Очков репутации: 1

    Добавить очки репутацииУменьшить очки репутации
    Прошу всех меня извинить. Что заставил обратить внимание на тему которую я поднял.
    Моя ошибка заключалась в переменной. Zona.
    Чтобы результаты подсчетов были верны, необходимо воспользоваться функцией int(), которая округляет число до ближайшего наименьшего целого. Что в свою очередь необходимо для решения этой задачи только потому что номер зоны Гаусса-Крюгера в необходимых координатах не может быть дробным.

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

    Вернуться к началу
     Профиль  
    Cпасибо сказано 
    Показать сообщения за:  Поле сортировки  
    Начать новую тему Ответить на тему      Страница 1 из 1 [ Сообщений: 9 ]

     Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
    Построить Машину Тьюринга для перевода в конфигурацию

    в форуме Дискретная математика, Теория множеств и Логика

    russianbear

    1

    545

    20 ноя 2016, 18:32

    Калькулятор

    в форуме Информатика и Компьютерные науки

    Sykes

    3

    125

    25 июн 2023, 12:40

    Новый калькулятор

    в форуме Информатика и Компьютерные науки

    Macrodon

    2

    288

    21 май 2020, 13:03

    Калькулятор уравнений

    в форуме Алгебра

    polskabritva

    14

    528

    02 апр 2022, 12:31

    Математический калькулятор

    в форуме Объявления участников Форума

    500km

    2

    274

    11 ноя 2020, 17:37

    Калькулятор для расчета вероятности

    в форуме Теория вероятностей

    Deniza

    2

    767

    10 сен 2015, 14:51

    Пошаговый числовой калькулятор

    в форуме Объявления участников Форума

    polskabritva

    8

    358

    29 янв 2021, 17:03

    Продам графический калькулятор TI-84 Plus

    в форуме Объявления участников Форума

    engel_dan

    1

    396

    01 мар 2017, 14:15

    Калькулятор для расчета резонатора Гельмгольца

    в форуме Объявления участников Форума

    AntonL31

    0

    2360

    02 сен 2015, 20:46

    Матричный калькулятор и редактор LaTeX

    в форуме Объявления участников Форума

    polskabritva

    5

    806

    13 янв 2021, 01:27


    Часовой пояс: UTC + 3 часа [ Летнее время ]



    Кто сейчас на конференции

    Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


    Вы не можете начинать темы
    Вы не можете отвечать на сообщения
    Вы не можете редактировать свои сообщения
    Вы не можете удалять свои сообщения
    Вы не можете добавлять вложения

    Найти:
    Перейти:  

    Яндекс.Метрика

    Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved