Страница 1 из 1
					
				Геоцентрические координаты точки, в которую смотрит наблюдатель
				Добавлено: 09 июн 2022, 08:53
				 mihailproroot
				Доброго времени суток.
Может кто подскажет, как решить такую задачу.
Есть у наблюдатель (будь то на сфере или эллипсоиде). Координаты наблюдателя - B L H (широта, долгота, высота). Он смотрит в некоторую точку горизонта с заданным азимутом Az,  под некоторым углом места Alfa и расстоянием до данной точки D.
Нужно найти геоцентрические координаты (X Y Z), в которую смотрит наблюдатель.
Есть ли варианты решения данной задачи?
			 
			
					
				Re: Геоцентрические координаты точки, в которую смотрит наблюдатель
				Добавлено: 09 июн 2022, 09:26
				 gamm
				mihailproroot писал(а): ↑09 июн 2022, 08:53Есть ли варианты решения данной задачи?
 
несомненно есть - переходите от BLH к XYZ, и прибавляете к этой точке вектор направления взгляда в той же системе. Осталось отложить дальность. Как то так ...
 
			
					
				Re: Геоцентрические координаты точки, в которую смотрит наблюдатель
				Добавлено: 09 июн 2022, 09:54
				 AlexRomantsov
				Здравствуйте. Варианты есть. Можно наводящие вопросы? В какой программной среде, в ГИС? В какой из них? Дистанции (расстояния) до точки D в каком диапазоне, метры, километры, сотни километров? Азимуты и углы в градусах или радианах? Широты долготы в WGS84? Геоцентрическая система какая, ITRF, WGS, PZ?
			 
			
					
				Re: Геоцентрические координаты точки, в которую смотрит наблюдатель
				Добавлено: 09 июн 2022, 11:31
				 mihailproroot
				AlexRomantsov писал(а): ↑09 июн 2022, 09:54Здравствуйте. Варианты есть. Можно наводящие вопросы?
 
Здравствуйте.
В какой программной среде, в ГИС?
 - QGIS. Пишу свое ПО на QGis API C++.
Дистанции (расстояния) до точки D в каком диапазоне
 - километры
Азимуты и углы в градусах или радианах?
 - в градусах (можно и в радианы перевести)
Широты долготы в WGS84? 
 - Да
Геоцентрическая система какая, ITRF, WGS, PZ?
 - WGS
 
			
					
				Re: Геоцентрические координаты точки, в которую смотрит наблюдатель
				Добавлено: 09 июн 2022, 12:39
				 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.
			 
			
					
				Re: Геоцентрические координаты точки, в которую смотрит наблюдатель
				Добавлено: 09 июн 2022, 12:42
				 AlexRomantsov
				ну и project похоже не умеет на элипсоиде считать, только на плоской прямоугольной. А это ограничивает его использование на дистанциях не более 10-20км (в зависимости от требуемой точности). Ну разве прикрутить к формуле расчета поправку к H на кривизну земли.
			 
			
					
				Re: Геоцентрические координаты точки, в которую смотрит наблюдатель
				Добавлено: 09 июн 2022, 13:05
				 AlexRomantsov
				Через transform() не получилось вычислить геоцентрические, даже из WGS в WGS geocent
			 
			
					
				Re: Геоцентрические координаты точки, в которую смотрит наблюдатель
				Добавлено: 09 июн 2022, 13:14
				 gamm
				в R c transform такая же проблема, он игнорирует глобус. И есть другая функция в пакете sp, которая глобус учитывает. Насколько я помню, это разные функции gdal. По крайней мере, когда мы считали на С++ через gdal, выбрав правильную функцию, все получалось.
			 
			
					
				Re: Геоцентрические координаты точки, в которую смотрит наблюдатель
				Добавлено: 09 июн 2022, 14:06
				 AlexRomantsov
				В библиотеках PROJ (
https://proj.org/) возможно есть готовые функции на C++ для расчета геоцентрических координат
 
			
					
				Re: Геоцентрические координаты точки, в которую смотрит наблюдатель
				Добавлено: 09 июн 2022, 15:14
				 mihailproroot
				Я так понял сама задача сводится к трассировке лучей (Raycasting).
В 3D библиотеках есть соответствующий API (для нахождения точек, в которые смотрит (условный) наблюдатель).
gamm писал(а): ↑09 июн 2022, 09:26несомненно есть - переходите от BLH к XYZ, и прибавляете к этой точке вектор направления взгляда в той же системе. Осталось отложить дальность. Как то так ...
 
Может ли кто-нибудь написать формулы для нахождения вектора взгляда?
 
			
					
				Re: Геоцентрические координаты точки, в которую смотрит наблюдатель
				Добавлено: 09 июн 2022, 15:50
				 Игорь Белов
				Морозов В. П., Курс сфероидической геодезии, М., Недра, 1979.
§ 36. Решение главных геодезических задач между точками в пространстве.