В чем причина? Центры земли разные? Или экватор у нас поперек? И на сколько они различны максимально?
Форма и размер эллипсоидов разные. Центры и ориентация осей не совпадают. Оценить можно по гостовским формулам Для упрощённой оценки можно считать, что радиусы кривизны N = M = a.
По широте (φ) — порядка 3" По долготе на экваторе, где-то так же 3-4". С ростом широты из-за линейных элементов трансформирования величина будет увеличиваться. З.Ы. Это же легко проверить
Если совсем просто, то в любом геодезическом калькуляторе переведите в "плоскую" СК42 одни и те же координаты из геоцентрических СК42 и WGS 84, например, 50°сш и 50° вд. Разница в "плоских" будет больше 100м. Потому, когда кто-то просит перевести координаты из "географических", надо бы узнать, где их взяли. Из "Google" или "Генштаба"?
Ничего не вдруг. Я ведь специально привёл пример для широты 89°. Посмотрите внимательно на формулу разности долгот. (Тут надо не забывать, что это дифференциальная формула первого порядка) Первый член обратно пропорционален косинусу широты и приблизительно равен разности долгот на экваторе делённую на этот самый косинус широты (-194"), а второй пропорционален тангенсу широты и равен примерно -25".
При программировании пересчета рекомендуется для высоких широт использовать не встроенные в языки программирования функции sin и cos (tan) , а через разложение в ряд, да побольше членов разложения ...
Чудеса... Откуда инфа ? Спойлер (Наведите указатель мыши на Спойлер, чтобы раскрыть содержимое) Раскрыть Спойлер Свернуть Спойлер Откопал http://notabs.org/fpuaccuracy/ и далее по ссылкам http://notabs.org/fpuaccuracy/fpu-examples.htm ошибка ~ 1e-20
Оффтоп (Move your mouse to the spoiler area to reveal the content) А Вы попробуйте пересчет по 7 параметрам на широтах более 85 градусов через вшитое и через ряды ...
Пока думал, как лучше сформулировать вопрос, опередили. При каких значениях широт начинает сказываться потеря точности, если вычисления выполнять с double? З.Ы. Когда-то давным-давно давал студентам на практических занятиях по сферической астрономии задачку по решению сферического треугольника по трём сторонам, одна из которых была очень мала. Настолько мала, что косинус угла, вычисленный на калькуляторе, был равен 1. За десять лет только пара-тройка студентов сообразили как надо её решать. З.З.Ы. Для своей версии класса doubledouble использовал не разложение в ряд, а разложение в цепные дроби. Для тригонометрических и гиперболических функций скорость вычислений повысилась в два раза. Хотя операция деления всё ещё продолжает оставаться очень медленной. На большинстве современных процессоров умножение и сложение выполняется за один такт, а деление, как и извлечение квадратного корня (что очень удивительно) — за 19 тактов. --- Сообщения объединены, 10 мар 2015, Оригинальное время сообщения: 10 мар 2015 --- О каких рядах идёт речь?
После 75 ощущается, после 85 критично. Ситусы, косинусы ... si и co - через ряды и без степеней (умножением) MM = a * (1# - e2) * ((1# - e2 * siB * siB) ^ (-(3# / 2#))) N = a * ((1# - e2 * siB * siB) ^ (-0.5)) dB = (ro / (MM)) * ((N / a) * e2 * siB * coB * da + (((N * N) / (a * a)) + 1#) * N * siB * coB * de2 / 2# - (dX * coL + dY * siL) * siB + dZ * coB) - wX * siL * (1# + e2 * co2B) + wY * coL * (1# + e2 * co2B) - ro * m * e2 * siB * coB dL = (ro / (N * coB)) * (-dX * siL + dY * coL) + (siB / coB) * (1# - e2) * (wX * coL + wY * siL) - wZ
Во-первых, формулы для dB и dL — дифференциальные, получены разложением в ряд и оставлением только линейных членов по которым выполнялось дифференцирование. Использование средних аргументов чуть повышает точность, но не делает сами эти формулы даже сравнимыми по точности со стандартным переходом: [B,L,H] → [X,Y,Z]→[7 параметров]→[X,Y,Z]new→[B,L,H]new В плане скорости выигрыша также нет. Во-вторых, элементарный анализ ошибок показывает, что нет никакого преимущества в точности вычисления радиусов кривизны в меридиане (MM) и первом вертикале(N) по формулам по сравнению с rdenom = 1/sqrt(1 - e2*sin(B)*sin(B)) N = a*rdenom MM = a*(1 - e2)*rdenom*rdenom*rdenom. Да и для формул dB и dL проблем не вижу. Был бы премного вам благодарен, если бы продемонстрировали на конкретном примере преимущества вычисления путём разложения в ряд по сравнению со стандартным способом вычисления тригонометрических функций. Например, для широты 89°.
Там всё верно. Считаем по нашим данным. Берём 2 точку (на рисунке с табличным калькулятором). Она попадает в темно-синюю область. Вычисляем: √(2.66² + 5.37²) = 6.0" Что соответствует в линейной мере 6.0×30.9 = 185.4 м. Т.е. попадает в интервал (140÷170)±(16÷20) (синий±красный). З.Ы. Правда, есть один очень спорный момент
помогите рассчитать из WGS-84 в СК42 с долготой и широтой Северная ширина Восточная долгота 60°36'05,75618" 30°24'35,87967" 60°36'07,09669" 30°24'37,71240" 60°36'09,17322" 30°24'39,30486" 60°36'05,21545" 30°24'37,51578"
Держи 60°36'05,83192"N 30°24'44,17468"E 60°36'07,17237"N 30°24'46,00749"E 60°36'09,24884"N 30°24'47,60009" 60°36'05,29116"N 30°24'45,81072"
Спасибо!!! а еще 2 объекта сможете перевести Координаты точек в системе WGS-84 Пулково 42 (СК-42) Восточная долгота 30°24'51,47049" 30°24'54,68468" 30°24'55,09265" 30°24'51,87784" Координаты точек в системе WGS-84 Пулково 42 (СК-42) Северная ширина Восточная долгота 60°35'54,89360" 30°24'52,68793" 60°35'55,22763" 30°24'55,90210" 60°35'54,27934" 30°24'56,31006" 60°35'53,94467" 30°24'53,09592" --- Сообщения объединены, 30 окт 2015, Оригинальное время сообщения: 30 окт 2015 --- Координаты точек в системе WGS-84 Пулково 42 (СК-42) Северная ширина Восточная долгота 60°35'55,75787" 30°24'51,47049" 60°35'56,09190" 30°24'54,68468" 60°35'55,14362" 30°24'55,09265" 60°35'54,80926" 30°24'51,87784" во втором участке не скопировалась северная широта, дублирую