<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.gis-lab.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ErnieBoyd</id>
	<title>GIS-Lab - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.gis-lab.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ErnieBoyd"/>
	<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/w/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/ErnieBoyd"/>
	<updated>2026-04-28T20:57:46Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=GISConf_-_%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D0%B0_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8&amp;diff=23078</id>
		<title>GISConf - служба помощи</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=GISConf_-_%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D0%B0_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8&amp;diff=23078"/>
		<updated>2015-11-17T08:33:48Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Эксперты */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На конференции Открытые ГИС планируется создать &amp;quot;Службу помощи&amp;quot; - отдельную стойку или стол, где каждый сможет подойти и задать свои вопросы одному из экспертов.&lt;br /&gt;
&lt;br /&gt;
==Как работает==&lt;br /&gt;
В этой секции работает группа умудренных экспертов, каждый из которых готов потратить от 30 до 60 минут своего времени на ответы по ГИС и около тематики.&lt;br /&gt;
Предполагается помещение на 5-7 человек для консультаций. На экране ноутбука (идеально - компьютер с двумя мониторами) эксперт может показать какие-то наглядные вещи.&lt;br /&gt;
Данный формат общения будет работать как минимум один день конференции.&lt;br /&gt;
&lt;br /&gt;
Компетенция эксперта может быть как технологической, так и тематической (например, GeoServer или Геомаркетинг). Для каждого эксперта можно определить круг компетенций (основная, второстепенные, &amp;quot;где-то что-то слышал&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==Эксперты==&lt;br /&gt;
Имя и Фамилия. День, в который выступает. Время, в которое присутствует. Основные компетенции. Второстепенные компетенции. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Имя&lt;br /&gt;
! Дата&lt;br /&gt;
! Время&lt;br /&gt;
! Компетенции (основные)&lt;br /&gt;
! Компетенции (второстепенные)&lt;br /&gt;
|-&lt;br /&gt;
|Максим Дубинин&lt;br /&gt;
|21&lt;br /&gt;
|12:20-13:20&lt;br /&gt;
|Развертывание&lt;br /&gt;
|Лицензирование&lt;br /&gt;
|-&lt;br /&gt;
|Никита Лаврентьев &lt;br /&gt;
|21&lt;br /&gt;
|13:20-14:20&lt;br /&gt;
|QGIS&lt;br /&gt;
|БПЛА&lt;br /&gt;
|-&lt;br /&gt;
|Андрей Жуков&lt;br /&gt;
|21&lt;br /&gt;
|14:20-15:20&lt;br /&gt;
|GeoServer, картографические стили&lt;br /&gt;
|Все прочее про Geoserver&lt;br /&gt;
|-&lt;br /&gt;
|Игорь Белов&lt;br /&gt;
|21&lt;br /&gt;
|15:20-16:00&lt;br /&gt;
|Проекции, системы координат&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Илья Зверев&lt;br /&gt;
|21&lt;br /&gt;
|16:00-17:00&lt;br /&gt;
|OpenStreetMap (редактирование и получение данных)&lt;br /&gt;
|Leaflet&lt;br /&gt;
|-&lt;br /&gt;
|Евгений Никулин&lt;br /&gt;
|21&lt;br /&gt;
|17:00-18:00&lt;br /&gt;
|QGIS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Николай Лебедев&lt;br /&gt;
|21&lt;br /&gt;
|18:20-19:20&lt;br /&gt;
|Mapnik&lt;br /&gt;
|PostGIS&lt;br /&gt;
|-&lt;br /&gt;
|Дмитрий Колесов&lt;br /&gt;
|22&lt;br /&gt;
|12:00-13:00&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|Александр Клешнин&lt;br /&gt;
|22&lt;br /&gt;
|13:00-14:00&lt;br /&gt;
|QGIS&lt;br /&gt;
|PostGIS&lt;br /&gt;
|-&lt;br /&gt;
|Александр Мурый&lt;br /&gt;
|22&lt;br /&gt;
|14:00-15:00&lt;br /&gt;
|GRASS GIS, OSGeo-Live&lt;br /&gt;
|QGIS и прочие ОГИС&lt;br /&gt;
|-&lt;br /&gt;
|Владислав Филиппов &lt;br /&gt;
|22&lt;br /&gt;
|16:00-17:00&lt;br /&gt;
|GeoServer, кэширование&lt;br /&gt;
|Все прочее про Geoserver&lt;br /&gt;
|-&lt;br /&gt;
|Александр Паршин &lt;br /&gt;
|22&lt;br /&gt;
|17:00-18:00&lt;br /&gt;
|Leaflet&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Дмитрий Барышников&lt;br /&gt;
|22&lt;br /&gt;
|18:00-19:00&lt;br /&gt;
|GDAL&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%93%D0%B5%D0%BE%D0%B4%D0%B5%D0%B7%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82&amp;diff=21325</id>
		<title>Геодезические системы пространственных координат</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%93%D0%B5%D0%BE%D0%B4%D0%B5%D0%B7%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82&amp;diff=21325"/>
		<updated>2015-02-25T14:49:13Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Переход от геодезических координат к геоцентрическим */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Опубликована|geodesic-coords}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Рассматриваются преобразования между пространственными координатными системами. Приводится пример программной реализации на языке Питон.}}&lt;br /&gt;
&lt;br /&gt;
== Земной эллипсоид ==&lt;br /&gt;
&lt;br /&gt;
Земным эллипсоидом называется эллипсоид вращения, поверхность которого по форме и размерам довольно близка к поверхности геоида.&lt;br /&gt;
&lt;br /&gt;
Поверхность эллипсоида образуется вращением эллипса вокруг его малой оси, которая также является осью вращения эллипсоида.&lt;br /&gt;
&lt;br /&gt;
Эллипс обычно определяется размером его большой полуоси ''a'' и сжатием ''f''. Реже вместо сжатия задаётся размер малой полуоси ''b'':&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;f = \frac{a - b}{a} \qquad b = a (1 - f)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В теории и практике вычислений широко используются такие параметры, как полярный радиус кривизны поверхности ''c'', первый эксцентриситет ''e'' и второй эксцентриситет ''e′'':&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;c = \frac{a}{1 - f} \qquad e^2 = f (2 - f) \qquad e'^2 = \frac{e^2}{1 - e^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример функции Питона, вычисляющей по ''a'' и ''f'' параметры ''b'', ''c'', ''e'' и ''e′'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def initSpher(a, f):&lt;br /&gt;
    b = a * (1. - f)&lt;br /&gt;
    c = a / (1. - f)&lt;br /&gt;
    e2 = f * (2. - f)&lt;br /&gt;
    e12 = e2 / (1. - e2)&lt;br /&gt;
    return (b, c, e2, e12)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Системы координат ==&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующие системы координат.&lt;br /&gt;
# Геоцентрические декартовы прямоугольные координаты:&lt;br /&gt;
#* начало координат находится в центре эллипсоида,&lt;br /&gt;
#* ось ''z'' расположена вдоль оси вращения эллипсоида и направлена в северный полюс,&lt;br /&gt;
#* ось ''x'' лежит в пересечении экватора и начального меридиана,&lt;br /&gt;
#* ось ''y'' лежит в пересечении экватора и меридиана с долготой ''L'' = 90°.&lt;br /&gt;
# Система геодезических координат:&lt;br /&gt;
#; геодезическая широта ''B'' : угол между нормалью к поверхности эллипсоида и плоскостью экватора,&lt;br /&gt;
#; геодезическая долгота ''L'' : угол между плоскостями данного и начального меридианов,&lt;br /&gt;
#; геодезическая высота ''H'' : кратчайшее расстояние до поверхности эллипсоида.&lt;br /&gt;
# Топоцентрические декартовы прямоугольные координаты:&lt;br /&gt;
#* начало координат находится в некоторой точке ''Q''₀ (''B''₀, ''L''₀, ''H''₀) над эллипсоидом,&lt;br /&gt;
#* ось ''z'' расположена вдоль нормали к поверхности эллипсоида и направлена вверх,&lt;br /&gt;
#* ось ''x'' расположена в плоскости меридиана и направлена на север,&lt;br /&gt;
#* ось ''y'' перпендикулярна к осям ''x'' и ''z'' и направлена на восток.&lt;br /&gt;
&lt;br /&gt;
Помимо широкого использования в геодезических целях, каждая из представленных координатных систем находит важное применение в прикладных областях.&lt;br /&gt;
&lt;br /&gt;
Геодезические координаты со времён седой древности используются в навигации и картографии. В картографии они являются основой построения проекций.&lt;br /&gt;
&lt;br /&gt;
Геоцентрическая система координат необходима для вычисления спутниковых орбит и решения других орбитальных задач.&lt;br /&gt;
&lt;br /&gt;
Проекции, используемые картографами различных стран, основаны на различных геодезических датумах, т.е. созданы на различных эллипсоидах с разными размерами, положением центров и ориентацией осей в пространстве. Самый простой и точный способ пересчёта координат, заданных в разных датумах, зиждется на преобразованиях между геодезическими и геоцентрическими системами. В общем случае схема пересчёта координат между двумя проекциями выполняется в пять этапов:&lt;br /&gt;
#координаты первой проекции — в геодезические координаты на первом эллипсоиде,&lt;br /&gt;
#геодезические координаты — в геоцентрические координаты первого датума,&lt;br /&gt;
#геоцентрические координаты первого датума — в геоцентрические координаты второго датума,&lt;br /&gt;
#геоцентрические координаты — в геодезические координаты на втором эллипсоиде,&lt;br /&gt;
#геодезические координаты — в координаты второй проекции.&lt;br /&gt;
&lt;br /&gt;
Топоцентрическая система координат — естественная система для работы различных наземных объектов: ракетных стартовых комплексов, станций слежения за спутниками, станций ПВО и других измерительных комплексов. Естественно, собираемая информация в каждом случае преобразуется в общую систему координат, связанную с Землёй — геодезическую систему координат.&lt;br /&gt;
&lt;br /&gt;
== Преобразования координат ==&lt;br /&gt;
&lt;br /&gt;
=== Переход от геодезических координат к геоцентрическим ===&lt;br /&gt;
&lt;br /&gt;
Это преобразование выполняется по следующим формулам:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
x &amp;amp; = (N + H) \cos B \cos L \\&lt;br /&gt;
y &amp;amp; = (N + H) \cos B \sin L \\&lt;br /&gt;
z &amp;amp; = (N + H - e^2 N) \sin B&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь ''N'' — так называемый радиус кривизны первого вертикала:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;N = \frac{a}\sqrt{1 - e^2 \sin^2 B} = \frac{c}\sqrt{1 + e'^2 \cos^2 B}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Реализация на Питоне:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def fromLatLong(lat, lon, h, a, f):&lt;br /&gt;
    b, c, e2, e12 = initSpher(a, f)&lt;br /&gt;
    cos_lat = math.cos(lat)&lt;br /&gt;
    n = c / math.sqrt(1. + e12 * cos_lat ** 2)&lt;br /&gt;
    p = (n + h) * cos_lat&lt;br /&gt;
    x = p * math.cos(lon)&lt;br /&gt;
    y = p * math.sin(lon)&lt;br /&gt;
    z = (n + h - e2 * n) * math.sin(lat)&lt;br /&gt;
    return (x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Переход от геоцентрических координат к геодезическим ===&lt;br /&gt;
&lt;br /&gt;
Проще всего вычисляется долгота:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\operatorname{tg\,} L = \frac{y}{x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сложнее с определением широты и высоты. Существует множество способов решения этой задачи. Воспользуемся итеративным методом Боуринга.&lt;br /&gt;
&lt;br /&gt;
В начале находится предварительная оценка широты ''B'':&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\operatorname{tg\,} B = \frac{z}{r} \left( 1 + e'^2 \frac{b}{\rho} \right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь ''ρ'' — геоцентрический радиус-вектор, ''r'' — расстояние от оси вращения эллипсоида:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\rho = \sqrt{x^2 + y^2 + z^2} \qquad r = \sqrt{x^2 + y^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем вычисляется параметр ''θ'' (приведённая широта) и получается уточнённое значение широты:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
\operatorname{tg\,} \theta &amp;amp; = (1 - f) \operatorname{tg\,} B \\&lt;br /&gt;
\operatorname{tg\,} B &amp;amp; = \dfrac{z + e'^2 b \sin^3 \theta}{p - e^2 a \cos^3 \theta}&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Действия по последним двум формулам предполагается повторять до сходимости к требуемой точности. Как правило, бывает достаточно одной итерации. В примере реализации метода Боуринга, приведённом ниже, запрограммировано две итерации.&lt;br /&gt;
&lt;br /&gt;
В конце определяется высота:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;H = \frac{r}{\cos B} - N = \frac{z}{\sin B} - N (1 - e^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def toLatLong(x, y, z, a, f):&lt;br /&gt;
    b, c, e2, e12 = initSpher(a, f)&lt;br /&gt;
    p = math.hypot(x, y)&lt;br /&gt;
    if p == 0.:&lt;br /&gt;
        lat = math.copysign(math.pi / 2., z)&lt;br /&gt;
        lon = 0.&lt;br /&gt;
        h = math.fabs(z) - b&lt;br /&gt;
    else:&lt;br /&gt;
        t = z / p * (1. + e12 * b / math.hypot(p, z))&lt;br /&gt;
        for i in range(2):&lt;br /&gt;
            t = t * (1. - f)&lt;br /&gt;
            lat = math.atan(t)&lt;br /&gt;
            cos_lat = math.cos(lat)&lt;br /&gt;
            sin_lat = math.sin(lat)&lt;br /&gt;
            t = (z + e12 * b * sin_lat ** 3) / (p - e2 * a * cos_lat ** 3)&lt;br /&gt;
        lon = math.atan2(y, x)&lt;br /&gt;
        lat = math.atan(t)&lt;br /&gt;
        cos_lat = math.cos(lat)&lt;br /&gt;
        n = c / math.sqrt(1. + e12 * cos_lat ** 2)&lt;br /&gt;
        if math.fabs(t) &amp;lt;= 1.:&lt;br /&gt;
            h = p / cos_lat - n&lt;br /&gt;
        else:&lt;br /&gt;
            h = z / math.sin(lat) - n * (1. - e2)&lt;br /&gt;
    return (lat, lon, h)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Переход от геоцентрических координат к топоцентрическим ===&lt;br /&gt;
&lt;br /&gt;
Постановка задачи: начало топоцентрической системы координат задано точкой ''Q''₀ (''B''₀, ''L''₀, ''H''₀); по геоцентрическим координатам точки ''Q'' (''x'', ''y'', ''z'') вычислить её топоцентрические координаты.&lt;br /&gt;
&lt;br /&gt;
Конформное преобразование между двумя декартовыми прямоугольными системами координат всегда может быть представлено последовательностью сдвигов и вращений координатной системы. Данное преобразование можно реализовать по следующему алгоритму:&lt;br /&gt;
* сместить начало координат вдоль оси ''z'' на величину ''e''² ''N''₀ sin ''B''₀ до вершины конуса, образованного нормалями, лежащими на параллели с широтой ''B''₀,&lt;br /&gt;
* повернуть систему координат вокруг оси ''z'' на угол ''L''₀, чтобы ось ''x'' оказалась в плоскости меридиана точки ''Q''₀,&lt;br /&gt;
* повернуть систему координат вокруг оси ''y'' на угол 90° − ''B''₀, чтобы ось ''z'' совпала с нормалью к поверхности эллипсоида в точке ''Q''₀,&lt;br /&gt;
* сместить начало координат вдоль оси ''z'' на величину ''N''₀ + ''H''₀ в точку ''Q''₀,&lt;br /&gt;
* изменить знак ''x'' на противоположный.&lt;br /&gt;
&lt;br /&gt;
Реализация алгоритма:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def toTopo(lat0, lon0, h0, x, y, z, a, f):&lt;br /&gt;
    b, c, e2, e12 = initSpher(a, f)&lt;br /&gt;
    sin_lat = math.sin(lat0)&lt;br /&gt;
    n = a / math.sqrt(1. - e2 * sin_lat ** 2)&lt;br /&gt;
    z = z + e2 * n * sin_lat&lt;br /&gt;
    x, y = rotate(x, y, lon0)&lt;br /&gt;
    z, x = rotate(z, x, math.pi / 2. - lat0)&lt;br /&gt;
    z = z - (n + h0)&lt;br /&gt;
    x = -x&lt;br /&gt;
    return (x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Функция '''toTopo()''' содержит обращения к функции вращения '''rotate()''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def rotate(x, y, a):&lt;br /&gt;
    c, s = math.cos(a), math.sin(a)&lt;br /&gt;
    return (x * c + y * s, -x * s + y * c)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Переход от топоцентрических координат к геоцентрическим ===&lt;br /&gt;
&lt;br /&gt;
Постановка задачи: начало топоцентрической системы координат задано точкой ''Q''₀ (''B''₀, ''L''₀, ''H''₀); по топоцентрическим координатам точки ''Q'' (''x'', ''y'', ''z'') вычислить её геоцентрические координаты.&lt;br /&gt;
&lt;br /&gt;
Алгоритм решения получается обращением алгоритма обратной задачи:&lt;br /&gt;
* изменить знак ''x'' на противоположный,&lt;br /&gt;
* сместить начало координат вдоль оси ''z'' на величину ''N''₀ + ''H''₀ в точку пересечения с осью вращения эллипсоида,&lt;br /&gt;
* повернуть систему координат вокруг оси ''y'' на угол ''B''₀ − 90°, чтобы ось ''z'' совпала с осью вращения эллипсоида,&lt;br /&gt;
* повернуть систему координат вокруг оси ''z'' на угол −''L''₀, чтобы ось ''x'' оказалась в плоскости начального меридиана,&lt;br /&gt;
* сместить начало координат вдоль оси ''z'' на величину ''e''² ''N''₀ sin ''B''₀ в центр эллипсоида.&lt;br /&gt;
&lt;br /&gt;
Реализация алгоритма:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def fromTopo(lat0, lon0, h0, x, y, z, a, f):&lt;br /&gt;
    b, c, e2, e12 = initSpher(a, f)&lt;br /&gt;
    sin_lat = math.sin(lat0)&lt;br /&gt;
    n = a / math.sqrt(1. - e2 * sin_lat ** 2)&lt;br /&gt;
    x = -x&lt;br /&gt;
    z = z + (n + h0)&lt;br /&gt;
    z, x = rotate(z, x, lat0 - math.pi / 2.)&lt;br /&gt;
    x, y = rotate(x, y, -lon0)&lt;br /&gt;
    z = z - e2 * n * sin_lat&lt;br /&gt;
    return (x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Переход от геодезических координат к топоцентрическим. Обратная пространственная задача ===&lt;br /&gt;
&lt;br /&gt;
Постановка задачи: начало топоцентрической системы координат задано точкой ''Q''₀ (''B''₀, ''L''₀, ''H''₀); по геодезическим координатам точки ''Q'' (''B'', ''L'', ''H'') вычислить её топоцентрические координаты ''x'', ''y'', ''z''.&lt;br /&gt;
&lt;br /&gt;
Задача решается последовательным применением готовых алгоритмов:&lt;br /&gt;
* по геодезическим координатам точки ''B'', ''L'', ''H'' вычислить её геоцентрические координаты ''x'', ''y'', ''z'',&lt;br /&gt;
* по геоцентрическим координатам точки вычислить её топоцентрические координаты ''x'', ''y'', ''z''.&lt;br /&gt;
&lt;br /&gt;
Реализация алгоритма:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def inverse3d(lat0, lon0, h0, lat, lon, h, a, f):&lt;br /&gt;
    x, y, z = fromLatLong(lat, lon, h, a, f)&lt;br /&gt;
    return toTopo(lat0, lon0, h0, x, y, z, a, f)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотренная задача является разновидностью обратной геодезической задачи в пространстве. Вместо декартовых прямоугольных топоцентрических координат может требоваться вычисление каких-то других связанных с ними величин, например, полярных координат «дальность-азимут-зенитное расстояние», варианты могут быть разные. Однако в большинстве случаев сначала находятся топоцентрические ''x'', ''y'', ''z'', по которым и выводятся искомые значения.&lt;br /&gt;
&lt;br /&gt;
=== Переход от топоцентрических координат к геодезическим. Прямая пространственная задача ===&lt;br /&gt;
&lt;br /&gt;
Постановка задачи: начало топоцентрической системы координат задано точкой ''Q''₀ (''B''₀, ''L''₀, ''H''₀); по топоцентрическим координатам точки ''Q'' (''x'', ''y'', ''z'') вычислить её геодезические координаты ''B'', ''L'', ''H''.&lt;br /&gt;
&lt;br /&gt;
Задача решается через вычисление геоцентрических координат:&lt;br /&gt;
* по тороцентрическим координатам точки ''x'', ''y'', ''z'' вычислить её геоцентрические координаты,&lt;br /&gt;
* по геоцентрическим координатам точки ''x'', ''y'', ''z'' вычислить её геодезические координаты ''B'', ''L'', ''H''.&lt;br /&gt;
&lt;br /&gt;
Реализация алгоритма:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def forward3d(lat0, lon0, h0, x, y, z, a, f):&lt;br /&gt;
    x, y, z = fromTopo(lat0, lon0, h0, x, y, z, a, f)&lt;br /&gt;
    return toLatLong(x, y, z, a, f)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эта задача является разновидностью прямой геодезической задачи в пространстве. Вместо декартовых прямоугольных топоцентрических координат могут задаваться какие-то другие связанные с ними величины, например, полярные координаты «дальность-азимут-зенитное расстояние», варианты могут быть разные. Однако в большинстве случаев сначала находятся топоцентрические ''x'', ''y'', ''z'', по которым и решается задача.&lt;br /&gt;
&lt;br /&gt;
== Пример программной реализации ==&lt;br /&gt;
&lt;br /&gt;
Коды вышеприведённых функций находятся в архиве [[Медиа:Spheroid.zip|Spheroid.zip]] в файле '''spheroid.py'''. Напишем программы, которые используют их для преобразования координат.&lt;br /&gt;
&lt;br /&gt;
=== Пересчёт топоцентрических координат в геодезические ===&lt;br /&gt;
&lt;br /&gt;
В этом примере программы явно задаются параметры эллипсоида ''a'', ''f'' и геодезические координаты начала топоцентрической системы ''B''₀, ''L''₀, ''H''₀. Координаты точек ''x'', ''y'', ''z'' читаются из файла данных и пересчитанные значения ''B'', ''L'', ''H'' выводятся в консоль.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from sys import argv&lt;br /&gt;
import math&lt;br /&gt;
import spheroid&lt;br /&gt;
&lt;br /&gt;
script, fn = argv&lt;br /&gt;
&lt;br /&gt;
a, f = 6378137., 1./298.257223563 # WGS 84&lt;br /&gt;
&lt;br /&gt;
lat0, lon0, hgt0 = math.radians(65.), math.radians(45.), 500.&lt;br /&gt;
&lt;br /&gt;
fp = open(fn, 'r')&lt;br /&gt;
for line in fp:&lt;br /&gt;
    x, y, z = map(float, line.split(&amp;quot; &amp;quot;))&lt;br /&gt;
    lat, lon, hgt = spheroid.forward3d(lat0, lon0, hgt0, x, y, z, a, f)&lt;br /&gt;
    print &amp;quot;%.8f %.8f %.3f&amp;quot; % (math.degrees(lat), math.degrees(lon), hgt)&lt;br /&gt;
fp.close()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот скрипт находится в архиве [[Медиа:Spheroid.zip|Spheroid.zip]] в файле '''forwrd3d.py'''.&lt;br /&gt;
&lt;br /&gt;
Файл данных должен содержать в каждой строке координаты одной точки ''x'', ''y'', ''z'', разделённые пробелом. Создадим файл данных '''fwd3d.dat''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;-40000 30000 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Выполним скрипт в командной строке:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ python forwrd3d.py fwd3d.dat&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Координаты на выходе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;64.63992461 45.62743323 695.578&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запишем полученные координаты в файл результатов '''inv3d.dat''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ python forwrd3d.py fwd3d.dat &amp;gt; inv3d.dat&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пересчёт геодезических координат в топоцентрические ===&lt;br /&gt;
&lt;br /&gt;
В этом примере программы явно задаются параметры эллипсоида ''a'', ''f'' и геодезические координаты начала топоцентрической системы ''B''₀, ''L''₀, ''H''₀. Координаты точек ''B'', ''L'', ''H'' читаются из файла данных и пересчитанные значения ''x'', ''y'', ''z'' выводятся в консоль.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from sys import argv&lt;br /&gt;
import math&lt;br /&gt;
import spheroid&lt;br /&gt;
&lt;br /&gt;
script, fn = argv&lt;br /&gt;
&lt;br /&gt;
a, f = 6378137., 1./298.257223563 # WGS 84&lt;br /&gt;
&lt;br /&gt;
lat0, lon0, hgt0 = math.radians(65.), math.radians(45.), 500.&lt;br /&gt;
&lt;br /&gt;
fp = open(fn, 'r')&lt;br /&gt;
for line in fp:&lt;br /&gt;
    lat, lon, hgt = map(float, line.split(&amp;quot; &amp;quot;))&lt;br /&gt;
    lat = math.radians(lat)&lt;br /&gt;
    lon = math.radians(lon)&lt;br /&gt;
    x, y, z = spheroid.inverse3d(lat0, lon0, hgt0, lat, lon, hgt, a, f)&lt;br /&gt;
    print &amp;quot;%.3f %.3f %.3f&amp;quot; % (x, y, z)&lt;br /&gt;
fp.close()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот скрипт находится в архиве [[Медиа:Spheroid.zip|Spheroid.zip]] в файле '''invers3d.py'''.&lt;br /&gt;
&lt;br /&gt;
Файл данных должен содержать в каждой строке координаты одной точки ''B'', ''L'', ''H'', разделённые пробелом. Используем в качестве файла данных созданный выше '''inv3d.dat''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;64.63992461 45.62743323 695.578&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Выполним скрипт в командной строке:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ python invers3d.py inv3d.dat&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Координаты на выходе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;-40000.000 30000.000 0.000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.139.7504&amp;amp;rep=rep1&amp;amp;type=pdf Robert Burtch, A Comparison of Methods Used in Rectangular to Geodetic Coordinate Transformations, 2006]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21082</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21082"/>
		<updated>2014-11-26T10:39:17Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять требованиям геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них этот неприятный момент имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и должно быть. Координаты второй точки отличаются от ожидаемых значений −''L'' и 0. Ненулевая величина ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1.0000421773 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
Последнее предложение имеет особый смысл для выбора способа построения МСК-2. Если выбрать способ, изложенный для МСК-1, только с центром проекции во второй точке и опорой на азимут ''α''₂₁, выяснится, что апосфера во втором случае будет не та, что в первом, и большие круги, проходящие через две точки, не совпадают. Правда, разница незаметна, пока расстояние не достигает величин в несколько десятков километров.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если нужна пара взаимоувязанных МСК, вторая система строится на параметрах первой. Параметр ''gamma'' изменяем на 180°, параметру ''x_0'' присваиваем значение ''−L'', всего-то и делов.&lt;br /&gt;
&lt;br /&gt;
== Тестирование ==&lt;br /&gt;
&lt;br /&gt;
Создадим файл с координатами двух точек '''pt34.dat''' на эллипсоиде:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
21 51&lt;br /&gt;
21 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1.0000421773 +x_0=0 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-55539.071      42936.465&lt;br /&gt;
-124171.432     -44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=-90 +k_0=1.0000421773 +x_0=-180300 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-124760.929     -42936.465&lt;br /&gt;
-56128.568      44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Калькулятор подтверждает, что:&lt;br /&gt;
* суммы координат ''x'' соответствующих точек равны ''−L''&lt;br /&gt;
* суммы координат ''y'' соответствующих точек равны нулю&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
&lt;br /&gt;
Рассмотренный способ построения проекции прост, поскольку позволяет заменить знание математической картографии обращением к '''PROJ.4''', который используется как чёрный ящик.&lt;br /&gt;
&lt;br /&gt;
В косой проекции Меркатора масштаб отображения вдоль начальной линии не является постоянным, поскольку при изменении широты меняется кривизна сечения эллипсоида. Это несущественно для объектов длиной в несколько километров, но становится заметным при очень больших длинах. Чтобы уменьшить эффект, центр проекции располагают в середине линии.&lt;br /&gt;
&lt;br /&gt;
В этом случае задача построения проекции по двум точкам усложняется: центр проекции нужно поместить на дугу большого круга, проходящего через конечные точки. Пожалуй, всё же проще использовать для решения таких задач сферическую тригонометрию на апосфере.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21056</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21056"/>
		<updated>2014-11-21T20:04:41Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять требованиям геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них этот неприятный момент имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и должно быть. Координаты второй точки отличаются от ожидаемых значений −''L'' и 0. Ненулевая величина ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
Последнее предложение имеет особый смысл для выбора способа построения МСК-2. Если выбрать способ, изложенный для МСК-1, только с центром проекции во второй точке и опорой на азимут ''α''₂₁, выяснится, что апосфера во втором случае будет не та, что в первом, и большие круги, проходящие через две точки, не совпадают. Правда, разница незаметна, пока расстояние не достигает величин в несколько десятков километров.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если нужна пара взаимоувязанных МСК, вторая система строится на параметрах первой. Параметр ''gamma'' изменяем на 180°, параметру ''x_0'' присваиваем значение ''−L'', всего-то и делов.&lt;br /&gt;
&lt;br /&gt;
== Тестирование ==&lt;br /&gt;
&lt;br /&gt;
Создадим файл с координатами двух точек '''pt34.dat''' на эллипсоиде:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
21 51&lt;br /&gt;
21 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1.0000421773 +x_0=0 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-55539.071      42936.465&lt;br /&gt;
-124171.432     -44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=-90 +k_0=1.0000421773 +x_0=-180300 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-124760.929     -42936.465&lt;br /&gt;
-56128.568      44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Калькулятор подтверждает, что:&lt;br /&gt;
* суммы координат ''x'' соответствующих точек равны ''−L''&lt;br /&gt;
* суммы координат ''y'' соответствующих точек равны нулю&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
&lt;br /&gt;
Рассмотренный способ построения проекции прост, поскольку позволяет заменить знание математической картографии обращением к '''PROJ.4''', который используется как чёрный ящик.&lt;br /&gt;
&lt;br /&gt;
В косой проекции Меркатора масштаб отображения вдоль начальной линии не является постоянным, поскольку при изменении широты меняется кривизна сечения эллипсоида. Это несущественно для объектов длиной в несколько километров, но становится заметным при очень больших длинах. Чтобы уменьшить эффект, центр проекции располагают в середине линии.&lt;br /&gt;
&lt;br /&gt;
В этом случае задача построения проекции по двум точкам усложняется: центр проекции нужно поместить на дугу большого круга, проходящего через конечные точки. Пожалуй, всё же проще использовать для решения таких задач сферическую тригонометрию на апосфере.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21055</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21055"/>
		<updated>2014-11-21T18:09:13Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять требованиям геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них этот неприятный момент имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых значений −''L'' и 0. Ненулевая величина ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
Последнее предложение имеет особый смысл для выбора способа построения МСК-2. Если выбрать способ, изложенный для МСК-1, только с центром проекции во второй точке и опорой на азимут ''α''₂₁, выяснится, что апосфера во втором случае будет не та, что в первом, и большие круги, проходящие через две точки, не совпадают. Правда, разница незаметна, пока расстояние не достигает величин в несколько десятков километров.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если нужна пара взаимоувязанных МСК, вторая система строится на параметрах первой. Параметр ''gamma'' изменяем на 180°, параметру ''x_0'' присваиваем значение ''−L'', всего-то и делов.&lt;br /&gt;
&lt;br /&gt;
== Тестирование ==&lt;br /&gt;
&lt;br /&gt;
Создадим файл с координатами двух точек '''pt34.dat''' на эллипсоиде:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
21 51&lt;br /&gt;
21 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1.0000421773 +x_0=0 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-55539.071      42936.465&lt;br /&gt;
-124171.432     -44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=-90 +k_0=1.0000421773 +x_0=-180300 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-124760.929     -42936.465&lt;br /&gt;
-56128.568      44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Калькулятор подтверждает, что:&lt;br /&gt;
* суммы координат ''x'' соответствующих точек равны ''−L''&lt;br /&gt;
* суммы координат ''y'' соответствующих точек равны нулю&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
&lt;br /&gt;
Рассмотренный способ построения проекции прост, поскольку позволяет заменить знание математической картографии обращением к '''PROJ.4''', который используется как чёрный ящик.&lt;br /&gt;
&lt;br /&gt;
В косой проекции Меркатора масштаб отображения вдоль начальной линии не является постоянным, поскольку при изменении широты меняется кривизна сечения эллипсоида. Это несущественно для объектов длиной в несколько километров, но становится заметным при очень больших длинах. Чтобы уменьшить эффект, центр проекции располагают в середине линии.&lt;br /&gt;
&lt;br /&gt;
В этом случае задача построения проекции по двум точкам усложняется: центр проекции нужно поместить на дугу большого круга, проходящего через конечные точки. Пожалуй, всё же проще использовать для решения таких задач сферическую тригонометрию на апосфере.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21054</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21054"/>
		<updated>2014-11-21T18:06:54Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Решение обратной геодезической задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять требованиям геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них этот неприятный момент имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
Последнее предложение имеет особый смысл для выбора способа построения МСК-2. Если выбрать способ, изложенный для МСК-1, только с центром проекции во второй точке и опорой на азимут ''α''₂₁, выяснится, что апосфера во втором случае будет не та, что в первом, и большие круги, проходящие через две точки, не совпадают. Правда, разница незаметна, пока расстояние не достигает величин в несколько десятков километров.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если нужна пара взаимоувязанных МСК, вторая система строится на параметрах первой. Параметр ''gamma'' изменяем на 180°, параметру ''x_0'' присваиваем значение ''−L'', всего-то и делов.&lt;br /&gt;
&lt;br /&gt;
== Тестирование ==&lt;br /&gt;
&lt;br /&gt;
Создадим файл с координатами двух точек '''pt34.dat''' на эллипсоиде:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
21 51&lt;br /&gt;
21 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1.0000421773 +x_0=0 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-55539.071      42936.465&lt;br /&gt;
-124171.432     -44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=-90 +k_0=1.0000421773 +x_0=-180300 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-124760.929     -42936.465&lt;br /&gt;
-56128.568      44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Калькулятор подтверждает, что:&lt;br /&gt;
* суммы координат ''x'' соответствующих точек равны ''−L''&lt;br /&gt;
* суммы координат ''y'' соответствующих точек равны нулю&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
&lt;br /&gt;
Рассмотренный способ построения проекции прост, поскольку позволяет заменить знание математической картографии обращением к '''PROJ.4''', который используется как чёрный ящик.&lt;br /&gt;
&lt;br /&gt;
В косой проекции Меркатора масштаб отображения вдоль начальной линии не является постоянным, поскольку при изменении широты меняется кривизна сечения эллипсоида. Это несущественно для объектов длиной в несколько километров, но становится заметным при очень больших длинах. Чтобы уменьшить эффект, центр проекции располагают в середине линии.&lt;br /&gt;
&lt;br /&gt;
В этом случае задача построения проекции по двум точкам усложняется: центр проекции нужно поместить на дугу большого круга, проходящего через конечные точки. Пожалуй, всё же проще использовать для решения таких задач сферическую тригонометрию на апосфере.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21053</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21053"/>
		<updated>2014-11-21T17:24:24Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Вторая проекция */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять требованиям геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
Последнее предложение имеет особый смысл для выбора способа построения МСК-2. Если выбрать способ, изложенный для МСК-1, только с центром проекции во второй точке и опорой на азимут ''α''₂₁, выяснится, что апосфера во втором случае будет не та, что в первом, и большие круги, проходящие через две точки, не совпадают. Правда, разница незаметна, пока расстояние не достигает величин в несколько десятков километров.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если нужна пара взаимоувязанных МСК, вторая система строится на параметрах первой. Параметр ''gamma'' изменяем на 180°, параметру ''x_0'' присваиваем значение ''−L'', всего-то и делов.&lt;br /&gt;
&lt;br /&gt;
== Тестирование ==&lt;br /&gt;
&lt;br /&gt;
Создадим файл с координатами двух точек '''pt34.dat''' на эллипсоиде:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
21 51&lt;br /&gt;
21 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1.0000421773 +x_0=0 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-55539.071      42936.465&lt;br /&gt;
-124171.432     -44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=-90 +k_0=1.0000421773 +x_0=-180300 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-124760.929     -42936.465&lt;br /&gt;
-56128.568      44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Калькулятор подтверждает, что:&lt;br /&gt;
* суммы координат ''x'' соответствующих точек равны ''−L''&lt;br /&gt;
* суммы координат ''y'' соответствующих точек равны нулю&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
&lt;br /&gt;
Рассмотренный способ построения проекции прост, поскольку позволяет заменить знание математической картографии обращением к '''PROJ.4''', который используется как чёрный ящик.&lt;br /&gt;
&lt;br /&gt;
В косой проекции Меркатора масштаб отображения вдоль начальной линии не является постоянным, поскольку при изменении широты меняется кривизна сечения эллипсоида. Это несущественно для объектов длиной в несколько километров, но становится заметным при очень больших длинах. Чтобы уменьшить эффект, центр проекции располагают в середине линии.&lt;br /&gt;
&lt;br /&gt;
В этом случае задача построения проекции по двум точкам усложняется: центр проекции нужно поместить на дугу большого круга, проходящего через конечные точки. Пожалуй, всё же проще использовать для решения таких задач сферическую тригонометрию на апосфере.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21052</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21052"/>
		<updated>2014-11-21T17:23:07Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Решение обратной геодезической задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять требованиям геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
Последнее предложение имеет особый смысл для выбора способа построения МСК-2. Если мы выберем способ, изложенный для МСК-1, только с центром проекции во второй точке и опорой на азимут ''α''₂₁, выяснится, что апосфера во втором случае будет не та, что в первом, и большие круги, проходящие через две точки, не совпадают. Правда, разница незаметна, пока расстояние не достигает величин в несколько десятков километров.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если нужна пара взаимоувязанных МСК, вторая система строится на параметрах первой. Параметр ''gamma'' изменяем на 180°, параметру ''x_0'' присваиваем значение ''−L'', всего-то и делов.&lt;br /&gt;
&lt;br /&gt;
== Тестирование ==&lt;br /&gt;
&lt;br /&gt;
Создадим файл с координатами двух точек '''pt34.dat''' на эллипсоиде:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
21 51&lt;br /&gt;
21 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1.0000421773 +x_0=0 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-55539.071      42936.465&lt;br /&gt;
-124171.432     -44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=-90 +k_0=1.0000421773 +x_0=-180300 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-124760.929     -42936.465&lt;br /&gt;
-56128.568      44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Калькулятор подтверждает, что:&lt;br /&gt;
* суммы координат ''x'' соответствующих точек равны ''−L''&lt;br /&gt;
* суммы координат ''y'' соответствующих точек равны нулю&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
&lt;br /&gt;
Рассмотренный способ построения проекции прост, поскольку позволяет заменить знание математической картографии обращением к '''PROJ.4''', который используется как чёрный ящик.&lt;br /&gt;
&lt;br /&gt;
В косой проекции Меркатора масштаб отображения вдоль начальной линии не является постоянным, поскольку при изменении широты меняется кривизна сечения эллипсоида. Это несущественно для объектов длиной в несколько километров, но становится заметным при очень больших длинах. Чтобы уменьшить эффект, центр проекции располагают в середине линии.&lt;br /&gt;
&lt;br /&gt;
В этом случае задача построения проекции по двум точкам усложняется: центр проекции нужно поместить на дугу большого круга, проходящего через конечные точки. Пожалуй, всё же проще использовать для решения таких задач сферическую тригонометрию на апосфере.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21051</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21051"/>
		<updated>2014-11-21T17:05:37Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Заключение */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
Последнее предложение имеет особый смысл для выбора способа построения МСК-2. Если мы выберем способ, изложенный для МСК-1, только с центром проекции во второй точке и опорой на азимут ''α''₂₁, выяснится, что апосфера во втором случае будет не та, что в первом, и большие круги, проходящие через две точки, не совпадают. Правда, разница незаметна, пока расстояние не достигает величин в несколько десятков километров.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если нужна пара взаимоувязанных МСК, вторая система строится на параметрах первой. Параметр ''gamma'' изменяем на 180°, параметру ''x_0'' присваиваем значение ''−L'', всего-то и делов.&lt;br /&gt;
&lt;br /&gt;
== Тестирование ==&lt;br /&gt;
&lt;br /&gt;
Создадим файл с координатами двух точек '''pt34.dat''' на эллипсоиде:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
21 51&lt;br /&gt;
21 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1.0000421773 +x_0=0 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-55539.071      42936.465&lt;br /&gt;
-124171.432     -44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=-90 +k_0=1.0000421773 +x_0=-180300 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-124760.929     -42936.465&lt;br /&gt;
-56128.568      44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Калькулятор подтверждает, что:&lt;br /&gt;
* суммы координат ''x'' соответствующих точек равны ''−L''&lt;br /&gt;
* суммы координат ''y'' соответствующих точек равны нулю&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
&lt;br /&gt;
Рассмотренный способ построения проекции прост, поскольку позволяет заменить знание математической картографии обращением к '''PROJ.4''', который используется как чёрный ящик.&lt;br /&gt;
&lt;br /&gt;
В косой проекции Меркатора масштаб отображения вдоль начальной линии не является постоянным, поскольку при изменении широты меняется кривизна сечения эллипсоида. Это несущественно для объектов длиной в несколько километров, но становится заметным при очень больших длинах. Чтобы уменьшить эффект, центр проекции располагают в середине линии.&lt;br /&gt;
&lt;br /&gt;
В этом случае задача построения проекции по двум точкам усложняется: центр проекции нужно поместить на дугу большого круга, проходящего через конечные точки. Пожалуй, всё же проще использовать для решения таких задач сферическую тригонометрию на апосфере.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21050</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21050"/>
		<updated>2014-11-21T16:37:27Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Заключение */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
Последнее предложение имеет особый смысл для выбора способа построения МСК-2. Если мы выберем способ, изложенный для МСК-1, только с центром проекции во второй точке и опорой на азимут ''α''₂₁, выяснится, что апосфера во втором случае будет не та, что в первом, и большие круги, проходящие через две точки, не совпадают. Правда, разница незаметна, пока расстояние не достигает величин в несколько десятков километров.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если нужна пара взаимоувязанных МСК, вторая система строится на параметрах первой. Параметр ''gamma'' изменяем на 180°, параметру ''x_0'' присваиваем значение ''−L'', всего-то и делов.&lt;br /&gt;
&lt;br /&gt;
== Тестирование ==&lt;br /&gt;
&lt;br /&gt;
Создадим файл с координатами двух точек '''pt34.dat''' на эллипсоиде:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
21 51&lt;br /&gt;
21 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1.0000421773 +x_0=0 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-55539.071      42936.465&lt;br /&gt;
-124171.432     -44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=-90 +k_0=1.0000421773 +x_0=-180300 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-124760.929     -42936.465&lt;br /&gt;
-56128.568      44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Калькулятор подтверждает, что:&lt;br /&gt;
* суммы координат ''x'' соответствующих точек равны ''−L''&lt;br /&gt;
* суммы координат ''y'' соответствующих точек равны нулю&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
&lt;br /&gt;
Рассмотренный способ построения проекции прост, поскольку позволяет заменить знание математической картографии обращением к '''PROJ.4''', который используется как чёрный ящик.&lt;br /&gt;
&lt;br /&gt;
В косой проекции Меркатора масштаб отображения вдоль начальной линии не является постоянным, поскольку при изменении широты меняется кривизна сечения эллипсоида. Это несущественно для объектов длиной в несколько километров, но становится заметным при очень больших длинах. Чтобы уменьшить эффект, центр проекции располагают в середине линии. В этом случае задача построения проекции по двум точкам усложняется: центр проекции нужно поместить на дугу большого круга, проходящего через конечные точки.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21049</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21049"/>
		<updated>2014-11-21T15:48:27Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Последнее замечание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
Последнее предложение имеет особый смысл для выбора способа построения МСК-2. Если мы выберем способ, изложенный для МСК-1, только с центром проекции во второй точке и опорой на азимут ''α''₂₁, выяснится, что апосфера во втором случае будет не та, что в первом, и большие круги, проходящие через две точки, не совпадают. Правда, разница незаметна, пока расстояние не достигает величин в несколько десятков километров.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если нужна пара взаимоувязанных МСК, вторая система строится на параметрах первой. Параметр ''gamma'' изменяем на 180°, параметру ''x_0'' присваиваем значение ''−L'', всего-то и делов.&lt;br /&gt;
&lt;br /&gt;
== Тестирование ==&lt;br /&gt;
&lt;br /&gt;
Создадим файл с координатами двух точек '''pt34.dat''' на эллипсоиде:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
21 51&lt;br /&gt;
21 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1.0000421773 +x_0=0 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-55539.071      42936.465&lt;br /&gt;
-124171.432     -44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=-90 +k_0=1.0000421773 +x_0=-180300 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-124760.929     -42936.465&lt;br /&gt;
-56128.568      44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Калькулятор подтверждает, что:&lt;br /&gt;
* суммы координат ''x'' соответствующих точек равны ''−L''&lt;br /&gt;
* суммы координат ''y'' соответствующих точек равны нулю&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
&lt;br /&gt;
Рассмотренный способ построения проекции прост, поскольку позволяет заменить знание математической картографии обращением к '''PROJ.4''', который используется как чёрный ящик.&lt;br /&gt;
&lt;br /&gt;
В косой проекции Меркатора масштаб несколько меняется вдоль начальной линии, поскольку при изменении широты меняется кривизна сечения эллипсоида. Это несущественно для объектов длиной в несколько километров, но становится заметным при значительной длине территории. Чтобы уменьшить эффект, центр проекции располагают в середине линии. В этом случае задача построения проекции по двум точкам усложняется: центр проекции нужно поместить на дугу большого круга, проходящего через заданные точки.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21048</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21048"/>
		<updated>2014-11-21T12:20:18Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Последний комментарий */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
Последнее предложение имеет особый смысл для выбора способа построения МСК-2. Если мы выберем способ, изложенный для МСК-1, только с центром проекции во второй точке и опорой на азимут ''α''₂₁, выяснится, что апосфера во втором случае будет не та, что в первом, и большие круги, проходящие через две точки, не совпадают. Правда, разница незаметна, пока расстояние не достигает величин в несколько десятков километров.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если нужна пара взаимоувязанных МСК, вторая система строится на параметрах первой. Параметр ''gamma'' изменяем на 180°, параметру ''x_0'' присваиваем значение ''−L'', всего-то и делов.&lt;br /&gt;
&lt;br /&gt;
== Тестирование ==&lt;br /&gt;
&lt;br /&gt;
Создадим файл с координатами двух точек '''pt34.dat''' на эллипсоиде:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
21 51&lt;br /&gt;
21 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1.0000421773 +x_0=0 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-55539.071      42936.465&lt;br /&gt;
-124171.432     -44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=-90 +k_0=1.0000421773 +x_0=-180300 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-124760.929     -42936.465&lt;br /&gt;
-56128.568      44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Калькулятор подтверждает, что:&lt;br /&gt;
* суммы координат ''x'' соответствующих точек равны ''−L''&lt;br /&gt;
* суммы координат ''y'' соответствующих точек равны нулю&lt;br /&gt;
&lt;br /&gt;
== Последнее замечание ==&lt;br /&gt;
&lt;br /&gt;
В косой проекции Меркатора масштаб несколько меняется вдоль начальной линии, поскольку при изменении широты меняется кривизна сечения эллипсоида. Это несущественно для объектов длиной в несколько километров, но становится заметным при значительной длине территории. Чтобы уменьшить эффект, центр проекции располагают в середине линии.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21047</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21047"/>
		<updated>2014-11-21T11:44:52Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Вторая проекция */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
Последнее предложение имеет особый смысл для выбора способа построения МСК-2. Если мы выберем способ, изложенный для МСК-1, только с центром проекции во второй точке и опорой на азимут ''α''₂₁, выяснится, что апосфера во втором случае будет не та, что в первом, и большие круги, проходящие через две точки, не совпадают. Правда, разница незаметна, пока расстояние не достигает величин в несколько десятков километров.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если нужна пара взаимоувязанных МСК, вторая система строится на параметрах первой. Параметр ''gamma'' изменяем на 180°, параметру ''x_0'' присваиваем значение ''−L'', всего-то и делов.&lt;br /&gt;
&lt;br /&gt;
== Тестирование ==&lt;br /&gt;
&lt;br /&gt;
Создадим файл с координатами двух точек '''pt34.dat''' на эллипсоиде:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
21 51&lt;br /&gt;
21 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1.0000421773 +x_0=0 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-55539.071      42936.465&lt;br /&gt;
-124171.432     -44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычислим координаты в МСК-2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%.3f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=-90 +k_0=1.0000421773 +x_0=-180300 +y_0=0 +ellps=WGS84 p34.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-124760.929     -42936.465&lt;br /&gt;
-56128.568      44612.843&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Калькулятор подтверждает, что:&lt;br /&gt;
* суммы координат ''x'' соответствующих точек равны ''−L''&lt;br /&gt;
* суммы координат ''y'' соответствующих точек равны нулю&lt;br /&gt;
&lt;br /&gt;
== Последний комментарий ==&lt;br /&gt;
&lt;br /&gt;
В косой проекции Меркатора масштаб меняется вдоль начальной линии, поскольку при изменении широты меняется кривизна сечения эллипсоида. Чтобы уменьшить эффект, следует располагать центр проекции поближе к середине территории.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21046</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21046"/>
		<updated>2014-11-21T11:17:57Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Вторая проекция */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
Последнее предложение имеет особый смысл для выбора способа построения МСК-2. Если мы выберем способ, изложенный для МСК-1, только с центром проекции во второй точке и опорой на азимут ''α''₂₁, выяснится, что апосфера во втором случае будет не та, что в первом, и большие круги, проходящие через две точки, не совпадают. Правда, разница незаметна, пока расстояние не достигает величин в несколько десятков километров.&lt;br /&gt;
&lt;br /&gt;
Таким образом, если нужна пара взаимоувязанных МСК, вторая система строится на параметрах первой:&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21045</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21045"/>
		<updated>2014-11-21T11:09:01Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Вторая проекция */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
Последнее предложение имеет особый смысл для выбора способа построения МСК-2. Дело в пресловутой пикантности&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21044</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21044"/>
		<updated>2014-11-21T11:06:30Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Решение обратной геодезической задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотайна отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21043</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21043"/>
		<updated>2014-11-21T11:04:22Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Вторая проекция */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' направлена вдоль оси в сторону, противоположную направлению на первую точку. Таким образом МСК-2 развёрнута по отношению к МСК-1 на 180° и смещена вдоль оси ''OX'' на длину ''L''.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21042</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21042"/>
		<updated>2014-11-21T10:58:14Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Text */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Вторая проекция ==&lt;br /&gt;
&lt;br /&gt;
Нередко требуется вторая проекция, являющаяся зеркальным отражением первой: начало координат МСК-2 во второй точке, ось ''OX'' ''OY''&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21041</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21041"/>
		<updated>2014-11-21T10:53:43Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / (''x''₂ − ''x''₁) = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21040</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21040"/>
		<updated>2014-11-21T10:52:55Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Численные методы отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем такие координаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / |''x''₂ − ''x''₁| = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21039</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21039"/>
		<updated>2014-11-21T10:50:27Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Матметоды отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / |''x''₂ − ''x''₁| = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Проекция построена.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21038</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21038"/>
		<updated>2014-11-21T10:46:10Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Матметоды отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / |''x''₂ − ''x''₁| = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
Запуск '''proj''' с окончательным набором параметров:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6809193468 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Результаты:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000  0.000&lt;br /&gt;
-180300.000     0.000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21037</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21037"/>
		<updated>2014-11-21T10:42:16Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Матметоды отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Добавим немного геометрии в задачу и будем улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / |''x''₂ − ''x''₁| = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21036</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21036"/>
		<updated>2014-11-21T10:41:39Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Координаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах.&lt;br /&gt;
&lt;br /&gt;
Матметоды отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Однако можно добавить немножко геометрии в задачу и улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Может, это не очень эффективно, но через пять итераций при ''alpha'' = 52.6809193468 получаем&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' по формуле ''k_0'' = −''L'' / |''x''₂ − ''x''₁| = 180300 / 180292.238188 = 1.0000421773.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21035</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21035"/>
		<updated>2014-11-21T10:38:24Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Коорданаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах. Матметоды отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Однако можно добавить немножко геометрии в задачу и улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)]. Через пять итераций при ''alpha'' = 52.6809193468 получаем&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вычисляем параметр ''k_0'' = ''L'' / ∣ ''x''₂ − ''x''₁ |&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21034</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21034"/>
		<updated>2014-11-21T10:34:43Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x''₁, ''y''₁ и ''x''₂, ''y''₂ в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Координаты первой точки равны нулю, как и ожидалось. Коорданаты второй точки отличаются от ожидаемых −''L'' и 0. Ненулевое значение ''y''₂ говорит о том, что начальная линия проходит мимо второй точки. Значит, нужно подобрать параметр ''alpha'', чтобы исправить промах. Матметоды отлично справляются с поиском корня уравнения ''x''₂(''alpha'') = 0. Однако можно добавить немножко геометрии в задачу и улучшать значение параметра по формуле ''alpha''′ = ''alpha'' − arctg [(''y''₂ − ''y''₁) / (''x''₂ − ''x''₁)] = ''alpha'' − arctg (''y''₂ / ''x''₂). Через пять итераций при ''alpha'' = 52.6809193468 получаем&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.395746  0.000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21033</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21033"/>
		<updated>2014-11-21T10:11:09Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x₁'', ''y₁'' и ''x₂'', ''y₂'' в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Привет&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
\Delta \alpha &amp;amp; = \operatorname{arctg\,} \dfrac{y_2 - y_1}{x_2 - x_1} \\&lt;br /&gt;
\alpha_{i+1} &amp;amp; = \alpha_i - \Delta \alpha&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21032</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21032"/>
		<updated>2014-11-21T10:10:15Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x₁'', ''y₁'' и ''x₂'', ''y₂'' в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Привет&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
\Delta &amp;amp; = \operatorname{arctg\,} \dfrac{y_2 - y_1}{x_2 - x_1} \\&lt;br /&gt;
\alpha_{i+1} &amp;amp; = \alpha_i - \Delta&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21031</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21031"/>
		<updated>2014-11-21T10:09:24Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x₁'', ''y₁'' и ''x₂'', ''y₂'' в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Привет&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
\Delta = \operatorname{arctg\,} \dfrac{y_2 - y_1}{x_2 - x_1} \\&lt;br /&gt;
\alpha_{i+1} = \alpha_i - \Delta&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21030</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21030"/>
		<updated>2014-11-21T10:04:47Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Постановка задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x'', ''y'' в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21029</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21029"/>
		<updated>2014-11-21T10:02:11Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим файл с координатами конечных точек '''p12.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22 51&lt;br /&gt;
20 50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Выполним команду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ proj -f &amp;quot;%f&amp;quot; +proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84 p12.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Программа выдаёт координаты первой и второй точек ''x'', ''y'' в МСК:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-0.000000       0.000000&lt;br /&gt;
-180292.238188  238.386305&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21028</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21028"/>
		<updated>2014-11-21T09:35:34Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Решение обратной геодезической задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84, получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21027</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21027"/>
		<updated>2014-11-21T09:34:52Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Решение обратной геодезической задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'' из решения на сфере радиусом, равным экваториальному радиусу эллипсоида WGS 84:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21026</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21026"/>
		<updated>2014-11-21T09:25:47Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Решение обратной геодезической задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ на сфере с радиусом, равным экваториальному радиусу эллипсоида WGS 84:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии '''PROJ.4''' результатом этой команды будет решение на эллипсоиде. Сегодня же получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21025</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21025"/>
		<updated>2014-11-21T09:24:30Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ на сфере с радиусом, равным экваториальному радиусу эллипсоида WGS 84:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии результатом этой команды будет решение на эллипсоиде. Теперь же получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим черновую проекцию. Поскольку ''φ''₂ &amp;lt; ''φ''₁, имеет место второй вариант; примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21024</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21024"/>
		<updated>2014-11-21T09:22:22Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Построение проекции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ на сфере с радиусом, равным экваториальному радиусу эллипсоида WGS 84:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии результатом этой команды будет решение на эллипсоиде. Теперь же получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
По результатам решения ОГЗ построим проекцию. Поскольку имеет место второй вариант, примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21023</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21023"/>
		<updated>2014-11-21T09:20:27Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Решение обратной геодезической задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ на сфере с радиусом, равным экваториальному радиусу эллипсоида WGS 84:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии результатом этой команды будет решение на эллипсоиде. Теперь же получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение проекции ===&lt;br /&gt;
&lt;br /&gt;
Построим проекцию по результатам построим проекцию. Поскольку имеет место второй вариант, примем ''alpha'' = ''α''₁₂ + 180° = 52.6051515938°, ''gamma'' = +90°. Масштабный коэффициент пока приравняем единице: ''k_0'' = 1. Получен предварительный набор параметров:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=51 +lonc=22 +alpha=52.6051515938 +gamma=90 +k_0=1 +x_0=0 +y_0=0 +ellps=WGS84&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21022</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21022"/>
		<updated>2014-11-21T09:11:44Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Решение обратной геодезической задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезии.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры «всего» в несколько километров, и для них это неприятное обстоятельство имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, надо научиться обходиться подручными средствами.&lt;br /&gt;
&lt;br /&gt;
Подготовим файл данных с координатами конечных пунктов '''inv.dat''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51N 22E 50N 20E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
и решим ОГЗ на сфере с радиусом, равным экваториальному радиусу эллипсоида WGS 84:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ geod -I -f &amp;quot;%.10f&amp;quot; -F &amp;quot;%f&amp;quot; +ellps=WGS84 +units=m inv.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возможно, в следующей версии результатом этой команды будет решение на эллипсоиде. Теперь же получилась такая строка значений ''α''₁₂, ''α''₂₁, ''S'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-127.3948484062 51.0617802663   180119.673397&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Подготовим недостающие параметры: ''alpha'' = ''α''₁₂&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21021</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21021"/>
		<updated>2014-11-21T08:48:03Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Решение обратной геодезической задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезистов.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры в несколько километров, и этот момент имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу '''PROJ.4''' версии 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21020</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21020"/>
		<updated>2014-11-21T08:46:56Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Решение обратной геодезической задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезистов.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры в несколько километров, и этот момент имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии 4.9.0 будет решать геодезические задачи на эллипсоиде, используя библиотеку '''GeographicLib'''. Но сегодня в ходу версия '''PROJ.4''' 4.8.0, и '''geod''' умеет считать только для сферы.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21019</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21019"/>
		<updated>2014-11-21T08:41:53Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Определение параметров */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Расчёты показывают, что вследствие этого точность соответствия ''alpha'' = ''α''₁₂ и ''k_0'' = ''L'' / ''S'' при расстояниях в несколько десятков километров перестаёт удовлетворять геодезистов.&lt;br /&gt;
&lt;br /&gt;
Впрочем, многие объекты имеют скромные размеры в несколько километров, и этот момент имеет исключительно теоретическое значение.&lt;br /&gt;
&lt;br /&gt;
Однако есть ещё одно обстоятельство. Утилита '''geod''' из пакета '''PROJ.4''' версии.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21018</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21018"/>
		<updated>2014-11-21T08:33:29Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Решение обратной геодезической задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Итак, из решения ОГЗ мы хотим получить азимут ''α''₁₂ и расстояние ''S'', нужные для определения параметров ''alpha'' и ''k_0'' соответственно.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга. Вследствие этого точность соответствия становится относительной.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21017</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21017"/>
		<updated>2014-11-21T08:24:08Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Определение параметров */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметру ''gamma'' присвоим значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
Значение параметра ''k_0'' также можно оценить по результатам решения обратной геодезической задачи: ''k_0'' = ''L'' / ''S'', где ''L'' — заданная длина линии, ''S'' — длина геодезической из решения ОГЗ.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Чтобы... Решение ОГЗ необходимо для определения азимута линии, соединяющей конечные точки.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21015</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21015"/>
		<updated>2014-11-21T08:07:29Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Определение параметров */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α''₁₂. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в противоположную сторону от второй точки, параметр ''gamma'' принимает значение −90° в первом случае и +90° во втором.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Чтобы... Решение ОГЗ необходимо для определения азимута линии, соединяющей конечные точки.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21014</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21014"/>
		<updated>2014-11-21T08:04:22Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Постановка задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с первой точкой, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α₁₂''. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в сторону, противоположную направлению от второй точки, −90° −90°&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Чтобы... Решение ОГЗ необходимо для определения азимута линии, соединяющей конечные точки.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21013</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21013"/>
		<updated>2014-11-21T08:03:18Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Определение параметров */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с одной из этих точек, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''alpha'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α₁₂''. Здесь возможны два случая:&lt;br /&gt;
* вторая точка севернее первой, −90° &amp;lt; ''α''₁₂ &amp;lt; +90°; ''alpha'' = ''α''₁₂&lt;br /&gt;
* вторая точка южнее первой, 90° &amp;lt; ''α''₁₂ &amp;lt; 270°; ''alpha'' = ''α''₁₂ − 180°&lt;br /&gt;
&lt;br /&gt;
Поскольку поставлена задача направить ось ''OX'' вдоль начальной линии в сторону, противоположную направлению от второй точки, −90° −90°&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Чтобы... Решение ОГЗ необходимо для определения азимута линии, соединяющей конечные точки.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21012</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21012"/>
		<updated>2014-11-21T07:54:19Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Определение параметров */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с одной из этих точек, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''α'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α₁₂''. Если вторая точка расположена южнее первой, азимут будет в диапазоне 90° &amp;lt; ''α''₁₂ &amp;lt; 270°. Если вторая точка расположена южнее первой, азимут будет в диапазоне 90° &amp;lt; ''α''₁₂ &amp;lt; 270°.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Чтобы... Решение ОГЗ необходимо для определения азимута линии, соединяющей конечные точки.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21011</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21011"/>
		<updated>2014-11-21T07:53:08Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Определение параметров */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с одной из этих точек, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''α'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α₁₂''. Если вторая точка расположена южнее первой, азимут будет в диапазоне 90° &amp;lt; ''α''₁₂ &amp;lt; 270°.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Чтобы... Решение ОГЗ необходимо для определения азимута линии, соединяющей конечные точки.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21010</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21010"/>
		<updated>2014-11-21T07:52:10Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Определение параметров */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с одной из этих точек, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для определения параметра ''α'' нужно решить обратную геодезическую задачу и найти азимут в первой точке на вторую ''α₁₂''. Если вторая точка расположена южнее первой, азимут будет в диапазоне.&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Чтобы... Решение ОГЗ необходимо для определения азимута линии, соединяющей конечные точки.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21009</id>
		<title>Местная система координат линейного объекта</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%9C%D0%B5%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=21009"/>
		<updated>2014-11-21T07:16:29Z</updated>

		<summary type="html">&lt;p&gt;ErnieBoyd: /* Определение параметров */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|Конструирование проекции для представления системы координат линейного объекта в ГИС}}&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
Система координат линейного объекта строится для эксплуатации протяжённого инженерного сооружения.&lt;br /&gt;
Принципы построения проекции сходны с классическим подходом, изложенным в статье [http://gis-lab.info/qa/local-cs.html «Добавление местной координатной системы в GIS»].&lt;br /&gt;
Однако постановка задачи отличается.&lt;br /&gt;
&lt;br /&gt;
== Постановка задачи ==&lt;br /&gt;
&lt;br /&gt;
На оси сооружения задана линия положением двух его конечных точек в глобальной системе координат (ГСК).&lt;br /&gt;
&lt;br /&gt;
Пусть в местной системе (МСК) начало координат совмещено с одной из этих точек, расстояние между точками задано величиной ''L'', а ось ''OX'' направлена вдоль оси сооружения наружу. В такой системе координаты второй точки будут равны ''X'' = −''L'', ''Y'' = 0.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
X &amp;amp; = -L \\&lt;br /&gt;
Y &amp;amp; = 0&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Требуется подобрать проекцию, подходящую для представления такой МСК в ГИС.&lt;br /&gt;
&lt;br /&gt;
== О проекции ==&lt;br /&gt;
&lt;br /&gt;
Выбор проекции однозначен. Это косая проекция Меркатора с такими значениями параметров, чтобы так называемая начальная линия (линия наименьшего масштаба) проходила через конечные точки, а расстояние между этими точками равнялось ''L''.&lt;br /&gt;
&lt;br /&gt;
Для косой проекции Меркатора задаются следующие параметры:&lt;br /&gt;
* широта и долгота центра проекции ''φ''₀, ''λ''₀&lt;br /&gt;
* азимут начальной линии ''α''&lt;br /&gt;
* разворот координатных осей ''γ''&lt;br /&gt;
* масштаб на начальной линии ''k''₀&lt;br /&gt;
* прямоугольные координаты в центре проекции ''x''₀, ''y''₀&lt;br /&gt;
&lt;br /&gt;
Азимут начальной линии должен находиться в диапазоне −90° &amp;lt; ''α'' &amp;lt; +90°. Таким образом, если разворот ''γ'' не задан, ось ''OY'' будет направлена вдоль начальной линии в северную полуплоскость, ''OX'' в восточную.&lt;br /&gt;
&lt;br /&gt;
Азимут ''α'' не может равняться 0°. Если ось направлена вдоль меридиана, выбирайте проекцию Гаусса-Крюгера. Также ''α'' не может принимать значения ±90°. Это тоже не проблема, поскольку в окрестности таких значений азимут вдоль геодезической линии меняется довольно быстро, и можно выбрать центр проекции на некотором удалении от первоначально выбранной точки.&lt;br /&gt;
&lt;br /&gt;
Разворот ''γ'' первоначально вводился для компенсации начального разворота осей, чтобы вернуть оси ''OY'' направление строго на север. Для нас это великолепная возможность управлять ориентацией осей МСК произвольно.&lt;br /&gt;
&lt;br /&gt;
== Определение параметров ==&lt;br /&gt;
&lt;br /&gt;
Приведём данные тестового примера. Осевая линия задана положением конечных точек на эллипсоиде WGS 84: ''φ''₁ = 51° с.ш., ''λ''₁ = 22° в.д., ''φ''₂ = 50° с.ш., ''λ''₂ = 20° в.д. Расстояние вдоль оси задано длиной ''L'' = 180300 м.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим последовательность решения задачи с использованием '''PROJ.4'''. Вид строки параметров таков:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+proj=omerc +lat_0=φ₀ +lonc=λ₀ +alpha=α +gamma=γ +k_0=k₀ +x_0=x₀ +y_0=y₀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Простой подход состоит в том, чтобы поместить центр проекции в первую точку. В соответствии с постановкой задачи определяются следующие параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+lat_0=51 +lonc=22 +x_0=0 +y_0=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы найти&lt;br /&gt;
&lt;br /&gt;
=== Решение обратной геодезической задачи ===&lt;br /&gt;
&lt;br /&gt;
Чтобы... Решение ОГЗ необходимо для определения азимута линии, соединяющей конечные точки.&lt;br /&gt;
&lt;br /&gt;
Пикантность ситуации придаёт тот факт, что на эллипсоиде через две точки проходит геодезическая линия, которая в блестящей математике косой проекции сэра Мартина Хотина отображается в кривую на апосфере, не совпадающую с дугой большого круга.&lt;br /&gt;
&lt;br /&gt;
== Text ==&lt;br /&gt;
&lt;br /&gt;
Text&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://pubs.usgs.gov/pp/1395/report.pdf Map Projections — A Working Manual, Snyder J. P., USGS Professional Paper 1395, 1987]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/guid7.html Coordinate Conversions and Transformations including Formulas, EPSG Guidance Note 7, 2002]&lt;br /&gt;
* [http://remotesensing.org/geotiff/proj_list/hotine_oblique_mercator.html Hotine Oblique Mercator]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_proj man_proj – PROJ.4]&lt;br /&gt;
* [http://trac.osgeo.org/proj/wiki/man_geod man_geod – PROJ.4]&lt;br /&gt;
* [http://geographiclib.sourceforge.net/ GeographicLib]&lt;br /&gt;
* [http://gis-lab.info/qa/local-cs.html Добавление местной координатной системы в GIS]&lt;/div&gt;</summary>
		<author><name>ErnieBoyd</name></author>
	</entry>
</feed>