Нахождение параметров преобразования между разными СК

Системы координат, проекции, преобразования, привязка
Andrey1
Активный участник
Сообщения: 209
Зарегистрирован: 13 июл 2007, 18:58
Репутация: 1

Нахождение параметров преобразования между разными СК

Сообщение Andrey1 »

Hi all!

Передо мной стоит задача нахождения параметров 7-параметрического преобразования (DX,DY,DZ,WX,WY,WZ,m) между теми или иными двумя системами геодезических координат. Исходные данные для вывода этих параметров - геодезические координаты (B,L,H) нескольких точек в первой и второй СК.

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

Спасибо!!!
Andrey1
Активный участник
Сообщения: 209
Зарегистрирован: 13 июл 2007, 18:58
Репутация: 1

Сообщение Andrey1 »

Нет настроения тратить силы и время, "причёсывать" формулы и писать программу (которая нужна раз в жизни). Если есть готовый геокалькулятор (не Транскор), решающий такую задачу - прекрасно.

Хорошо бы найти геокалькулятор, с помощью которого проводится расчёт координат МСК из координат глобальной СК.
Аватара пользователя
kitos
Интересующийся
Сообщения: 49
Зарегистрирован: 09 апр 2007, 09:47
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Сообщение kitos »

МСК - это....? местная?
формулы нужны когда нет "нормальной" ГИС, которая бы переводила свои карты в географические координаты. поэтому есть, наверное, смысл делать библиотеки по пересчету... может они уже есть где-то? кто-то видел?
Andrey1
Активный участник
Сообщения: 209
Зарегистрирован: 13 июл 2007, 18:58
Репутация: 1

Сообщение Andrey1 »

1. По поводу Tatuk Gis Calculator. С одной стороны, вшито много проекций, но точность отвратительная - 0,1". Так как на практике я пользуюсь проекцией Гаусса-Крюгера (k=1) и только, теоретически возможно ещё использование UTM (k=0.9996), то мне главное - точность пересчёта. Поэтому для точных расчётов пользоваться сей софтиной не рекомендую. Она может пригодиться при работе с координатами "картографической" точности в не самых крупных масштабах карт (1:50 000 и мельче).

2. МСК - местная система координат. Сами формулы есть, но: а) а вдруг опечатки? б) надо довольно долго программу писать.

3. Также стараюсь не писать программу, если уже где-то такая есть, по нахождению параметров перехода между геоцентрическими (геодезическими) координатами. Если в работе используется ряд опорных точек, для которых имеются координаты в различных СК, то стоит задача пересчитать (не аффинкой) в другую СК координаты всех остальных точек, для чего требуются найденные параметры 7-параметрического преобразования.
Аватара пользователя
kitos
Интересующийся
Сообщения: 49
Зарегистрирован: 09 апр 2007, 09:47
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Сообщение kitos »

большое спасибо за калькулятор :)
могли бы вы еще пояснить букву "k", которую вы говорили постом раньше про проекции? что она означает?
Andrey1
Активный участник
Сообщения: 209
Зарегистрирован: 13 июл 2007, 18:58
Репутация: 1

Сообщение Andrey1 »

Какой калькулятор???

k - масштабный коэффициент на центральном меридиане зоны.
Аватара пользователя
kitos
Интересующийся
Сообщения: 49
Зарегистрирован: 09 апр 2007, 09:47
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Сообщение kitos »

за кальклятор - который TatukGIS Calculatоr)
про масштабный коэффициент уже нашел что искал)
вы могли бы еще посоветовать какое-то средство точного нахождения спроецированных координат по географическим? MapInfo хорошую точность к примеру дает?
вот еще одну программульку нашел:
http://softsearch.ru/programs/118-270-c ... load.shtml
Andrey1
Активный участник
Сообщения: 209
Зарегистрирован: 13 июл 2007, 18:58
Репутация: 1

Сообщение Andrey1 »

Пусть наша точка имеет геодезические координаты на эллипсоиде Красовского
(двуосном, 1940г., a=6378245, 1/f = 1/298.3)

53° с.ш. / 52° в.д. (значения взяты абсолютно произвольно),

и мы находим плоские прямоугольные координаты в проекции Гаусса-Крюгера.

При преобразовании с использованием 3-членного ряда получаем, округляя до 0,1 мм

x = 5875191,4108 м
y = 9567137,4061 м

При преобразовании с использованием 4-членного ряда получаем, округляя до 0,1 мм

x = 5875191,4091 м
y = 9567137,4061 м

При использовании программы Сучковой Т.М. ccoord.exe получаем значения:

x = 5875191
y = _567151

Что можно сказать, если ошибка по Y составляет 14 метров???

Почему точность вывода ограничена одним метром???

Автор честно предупреждает, что расчёт ведётся для использования с картами-стометровками и более мелкого масштаба (предельная картографическая точность 0,1 мм * 100 м даёт необходимую точность расчёта координат как раз 1 метр).

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

Увы.
Аватара пользователя
kitos
Интересующийся
Сообщения: 49
Зарегистрирован: 09 апр 2007, 09:47
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Сообщение kitos »

большое спасибо за ответ. очень помогло. но у меня еще есть вопрос. откуда у вас взялась первая девятка у Y? я отладил свой алгоритм, но у меня получаются цыфры:
x 5875191.414157
y 567137.406074
Andrey1
Активный участник
Сообщения: 209
Зарегистрирован: 13 июл 2007, 18:58
Репутация: 1

Сообщение Andrey1 »

Так девятка - номер зоны, указывает на то, что центральный меридиан этой зоны имеет долготу 51°.

Я думаю, что в копилку самодельного софта в будущем можно выложить творения после тестирования.

Почему китосовый x на 4 миллиметра больше???

Я внедрил 3-членный ряд и 4-членный ряд - их результаты чуть-чуть отличаются (в пределах 1-3 мм), но 3-членное преобразование (по формулам из "Справочника геодезиста") применяется в подавляющем большинстве профессиональных геодезических калькуляторов, хотя оно и менее точное (декларируется ~1 мм, сходимость в пределах 0,1-0,2 мм), и его использование позволяет получать точно такие же результаты. 4-членное преобразование применяется только в Транскоре (точность - несколько десятков микрон, сходимость в пределах 20 микрон).
Последний раз редактировалось Andrey1 29 янв 2008, 17:31, всего редактировалось 1 раз.
Аватара пользователя
kitos
Интересующийся
Сообщения: 49
Зарегистрирован: 09 апр 2007, 09:47
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Сообщение kitos »

и еще вопрос. насчет формулы длины души меридиана, которая нужна для этого преобразования.
посмотрел в книге Бугаевского, там приведена такая:
n = (a-b)/(a+b)
Sm = a*( (1 + n*n/4 + Power(n,4)/64)*lat
- ( n*3/2 - Power(n,3)*3/16)*sin(2*lat) +
+ (15*n*n/16 - Power(n,4)*15/64)*sin(4*lat) -
- ( n*n*n*35/42)*sin(lat*6) )/(1 + n)
- не работает(. работает формула из описания к lbproj ( http://members.bellatlantic.net/~vze2hc ... manual.pdf , стр 24) , но в ней я не уверен на все 100%. чисто из-за источника и, может быть, зря.
можете сказать, какая у вас или порекомендовать какой-то источник?
Andrey1
Активный участник
Сообщения: 209
Зарегистрирован: 13 июл 2007, 18:58
Репутация: 1

Сообщение Andrey1 »

>>насчет формулы длины души меридиана

:-)

Короче.

FUNCTION GetS(B:double;VED:TEllDone):double;//ok
//Вычисление длины дуги на эллипсоиде от точки с заданной широтой до экватора
//B - геодезическая широта, a,f -параметры эллипсоида
//Если точка южнее экватора (B<0), то S<0
var
n1,n2,n3,n4:double;
//B - в радианах
begin
n1:=(VED.aell-VED.bell)/(VED.aell+VED.bell);
n2:=n1*n1;
n3:=n2*n1;
n4:=n3*n1;
GetS:=VED.aell/(1+n1)*((1+n2/4+n4/64)*B-(1.5*n1-3/16*n3)*sin(2*B)+
(15/16*n2-15/64*n4)*sin(4*B)-(35/43*n3)*sin(6*B));
end;

В 4-членном алгоритме более усечённый вариант

R:=f/(2-f);
R2:=R*R;
R3:=R2*R;
R4:=R2*R2;
c:=VED.aell*(1+R2/4+R4/64)/(1+R);

Но, как ни странно, результат расчёта длины такой же.
Аватара пользователя
kitos
Интересующийся
Сообщения: 49
Зарегистрирован: 09 апр 2007, 09:47
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Сообщение kitos »

мнда... оказалось, синтаксис неправильный написал. :oops:
Andrey1 писал(а):
Я думаю, что в копилку самодельного софта в будущем можно выложить творения после тестирования.
это вы про чьи творениЯ? о_О
Andrey1
Активный участник
Сообщения: 209
Зарегистрирован: 13 июл 2007, 18:58
Репутация: 1

Сообщение Andrey1 »

Свои или твои, если, конечно, администрация сайта поддержит такое начинание.
Аватара пользователя
kitos
Интересующийся
Сообщения: 49
Зарегистрирован: 09 апр 2007, 09:47
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Сообщение kitos »

в каком виде это делается? исходники? длл? .lib'ы?
Ответить

Вернуться в «Координаты и привязка»

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

Сейчас этот форум просматривают: Bing [Bot] и 2 гостя