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

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

Войти

Пересчет координат с помощью Justin и Tracy

Тема в разделе "Javad", создана пользователем Namolem, 5 авг 2013.

  1. Namolem

    Регистрация:
    28 окт 2012
    Сообщения:
    5
    Симпатии:
    0
    Добрый день. Нужно пересчитать координаты между МСК-32 (Брянская область) и WGS84

    Известные данные:
    Проекция - поперечная Меркатора,
    нулевая широта 0°,
    нулевая долгота 35°29',
    сдвиг по широте -5412900.566м,
    сдвиг по долготе 2250000м.

    Есть проект в Trimble Geomatics Office, на основе которого мы работаем, там заданы координаты некоторых пунктов в WGS84 и в МСК-32.
    На его основе хочу подобрать семь параметров для Position-Vector Transformation.

    Подбираю методом тыка, начальное значение ключей от СК42, далее изменяю ключи случайным образом.
    Если отклонение от X,Y,Z новых ключей меньше, то запоминаю их.
    Для пересчета использую библиотеку DotSpatial.

    Код:
    ProjectionInfo wgsProj = KnownCoordinateSystems.Geographic.World.WGS1984;
    var keys = new[]
                                            {
    23.814,
    -123.193,
    -94,
    0.18749,
    -0.22884,
    -0.13,
    1.1
                                            };
    var projString ="+proj=tmerc +lat_0=0 +lon_0=35.483333333333333333333333333333333333 +k=1 +x_0=2250000 +y_0=-5412900.566 +ellps=krass +towgs84="
    + keys[0].ToString(CultureInfo.InvariantCulture) + ","
    + keys[1].ToString(CultureInfo.InvariantCulture) + ","
    + keys[2].ToString(CultureInfo.InvariantCulture) + ","
    + keys[3].ToString(CultureInfo.InvariantCulture) + ","
    + keys[4].ToString(CultureInfo.InvariantCulture) + ","
    + keys[5].ToString(CultureInfo.InvariantCulture) + ","
    + keys[6].ToString(CultureInfo.InvariantCulture) + " +units=m +no_defs";
    return ProjectionInfo.FromProj4String(projString);
    var localXY = new double[] {2166921.047, 493562.471};
    var localZ = new double[] {206.448};
    Reproject.ReprojectPoints(localXY, localZ, msk32, wgsProj, 0, 1);
    
    На стадии разработки у меня 4 пункта, чтобы быстрее работало. После получения ключей пробую пересчитать контрольный пункт, получаю погрешность по долготе: 0.3м, по широте: 0.1м, по высоте 4м.
    Пока все нормально. Пробую загрузить эти ключи в JAVAD Justin и в Javad Tracy (коммуникатор VICTOR). Получаю погрешность около 6", около 185 метров. В чем может быть проблема?(
     
    #1
  2. danekab

    Регистрация:
    29 ноя 2012
    Сообщения:
    4
    Симпатии:
    3
    а вы не пробовали пересчитать в модуле локализация в ПО Justin хотелось бы узнать какие результаты будут там.
     
    #2
  3. Namolem

    Регистрация:
    28 окт 2012
    Сообщения:
    5
    Симпатии:
    0
    А что такое модуль локализации? У меня есть две программы от джастина - Coordinate System Manager и сам Justin. Результаты там совпадают с Tracy RTK.

    Вроде бы нашел проблему - в DotSpatial используется формула Coordinate Frame Rotation, а в ПО от Javad - Position Vector Transformation, соответственно меняются знаки у Rx Ry Rz. Это увеличило точность до 5 метров, возможно теперь дело в высоте? Кто-нибудь знает, как в DotSpatial.Projections задаются геоиды?
     
    #3
  4. travkin.andrei

    Регистрация:
    10 фев 2013
    Сообщения:
    19
    Симпатии:
    17
    Адрес:
    Екатеринбург
    Не у кого не возникало такой ошибки при запуске координатного калькулятора в Coordinate System Editor (в Редакторе Систем Координат)? Не знаю что делать.
    Ошибка Редактора Системы Координат.jpg
     
    #4
  5. 100

    100
    Форумчанин

    Регистрация:
    3 июн 2015
    Сообщения:
    423
    Симпатии:
    379

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

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