Меридианная проекция - вода
Интуитивно понятно изучать Землю в разрезе меридианов.
Содержание
Самая простая модель[править]
Создадим самую простую модель Мирового океана.
Игнорируем сушу и дно. Интересуемся только водой.
Как считать уровень воды[править]
Имеем один меридиан, разделенный на тазики от северного полюса до южного.
Для расчета уровней воды в тазиках выбираю сферические координаты.
Другие виды координат не подходят, потому что:
- в геоцентрических координатах радиус не перпендикулярен датуму, и градиент спокойствия равен нулю. Но при изменении уровня воды градиент спокойствия становится не равным нулю, поэтому расчеты нужно отвязывать от датума, а по определению это нельзя делать.
- в геодезических координатах радиус перпендикулярен датуму, и градиент спокойствия равен нулю, но для несбалансированной воды радиус настолько изменчив, что объемы соседних тазиков пересекаются, а это усложняет расчеты.
В сферических координатах радиус не перпендикулярен датуму, и градиент спокойствия не равен нулю. Эта особенность позволяет отвязываться от датума и переходить от одного к другому. Также для несбалансированной воды, и при изменении уровня воды радиус стабилен.
Алгоритм[править]
Рассчет происходит по такому алгоритму:
- начальные условия: спокойная Земля, сферические координаты
- для каждого тазика [math]\nabla{g}_q[/math] (градиент спокойствия) = [math]\theta[/math] - [math]\vartheta[/math] = [math]\phi[/math] (Deflection angle ellipsoidal)
- получить пересечения линий градиента с радиусами OQ, OQs и т.д. Пересечения находятся на высотах [math]h_{Q_i}[/math] ([[|]]) и [math]h_{Q_s}[/math] ([[|]]) и т.д. Отрезок, проведенный через эти пересечения, есть проекция общего ребра между соседями.
- разница [math]h_Q[/math] и [math]h_{Q_s}[/math] должна быть 0, а в реальности получен результат с диапазоном 1,8м для [math]k_8[/math], 1м для [math]k_9[/math]
- сумма разниц для двух соседних тазиков (используется при расчете [math]V_{to}[/math] (тазик, объёмы перетекания)) становится симметричной относительно экватора и диапазон меньше 1 см для [math]k_9[/math].
-
- на входе: [math]h_{OQ}[/math] (тазик, высота) и [math]\nabla{g}_e[/math] (градиент волнения)
- изменение градиента сохраняет объем воды тазика с высокой точностью благодаря симметричности в сферических координатах
- на выходе: [math]V_{to}[/math] (тазик, объёмы перетекания), которые нужно перелить через каждое из 4 общих ребер
- перелить воду
- на выходе: [math]h_{OQ}[/math]
- идти на п.2
пересчитывать [math]\nabla{g}_q[/math] (градиент спокойствия) при изменении [math]a[/math] - Эллипсоид, большая полуось, [math]g[/math] - [[|]], а также при значительном изменении [math]h_{OQ}[/math]
Примеры[править]
На следующих изображениях северных полюс находится вверху, южный - внизу. Экватор посередине.
Слева направо возрастает модельное время, то есть левая сторона изображения показывает начальные условия.
Глубины отсчитываются относительно формы Земли в эллипсоидальном приближении. Нулевая отметка глубины окрашена в зелёно-синий цвет (Aquamarine).
Закругленности вверху и внизу оставлены для красоты...
первый пример[править]
Один тазик поднимается с глубины 500м, а другой опускается с высоты 500м:
Видно, что вода падает и поднимается, сохраняя неестественную отвесность сторон тазиков. Это вызвано тем, что вода перетекает через ребра верхней грани, а не через ребра сторон.
Возникающая волна выглядит естественно.
второй пример[править]
Постепенно уменьшаем центробежное ускорение:
Видно, что высота волны постепенно увеличивается и смещается к полюсам.
Можно посмотреть в изменяющемся масштабе, когда на каждый момент времени масштаб выбирается таким, чтобы экстремальные значения были выделены самым контрастным цветом:
Легенда показывает масштаб для последнего момента, потому что рост волны не останавливается.
Высота волны в 172 метра (разница между полюсами и экватором) - это конечно, мало для данного случая, но здесь я столкнулся с ограничениями компьютера.
К высоте волны в 7 километровой компьютер шел около получаса.