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

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

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

Сообщение mihailproroot »

Доброго времени суток.
Может кто подскажет, как решить такую задачу.
Есть у наблюдатель (будь то на сфере или эллипсоиде). Координаты наблюдателя - B L H (широта, долгота, высота). Он смотрит в некоторую точку горизонта с заданным азимутом Az, под некоторым углом места Alfa и расстоянием до данной точки D.
Нужно найти геоцентрические координаты (X Y Z), в которую смотрит наблюдатель.
Есть ли варианты решения данной задачи?
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm »

mihailproroot писал(а): 09 июн 2022, 08:53Есть ли варианты решения данной задачи?
несомненно есть - переходите от BLH к XYZ, и прибавляете к этой точке вектор направления взгляда в той же системе. Осталось отложить дальность. Как то так ...
AlexRomantsov
Завсегдатай
Сообщения: 420
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 162
Ваше звание: хм, сам не знал
Откуда: Томск

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

Сообщение AlexRomantsov »

Здравствуйте. Варианты есть. Можно наводящие вопросы? В какой программной среде, в ГИС? В какой из них? Дистанции (расстояния) до точки D в каком диапазоне, метры, километры, сотни километров? Азимуты и углы в градусах или радианах? Широты долготы в WGS84? Геоцентрическая система какая, ITRF, WGS, PZ?
mihailproroot
Новоприбывший
Сообщения: 4
Зарегистрирован: 13 авг 2020, 09:47
Репутация: 0
Откуда: Москва

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

Сообщение mihailproroot »

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

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

Сообщение AlexRomantsov »

Грусть.
В 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
Завсегдатай
Сообщения: 420
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 162
Ваше звание: хм, сам не знал
Откуда: Томск

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

Сообщение AlexRomantsov »

ну и project похоже не умеет на элипсоиде считать, только на плоской прямоугольной. А это ограничивает его использование на дистанциях не более 10-20км (в зависимости от требуемой точности). Ну разве прикрутить к формуле расчета поправку к H на кривизну земли.
Последний раз редактировалось AlexRomantsov 09 июн 2022, 13:41, всего редактировалось 2 раза.
AlexRomantsov
Завсегдатай
Сообщения: 420
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 162
Ваше звание: хм, сам не знал
Откуда: Томск

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

Сообщение AlexRomantsov »

Через transform() не получилось вычислить геоцентрические, даже из WGS в WGS geocent
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm »

в R c transform такая же проблема, он игнорирует глобус. И есть другая функция в пакете sp, которая глобус учитывает. Насколько я помню, это разные функции gdal. По крайней мере, когда мы считали на С++ через gdal, выбрав правильную функцию, все получалось.
AlexRomantsov
Завсегдатай
Сообщения: 420
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 162
Ваше звание: хм, сам не знал
Откуда: Томск

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

Сообщение AlexRomantsov »

В библиотеках PROJ (https://proj.org/) возможно есть готовые функции на C++ для расчета геоцентрических координат
mihailproroot
Новоприбывший
Сообщения: 4
Зарегистрирован: 13 авг 2020, 09:47
Репутация: 0
Откуда: Москва

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

Сообщение mihailproroot »

Я так понял сама задача сводится к трассировке лучей (Raycasting).
В 3D библиотеках есть соответствующий API (для нахождения точек, в которые смотрит (условный) наблюдатель).
gamm писал(а): 09 июн 2022, 09:26несомненно есть - переходите от BLH к XYZ, и прибавляете к этой точке вектор направления взгляда в той же системе. Осталось отложить дальность. Как то так ...
Может ли кто-нибудь написать формулы для нахождения вектора взгляда?
Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2240
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1513
Откуда: Казань

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

Сообщение Игорь Белов »

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

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

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

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