Рельеф Земли - отклонения геоида
комментарии в LiveJournal Нарисуем форму Земли математически точно.
Известно, что Земля - это эллипсоид с искажениями. Искажения называются "отклонениями геоида" (по английски "geoid undulations").
Contents
Модель геоида[edit]
Ожидаемые отклонения геоида согласно английской и
русской википедий находятся в диапазоне 192,4 м от -107 м до +85,4 м.
Погрешностью высоты в 1 м, вызванной выбором модели отклонений геоида, пренебрегаю.
Использование GIS[edit]
Пытался нарисовать карту в геоинформационной системе (называю в дальнейшем GIS). Использовал бесплатную GIS GRASS. Наткнулся на ограничение - медленное преобразование карт при изменениях датума. GIS вроде как и поддерживают расчет наклона оси вращения оси, но в GRASS этих настроек не нашел. Также выяснилось, что при интенсивном изменении датума скорость GIS существенно падает. А моделировать изменение скорости и угла вращения Земли нужно обязательно.
Поэтому рисую карты самодельными алгоритмами.
Земля -
Мерцания на береговых линиях вызваны низким разрешением [math]k_7[/math] (HEALPix 200 тысяч).
Палитры цветов получены из GRASS: water и модифицированная
gyr.
Алгоритм[edit]
Формула эллипсоида[edit]
Беру формулу эллипса в полярных координатах из википедии - . Подставляю в данные Earth2014 - и тут меня ожидало разочарование: диапазон отклонений геоида оказался на 50 метров больше ожидаемого. Вместо 192м я получил 250м.
Проверил параметры эллипсоида: Earth2014 использует GRS80, википедия - WGS 84, и радиусы у них идентичны (радиус оси экватора a = 6 378 137,0 м; радиус полярной оси b = 6 356 752,3141 м).
Оказывается, что формула эллипса формуле эллипса рознь. Нужно брать из Hirt, C. and M. Rexer (2015), Earth2014.
Код[edit]
Алгоритм расчета отклонений геоида выглядит так:
public override double? GetAltitude(HealCoor basin)
{
var altitude = Relief.GetAltitude(basin);
var altitudeShape = ReliefBed.GetAltitude(basin) + 6371000;
var thetaTan = Ellipsoid.CalcThetaTan(basin.Beta.Value);
var undulation = altitudeShape - altitude
- Ellipsoid.Radius(Ellipsoid.FromSpheric(thetaTan));
return undulation;
}
Закладка[edit]
При выполнении алгоритма нашел закладку. Я почти отправил Кристиану Херту письмо про как бы ошибку, но подумав, уразумел, что это просто "защита от дурака".
Смысл в том, что представляя данные двумя вариантами: в точности 1 минута дуги и 5 минут дуги, Christian Hirt публикует файлы в равнопромежуточной проекции. А известно, что отклонения геоида версии EGM96 сделаны в сферических функциях. Преобразования между ними нетривиальные, поэтому предполагаю, что для неподготовленной публики он преобразовал EGM96 в равнопромежуточную проекцию красиво , надеясь, что полезные данные в такой точности не будут использоваться из-за искажений
Я уже начал сомневаться в выборе проекции HEALPix, но потом глянул данные Earth2014 в точности 1 минута дуги.
Оказалось, что там EGM96 преобразована для расчетов правильно , а в равнопромежуточной проекции визуально искажена
Мне не нужна равнопромежуточная проекция для расчетов, поэтому использую проекцию HEALPix и данные точностью 1 минута дуги, как и планировалось.
Результат[edit]
Для [math]k_{10}[/math] (HEALPix 13 миллионов) диапазон отклонений геоида равен 193,1м от -108.1 м to +85 м
Отличие в 0,8 метр от ожидаемых отклонений объясняю погрешностью преобразования между равнопромежуточной и HEALPix проекциями, которую можно уменьшить, обрабатывая данные Earth2014 в сферических функциях без преобразования проекций, но пока что погрешностью высоты в 0,8 м, вызванной преобразованиями между проекциями, пренебрегаю. Погрешность в 1 м, вызванная выбором модели геоида, не влияет на результат.
Анимация[edit]
Представляю Землю, деформированную пропорционально отклонениям геоида. Для наглядности деформации преувеличены в десятки тысяч раз.
Использовалась программа PlanetMaker. Вмятости bumpmap - это отклонения геоида в серых оттенках. Нормали normalmap создал с помощью http://cpetry.github.io/NormalMap-Online на основании bumpmap.
Для наглядности материки и острова появляются в виде белых контуров с заливкой или без. (nightlightsonly).
tags: Earth, planet, geoid, undulations, Земля, форма Земли, планета, геоид, геиод