МСК-91

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

  1. АлександрКон

    АлександрКон Форумчанин

    Добрый день коллеги! Есть такая просьба у кого может есть настройки на Garmin в МСК-28 Зона 5 Это Амурская область Селемджинский район. За ранее спасибо!
     
  2. Вариант для тех кто не знаком с геодезией, но перенести точки нужно - скрипт на Python.
    Спасибо Fodin, за таблицу соответствия координат. 5 точек достаточно чтобы сделать преобразование.

    Решение справедливо и для других регионов, нужно только составить соответствие 5 точек в исходной системе координат и в WGS 84

    Итак для перевода координат из системы МСК-91 в WGS 84 можно использовать аффинное преобразование, которое основано на линейных соотношениях между двумя системами координат.

    import numpy as np

    # Исходные данные: координаты в системах МСК-91 (X, Y) и WGS 84 (Широта, Долгота)
    msk_coords = np.array([
    [4933595.74, 4379771.26],
    [4920508.68, 4378649.24],
    [4928699.78, 4372565.24],
    [4920316.58, 4387365.51],
    [4932728.84, 4388252.37]
    ])

    wgs_coords = np.array([
    [44.615497, 33.503649],
    [44.497810, 33.487400],
    [44.572163, 33.412173],
    [44.495096, 33.597024],
    [44.606720, 33.610291]
    ])

    # Добавляем столбец из единиц для вычисления матрицы преобразования
    ones = np.ones((msk_coords.shape[0], 1))
    msk_coords_ones = np.hstack([msk_coords, ones])

    # Вычисляем матрицу преобразования
    transformation_matrix, _, _, _ = np.linalg.lstsq(msk_coords_ones, wgs_coords, rcond=None)

    print("Матрица преобразования:\n", transformation_matrix)

    def msk_to_wgs(x, y):
    """Перевод координат из МСК-91 в WGS 84."""
    msk_point = np.array([x, y, 1])
    wgs_point = msk_point @ transformation_matrix
    return wgs_point


    # Пример использования
    x, y = 4933595.74, 4379771.26 # МСК-91 координаты
    latitude, longitude = msk_to_wgs(x, y) # Перевод в WGS 84
    print("Переведенные координаты (WGS 84):", latitude, longitude)


    В этом коде:
    1. Мы создаем матрицу из координат в системе МСК-91 и соответствующих координат в системе WGS 84.
    2. Добавляем столбец из единиц к координатам МСК-91 для вычисления матрицы преобразования.
    3. Вычисляем матрицу преобразования с использованием метода наименьших квадратов (numpy.linalg.lstsq).
    4. Используем эту матрицу для преобразования новых координат.


    С математической точки зрения вообще всё сложно, но на всякий случай также приведу (см. pdf)
     

    Вложения:

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