Есть точка с географическими координатами, относительно нее определяются координаты некоторых объектов в локальной полярной системе координат - дальность в метрах, азимут и угол места в градусах. Нужно перевести координаты объектов из данной локальной СК в географическую (программным способом). Нашел как это сделать с помощью [url=http://geographiclib.sourceforge.net/]GeographicLib[/url], вопрос как это можно сделать с помощью proj4? Его все равно gdal использует, и не хочется тащить лишнюю библиотеку. Правильно я понимаю, что нужно копать в сторону функции pj_transform, задавая в качестве исходной свою локальную СК (лучше всего перевести из полярной в декартову), а в качестве получаемой географическую? Как мне тогда задать локальную СК с центром в определенной точке и не пойму как задать направление координатных осей...
Елки-палки, я же могу перевести в геоцентрические координаты, только сейчас сообразил. В принципе, вопрос решен, но если есть в proj4 (более) подходящее решение, чтобы самому математику не трогать, буду признателен за подсказку!
Работа с локальной системой координат
-
- Участник
- Сообщения: 99
- Зарегистрирован: 17 июн 2012, 11:11
- Репутация: 1
- Откуда: Новосибирск
- Контактная информация:
- Aleksandr Dezhin
- Активный участник
- Сообщения: 244
- Зарегистрирован: 03 фев 2010, 10:47
- Репутация: 14
- Откуда: Москва
Re: Работа с локальной системой координат
В составе proj4 идет утилита geod, она как раз умеет ходить из точки по азимуту. Посмотрите раздел примеров в руководстве. Думаю можно в ее исходниках посмотреть как это делается на чистом C.
На питоне через pyproj (биндинг к proj4), делается так:
На питоне через pyproj (биндинг к proj4), делается так:
Код: Выделить всё
>>> from pyproj import Geod
>>> geod = Geod(ellps='WGS84')
>>> geod.fwd(0, 0, 0, 10e6) # 10 тыс км на север от точки 0, 0
(0.0, 89.98240086429514, 180.0) # пришли почти на северный полюс, 180 - обратный азимут
-
- Участник
- Сообщения: 99
- Зарегистрирован: 17 июн 2012, 11:11
- Репутация: 1
- Откуда: Новосибирск
- Контактная информация:
Re: Работа с локальной системой координат
Спасибо за ответ. Но как я подозреваю, 10 тыс. км отложены по поверхности эллипсоида? А мне нужно по прямой, т.к. это дальность прямой видимости. Но код сейчас посмотрю.
- Aleksandr Dezhin
- Активный участник
- Сообщения: 244
- Зарегистрирован: 03 фев 2010, 10:47
- Репутация: 14
- Откуда: Москва
Re: Работа с локальной системой координат
Ага, по поверхности. Видимо я не внимательно прочитал вопрос.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость