Нахождение параметров преобразования между разными СК
-
- Активный участник
- Сообщения: 209
- Зарегистрирован: 13 июл 2007, 18:58
- Репутация: 1
Нахождение параметров преобразования между разными СК
Hi all!
Передо мной стоит задача нахождения параметров 7-параметрического преобразования (DX,DY,DZ,WX,WY,WZ,m) между теми или иными двумя системами геодезических координат. Исходные данные для вывода этих параметров - геодезические координаты (B,L,H) нескольких точек в первой и второй СК.
Общие принципы вывода мне известны, но меня интересует либо чёткий алгоритм, либо ссылка на какой-либо геодезический калькулятор, с помощью которого можно найти эти параметры.
Спасибо!!!
Передо мной стоит задача нахождения параметров 7-параметрического преобразования (DX,DY,DZ,WX,WY,WZ,m) между теми или иными двумя системами геодезических координат. Исходные данные для вывода этих параметров - геодезические координаты (B,L,H) нескольких точек в первой и второй СК.
Общие принципы вывода мне известны, но меня интересует либо чёткий алгоритм, либо ссылка на какой-либо геодезический калькулятор, с помощью которого можно найти эти параметры.
Спасибо!!!
-
- Активный участник
- Сообщения: 209
- Зарегистрирован: 13 июл 2007, 18:58
- Репутация: 1
Нет настроения тратить силы и время, "причёсывать" формулы и писать программу (которая нужна раз в жизни). Если есть готовый геокалькулятор (не Транскор), решающий такую задачу - прекрасно.
Хорошо бы найти геокалькулятор, с помощью которого проводится расчёт координат МСК из координат глобальной СК.
Хорошо бы найти геокалькулятор, с помощью которого проводится расчёт координат МСК из координат глобальной СК.
- kitos
- Интересующийся
- Сообщения: 49
- Зарегистрирован: 09 апр 2007, 09:47
- Репутация: 0
- Откуда: Екатеринбург
- Контактная информация:
-
- Активный участник
- Сообщения: 209
- Зарегистрирован: 13 июл 2007, 18:58
- Репутация: 1
1. По поводу Tatuk Gis Calculator. С одной стороны, вшито много проекций, но точность отвратительная - 0,1". Так как на практике я пользуюсь проекцией Гаусса-Крюгера (k=1) и только, теоретически возможно ещё использование UTM (k=0.9996), то мне главное - точность пересчёта. Поэтому для точных расчётов пользоваться сей софтиной не рекомендую. Она может пригодиться при работе с координатами "картографической" точности в не самых крупных масштабах карт (1:50 000 и мельче).
2. МСК - местная система координат. Сами формулы есть, но: а) а вдруг опечатки? б) надо довольно долго программу писать.
3. Также стараюсь не писать программу, если уже где-то такая есть, по нахождению параметров перехода между геоцентрическими (геодезическими) координатами. Если в работе используется ряд опорных точек, для которых имеются координаты в различных СК, то стоит задача пересчитать (не аффинкой) в другую СК координаты всех остальных точек, для чего требуются найденные параметры 7-параметрического преобразования.
2. МСК - местная система координат. Сами формулы есть, но: а) а вдруг опечатки? б) надо довольно долго программу писать.
3. Также стараюсь не писать программу, если уже где-то такая есть, по нахождению параметров перехода между геоцентрическими (геодезическими) координатами. Если в работе используется ряд опорных точек, для которых имеются координаты в различных СК, то стоит задача пересчитать (не аффинкой) в другую СК координаты всех остальных точек, для чего требуются найденные параметры 7-параметрического преобразования.
- kitos
- Интересующийся
- Сообщения: 49
- Зарегистрирован: 09 апр 2007, 09:47
- Репутация: 0
- Откуда: Екатеринбург
- Контактная информация:
-
- Активный участник
- Сообщения: 209
- Зарегистрирован: 13 июл 2007, 18:58
- Репутация: 1
- kitos
- Интересующийся
- Сообщения: 49
- Зарегистрирован: 09 апр 2007, 09:47
- Репутация: 0
- Откуда: Екатеринбург
- Контактная информация:
за кальклятор - который TatukGIS Calculatоr)
про масштабный коэффициент уже нашел что искал)
вы могли бы еще посоветовать какое-то средство точного нахождения спроецированных координат по географическим? MapInfo хорошую точность к примеру дает?
вот еще одну программульку нашел:
http://softsearch.ru/programs/118-270-c ... load.shtml
про масштабный коэффициент уже нашел что искал)
вы могли бы еще посоветовать какое-то средство точного нахождения спроецированных координат по географическим? MapInfo хорошую точность к примеру дает?
вот еще одну программульку нашел:
http://softsearch.ru/programs/118-270-c ... load.shtml
-
- Активный участник
- Сообщения: 209
- Зарегистрирован: 13 июл 2007, 18:58
- Репутация: 1
Пусть наша точка имеет геодезические координаты на эллипсоиде Красовского
(двуосном, 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 метр).
Возможно, использовались алгоритмы низкой точности. К сожалению, нет работы ни с какими файлами, есть недоработки интерфейса, связанные с зонами.
Увы.
(двуосном, 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
- Откуда: Екатеринбург
- Контактная информация:
-
- Активный участник
- Сообщения: 209
- Зарегистрирован: 13 июл 2007, 18:58
- Репутация: 1
Так девятка - номер зоны, указывает на то, что центральный меридиан этой зоны имеет долготу 51°.
Я думаю, что в копилку самодельного софта в будущем можно выложить творения после тестирования.
Почему китосовый x на 4 миллиметра больше???
Я внедрил 3-членный ряд и 4-членный ряд - их результаты чуть-чуть отличаются (в пределах 1-3 мм), но 3-членное преобразование (по формулам из "Справочника геодезиста") применяется в подавляющем большинстве профессиональных геодезических калькуляторов, хотя оно и менее точное (декларируется ~1 мм, сходимость в пределах 0,1-0,2 мм), и его использование позволяет получать точно такие же результаты. 4-членное преобразование применяется только в Транскоре (точность - несколько десятков микрон, сходимость в пределах 20 микрон).
Я думаю, что в копилку самодельного софта в будущем можно выложить творения после тестирования.
Почему китосовый 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
- Откуда: Екатеринбург
- Контактная информация:
и еще вопрос. насчет формулы длины души меридиана, которая нужна для этого преобразования.
посмотрел в книге Бугаевского, там приведена такая:
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%. чисто из-за источника и, может быть, зря.
можете сказать, какая у вас или порекомендовать какой-то источник?
посмотрел в книге Бугаевского, там приведена такая:
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%. чисто из-за источника и, может быть, зря.
можете сказать, какая у вас или порекомендовать какой-то источник?
-
- Активный участник
- Сообщения: 209
- Зарегистрирован: 13 июл 2007, 18:58
- Репутация: 1
>>насчет формулы длины души меридиана

Короче.
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);
Но, как ни странно, результат расчёта длины такой же.

Короче.
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
- Откуда: Екатеринбург
- Контактная информация:
-
- Активный участник
- Сообщения: 209
- Зарегистрирован: 13 июл 2007, 18:58
- Репутация: 1
- kitos
- Интересующийся
- Сообщения: 49
- Зарегистрирован: 09 апр 2007, 09:47
- Репутация: 0
- Откуда: Екатеринбург
- Контактная информация:
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя