Вычисление сближения меридианов для заданной точки

Вопросы по нескольким пакетам сразу, или вопросы, которые непонятно к какой ГИС отнести
Ответить
Variant
Активный участник
Сообщения: 133
Зарегистрирован: 15 окт 2009, 09:14
Репутация: 42
Откуда: Москва

Вычисление сближения меридианов для заданной точки

Сообщение Variant » 15 апр 2016, 15:51

Задача: для некоторой точки с известными координатами в системе координат с известными параметрами необходимо вычислить величину сближения меридианов (meridian convergence). Необходим удобный свободный или хотя бы бесплатный инструмент для её решения под Windows, стабильно выдающий корректный результат с точностью хотя бы до сотых долей градуса.

Возможное решение: опробован Azimuth and Distance Calculator для QGIS. Не очень удобный (широту-долготу приходится всё равно вбивать вручную), но какой-то результат выдаёт. Поскольку не являюсь специалистом в области высшей геодезии, с ходу проверить корректность не могу, но вроде похоже на правду. Привязка инструмента к QGIS совершенно не обязательна, единственное удобство при таком подходе, что система координат уже задана в proj4, не нужно вводить её заново.

Знает ли кто-нибудь какие-то другие, может быть более удобные решения? По крайней мере нужен ещё какой-нибудь сторонний инструмент, чтобы проверить корректность выдаваемого с помощью Azimuth and Distance Calculator результата

Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

Re: Вычисление сближения меридианов для заданной точки

Сообщение Boris » 15 апр 2016, 18:44

согласно вот тут http://miltop.narod.ru/Direction/meridians.htm формула сближения проста как мычание, согласно вот тут http://kadastrua.ru/kartografiya/346-pr ... aussa.html гауссово- сближение вещь сложная, но то же описываемая формулой, так в чем собственно вопрос?
Или речь идет о каком то другом сближении?

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: Вычисление сближения меридианов для заданной точки

Сообщение Ariki » 17 апр 2016, 15:45

Можно приближённо посчитать с помощью pyproj. Идея в том, чтобы решить обратную геодезическую задачу на сфероиде на маленьком расстоянии:

Код: Выделить всё


#!/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: Вычисление сближения меридианов для заданной точки

Сообщение Игорь Белов » 18 апр 2016, 15:04

Предлагаю простое и точное решение в виде алгоритма геообработки.
  • Распаковываем архив в папку ".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: Вычисление сближения меридианов для заданной точки

Сообщение Донецков » 18 апр 2016, 15:32

Вложения нет, т.к. "файл больше не существует"... :(

Variant
Активный участник
Сообщения: 133
Зарегистрирован: 15 окт 2009, 09:14
Репутация: 42
Откуда: Москва

Re: Вычисление сближения меридианов для заданной точки

Сообщение Variant » 20 апр 2016, 11:36

Boris писал(а):
Наверное подойдёт и упрощённая формула, но оценить насколько "несущественная" разница результатов действительно несущественна без специальных аналитических выкладок или практического опыта использования обоих методов невозможно, а у меня такого опыта пока нет.
Упрощённая топографическая формула действительно проста, но есть подозрения что она предлагает лишь приближенный способ экспресс-расчёта с точностью, приемлемой для ориентирования на местности. Как я уже писал, мне было бы достаточно сотых долей градуса, но чтобы хотя бы на эти сотые можно было положиться.
Для бытового применения естественно удобнее иметь не столько формулу, сколько реализующий её готовый инструмент
Ariki писал(а):Можно приближённо посчитать с помощью pyproj
Способ интересный, спасибо, надо будет разобраться, как это работает и попробовать, хотя бы в качестве инструмента проверки. Не исключено, что это в итоге может оказаться самым простым способом: всё равно тот Azimuth and Distance Calculator требовал ручного ввода
ErnieBoyd писал(а):Предлагаю простое и точное решение в виде алгоритма геообработки.
Спасибо, установил, запустил. Выглядит довольно удобным. Но работает не очень стабильно: то выпадает, то ругается непонятно на что, а если всё же подобрать счастливое сочетание параметров, чтобы он начал считать, всё равно потом зависает на 0%. Возможно, потому что тестировал в старой версии QGIS, надо будет попробовать в свежей, возможно, какие-то проблемы уйдут

Ответить

Вернуться в «Общий - ПО»

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

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