переход от WGS-84 к Гаусса-Крюгера

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
ali
Интересующийся
Сообщения: 21
Зарегистрирован: 08 дек 2011, 11:03
Репутация: 0

переход от WGS-84 к Гаусса-Крюгера

Сообщение ali » 07 июл 2014, 18:02

Здравствуйте,
мне надо запрограммировать переход от градусов WGS-84 к метрам в плоской прямоугольной системе Гаусса-Крюгера, Пулково-42.
На этом сайте я нашёл код перехода от WGS-84 к СК42 (в градусах) - статья
http://gis-lab.info/qa/wgs84-sk42-wgs84-formula.html
Контрольный пример из статьи воспроизводится правильно.

Как я понимаю, мне осталось перевести градусы из СК42 в метры. Я запрограммировал формулы (25)-(26) из
ГОСТ Р 51794-2001, но результат получается неверный (взял пример, приведённый на этом сайте: точка в СК42, широта B=53°, долгота L=52° должна перейти в x = 5875191,4058; y = 9567137,4060 - повторить не могу).

Не может ли кто навскидку предположить, что я делаю не так? На всякий случай текст модуля с функцией перевода прилагаю. Может быть, у кого-то есть ссылка на работающий код?
Заранее спасибо за любую помощь.
Вложения
WGS_GK.txt
(1.49 КБ) 721 скачивание

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: переход от WGS-84 к Гаусса-Крюгера

Сообщение KolesovDmitry » 08 июл 2014, 14:27

Вам нужно именно запрограммировать свою процедуру или достаточно получить программу, возвращающую верный результат преобразования (другими словами вам нужно изобрести велосипед или ехать на нем)? Если второе -- возьмите библиотеку proj4, вызовите ее из своей программы и будет вам счастье.

ali
Интересующийся
Сообщения: 21
Зарегистрирован: 08 дек 2011, 11:03
Репутация: 0

Re: переход от WGS-84 к Гаусса-Крюгера

Сообщение ali » 08 июл 2014, 20:35

KolesovDmitry писал(а):Вам нужно именно запрограммировать свою процедуру или достаточно получить программу, возвращающую верный результат преобразования (другими словами вам нужно изобрести велосипед или ехать на нем)?
Сейчас я делаю нужный перевод через QGIS: готовлю для него (макросом в Excel) .mif файл с нужными координатами WGS-84, потом пересохраняю в новый *.mif в координатах Гаусса-Крюгера, потом из него вытаскиваю данные и работаю с ними дальше. Требуется исключить этот шаг и делать его своей программой (использую VBA Excel).

Попробовал скачать proj4, но столкнулся с трудностями: как я понял, библиотеку нужно странслировать у себя на компьютере, но транслятора у меня нет. Далее, я готов переписать код на VBA, но не знаю, какая именно процедура (или несколько) мне нужна, так что проблема для меня остаётся.

Посоветуйте, пожалуйста, что мне делать дальше.

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: переход от WGS-84 к Гаусса-Крюгера

Сообщение trir » 09 июл 2014, 03:56

А почему ГОСТ 2001, а не 2008?
Если есть QGIS значит уже есть proj

Update: B - геодезическая широта определяемой точки, рад;

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: переход от WGS-84 к Гаусса-Крюгера

Сообщение KolesovDmitry » 09 июл 2014, 09:19

Да, если стоит qgis, значит есть и proj (qgis через него перепроецирует). Поэтому ваша задача -- научиться вызывать утилиты преобразования координат (попробуйте сначала, как преобразовывать координаты из командной строки, а уже потом вызывать эти утилиты из вашей программы)

ali
Интересующийся
Сообщения: 21
Зарегистрирован: 08 дек 2011, 11:03
Репутация: 0

Re: переход от WGS-84 к Гаусса-Крюгера

Сообщение ali » 09 июл 2014, 23:26

trir писал(а):А почему ГОСТ 2001, а не 2008?
Просто не знал :)
Уже посмотрел новый. В формулах (25)-(26), которые я использовал, изменений нет.
Подумал, что, возможно, я неверно толкую термины. В Гост-е перед формулами написано, что:
-----
Для получения плоских прямоугольных координат в принятой на территории Российской Федерации проекции Гаусса-Крюгера используют геодезические координаты на эллипсоиде Красовского.
-----
Я полагал, что система координат СК42 (градусы) - это и есть геодезические координаты на эллипсоиде Красовского. Прав ли я ?
Если нет, то как перейти от первой ко второй?

ali
Интересующийся
Сообщения: 21
Зарегистрирован: 08 дек 2011, 11:03
Репутация: 0

Re: переход от WGS-84 к Гаусса-Крюгера

Сообщение ali » 09 июл 2014, 23:27

KolesovDmitry писал(а):Да, если стоит qgis, значит есть и proj (qgis через него перепроецирует). Поэтому ваша задача -- научиться вызывать утилиты преобразования координат (попробуйте сначала, как преобразовывать координаты из командной строки, а уже потом вызывать эти утилиты из вашей программы)
Дмитрий,

я не понял ваш ответ, не могли бы вы сказать чуть подробнее. Из просмотра UserGuide для QGIS я не увидел способа запуска утилит преобразования или их перечисления. Может быть, есть известные вам ссылки на примеры?

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: переход от WGS-84 к Гаусса-Крюгера

Сообщение trir » 10 июл 2014, 05:16

ali, код поправил? Там только надо B перевести в радианы и всё сходится
Там есть cs2cs.exe в папке bin

ali
Интересующийся
Сообщения: 21
Зарегистрирован: 08 дек 2011, 11:03
Репутация: 0

Re: переход от WGS-84 к Гаусса-Крюгера

Сообщение ali » 10 июл 2014, 10:13

trir писал(а):ali, код поправил? Там только надо B перевести в радианы и всё сходится
trir,
большое спасибо - ошибку с вашей помощью исправил, всё получилось!

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: переход от WGS-84 к Гаусса-Крюгера

Сообщение KolesovDmitry » 10 июл 2014, 11:47

ali писал(а): я не понял ваш ответ, не могли бы вы сказать чуть подробнее.
Я имел в виду вот что. Нужно:
1) Понять, как работают утилиты proj (с точки зрения пользователя). Т.е. разобраться, как задаются параметры транформации, системы координат и т.п. Затем научиться формировать командную строку для преобразования координат и вызов утилит (руками). Пример: http://gis-lab.info/qa/coord-transforms.html#cs
2) Формирование строки параметров программно на вашем любимом языке программирования и вызов утилит proj из вашего языка. Этот пункт зависит от языка, но в (почти) любом языке есть возможность вызывать сторонние программы, передавая им параметры командной строки.

ali
Интересующийся
Сообщения: 21
Зарегистрирован: 08 дек 2011, 11:03
Репутация: 0

Re: переход от WGS-84 к Гаусса-Крюгера

Сообщение ali » 11 июл 2014, 10:32

Дмитрий,

спасибо за пояснения. Идею я понял. cs2cs с примером из вашей ссылки запустил:

"C:\Program Files\QGIS\bin\cs2cs" +proj=latlong +ellps=WGS84 +to +proj=latlong +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0,0,0 -f '%.10f'

Но, похоже, что-то уже поменялось - командная строка ждёт ввода вместо вывода результата. Возможно, требуются доп. параметры.
На данный момент свою проблему я решил, а на будущее - понял, откуда начинать.
Благодарю вас за помощь.

Ответить

Вернуться в «Я новичок!»

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

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