Search code, repositories, users, issues, pull requests

Решение прямых геодезических задач с примером

Исходные данные для расчетов

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

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

– горизонтальные углы пунктов;

– измеренное расстояние между ними;

– координаты пункта ГГС или опорной сети;

– значение исходного дирекционного угла.

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

Приращение координат и их увязка

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

\(\Delta X=d\cdot cos \alpha \)

\(\Delta Y=d\cdot sin \alpha \)

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

\(f_{X}=\sum \Delta X_{выч}-\sum \Delta X_{теор};\sum \Delta X_{теор}=0\)

\(f_{Y}=\sum \Delta Y_{выч}-\sum \Delta Y_{теор};\sum \Delta Y_{теор}=0\)

\(\sum \Delta X_{выч},\sum \Delta Y_{выч}\) – суммы приращений, рассчитанные с учетом знаков для замкнутого и разомкнутого хода;

\(\sum \Delta X_{теор},\sum \Delta Y_{теор}\) – теоретические суммы приращений.

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

  1. Абсолютное значение:

\(f_{p}=\sqrt{f_{x}^2+f_{y}^2}\)

  1. Относительное

\(f_{отн}=\frac{f_{абс}}{P}\)

P – периметр хода, полученный суммированием всех его сторон.

Допустимая невязка должна удовлетворять условие 1/2000, а при соответствии выражению \(|f_{отн}|\leq |f_{доп}|\) выполняют ее распределение с противоположным знаком. Однако перед этим рассчитывают поправки приращений, которые определяют для каждой стороны:

\(\delta _{x_{i}}=-\frac{f_{x}d_{i}}{P}\);\(\delta _\Delta {y_{i}}=-\frac{f_{y}d_{i}}{P}\)

\(\delta _{x_{i}},\delta _{y_{i}}\)– значения поправок в приращениях.

Чтобы упростить дальнейшие расчеты поправки, необходимо округлить их до 0,01 м.

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

\(f_{X}=\sum \Delta X_{выч}-\sum \Delta X_{теор};   \sum \Delta X_{теор}=x_{B}-x_{A}\)

\(f_{Y}=\sum \Delta Y_{выч}-\sum \Delta Y_{теор};   \sum \Delta Y_{теор}=y_{B}-y_{A}\)

Для обоих ходов поправки имеют противоположный приращению знак. Уравнивание выполнено верно, если сумма исправленных приращений равна или максимально приближена к нулю.

Вычисление дирекционных углов

По известному дирекционному углу an и по исправленным горизонтальным углам bиспр вычисляются дирекционные углы остальных сторон теодолитного хода по формулам для правых горизонтальных углов:

– дирекционный угол последующей стороны равен дирекционному углу предыдущей стороны плюс 180° и минус исправленный горизонтальный угол правый по ходу.

Величина дирекционного угла не может превышать 360° и быть меньше 0°. Если величина дирекционного угла больше 360°, то из результата вычислений необходимо вычесть 360° (см. пример).

Контроль вычисления дирекционных углов. В замкнутом теодолитном ходе в результате вычислений получается дирекционный угол исходной стороны.

Пример вычисления дирекционных углов:

Дирекционный угол исходной стороны a1-2равен 45°45¢.

При вычислении дирекционного угла получилось значение 405°45¢. Из полученного значения вычитается 360°.

Контроль вычисления дирекционных углов получился.

Все результаты вычислений заносятся в таблицу «Ведомость вычисления координат» (табл. 2).

1.3 Вычисление приращений координат

Вычисление приращений координат выполняется по формулам:

,

где d – горизонтальное проложение (длина) линии; a – дирекционный угол этой линии.

Приращения координат вычисляются с точностью два знака после запятой.

Пример вычисления приращений координат:

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

1.4 Уравнивание линейных измерений

Разность между суммой вычисленных приращений координат и теоретической суммой называется линейной невязкой хода и обозначается fХ и fY. Уравнивание линейных измерений выполняется по осям Х и Y.

Линейная невязка вычисляется по формулам:

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

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

,

где Р – периметр хода (сумма длин сторон), м.

Относительная невязка сравнивается с допустимой .

В случае, когда полученная относительная невязка допустима, т.е. , то вычисляются поправки в приращения координат пропорционально длинам сторон. Невязки распределяются с обратным знаком. Если , то проверяются вычисления в п. 3.3 и 3.4.

Поправки в приращения координат dX и dY вычисляются по формулам с округлением до 0,01 м:

,

где dX и dY – поправка в приращение по оси Х и Y, соответственно, м; fX и fY – невязки по осям, м; Р – периметр (сумма сторон), м; di – измеренная длина (горизонтальное проложение), м.

Знак у поправки противоположен знаку невязки. Поправки записываются в «Ведомость вычисления координат». В примере (табл. 6) поправки показаны красным цветом.

После вычисления поправок следует сделать проверку, т.е. сложить все поправки. Если их сумма будет равна невязке с обратным знаком, то распределение невязки выполнено правильно. То есть:

Вычисляются исправленные приращения.

Полученные поправки алгебраически прибавляются к соответствующим приращениям и получаются исправленные приращения:

Контроль: сумма исправленных приращений в замкнутом теодолитном ходе должна равняться нулю, т.е. должно выполняться равенство:

Пример вычисления линейной невязки:

Пример вычисления поправок в приращения координат:

Контроль .

Контроль .

Поправки записываются в «Ведомость вычисления координат» над вычисленными приращениями. В примере поправки показаны красным цветом (Табл. 2).

Пример вычисления исправленных приращений координат:

Контроль ; Контроль .

Сумма исправленных приращений равна нулю, т.е. контроль выполняется.

Нанесение точек на план и его оформление

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

  1. Создание координатной сетки. Ход необходимо равномерно отобразить на плане, поэтому сначала определяют середину листа. Через весь лист проводят два диагональных отрезка, от которых и будет строиться сетка, состоящая из отрезков по 10 см. Допускается погрешность не более 0,2 мм. Определить их количество можно по формуле:

\(N_{X}=(x_{max}-x_{min})/200\)

\(N_{Y}=(y_{max}-y_{min})/200\)

\(x_{max},y_{max}\) – наибольшие значения координат, увеличенные до большего значения, которое кратное 200.

\(x_{min},y_{min}\) – наименьшее значение, но уменьшенное и кратное 200.

200 – длина стороны квадрата в метрах , которая в плане равна 10 см.

  1. Обозначение точек на плане. Лучше всего подходят для нанесения координат пунктов на план циркуль и масштабная линейка. Соседние вершины должны иметь такое же расстояние и дирекционный угол, как записано в ведомости.
  2. Нанесение ситуации на план. Участки снимаемой местности в процессе полевых работ отображают на специальном схематическом бланке – абрисе. В дальнейшем их используют для переноса контуров, линий и вершин точек. Ситуация изображается на планах и картах специальными обозначениями – условными знаками.
  3. Оформление плана в соответствии с требованиями. Все топографические материалы должны строго соответствовать нормативным документам. В частности, нужно выдерживать заданные очертания и их размеры. Должны присутствовать пояснительные надписи, легенда, а также указан масштаб.

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

[править] Пример программной реализации

Исходники вышеприведённых функций можно найти в архиве Sph.zip в файле sph.c. Кроме того, в файл sph.h включены следующие определения:

#define A_E 6371.0				// радиус Земли в километрах
#define Degrees(x) (x * 57.29577951308232)	// радианы -> градусы
#define Radians(x) (x / 57.29577951308232)	// градусы -> радианы

Теперь напишем программу, которая обращается к функции SphereInverse для решения обратной задачи:

#include <stdio.h>
#include <stdlib.h>
#include "sph.h"
 
int main(int argc, char *argv)
{
  char buf1024;
  double pt12, pt22;
  double lat1, lon1, lat2, lon2, azi1, azi2, dist;
 
  while (fgets(buf, 1024, stdin) != NULL) {
    sscanf(buf, "%lf %lf %lf %lf", &lat1, &lon1, &lat2, &lon2);
    pt1 = Radians(lat1);
    pt11 = Radians(lon1);
    pt2 = Radians(lat2);
    pt21 = Radians(lon2);
    SphereInverse(pt2, pt1, &azi2, &dist);		// Решение обратной задачи
    SphereInverse(pt1, pt2, &azi1, &dist);		// Вычисление обратного азимута
    printf("%f\t%f\t%.4f\n", Degrees(azi1), Degrees(azi2), dist * A_E);
  }
  return ;
}

В архиве Sph.zip этот код находится в файле inv.c. Создадим исполняемый модуль inv компилятором gcc:

$ gcc -o inv inv.c sph.c -lm

Впрочем, в архиве есть Makefile. Для MS Windows готовую программу inv.exe можно найти в архиве Sph-win32.zip.

Программа читает данные из стандартного ввода консоли и отправляет результаты на стандартный вывод. Для чтения и записи файлов используются символы перенаправления потока «>» и «<» соответственно. Из каждой строки ввода программа считывает координаты двух точек φ₁, λ₁, φ₂, λ₂, которые должны быть в градусах, решает обратную задачу и записывает в строку вывода α₁, α₂, s (азимуты прямого и обратного направлений в градусах; расстояние между пунктами в километрах, а точнее, в единицах, определённых константой A_E).

Создадим файл inv.dat, содержащий одну строку данных:

30 0 52 54

После запуска программы

$ inv < inv.dat

получим α₁, α₂, s:

44.804060 262.415109 5001.1309

В архиве Sph-py.zip находятся скрипты на языке Питон. Выполнение скрипта в командной консоли:

$ python inv.py inv.dat

Шаг 1: Сбор и обработка данных

Сбор данных

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

Обработка данных

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

Пример

Рассмотрим пример прямой геодезической задачи: необходимо найти координаты точки B, зная координаты точки A, расстояние AB и угол между линиями AB и осью север-юг.

Сбор данных:

  • Измеряем координаты точки A (широта и долгота) с помощью GPS.
  • Измеряем расстояние AB с помощью тахеометра.
  • Измеряем угол с помощью теодолита.

Обработка данных:

  • Используем формулы прямых геодезических задач для вычисления координат точки B на основе данных, полученных на предыдущем шаге.
  • Проверяем полученные результаты с помощью специализированного программного обеспечения и стандартных норм.

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

Подробная инструкция по решению прямой геодезической задачи

Для решения данной задачи можно использовать формулу, известную как формула гаверсинусов:

  1. Запишите широту и долготу первой точки (широта1 и долгота1) и широту и долготу второй точки (широта2 и долгота2).
  2. Преобразуйте широту и долготу каждой точки из градусов в радианы, используя формулу: радианы = градусы * (π / 180).
  3. Используйте формулу гаверсинусов для вычисления расстояния между точками, где R — радиус Земли: расстояние = 2 * R * arcsin(sqrt(sin^2((широта2 — широта1) / 2) + cos(широта1) * cos(широта2) * sin^2((долгота2 — долгота1) / 2))).
  4. Для определения направления (азимута) от первой точки к второй можно использовать формулу атангенса: азимут = atan2(sin(долгота2 — долгота1) * cos(широта2), cos(широта1) * sin(широта2) — sin(широта1) * cos(широта2) * cos(долгота2 — долгота1))

При решении задачи необходимо помнить, что значения широты и долготы должны быть выражены в одной единице измерения (обычно в градусах) и что значения должны быть в диапазоне:

  • Широта: от -90 градусов до 90 градусов
  • Долгота: от -180 градусов до 180 градусов

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

Как вычислить координаты точек хода

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

Значение следующего пункта хода вычисляют суммированием предыдущего пункта и исправленного приращения. Это наглядно отображено в формуле:

\(X_{n}=X_{n-1}+\Delta X _{n-1(испр)}\)

\(Y_{n}=Y_{n-1}+\Delta Y _{n-1(испр)}\)

\(X_{n-1},Y_{n-1}\) – координатные значения предыдущего пункта

\(\Delta X_{теор}=x_{B}-x_{A},\Delta Y_{теор}=y_{B}-y_{A}\) – исправленные приращения.

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

Построение плана

_______
Построение плана выполняются в следующей последовательности:1) построение координатной сетки,2) нанесение вершин теодолитного хода по координатам,3) нанесение на план контуров местности,4) оформление плана.

8.1. Построение координатной сетки

_______
Координатная сетка строится обычно со стороной 10х10 см.
Используется два способа:

_______1) построение сетки с помощью линейки Дробышева:

_______
Построение сетки основано на построении прямоугольного треугольника с катетами 50×50 см и гипотенузой 70,711 см;

2) построение сетки с помощью циркуля, измерителя и масштабной линейки:

_______
Этот способ применяется при размере плана меньше, чем 50 см. Сетка контролируется путем сравнения длин сторон или диагоналей квадратов. Допустимое отклонение – 0,2 мм. Построенную сетку подписывают координатами так, чтобы участок поместился.

_______
Вершины теодолитного хода наносятся на план по координатам относительно сетки с помощью измерителя и поперечного масштаба.

_______
Контроль правильности построения точек выполняется по известным расстояниям между точками. Допустимое расхождение – 0,3 мм в масштабе плана.

_______
Например: 1:2000 – 0,6 м.

_______
Контуры местности наносятся на план в соответствии с абрисами.

_______
Оформление плана выполняется в строгом соответствии с условными знаками, установленными для данного масштаба.

Инструкция по прохождению теста

  • Выберите один из вариантов в каждом из 10 вопросов;
  • Нажмите на кнопку «Показать результат»;
  • Скрипт не покажет результат, пока Вы не ответите на все вопросы;
  • Загляните в окно рядом с номером задания. Если ответ правильный, то там (+). Если Вы ошиблись, там (-).
  • За каждый правильный ответ начисляется 1 балл;
  • Оценки: менее 5 баллов — НЕУДОВЛЕТВОРИТЕЛЬНО, от 5 но менее 7.5 — УДОВЛЕТВОРИТЕЛЬНО, 7.5 и менее 10 — ХОРОШО, 10 — ОТЛИЧНО;
  • Чтобы сбросить результат тестирования, нажать кнопку «Сбросить ответы»;

Примеры

Решение прямой геодезической задачи

Для решения прямой геодезической задачи, неоходимо создать объект класса .

var directEllipsoid = new DirectProblemService(new Ellipsoid());
var directSpheroid = new DirectProblemService(new Spheroid());

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

Для решения прямой задачи вызвать метод , в который передать в качестве параметров, начальную точку, азимут = направление и расстояние:

var point1 = new Point(15, 25, 53, CardinalLongitude.W, 28, 7, 38, CardinalLatitude.N);
var azimuth = 21;
var distance = 2000;
var directAnswer = directEllipsoid.DirectProblem(point1, azimuth, distance);

Ответ содержит вторую точку ортодромии и обратный азимут .

Решение обратной геодезической задачи

Для решения обратной геодезической задачи, неоходимо создать объект класса .

var inverseEllipsoid = new InverseProblemService(new Ellipsoid());
var inverseSpheroid = new InverseProblemService(new Spheroid());

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

Для решения обратной задачи вызвать метод , в который передать в качестве параметров, две точки:

var point1 = new Point(15, 25, 53, CardinalLongitude.W, 28, 7, 38, CardinalLatitude.N);
var point2 = new Point(59, 36, 30, CardinalLongitude.W, 13, 5, 46, CardinalLatitude.N);
var inverseAnswer = inverseEllipsoid.OrthodromicDistance(point1, point2);

Ответ содержит прямой и обратный азимуты , , а также расстояние между точками .

Вычисление точки пересечения ортодромий

Для вычисления точки пересечения ортодромий, неоходимо создать объект класса .

var intersectEllipsoid = new IntersectService(new Ellipsoid());
var intersectSpheroid = new IntersectService(new Spheroid());

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

Для рассчёта вызвать метод , в который передать в качестве параметров, по две точки для каждой из двух ортодромий:

var point1 = new Point(22, 36, 30, CardinalLongitude.E, 13, 5, 46, CardinalLatitude.N);
var point2 = new Point(27, 25, 53, CardinalLongitude.E, 15, 7, 38, CardinalLatitude.N);
var point3 = new Point(20, 36, 30, CardinalLongitude.E, 17, 5, 46, CardinalLatitude.N);
var point4 = new Point(26, 25, 53, CardinalLongitude.E, 13, 7, 38, CardinalLatitude.N);
var intersectCoord = intersectEllipsoid.IntersectOrthodromic(point1, point2, point3, point4);

Ответом будет точка — объект класса , в котором определены долгота и широта, в десятичных градуса (,) или в радианах (,).

Вычисление широты по долготе или долготы по широте

Для рассчётов, неоходимо создать объект класса .

var intermediateEllipsoid = new IntermediatePointService(new Ellipsoid());
var ntermediateSpheroid = new IntermediatePointService(new Spheroid());

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

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

var coord1 = new Point(10, 10);
var coord2 = new Point(30, 50);
var lat = intermediateEllipsoid.GetLatitude(20, coord1, coord2);

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

var coord1 = new Point(10, 10);
var coord2 = new Point(30, 50);
var lat = intermediateEllipsoid.GetLongitude(20, coord1, coord2);

В обоих случая ответом будет значение типа .

Метод средней секущей

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

Зная угловые отклонения и длину геодезического проложения между двумя точками, можно применить формулу средней секущей для определения линейной длины отрезка прямой геодезической:

S = A * L

где:

  • S — линейная длина отрезка прямой геодезической;
  • A — коэффициент средней секущей, который можно выразить через угловые отклонения и длину геодезического проложения;
  • L — длина геодезического проложения.

Метод средней секущей обеспечивает достаточно точное измерение линейной длины прямой геодезической. Однако для его применения требуется использование специальных геодезических приборов и проведение точных измерений угловых отклонений.

Основные понятия геодезии

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

Прямая геодезическая задача – это задача определения геодезического положения одной или нескольких точек на поверхности Земли по известным параметрам (например, координаты, углы) других точек.

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

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

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

Картографические материалы – графические изображения, отображающие географические объекты на поверхности Земли. Могут быть представлены в виде карт, планов, схем и других географических материалов.

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

Топография – раздел геодезии, занимающийся определением и описанием природных и искусственных объектов на поверхности Земли, их размерами, формой и положением.

Рельеф – характерный облик поверхности Земли, представляющий собой перепады высот и наклонов между точками.

[править] Алгоритм

Существует великое множество подходов к решению поставленной задачи. Рассмотрим простой и надёжный векторный метод.

Последовательность решения:

  1. преобразовать углы (90° − σ) и (180° − α₁) в декартовы координаты,
  2. развернуть координатные оси вокруг оси Y на угол (φ₁ − 90°),
  3. развернуть координатные оси вокруг оси Z на угол −λ₁,
  4. преобразовать декартовы координаты в сферические.

Если третий пункт пропустить, на выходе вместо долготы λ₂ получится разность долгот (λ₂ − λ₁), что упростит алгоритм. Останется только прибавить долготу первого пункта. С другой строны, благодаря третьему пункту долгота λ₂ всегда будет в диапазоне .

Пример реализации алгоритма в виде функции языка Си:

/*
 * Решение прямой геодезической задачи
 *
 * Аргументы исходные:
 *     pt1  - {широта, долгота} точки Q1
 *     azi  - азимут начального направления
 *     dist - расстояние (сферическое)
 *
 * Аргументы определяемые:
 *     pt2  - {широта, долгота} точки Q2
 */
void SphereDirect(double pt1, double azi, double dist, double pt2)
{
  double pt2, x3;
 
  pt = M_PI_2 - dist;
  pt1 = M_PI - azi;
  SpherToCart(pt, x);			// сферические -> декартовы
  Rotate(x, pt1 - M_PI_2, 1);	// первое вращение
  Rotate(x, -pt11, 2);		// второе вращение
  CartToSpher(x, pt2);	     		// декартовы -> сферические
 
  return;
}

Следует заметить, что прямая и обратная задача математически идентичны, и алгоритмы их решения зеркально отражают друг друга.

Преобразование сферических координат в декартовы

В данном случае в качестве сферических координат φ, λ подставим углы (90° − σ), (180° − α₁).

Реализация на Си:

/*
 * Преобразование сферических координат в вектор
 *
 * Аргументы исходные:
 *     y - {широта, долгота}
 *
 * Аргументы определяемые:
 *     x - вектор {x, y, z}
 */
void SpherToCart(double y, double x)
{
  double p;
 
  p = cos(y);
  x2 = sin(y);
  x1 = p * sin(y1);
  x = p * cos(y1);
 
  return;
}

Вращение вокруг оси

Представим оператор вращения вокруг оси X на угол θ в следующем виде:

Операторы вращения вокруг осей Y и Z получаются перестановкой символов.

Реализация вращения вокруг i-ой координатной оси на Си:

/*
 * Вращение вокруг координатной оси
 *
 * Аргументы:
 *     x - входной/выходной 3-вектор
 *     a - угол вращения
 *     i - номер координатной оси (0..2)
 */
void Rotate(double x, double a, int i)
{
  double c, s, xj;
  int j, k;
 
  j = (i + 1) % 3;
  k = (i - 1) % 3;
  c = cos(a);
  s = sin(a);
  xj = xj * c + xk * s;
  xk = -xj * s + xk * c;
  xj = xj;
 
  return;
}

Преобразование декартовых координат в сферические

В данном случае в роли сферических координат φ, λ окажутся φ₂, λ₂.

Реализация на Си:

/*
 * Преобразование вектора в сферические координаты
 *
 * Аргументы исходные:
 *     x - {x, y, z}
 *
 * Аргументы определяемые:
 *     y - {широта, долгота}
 *
 * Возвращает:
 *     длину вектора
 */
double CartToSpher(double x, double y)
{
  double p;
 
  p = hypot(x, x1);
  y1 = atan2(x1, x);
  y = atan2(x2, p);
 
  return hypot(p, x2);
}

Шаг 3: Вычисление азимута

Для вычисления азимута необходимо знать координаты начальной и конечной точек, а также угол, образованный прямой, проходящей через эти точки, с направлением севера. Азимут измеряется от 0° до 360° в положительном направлении по часовой стрелке.

Азимут можно вычислить с помощью формулы:

Az = atan2(sin(lon2-lon1)*cos(lat2), cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon2-lon1))

Где:

  • Az — азимут
  • lon1 — долгота начальной точки
  • lon2 — долгота конечной точки
  • lat1 — широта начальной точки
  • lat2 — широта конечной точки

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

Уравнивание приращений координат

_______Уравниванием называется совокупность математических операций, выполняемых для получения вероятнейшего значения геодезических координат точек земной поверхности и для оценки точности результатов измерений.

_______
Уравнивание проводится для устранения невязок, обусловленных наличием ошибок в избыточно измеренных величинах, и для определения вероятнейших значений искомых неизвестных или их значений, близких к вероятнейшим. В процессе уравнвиания это достигается путём определения поправок к измеренным величинам (углам, направлениям, длинам линий или превышениям).

7.1. Вычисление координат точек теодолитного хода

_______
Из решения прямой геодезической задачи по известным длинам сторон и румбам вычисляются приращения координат для каждой стороны хода по формулам:

_______
Далее вычисляются невязки в приращениях координат замкнутого хода.

7.2. Вычисление невязок в приращениях координат замкнутого хода

_______
Из геометрии известно, что сумма проекций сторон многоугольника на любую ось равна нулю, следовательно:

_______
Под влиянием ошибок измерений замкнутый полигон будет разомкнутым на величину fр – абсолютная невязка в периметре полигона.

_______

Если полученная невязка недопустима, то необходимо произвести повторное измерение длин линий.

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

7.3. Вычисление невязок в приращениях координат разомкнутого теодолитного хода

_______
Определение допустимости невязок и их распределения производится так же, как для замкнутого теодолитного хода.

например

_______
По исправленным значениям приращений координат вычисляются координаты всех точек хода по формулам:

Пример 1

Дана прямоугольная треугольная трапеция ABCD, в которой известны следующие данные:

Величина Значение
Отрезок AB 10 м
Отрезок BC 5 м
Высота h 3 м
Угол B 45 градусов

Требуется найти:

  1. Длину отрезка AD;
  2. Длину отрезка CD;
  3. Длину отрезка AC;
  4. Высоту треугольной трапеции.

Прямая геодезическая задача:

1. Найдем угол A, используя угол B и свойство суммы углов треугольника:

Угол A = 180 градусов — угол B = 180 градусов — 45 градусов = 135 градусов.

2. Найдем длину отрезка AC, используя теорему косинусов:

AC^2 = AB^2 + BC^2 — 2 * AB * BC * cos(A)

AC^2 = 10^2 + 5^2 — 2 * 10 * 5 * cos(135 градусов)

AC^2 = 100 + 25 — 100 * (-0.7071) ≈ 121.42

AC ≈ √121.42 ≈ 11 м.

3. Найдем длину отрезка AD, используя теорему Пифагора:

AD^2 = AC^2 + CD^2

AD^2 = 11^2 + CD^2

AD^2 = 121 + CD^2

CD^2 = AD^2 — 121

CD^2 = AD^2 — 121

4. Найдем длину отрезка CD, используя теорему косинусов:

AC^2 = AD^2 + CD^2 — 2 * AD * CD * cos(B)

121.42 = AD^2 + CD^2 — 2 * AD * CD * cos(45 градусов)

121.42 = AD^2 + CD^2 — CD * 1.4142

CD = √(121.42 — AD^2 / (1 — 1.4142))

5. Найдем высоту треугольной трапеции, используя формулу для площади треугольника:

Площадь = 0.5 * AC * h

Площадь = 0.5 * 11 * 3 = 16.5 м^2

Таким образом, для треугольной трапеции ABCD длина отрезка AD ≈ √(121.42 — AD^2 / (1 — 1.4142)) м, длина отрезка CD ≈ √(121.42 — AD^2 / (1 — 1.4142)) м, длина отрезка AC ≈ 11 м и высота треугольной трапеции ≈ 3 м.

Понравилась статья? Поделиться с друзьями:
ГЕО-АС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: