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

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

Войти

archaeoSYS 0.8.01.95

Координатный миникалькулятор

  1. adon73

    Форумчанин

    Регистрация:
    26 июл 2011
    Сообщения:
    1.408
    Симпатии:
    176
    про CustomSYS.ini спасибо, буду разбираться...
    осталось разобраться с "синтаксисом", почему в одном случае CMeridian и MeridianShift в градусах (что логично), а в другом в метрах?
    по ПЗ-90 мне высоты не нужны были, т.к. интересовали высоты самих объектов, а это по РД известно, а вот координаты в градусах в ПЗ-90 - требовались...
     
    #41
  2. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.936
    Адрес:
    Златоглавая и Белокаменная
    Есть такой стандарт ISO 6709:1983 "Standard representation of latitude, longitude and altitude for geographic point locations"
    Там сказано
    В соответствии с этим выбрано представление DDMMSS.SS
    CMeridian=383300.000=38°33'00.000"=38.55°
    MeridianShift=800.000=00°08'00.000"
    З.Ы. Есть ещё формат, берущий своё начало от научных калькуляторов НР.
    Там разделитель целой и дробной части ставится после градусов DD.MMSSSS…
    Именно такой формат используется в калькуляторе Windows.
     
    #42
    adon73 нравится это.
  3. adon73

    Форумчанин

    Регистрация:
    26 июл 2011
    Сообщения:
    1.408
    Симпатии:
    176
    Понятно, т.е. это градусы, а не метры :)
    и получается в настройках можно так и так записывать?
     
    #43
  4. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.936
    Адрес:
    Златоглавая и Белокаменная
    Да. Принцип очень простой. Если нет символов ° ' " , то это формат DDMMSS.SSS… Если есть только символ ° в конце числа, то это градусы и доли градусов (для ленивых, копирующих параметры с сайта Дмитрия Бирючкова).
    Также понимает градусы (°) и минуты (') с их долями.
    Для FalseNorthing и FalseEasting в числах разделители тысячных могут присутствовать, а могут и отсутствовать.
    В качестве разделителя целой и дробной части можно использовать как точку, так и запятую. Одновременно (в одном файле) в разных числах можно использовать и точку и запятую. Программа сама разберётся. Сделано для переносимости между компами файлов *.ini
     
    #44
  5. ЮС

    Форумчанин

    Регистрация:
    28 фев 2010
    Сообщения:
    4.564
    Симпатии:
    5.059
    Уважаемый, stout, наконец-то в новой версии Транскора появилась возможность установления параметров связи с использованием полиномиального преобразования (до 5-й степени включительно).
    Решил попробовать (сравнить), но не понял, каким образом в "To System" получены столь точные значения координат (5 знаков после запятой).
    В исходных каталогах я такого никогда не встречал (самое большее 3 знака)?
    Или это уже пересчитанные каким-то иным (точным) способом по установленным параметрам и тут тестируется способ полиномов?
     
    #45
  6. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.936
    Адрес:
    Златоглавая и Белокаменная
    Уважаемый ЮС! Вы абсолютно правы, пересчёт проводился по очень точным формулам, обеспечивающим точность не хуже 1×10^(-7) м, а контролировалось всё это дело в координатном калькуляторе Pinnacle (У него точность чуть похуже, но зато я знаю какие алгоритмы там работают). Цель была одна, посмотреть как влияет точность исходных координат на результаты преобразований с помощью полиномов.
    Результат довольно интересный. При точности 1 мм (не будем о грустном) калибровка (определение коэффициентов полиномов конформного отображения одной поверхности на другую) выполненная по району 20×20 км, позволяет пересчитывать координаты практически без потери точности на площади 40×40 км.
    Во вложении альфа версия программы, которую всё никак не допишу: отсутствует "защита от дурака"; нет оценки точности преобразованных координат, о ней можно судить только по косвенным данным — как садятся базовые или контрольные точки; нет варианта вычислений, когда известна точность или веса (класс) исходных координат и т.д. Но сам алгоритм работает.
    Там же (во вложении) есть два примера. Первый пример связывает координаты в проекции Гаусса-Крюгера (СК-42) для 8 зоны с координатами на краю 37 зоны UTM на эллипсоиде WGS 84 (в системе WGS 84).
    Для определённости, в качестве 7 параметров (связывающие WGS 84 и СК-42) брались величины соответствующие первой редакции ГОСТа.
    На самом деле сначала был создан набор координат в UTM с регулярным шагом сетки. Потом эти координаты были пересчитаны в координаты проекции Г-К. При обратном преобразовании координат с помощью полиномов хорошо видны ошибки, как отклонения от "круглых" цифр.
    Во втором примере проекция ТМ была заменена на проекцию Ламберта с двумя параллелями.

    Программа CPlaneLite (в отличии от archaeoSYS) до сих пор чувствительна к разделителю целой и дробной части числа. Поэтому, прежде чем использовать файлы примеров, надо убедится, что там используются "правильный" разделитель.
     

    Вложения:

    • CPlaneLite.7z
      Размер файла:
      2,5 МБ
      Просмотров:
      679
    #46
  7. ЮС

    Форумчанин

    Регистрация:
    28 фев 2010
    Сообщения:
    4.564
    Симпатии:
    5.059
    Уважаемый stout, привожу для сравнения преобразования с помощью полиномов, выполненные в Транскоре 2.30.
    Поскольку в Транскоре используется метод классических полиномов, то для 3 степени требуется минимум 10 контрольных точек.
    Конечные результаты преобразования координат практически не отличаются от Ваших точных данных (сотые доли миллиметра).

    На рисунках: исходные данные и контрольные точки, расчёт параметров, результат преобразований. Можно сравнивать с тем, что здесь.
    1_1.jpg

    1_2.jpg

    1_3.jpg
     
    #47
    Grandpa нравится это.
  8. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.936
    Адрес:
    Златоглавая и Белокаменная
    Уважаемый ЮС! Большое спасибо за проделанную работу по сравнению одинаковых по названию, но разных по сути методов.
    Тот алгоритм, который я применил, по полной программе (за одним исключением) использует свойство конформности отображения одной поверхности на другую. Поэтому для полинома 3-й степени достаточно 5 точек, и это с оценкой точности. Для этого алгоритма всегда справедливо соотношение N > order + 1, где N — число точек, а order — порядок полинома. Если бы не было ошибок исходных координат, то степень можно было бы повысить ещё на единицу. У меня так и было в самой первой версии программы, но после численных экспериментов решил добавить ещё пару коэффициентов, которые теоретически должны равняться нулю. (Это и есть исключение, о котором сказал выше).
    P.S. примеры во вложении выше мне кажутся более интересными.
     
    #48
  9. ЮС

    Форумчанин

    Регистрация:
    28 фев 2010
    Сообщения:
    4.564
    Симпатии:
    5.059
    Если не думать о грустном, то преобразование координат с помощью полиномов подкупает своей кажущейся простотой. Можно особо не морочить себе голову СК (МСК) и их проекциями, надо лишь иметь достаточное число контрольных пунктов и их плоские координаты в той и другой системе.
    Я понимаю, что уважаемого stout, больше интересовала проверка алгоритма на предмет точности преобразований. Да, можно получать вполне хорошие результаты. Но хочу предостеречь горячие головы от эйфории. Такой метод преобразования даёт хорошие результаты, но только в том случае, если координаты контрольных пунктов в двух СК были получены путём преобразования из одной системы в другую по точным формулам.

    Ну, а если, координаты получены разными методами (например, в одной СК взяты из старых каталогов, а в другой СК получены из ГНСС измерений), то неизбежно будет большое рассогласование взаимного положения пунктов. И метод полиномов тут может дать очень большие ошибки.

    Пример из жизни, городская полигонометрия, традиционные измерения. Но, видимо, пересчёт в местную систему для разных ходов выполнялся в разное время и разными методами, поэтому получить единого точного ключа теперь не удаётся.
    Полином3.jpg
    На первом рисунке два варианта расчёта с помощью полиномов 3 степени. Слева в качестве контрольных берутся первые 10 по списку, во втором берутся последние 10 пунктов. И там, и там, на контрольных пунктах нулевые отклонения. Вроде бы всё отлично. Однако в случае выполнения пересчёта по полученным параметрам, ошибки остальных можно увидеть в колонке Vs2 (в зелёной зоне). Второй вариант даёт чудовищную ошибку для одного из пунктов (480 м). Наверное, это тот самый случай о котором говорилось:
    , но в данном случае и внутри получается не очень хорошо.
    На следующем рисунке те же пункты, но другой способ вычисления ключа. Как можно заметить, отклонения есть, но не столь чудовищные, как с полиномами, (макс. всего 278 мм).
    МСК по МНК.jpg
    Я вовсе не хотел сказать, что преобразование с помощью полиномов нельзя применять. Применять можно, но осторожно (нельзя тупо жать на кнопки).
     
    #49
    Sirena100, -=13=-, Lex K-G и 2 другим нравится это.
  10. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.936
    Адрес:
    Златоглавая и Белокаменная
    Уважаемый ЮС, не могли бы вы сбросить в личку ваш набор координат, очень хочется покрутить-повертеть его.
    В Новой Зеландии применяют полиномиальный метод для связи старой сети 1949 года с новой высокого порядка (9-15 порядок, если не ошибаюсь). Но и заявленная (проверенная) точность такого преобразования порядка 2 метров.
    Думаю, что под этими словами подпишется любой геодезист (и даже любой кнопкодав).
     
    #50
    -=13=- и kub13 нравится это.
  11. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.936
    Адрес:
    Златоглавая и Белокаменная
    Не все полиномы одинаково полезны.
    Во-первых, хочу поблагодарить уважаемого ЮС за предоставленный материал.
    Сразу хочу сказать, что никакую "чудовищную ошибку для одного из пунктов (480 м)" при тех же исходных данных и той же максимальной степени полинома я не получил.
    Вот результаты:
    var1_order1.jpg var1_order2.jpg var1_order3.jpg var2_order1.jpg var2_order2.jpg var2_order3.jpg
    Каждый может самостоятельно попробовать разные комбинации опорных пунктов и порядки интерполяционного полинома, скачав программу из поста http://www.geodesist.ru/forum/threads/archaeosys.20703/page-3#post-334206
    и данные из архива внизу этого поста.
    Хочу в очередной раз подчеркнуть, что порядок полинома (Degree of polynomial) равный единице полностью соответствует 2D преобразованию Гельмерта. И в подтверждение этого привожу вычисления по программе findkey.exe
    Код:
    1  5958523.870 16403130.690 14319.341 16572.378 1  0.077 -0.023
    2  5966637.000 16398769.500 22338.029 12041.315 1 -0.042  0.029
    3  5958001.840 16396720.910 13662.140 10175.580 1 -0.011  0.118
    4  5952621.890 16395111.500  8249.760  8679.980 1 -0.020 -0.036
    5  5953525.390 16394996.910  9150.580  8546.490 1 -0.024  0.094
    6  5957194.570 16388808.530 12688.220  2282.310 1  0.042 -0.059
    7  5955645.680 16397658.530 11326.409 11162.486 1 -0.035 -0.038
    8  5955208.860 16402458.720 10991.085 15970.536 1  0.063 -0.026
    9  5959004.510 16398064.180 14692.835 11497.168 1 -0.040 -0.027
    10 5949651.240 16392005.860  5214.445  5637.903 1 -0.009 -0.032
    Сравните невязки с результатами на первом рисунке.

    Поигравшись с исходными (базовыми, опорными) точками, участвующими в формировании интерполяционного полинома, можно получить и такой вариант:
    varMy1_order3.png
    Галочками отмечены пары координат, по значениям которых вычисляются коэффициенты интерполяционного полинома. Остальные пункты служат в качестве контрольных.
    Нетрудно заметить, что максимальная ошибка в этом случае в два раза меньше, чем по другому алгоритму, применённому ЮС.
    Т.е. и здесь специальная форма представления полиномов оказывается лучше.::biggrin24.gif::

    Представляется очень вероятным, что максимальную ошибку в Транскоре 2.30 можно уменьшить понизив степень аппроксимирующего полинома.

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

    В заключение хотел бы заметить, что классический МНК совершенно пасует в общем случае, когда известны точности координат в обеих системах. Для способа Гельмерта ещё есть возможность применить классический МНК, когда есть оценка точности координат в обеих системах, но для более сложных преобразований, когда известны ошибки не только на входе, но и на выходе классический МНК становится бесполезен.
     

    Вложения:

    • ЮС.zip
      Размер файла:
      3,3 КБ
      Просмотров:
      62
    #51
    kub13, -=13=-, ЮС и ещё 1-му нравится это.
  12. Lex K-G

    Форумчанин

    Регистрация:
    4 июл 2012
    Сообщения:
    1.610
    Симпатии:
    1.061
    Адрес:
    οἰκουμένη
    Оффтоп
    Прошу прощения за оффтоп, мы тут, прастыя смертныя, затаив дыхание читаем (Надеюсь, под этим подпишется не одна тысяча практикующих геодызеров)
    Это единственная фраза, которую я смог понять (или думаю, что понял) Глубокоуважаемые stout, ЮС, другие мэтры от геодезии, если вам не трудно прочитать и ответить, то будем очень рады. Если не до этого, то будем далее с интересом читать. Вопрос: Стоит ли использовать полиномы более, чем 5-8-го порядка? Имея одни плоские координаты, переводя в другие, что мы хотим учесть? Это понятно - эллипсоиды, датумы, проекцию... Хотим формализовать некоторые особенности построения сетей и обработки, актуальной на тот момент времени. А далее? Хаотические отклонения от любых правил, особенно с понижением классности/разрядности... Напрашиваются аналогии с ... как это будет правильно... анализом Фурье. Прошу не бить больно! Лучше объясните доступно для понимания смертных...
     
    #52
  13. ЮС

    Форумчанин

    Регистрация:
    28 фев 2010
    Сообщения:
    4.564
    Симпатии:
    5.059
    Пока всего один вопрос - в Ваших расчётах применялись всё те же комплексные полиномы?
     
    #53
  14. В.Шуфотинский

    В.Шуфотинский Модератор
    Команда форума Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    17.296
    Симпатии:
    4.952
    Если совсем просто, то при инженерно-геодезических работах, где зарабатывают свой хлеб 99.99% "практикующих геодызеров", надо работать от ближайших пунктов ГГС и никакие ряды Фурье и комплексные полиномы, а также различные искажения в СК42 и СК95, Вас не должны волновать. Отдайте эти проблемы науке для дискуссий и использования выделенных для этого денег.
     
    #54
  15. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.936
    Адрес:
    Златоглавая и Белокаменная
    Формально — да.
    Чуть позже отвечу подробнее с формулами.
     
    #55
  16. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.936
    Адрес:
    Златоглавая и Белокаменная
    Уважаемый Lex K-G! Вы же понимаете, что затрагиваете вопросы, на которые чертовски трудно отвечать в рамках форума. Самый благоприятный формат для таких обсуждений — это симпозиумы в своём изначальном смысле. Т.е. послеобеденные философские рассуждения с вином и женщинами. (Женщины — исключительно для услады слуха и глаз.)
    А формат форума более располагает к простым вопросам-ответам. Простым не в смысле лёгким, а в смысле кратким. Как вопросам, так и ответам. Поэтому мне гораздо проще ответить уважаемому ЮС, с его вполне конкретным и кратким вопросом, чем ответить вам. Хотя вы почти всегда ставите такие интересные вопросы, над которыми невольно задумываешься не на один день. И своих соображений у вас на этот счёт — вагон и маленькая тележка.
    Вот на первый вопрос
    ответ вполне однозначный — нет, не стоит. Как показывает практика, такая типовая задача, как пересчёт из зоны в зону требует степени, не выше 4-ой. Та же локализация, когда наблюдения сохраняются в B,L,H WGS 84, а результат нужен в экзотической местной СК вполне может обойтись полиномом 2, максимум 3 степени.
    Во вложении очень краткое пояснение к алгоритму с формулами.
     

    Вложения:

    • Formula000.doc
      Размер файла:
      63,5 КБ
      Просмотров:
      82
    #56
    kub13, Lex K-G, ЮС и ещё 1-му нравится это.
  17. ЮС

    Форумчанин

    Регистрация:
    28 фев 2010
    Сообщения:
    4.564
    Симпатии:
    5.059
    Было свободное время, поигрался… в Транскоре. И МНК и полиномы дают хорошие результаты с поиском утраченного ключа и с преобразованиями, если когда-то все координаты из одной СК в другую СК были пересчитаны по определённым правилам. При этом, разные методы дают очень близкие результаты.
    Если же (как в последнем примере с 10-17 пунктами) такие правила не соблюдались, то можно получить очень даже разные решения.
    Сравнил рисунок с таблицей. Совпадают. Но есть вопросы.
    Возможно, мы преследуем разные цели, но моя задача заключалась в том, чтобы координаты пунктов из СК-42 (будем считать их точными) пересчитать в МСК, определив при этом параметры её "ключа" (осевой меридиан, масштаб, сдвижки…). Поскольку когда-то пункты в МСК были вычислены упрощённо, то контрольные пункты точно не совмещаются. Задача пересчитать пункты из СК-42 в зону МСК и "наложить" их с минимальными отклонениями (МНК).
    Попробовал для такого преобразования несколько вариантов в Транскоре и свой старый способ. Все они между собой дают разницу не более мм, но существенно различаются с данными, что были показаны в этой таблице:
    Не зная, что именно содержится в последних колонках (невязки или поправки), я, на всякий случай, вычислил преобразованные координаты в двух вариантах и сравнил их со своими результатами.
    таблица.jpg
    Можно заметить, что центры тяжести (ср. арифм. коорд.) во всех вариантах совпадают.
    И хотя оба варианта от stout дают меньшую сумму квадратов отклонений координат от каталожных в МСК, но они не соответствуют тем, что получены мной преобразованием из зоны в зону по параметрам.
    То есть, и полиномы и 2D преобразование Гельмерта внесли искажения в сеть при переносе её из одной зоны в другую?
     

    Вложения:

    #57
  18. SWK

    SWK
    Форумчанин

    Регистрация:
    19 мар 2011
    Сообщения:
    129
    Симпатии:
    37
    Адрес:
    Рудный, Казахстан
    #58
  19. Breet

    Регистрация:
    5 мар 2012
    Сообщения:
    2
    Симпатии:
    0
    Добрый день! Не создается файл CustomSYS.ini, не могу внести изменения.
     
    #59
  20. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.936
    Адрес:
    Златоглавая и Белокаменная
    Операционная система?
    Права?
    Куда установлена?
    Какие сообщения системы?
    CustomSYS.ini создаётся автоматически после первого запуска.
     
    #60

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

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