Беляев В.А. , Ph. D.

 

 

Система Автоматизации Геодезических работ

 

АРМИГ

 

 

 Преобразование координат по Гельмерту

                                    и из зоны в зону

 

 

 

 Задача преобразования координат из одной системы координат в другую по Гедьмерту ,  в дальнейшем будем говорить из старой систему  координат в новую систему  координат, распадается на два этапа: первый - определение параметров преобразования по Гельмерту, и второй - ортогональное преобразование координат точек из старой в новую систему координат на основании полученных из процедуры Гельмерта параметров преобразования.

Для выполнения процедуры Гельмерта необходимо, чтобы в списках координат точек в старой и новой системах координат были общие точки. Их минимальное число в двумерном преобразовании равно двум,  а в трехмерном - трем.

 

В результате выполнения процедуры Гельмерта получаем параметры преобразования. На плоскости – четыре параметра:  координаты X и Y начала координат новой системы в старой, угол поворота новой системы относительно старой и масштаб координат новой системы относительно старой. При трехмерном преобразовании получаем семь параметров: координаты X , Y и Z начала координат новой системы в старой,  три угла поворота осей новой системы относительно старой и масштаб. Имея параметры преобразования, производим преобразование координат из старой  системы в новую систему координат некоторого набора точек из файла в формате PNT.

 

Алгоритм процедуры Гельмерта состоит в следующем. Для каждой пары общих точек составляем для  плоского случая два уравнения ошибок, а для пространственного  – три. Неизвестными в этих уравнениях являются параметры преобразования.  Их число равно четырем для плоского преобразования и семи для пространственного. Свободными членами являются  остаточные невязки, а именно, разности координат точек в новой системе и координат этих же точек, полученных преобразованием старых координат по приближенным параметрам преобразования. Затем производится составление нормальных уравнений. Их число равно числу параметров преобразования. Из решения нормальных уравнений получаем неизвестные параметры (точнее, поправки к приближенным значениям этих парметров), среднюю квадратическую ошибку единицы веса и оценку точности определения параметров преобразования.

 

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

 

Этот алгоритм использовался мною при уравнивании фототриагуляции на этапе создания пространственной модели, а затем при преобразовании точек модели в систему координат опознаков. Также эффективным такой модифицированный алгоритм Гельмерта оказался при преобразовании координат из одной геодезической системы в другую, например, при преобразования координат GPS в системе WGS-84 в систему координат Гаусса-Крюгера. Алгоритм Гельмерта используется также при предварительных вычислениях координат в линейно-угловых сетях и полигонометрии, когда отсутствует исходная ориентация сети – на твердых пунктах нет наблюдений на другие твердые пункты.

 

Второй функцией этого модуля является преобразование координат из одной зоны в другую для прямоугольных координат Гаусса-Крюгера на эллипсоиде Красовского.

 

 

                                                          Исходные данные

 

Исходными данными для процедуры Гельмерта является содержимое следующей таблицы.

 

  

 

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

   

        <имя точки > <X>  <Y>  <Z> [ <U> <V>]  [<W>]                       (а)             

или

        <имя точки > <X>  <Y>   <U>  <V>                                             (б) 

 

для случая плоского преобразования координат.

 

где между символами  < > находятся слова - имена точек и координаты в старой системе XYZ   (XY)  и новой системе UVW  (UV).  Слова должны быть разделены по крайней мере одним пробелом. 

В случае (а)  должно быть три строки с полным набором координат.  Остальные строки могут иметь 6, 5 или 4 координаты.  В квадратных скобках показаны координаты, которые могут отсутствовать в строках типа (а). 

 

Таблица может быть заполнена из текстового файла, либо путем непосредственного ввода данных в таблицу.

 

 Файлы исходных данных для трехмерного  преобразования должны иметь расширение .tr3, а для двумерного  .tr2. В АРМИГе эти файлы формируются автоматически из отдельных таблиц, содержащих координаты в старой и в новой системах координат. Также и здесь главная таблица заполняется автоматически из таблиц, которые открываются при клике на пункты меню Новая система и Старая система.

 

                                                    Команды редактирования

 

При вводе имен точек следует избегать символов

 

                                            `~! ,^&_-+= *( )]}|\/?<>;:”’

Цифровые величины могут вводиться как целые, как числа с десятичной точкой или в научном формате 

Несоблюдение этих правил приводит к возвращению начального содержимого ячейки.

 

 

·       Alt+Del    Удалить текущую строку.

·       F5              Вставить строку ниже курсора.

·       Enter        Войти в ячейку для редактирования или для подтверждения ее содержимого.

·       Esc            Во время редактирования восстановить последнее значение ячейки.

·       Alt+Backspace    Отменить изменения в ячейкак в обратном порядке (Undo).

·       Стрелка вниз, вверх, вправо, влево PgUp, PgDown   Команды навигации по таблице.

 

При нажатии клавиши F1 на клавиатуре появляется подсказка с этими с командами редактирования.

                                                              Главное меню

·        Файл. 

·          Открыть. Открыть файл с исходными данными. Содержимое открытого файла немедленно заполняет таблицу

·   Новый.   Открывается диалоговое окно, в котором следует ввести имя нового  файла.  При открытии нового файла содержимое таблицы после соответствующего предупреждения очищается.

·   Сохранить. Содержимое таблицы сохраняется текстовом файле под текущим именем.

·   Сохранить как. Открывается диалоговое окно, в котором следует ввести имя файла, под которым будет сохранено содержимое таблицы.

·   Выход. Выход из программы.

·        Новая система. Открывается окно с таблицей, содержащей точки с координатами в новой системе координат (см. ниже). 

·        Старая система. Открывается окно с таблицей, содержащей точки с координатами в старой системе координат (см. ниже).

·        Опции. Открывается окно с опциями работы программы (см. ниже).

·        Запустить. Запускается процесс вычисления параметров преобразования.

·        Параметры. Открывается окно с уравненными параметрами преобразования и оценкой точности (см. ниже).

·        Отчеты.

·   Уравнивание.  Открывается текстовый редактор с файлом TRA.PRT, содержащий результат преобразования точек из старой системы в новую (только точек из главной таблицы), и остаточные невязки, а также уравненные параметры   преобразования с их оценкой точности. 

·   Исходные данные. Открывается текстовый редактор, содержащий файл исходных данных  для задачи Гельмерта.

· Help.

                                                                     Опции  

 

                                        

 

 

В этом окне устанавливаются режимы работы программы

·        Максимальная невязка. Это велична допустимой остаточной невязки. Точки, для которых величина остаточной невязки выше этого допуска исключаются и итерационная процедура Гельмерта начинается сначала.

·        2D-преобразование. При клике на эти радио-кнопки устанавливается соответствующий тип преобразования, и соответственно меняется число колонок и их заголовки в главной таблице. Вам придется по необходимости  очистить главную таблицу.

·        3D-преобразование.

·        Свободный формат. При включенном индексе, в файлах  координат точек в старой и новой системе слова достаточно разделять пробелами. Структура строк этих файлов должна иметь вид при порядке координат  X , Y

 

                                  <имя точки >  <X>   <Y>    <H>

`

          и при порядке координат   Y,  X

 

                               <имя точки >  < Y >  < X >   <H>

        

 При выключенном индексе предполагается форматный ввод согласно позициям слов     устанавленных в опциях  Редактора Полевых Данных. Можно установить позиции слов в окне Установка Колонок. Для перехода в окно Установка Колонок нажмите на кнопку с тем же именем.

 

Установка колонок.

 

Если файл в формате PNT произведен АРМИГом, то позиции его колонок устанавливаются в соответствии с форматом в опциях Редактора Полевых Данных. Если этот файл импортирован, то колонки можно установить графически. При нажатии на эту кнопку появляется диалоговое окно, из которого можно извлечь требуемый файл.

 

                       

 

Для установки колонки слова подведите курсор мыши в позицию перед последним символов слова и сделайте клик левой клавишей мыши. При этом позиция колонки появится на линейке состояния внизу окна.  Затем кликните по соответствующему заголовку таблицы. Заголовок переместится в требуемую позицию. Эта позиция появится  под соответствующим заголовком в окошке Позиции колонок. Если нажать на клавишу Сохранить, то установленные позиции колонок станут текущими для всех программ АРМИГа,  в которых используются файлы координат. Если не сохранять, то эти позиции станут текущими только для текущего сеанса данной программы.    

     

                                            Точки в старой системе координат

   

Точки в старой системе координат могут быть введены в таблицу,  либо считаны в  таблицу из текстового файла типа PNT. При двумерном преобразовании обязательными при заполнении должны быть первые три колонки, при трехмерном преобразовании – все колонки.

 

          

 

                                                         Панель инструментов

 

·        Открыть файл. Открыть файл типа PNT со списком точек в старой системе координат.

·        Сохранить в файле. Содержимое таблицы сохранить в файле.

·        Добавить. Добавить пустую строку ниже курсора. (F5)

·        Удалить. Удалить текущую строку. (ALT+DEL)

·        Найти. Открывается диалоговое окно. Введите имя и нажмите на кнопку Find. 

·        Исходный. Исходный текст выводится в текстовый редактор.

·        Преобразовать. Если  определены параметры преобразования, то координаты точек таблицы будут преобразованы в новую систему и выведены в текстовый файл, имя которого необходимо ввести в диалоговом окне.

·        Из зоны в зону. Если таблица содержит прямоугольные координаты Гаусса-Крюгера и на панеле Из зоны в зону заданы долготы осевых меридианов исходной и выходной зон, то в результате нажатия этой кнопки начнется процесс перевычисления координат из исходной в выходную зону. Процесс начинается с запроса  в диалоговом окне имени файла  типа PNT преобразованных координат. Результаты преобразования будут выведены в этом файл и показаны в текстовом редакторе. Также будет выведен в текущую директорию протокол преобразования,  в котором кроме исходных и преобразованных координат имеются географические координаты точек. Этот протокол появляется приклике на пункт плавающего меню Листинг преобразования из зоны в зону.

 

                                                        Панель "Из зоны в зону"

 

·        Из зоны. Долгота осевого меридиана исходной зоны.

·        В зону. Долгота осевого меридиана выходной зоны.

·        Y Старый + 500 км. Включенный индекс означает, что исходные  ординаты увеличены на 500 км,  и в прецессе преобразования эти ординаты будут приведены к истинным значениям.

·        Y Новый + 500 км. При включенном индексе выходные ординаты будут увеличены на 500 км, по отношению к истинным значениям.

·        Save (Сохранить). Долготы осевых меридианов исходной и выходной зоны запоминаются в текущей директории и в следующем сеансе появятся в соответствующих ячейках.

                                                         

                                                 Точки в новой системе координат

   

Точки в новой системе координат могут быть введены в таблицу,  либо считаны в  таблицу из текстового файла типа PNT. При двумерном преобразовании обязательными для заполнении должны быть первые две колонки. При трехмерном преобразовании должно быть как минимум три точки с полным набором координат .  Остальные точки могут иметь либо полный набор координат, либо координаты  X и Y,  либо только высоту. 

 

                   

          

При нажатии кнопки OK призводится сравнение имен точек из этой таблицы с точками из таблицы в старой системе координат. Координаты точек с общими именами копируются в главную таблицу программы. Напоминаем,  что при двумерном преобразовании, таких точек должно быть не меньше двух, при трехмерном – число точек с полным набором координат в новой системе должно быть не меньше трех.

 

Смысл кнопок панели инструментов тот же, что и для таблицы точек в старой системе, кроме кнопки  OK.

 

                                              Процедура уравнивания

 

Процедура Гельмерта начинается после клика на пункт главного меню Запустить с вычисления приближенных значений параметров преобразования.  Приближенные параметры вычисляются по парам точек: первая и вторая, первая и третья, первая и четвертая и т.д. Для каждой из этих пар выводятся в таблицу  значения параметров преобразования.    

       

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

 

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

Вторая возможность – когда соответствующие параметры в одной  или нескольких точках резко отличаются друг от друга. Можно исключать такие точки по одной. Для этого кликните на пункт меню Исключить, а затем сделайте двойной клик по имени точки, которую вы желаете исключить. После предупреждения эта точка будет исключена и таблица пересчитана без исключенной точки. Далее, можно таким же образом исключить все остальные грубые точки.

 

При клике на пункт меню Дальше начинается собственно итерационноя процедура Гельмерта. Составляются нормальные уравнения с неизвестными – поправками к приближенным значениям параметров преобразования. После решения нормальных уравнений вычисляются поправки к параметрам и сами параметры. По этим параметрам снова составляются уравнения ошибок и нормальные уравнения, и снова вычисляются параметры преобразования и т.д. пока поправки не станут меньше некоторой малой величины. Если процесс разошелся, то выдается соответсвующее сообщение.

 

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

 

                         

 

 Точку с большими невязками можно исключить "вручную".  Для этого нужно кликнуть на пункт меню Исключить, а затем сделать двойной клик по имени точки, которую вы желаете исключить. После этого итерационная процедру возобновится, но уже без иключенной точки. При клике на пункт меню Дальше появляется окно с параметрами преобразования и оценкой точности.

 

                                       

 

Теперь точки, содержащиеся в окне Старые координаты можно преобразовать в новую систему координат и вывести список преобразованных координат в текстовый файл, путем нажатия кнопки Преобразовать в этом окне.