Вычисление сближения меридианов для заданной точки
-
- Активный участник
- Сообщения: 133
- Зарегистрирован: 15 окт 2009, 09:14
- Репутация: 42
- Откуда: Москва
Вычисление сближения меридианов для заданной точки
Задача: для некоторой точки с известными координатами в системе координат с известными параметрами необходимо вычислить величину сближения меридианов (meridian convergence). Необходим удобный свободный или хотя бы бесплатный инструмент для её решения под Windows, стабильно выдающий корректный результат с точностью хотя бы до сотых долей градуса.
Возможное решение: опробован Azimuth and Distance Calculator для QGIS. Не очень удобный (широту-долготу приходится всё равно вбивать вручную), но какой-то результат выдаёт. Поскольку не являюсь специалистом в области высшей геодезии, с ходу проверить корректность не могу, но вроде похоже на правду. Привязка инструмента к QGIS совершенно не обязательна, единственное удобство при таком подходе, что система координат уже задана в proj4, не нужно вводить её заново.
Знает ли кто-нибудь какие-то другие, может быть более удобные решения? По крайней мере нужен ещё какой-нибудь сторонний инструмент, чтобы проверить корректность выдаваемого с помощью Azimuth and Distance Calculator результата
Возможное решение: опробован Azimuth and Distance Calculator для QGIS. Не очень удобный (широту-долготу приходится всё равно вбивать вручную), но какой-то результат выдаёт. Поскольку не являюсь специалистом в области высшей геодезии, с ходу проверить корректность не могу, но вроде похоже на правду. Привязка инструмента к QGIS совершенно не обязательна, единственное удобство при таком подходе, что система координат уже задана в proj4, не нужно вводить её заново.
Знает ли кто-нибудь какие-то другие, может быть более удобные решения? По крайней мере нужен ещё какой-нибудь сторонний инструмент, чтобы проверить корректность выдаваемого с помощью Azimuth and Distance Calculator результата
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Вычисление сближения меридианов для заданной точки
согласно вот тут http://miltop.narod.ru/Direction/meridians.htm формула сближения проста как мычание, согласно вот тут http://kadastrua.ru/kartografiya/346-pr ... aussa.html гауссово- сближение вещь сложная, но то же описываемая формулой, так в чем собственно вопрос?
Или речь идет о каком то другом сближении?
Или речь идет о каком то другом сближении?
-
- Гуру
- Сообщения: 731
- Зарегистрирован: 12 янв 2011, 22:40
- Репутация: 304
- Ваше звание: ∀
Re: Вычисление сближения меридианов для заданной точки
Можно приближённо посчитать с помощью pyproj. Идея в том, чтобы решить обратную геодезическую задачу на сфероиде на маленьком расстоянии:
На вход принимает пары координат (разделённых пробелом, сначала восточная) в системе координат, заданной в начале скрипта. На выходе — сближение меридианов в градусах. Тестировал на данных отсюда: studopedia.org/11-63753.html
Код: Выделить всё
#!/usr/bin/python
import sys
import pyproj
SRS = '+proj=tmerc +ellps=krass +lon_0=33 +x_0=6500000 +y_0=0 +k_0=1'
EPS = 1.0
p = pyproj.Proj(SRS)
geod_srs = p.to_latlong().srs.decode('ascii')
g = pyproj.Proj(geod_srs)
geod = pyproj.Geod(geod_srs)
while(True):
try:
line = sys.stdin.readline()
x, y = map(float, line.split())
except:
break
lon, lat = pyproj.transform(p, g, x, y)
lon2, lat2 = pyproj.transform(p, g, x, y + EPS)
c = geod.inv(lon, lat, lon2, lat2)[0]
sys.stdout.write('{0:.3f}\n'.format(c))
На вход принимает пары координат (разделённых пробелом, сначала восточная) в системе координат, заданной в начале скрипта. На выходе — сближение меридианов в градусах. Тестировал на данных отсюда: studopedia.org/11-63753.html
- Игорь Белов
- Гуру
- Сообщения: 2230
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1503
- Откуда: Казань
Re: Вычисление сближения меридианов для заданной точки
Предлагаю простое и точное решение в виде алгоритма геообработки.
- Распаковываем архив в папку ".qgis2/processing/scripts".
- Добавляем скрипт к инструментам: [Инструменты анализа] → [Скрипты] → [Инструменты] → [Открыть скрипт из файла].
- Запускаем скрипт: [Инструменты анализа] → [Скрипты] → [Пользовательские скрипты] → [grid declination].
- Выбираем файл с точками. Указываем систему координат, по отношению к которой считается разворот координатной сетки, если отличается от той, что по умолчанию. Можно явно указать слой вместо временного. Жмём [Run].
- Вложения
-
- grid_declination.zip
- (1.14 КБ) 408 скачиваний
The purpose of computing is insight, not numbers
-
- Гуру
- Сообщения: 3058
- Зарегистрирован: 19 май 2010, 19:44
- Репутация: 189
Re: Вычисление сближения меридианов для заданной точки
Вложения нет, т.к. "файл больше не существует"...
-
- Активный участник
- Сообщения: 133
- Зарегистрирован: 15 окт 2009, 09:14
- Репутация: 42
- Откуда: Москва
Re: Вычисление сближения меридианов для заданной точки
Наверное подойдёт и упрощённая формула, но оценить насколько "несущественная" разница результатов действительно несущественна без специальных аналитических выкладок или практического опыта использования обоих методов невозможно, а у меня такого опыта пока нет.Boris писал(а):
Упрощённая топографическая формула действительно проста, но есть подозрения что она предлагает лишь приближенный способ экспресс-расчёта с точностью, приемлемой для ориентирования на местности. Как я уже писал, мне было бы достаточно сотых долей градуса, но чтобы хотя бы на эти сотые можно было положиться.
Для бытового применения естественно удобнее иметь не столько формулу, сколько реализующий её готовый инструмент
Способ интересный, спасибо, надо будет разобраться, как это работает и попробовать, хотя бы в качестве инструмента проверки. Не исключено, что это в итоге может оказаться самым простым способом: всё равно тот Azimuth and Distance Calculator требовал ручного вводаAriki писал(а):Можно приближённо посчитать с помощью pyproj
Спасибо, установил, запустил. Выглядит довольно удобным. Но работает не очень стабильно: то выпадает, то ругается непонятно на что, а если всё же подобрать счастливое сочетание параметров, чтобы он начал считать, всё равно потом зависает на 0%. Возможно, потому что тестировал в старой версии QGIS, надо будет попробовать в свежей, возможно, какие-то проблемы уйдутErnieBoyd писал(а):Предлагаю простое и точное решение в виде алгоритма геообработки.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей