библиотека Proj4 неправльно считает?

Вопросы по нескольким пакетам сразу, или вопросы, которые непонятно к какой ГИС отнести
Ответить
mamont80
Участник
Сообщения: 91
Зарегистрирован: 17 июл 2008, 11:27
Репутация: 3
Откуда: Омск

библиотека Proj4 неправльно считает?

Сообщение mamont80 » 18 июл 2008, 13:27

Разбирался с библиотекой Proj4 (http://trac.osgeo.org/proj/).
На примере преобразования WGS84 в СК42 (перевод: градусы в градусы).
Вот что я сделал:
Используя геокалькулятор GeoCalc(http://gis-lab.info/qa/geocalc.html) вводим 10d 10d получаем 10d 0' 2.904" 10d 0' 3.895"
Я пробовал реализовать вычисления самостоятельно результат тотже.
Используя http://gis-lab.info/qa/wgs84-sk42-wgs84-formula.html тоже сходится.

А используя программу cs2cs(идет с Proj4) какой-то глюк. Пробывал использовать dll напрямую из своей программы - тот же глюк.

Вот в чем выражается:
cs2cs.exe +proj=longlat +ellps=WGS84 +datum=WGS84 +to +proj=longlat +ellps=krass +towgs84=23.92,-141.27,-80.9,0,-0.35,-0.82,-0.12
Вводим 10d 10d получаем 10d 0' 5.514"E 10d 0' 2.211"N -92.318

Что вообщем не совсем похоже. Разница на 2.61 и 1.68 секунды, при том что параметры абсолютно одинаковы! По моим прикидкам разница в 50 метров, никак нельзя это отнести к погрешности округления какойнибудь.

Получается библиотека Proj4 которую используют все кому только не лень, начиная от qGIS заканчивая DNR Garmin (с этого же сайта) считает не правильно?

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Сообщение Максим Дубинин » 18 июл 2008, 18:17

отличная тема, я некоторое время назад начал писать статью
http://gis-lab.info/qa/coord-transforms.html

но так и не закончил все расчеты, предлагаю их добить и сделать матрицу расстояний между результатами, было бы интересно, появился бы классный репер и надеюсь картина бы прояснилась.
пристегивайтесь, турбулентность прямо по курсу

mamont80
Участник
Сообщения: 91
Зарегистрирован: 17 июл 2008, 11:27
Репутация: 3
Откуда: Омск

Сообщение mamont80 » 21 июл 2008, 11:09

Я вроде разобрался. Хотя как сказать... Какая-то кутерьма со знаками параметров происходит.
На счет вашей статьи (http://gis-lab.info/qa/coord-transforms.html): у вас не получился расчет с программой GeoCalc. Ошибка ваша в чем: во-первых по умолчанию параметры эллипсоида в ней выставляются СК42 -> WGS84, а надо WGS84 -> СК-42. Во-вторых знаки параметров при вводе надо поменять dX=-28, dY=130, dZ=95. И вуаля, получаем 49.9999631301 50.0014646551 (15.6339), точность с cs2cs III также как у всех до 7 знака после запятой. Можете статью подправить.

Теперь на счет моих расчетов. Для случая вроде как честного 7-параметрового пересчета, кому интересно. Если брать результат GeoCalc вроде как за истину. В ней для пересчета WGS84 -> СК42 применяются параметры:
-23.92, +141.27, +80.9, 0, +0.35, +0.82, +0.12.
Для (50;50) получаем 49.9998665277 50.0013824879 (12.8546)
Чтобы получить такой же ответ для cs2cs нужно воткнуть
+23.92, -141.27, -80.9, 0, +0.35, +0.82, +0.12
Заметьте изменение знаков.
Вводим: cs2cs +proj=latlong +ellps=WGS84 +datum=WGS84 +to +proj=latlong +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,0.12 -f '%.10f'
Получаем 50.0013824844 49.9998666102 (11.332). Точность почти 7-8 знаков.

Все это получил методом перебора. Получается все считают правильно, надо только знать что как подставлять. Вообщем если нашел где-то параметры еще надо попариться кому с каким знаком подставлять. Кстати, если читать ГОСТ, то правильно -23.92, +141.27,... и прав GeoCalk в написании. Видать стандартная формула у буржуев отличается где-то знаком от стандартной нашей!!!

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Сообщение Максим Дубинин » 22 июл 2008, 02:55

очень полезная информация, спасибо! с geocalc все точно, не обратил внимания сразу

вот еще трюк, есть такая вещь - инверсия, в cs2cs используется -I:

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

cs2cs +proj=latlong +ellps=WGS84 +datum=WGS84 +to +proj=latlong +ellps=krass +towgs84=28,-130,-95,0,0,0,0 -f '%.10f'
50.0014646551 49.9999631298 15.6339351721

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

cs2cs +proj=latlong +ellps=WGS84 +datum=WGS84 +to +proj=latlong +ellps=krass +towgs84=28,-130,-95,0,0,0,0 -f '%.10f' -I
49.9985353112 50.0000368525 -15.6322070053
geocalc (такие же настройки как тогда когда я ошибся):
49.9985353112 50.0000368528 (-15.6322)
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
JEY
Активный участник
Сообщения: 228
Зарегистрирован: 17 июл 2008, 13:42
Репутация: 1

Сообщение JEY » 25 авг 2008, 08:20

А если внимательно прочитать ГОСТ Р 51794-2001 "Приложение А", то можно заметить некоторые расхождения в параметрах трансформации...

При пересчете из CК-42 в WGS-84 использованы следующие параметры:

+23.92, -141.27, -80.9, 0, -0.35, -0.82, -0.12E-06

Но тут же, указывается пример пересчета координат с применением трансформации Гельмерта, где углы поворота координатных осей указаны в радианах.

Переводим радианы в градусы и получаем следующие параметры:

+23.92, -141.27, -80.9, 0, -0.371, -0.849, -0.124Е-06

После подстановки таких параметров трансформации пересчет получается наиболее точным.

Остается только вопрос. Какие из параметров, указанные в ГОСТ Р 51794-2001 наиболее верны? Ведь -0.35'' это далеко не -0.371''. И -0.82'' не равен -0.849''... Хотя лично я остановился на втором варианте!

m4j
Новоприбывший
Сообщения: 3
Зарегистрирован: 24 окт 2009, 17:31
Репутация: 0

Re: библиотека Proj4 неправльно считает?

Сообщение m4j » 24 окт 2009, 18:15

в ГОСТ Р 51794-2008 параметры перехода из СК42 в WGS84 указаны уже однозначно

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

+ellps=krass +towgs84=23.57,-140.95,-79.80,0,-0.35,-0.79,-0.22
смотреть Приложение А + Приложение В.

Судя по точке N42°30' E130°45' на листе К52-058 и соответствующей ей в WGS84 точке N42.50017412 E130.75074968

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

$ echo 42d30\'00\"N 130d45\'00\"E|cs2cs +proj=latlong +ellps=krass \ +towgs84=23.57,-140.95,-79.80,0,-0.35,-0.79,-0.22 +to +init=epsg:4326 -r -s -f "%.8f"
$ 42.50017412	130.75074968 -36.17342327
на googlemaps эти параметры довольно точные. Но лучше конечно если кто-нибудь с Дальнего Востока (там ошибка должна быть наибольшей из-за удалённости от Пулково) проведёт реальные замеры.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: библиотека Proj4 неправльно считает?

Сообщение Максим Дубинин » 25 окт 2009, 07:20

m4j писал(а):в ГОСТ Р 51794-2008 параметры перехода из СК42 в WGS84 указаны уже однозначно
Пропустил этот ГОСТ, хорошо, что упомянули, теперь знаю что он существует. Интересно, что приведенные вами цифры для СК42->WGS84 через ПЗ90.02 не бьются с СК42->WGS84 через ПЗ90. Например для DX:

СК42->WGS84 через ПЗ90.02
23.93-0.36=23.57 (Приложение А + Приложение В)

СК42->WGS84 через ПЗ90
25-1.10=23.90 (Приложение Б + Приложение Г)
пристегивайтесь, турбулентность прямо по курсу

m4j
Новоприбывший
Сообщения: 3
Зарегистрирован: 24 окт 2009, 17:31
Репутация: 0

Re: библиотека Proj4 неправльно считает?

Сообщение m4j » 25 окт 2009, 07:43

sim писал(а):Например для DX:

СК42->WGS84 через ПЗ90.02
23.93-0.36=23.57 (Приложение А + Приложение В)

СК42->WGS84 через ПЗ90
25-1.10=23.90 (Приложение Б + Приложение Г)
так как при СК42<->ПЗ-90 и ПЗ-90<->WSG-84 используются неединичные матрицы, то нельзя просто так вычитать "25-1.10=23.90". Ошибка небольшая (так как матрицы близки к еденице), но она есть. Наверно отсюда и набегает 33см разницы. При СК42<->ПЗ-90.02<->WSG-84 я вообще никаких огрублений не делал.

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

Re: библиотека Proj4 неправльно считает?

Сообщение Boris » 29 окт 2009, 03:35

ДОбры люди подведите какой-то итог своей беседы. Выходит, что дециметровая точность перехода СК-42 -> WGS84 достижима и без наземных точек? А на фига тогда нам СК-95? :shock:

Alarmod2
Новоприбывший
Сообщения: 1
Зарегистрирован: 16 фев 2011, 11:27
Репутация: 0

Re: библиотека Proj4 неправльно считает?

Сообщение Alarmod2 » 16 фев 2011, 11:31

m4j
А у вас какая версия geocalc? В моей (0.97) только ПЗ90.01 доступно. Не поделитесь ссылкой на новую версию (сайт разработчика)?

Донецков
Гуру
Сообщения: 3058
Зарегистрирован: 19 май 2010, 19:44
Репутация: 189

Re: библиотека Proj4 неправльно считает?

Сообщение Донецков » 26 май 2011, 11:22

Так существует версия новее 0.97?

Ответить

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

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

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