Местная система координат линейного объекта: различия между версиями
ErnieBoyd (обсуждение | вклад) |
ErnieBoyd (обсуждение | вклад) |
||
Строка 83: | Строка 83: | ||
$ geod -I -f "%.10f" -F "%f" +ellps=WGS84 +units=m inv.dat | $ geod -I -f "%.10f" -F "%f" +ellps=WGS84 +units=m inv.dat | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'' | Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'': | ||
<pre> | <pre> | ||
-127.3948484062 51.0617802663 180119.673397 | -127.3948484062 51.0617802663 180119.673397 |
Версия от 10:35, 21 ноября 2014
Конструирование проекции для представления системы координат линейного объекта в ГИС
Введение
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения. Принципы построения проекции сходны с классическим подходом, изложенным в статье «Добавление местной координатной системы в GIS». Однако постановка задачи отличается.
Постановка задачи
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной L, а ось OX направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны X = −L, Y = 0.
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.
О проекции
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось L.
Для косой проекции Меркатора задаются следующие параметры:
- широта и долгота центра проекции φ₀, λ₀
- азимут начальной линии α
- разворот координатных осей γ
- масштаб на начальной линии k₀
- прямоугольные координаты в центре проекции x₀, y₀
Азимут начальной линии должен находиться в диапазоне −90° < α < +90°. Таким образом, если разворот γ не задан, ось OY будет направлена вдоль начальной линии в северную полуплоскость, OX в восточную.
Азимут α не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также α не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.
Разворот γ первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси OY направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.
Определение параметров
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: φ₁ = 51° с.ш., λ₁ = 22° в.д., φ₂ = 50° с.ш., λ₂ = 20° в.д. Расстояние вдоль оси задано длиной L = 180300 м.
Рассмотрим последовательность решения задачи с использованием PROJ.4. Вид строки параметров таков:
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:
+lat_0=51 +lonc=22 +x_0=0 +y_0=0
Для определения параметра alpha нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую α₁₂. Здесь возможны два случая:
- вторая точка севернее первой, −90° < α₁₂ < +90°; alpha = α₁₂
- вторая точка южнее первой, 90° < α₁₂ < 270°; alpha = α₁₂ − 180°
Поскольку поставлена задача направить ось OX вдоль начальной линии в противоположную сторону от второй точки, параметру gamma присвоим значение −90° в первом случае и +90° во втором.
Значение параметра k_0 также можно оценить по результатам решения обратной геодезической задачи: k_0 = L / S, где L — заданная длина линии, S — длина геодезической из решения ОГЗ.
Решение обратной геодезической задачи
Итак, из решения ОГЗ мы хотим получить азимут α₁₂ и расстояние S, нужные для определения параметров alpha и k_0 соответственно.
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия alpha = α₁₂ и k_0 = L / S при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.
Однако есть ещё одно обстоятельство. Утилита geod из пакета PROJ.4 версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку GeographicLib. Но сегодня в ходу PROJ.4 версии 4.8.0, и geod умеет считать только для сферы.
Так или иначе, надо научиться обходиться подручными средствами.
Подготовим файл данных с координатами конечных пунктов inv.dat:
51N 22E 50N 20E
и решим ОГЗ:
$ geod -I -f "%.10f" -F "%f" +ellps=WGS84 +units=m inv.dat
Возможно, в следующей версии PROJ.4 результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений α₁₂, α₂₁, S:
-127.3948484062 51.0617802663 180119.673397
Построение проекции
По результатам решения ОГЗ построим черновую проекцию. Поскольку φ₂ < φ₁, имеет место второй вариант; примем alpha = α₁₂ + 180° = 52.6051515938°, gamma = +90°. Масштабный коэффициент пока приравняем единице: k_0 = 1. Получен предварительный набор параметров:
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84
Text
Text