Геоцентрические координаты точки, в которую смотрит наблюдатель

Системы координат, проекции, преобразования, привязка
Ответить
mihailproroot
Новоприбывший
Сообщения: 3
Зарегистрирован: 13 авг 2020, 09:47
Репутация: 0
Откуда: Москва

Геоцентрические координаты точки, в которую смотрит наблюдатель

Сообщение mihailproroot » 09 июн 2022, 08:53

Доброго времени суток.
Может кто подскажет, как решить такую задачу.
Есть у наблюдатель (будь то на сфере или эллипсоиде). Координаты наблюдателя - B L H (широта, долгота, высота). Он смотрит в некоторую точку горизонта с заданным азимутом Az, под некоторым углом места Alfa и расстоянием до данной точки D.
Нужно найти геоцентрические координаты (X Y Z), в которую смотрит наблюдатель.
Есть ли варианты решения данной задачи?

gamm
Гуру
Сообщения: 3687
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 948
Ваше звание: программист
Откуда: Казань

Re: Геоцентрические координаты точки, в которую смотрит наблюдатель

Сообщение gamm » 09 июн 2022, 09:26

mihailproroot писал(а):
09 июн 2022, 08:53
Есть ли варианты решения данной задачи?
несомненно есть - переходите от BLH к XYZ, и прибавляете к этой точке вектор направления взгляда в той же системе. Осталось отложить дальность. Как то так ...

AlexRomantsov
Участник
Сообщения: 86
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 32
Откуда: Томск

Re: Геоцентрические координаты точки, в которую смотрит наблюдатель

Сообщение AlexRomantsov » 09 июн 2022, 09:54

Здравствуйте. Варианты есть. Можно наводящие вопросы? В какой программной среде, в ГИС? В какой из них? Дистанции (расстояния) до точки D в каком диапазоне, метры, километры, сотни километров? Азимуты и углы в градусах или радианах? Широты долготы в WGS84? Геоцентрическая система какая, ITRF, WGS, PZ?

mihailproroot
Новоприбывший
Сообщения: 3
Зарегистрирован: 13 авг 2020, 09:47
Репутация: 0
Откуда: Москва

Re: Геоцентрические координаты точки, в которую смотрит наблюдатель

Сообщение mihailproroot » 09 июн 2022, 11:31

AlexRomantsov писал(а):
09 июн 2022, 09:54
Здравствуйте. Варианты есть. Можно наводящие вопросы?
Здравствуйте.
В какой программной среде, в ГИС?
- QGIS. Пишу свое ПО на QGis API C++.
Дистанции (расстояния) до точки D в каком диапазоне
- километры
Азимуты и углы в градусах или радианах?
- в градусах (можно и в радианы перевести)
Широты долготы в WGS84?
- Да
Геоцентрическая система какая, ITRF, WGS, PZ?
- WGS

AlexRomantsov
Участник
Сообщения: 86
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 32
Откуда: Томск

Re: Геоцентрические координаты точки, в которую смотрит наблюдатель

Сообщение AlexRomantsov » 09 июн 2022, 12:39

Грусть.
В QGIS рассчитать новые координаты точки по дистанции, азимуту, наклону можно следующим выражением:
project( #вычисление координат новой точки по дистанции, азимуту, углу наклона
transform($geometry,'EPSG:4326', 'EPSG:32645'), #для начала точку слоя из wgs в utm45 (я на долготе 85гр)
1000, #дистанция в м
radians(30), #азимут в градусах против часовой
radians(95) #наклон в градусах, от оси в верх! т.е. наклон -5 градусов - значение 95 градусов.
)
А дальше засада - функция transform() при пересчете в геоцентрическую СК (например EPSG:4328) возвращает какие то XY, а Z вообще отдает не геоцетрическую, а исходную геодезическую H.
Последний раз редактировалось AlexRomantsov 09 июн 2022, 13:59, всего редактировалось 5 раз.

AlexRomantsov
Участник
Сообщения: 86
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 32
Откуда: Томск

Re: Геоцентрические координаты точки, в которую смотрит наблюдатель

Сообщение AlexRomantsov » 09 июн 2022, 12:42

ну и project похоже не умеет на элипсоиде считать, только на плоской прямоугольной. А это ограничивает его использование на дистанциях не более 10-20км (в зависимости от требуемой точности). Ну разве прикрутить к формуле расчета поправку к H на кривизну земли.
Последний раз редактировалось AlexRomantsov 09 июн 2022, 13:41, всего редактировалось 2 раза.

AlexRomantsov
Участник
Сообщения: 86
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 32
Откуда: Томск

Re: Геоцентрические координаты точки, в которую смотрит наблюдатель

Сообщение AlexRomantsov » 09 июн 2022, 13:05

Через transform() не получилось вычислить геоцентрические, даже из WGS в WGS geocent

gamm
Гуру
Сообщения: 3687
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 948
Ваше звание: программист
Откуда: Казань

Re: Геоцентрические координаты точки, в которую смотрит наблюдатель

Сообщение gamm » 09 июн 2022, 13:14

в R c transform такая же проблема, он игнорирует глобус. И есть другая функция в пакете sp, которая глобус учитывает. Насколько я помню, это разные функции gdal. По крайней мере, когда мы считали на С++ через gdal, выбрав правильную функцию, все получалось.

AlexRomantsov
Участник
Сообщения: 86
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 32
Откуда: Томск

Re: Геоцентрические координаты точки, в которую смотрит наблюдатель

Сообщение AlexRomantsov » 09 июн 2022, 14:06

В библиотеках PROJ (https://proj.org/) возможно есть готовые функции на C++ для расчета геоцентрических координат

mihailproroot
Новоприбывший
Сообщения: 3
Зарегистрирован: 13 авг 2020, 09:47
Репутация: 0
Откуда: Москва

Re: Геоцентрические координаты точки, в которую смотрит наблюдатель

Сообщение mihailproroot » 09 июн 2022, 15:14

Я так понял сама задача сводится к трассировке лучей (Raycasting).
В 3D библиотеках есть соответствующий API (для нахождения точек, в которые смотрит (условный) наблюдатель).
gamm писал(а):
09 июн 2022, 09:26
несомненно есть - переходите от BLH к XYZ, и прибавляете к этой точке вектор направления взгляда в той же системе. Осталось отложить дальность. Как то так ...
Может ли кто-нибудь написать формулы для нахождения вектора взгляда?

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2180
Зарегистрирован: 04 янв 2011, 22:00
Статьи: 12
Проекты: 1
Репутация: 1471
Откуда: Казань

Re: Геоцентрические координаты точки, в которую смотрит наблюдатель

Сообщение Игорь Белов » 09 июн 2022, 15:50

Морозов В. П., Курс сфероидической геодезии, М., Недра, 1979.
§ 36. Решение главных геодезических задач между точками в пространстве.
The purpose of computing is insight, not numbers

Ответить

Вернуться в «Координаты и привязка»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя