Как мне проверить реконструированное гравитационное поле Цереры по сферическим гармоникам?

Основываясь на очень полезном ответе @DavidHammen, я добился прогресса в восстановлении гравитационного поля Цереры по радиометрическим данным Dawn. Вопрос содержит дополнительную информацию, но здесь достаточно сказать, что я использую версию 2 данных по адресу https://sbn.psi.edu/pds/resource/dawn/dwncgravL2.html .

Ниже приведен скрипт Python, который я использовал для чтения JGDWN_CER18C_SHA.TABфайла и построения поля гравитационного потенциала. Я использую SciPy, sph_harmкоторый нормализован, и мне интересно, как убедиться, что это та же нормализация , которую предполагает нормализация системы планетарных данных НАСА во фразе (внутри JGDWN_CER18C_SHA.LBLфайла):

Некоторые детали, описывающие эту модель:
- Коэффициенты сферических гармоник полностью нормализованы.

В документации SciPy говорится (я только что скопировал html из проверки веб-страницы, и здесь он тоже волшебным образом форматируется, ура!):

Д н м ( θ , ф ) знак равно 2 н + 1 4 π ( н м ) ! ( н + м ) ! е я м θ п н м ( потому что ( ф ) )

Хотя я бы сравнил с опубликованной картой, и я нашел изображение ниже, на котором показаны топография и гравитация, но их нельзя сравнивать по нескольким причинам, в том числе:

  1. Опубликованная карта представляет собой гравитационное ускорение, а не потенциальное
  2. это график аномалии Бугера , который немного (слишком) сложен (для меня), но грубо, если я правильно понимаю, это означает, что (среди прочего, как проекция и другие поправочные термины) это гравитационное ускорение, оцененное на эллипсоиде поверхности, а не по фиксированному радиусу. Конечно, у него также (по крайней мере) удален термин «монополь».

Я понимаю, что для того, чтобы получить карту величины ускорения , вам нужно начать с градиента потенциала, но полномасштабная аномалия Бугера может иметь другие поправки, выходящие далеко за рамки того, что мне нужно понять прямо сейчас. На самом деле то, что мне нужно, это смоделировать низкую перицентрическую орбиту Dawn .

Вопрос: Вместо того, чтобы сравнивать с этим графиком аномалии Бугера, я хотел бы как-то напрямую сравнить мою реконструкцию потенциала. Как я могу это сделать? Как я могу это проверить?

" дополнительный балл: " Дают ли коэффициенты PDS уменьшенный потенциал (энергия на единицу массы) с единицами измерения км ^ 2 / с ^ 2, а не м ^ 2 / с ^ 2?


ниже: Из Park et al. Частично дифференцированный интерьер для (1) Цереры, выведенный из ее гравитационного поля и формы , том Nature 537, страницы 515–517 (22 сентября 2016 г.) https://doi.org/10.1038/nature18955

введите описание изображения здесь


ниже: я построил график U для n ≥ 5 и 4, потому что члены младшего порядка подавляют график r = Rref. Конечно, это (вероятно, одна из нескольких причин), почему люди используют графики Бугера и оценивают их на эллипсоиде.

введите описание изображения здесь

import numpy as np
import matplotlib.pyplot as plt
from scipy.special import sph_harm

halfpi, pi, twopi = [f*np.pi for f in (0.5, 1, 2)]
degs, rads = 180/pi, pi/180

j = np.complex(0, 1)

fname = "JGDWN_CER18C_SHA.TAB"

with open(fname, 'r') as infile:
    lines = infile.readlines()

header_data = lines[0].split(',')

Rref, GM, GMerr = [float(x) for x in header_data[0:3]]
Order_0, Order_1, normalization_state = [int(x) for x in header_data[3:6]]

if normalization_state == 1:
    print "coefficients are normalized"
elif normalization_state == 0:
    print "coefficients are NOT normalized"
else:
    print "coefficients  normalization is unclear"

h_lines = [line.split(',') for line in lines[1:]]
indices = np.array([[int(x)   for x in line[0:2]] for line in h_lines])
coeffs  = np.array([[float(x) for x in line[2:4]] for line in h_lines])

Cstars = (np.array([1, +j]) * coeffs).sum(axis=1) # make coefficient complex

ph         = np.linspace(0,  pi,    180+1)[:-1]
th         = np.linspace(0,  twopi, 360+1)[:-1]
phi, theta = np.meshgrid(ph, th, indexing='ij')

# https://docs.scipy.org/doc/scipy-1.1.0/reference/generated/scipy.special.sph_harm.html#scipy.special.sph_harm

harmonics = []

for (n, m), Cstar in zip(indices, Cstars):

    Y = sph_harm(m, n, theta, phi)

    harmonics.append((n, m, (Y * Cstar).real))  # 3-tuple of n, m, Y*C product

# evaluate gravitational potential
r = Rref

U_mono   = -GM/r

nmins = (5, 4)     # 5, 4, 3, 2

Us = []

for nmin in nmins:
    count = 0
    U = np.zeros_like(phi)
    for n, m, h in harmonics:
        if n >= nmin:
            U += h * (Rref/r)**n
            count += 1
    print nmin, count
    Us.append(U)

if True:
    plt.figure()
    for i, (nmin, U) in enumerate(zip(nmins, Us)):
        plt.subplot(len(Us), 1, i+1)
        plt.imshow(U, cmap='PuOr')
        plt.title('U_ceres(r=' + str(round(r, 1))  + 'km), nmin = ' + str(nmin), fontsize = 16)
        plt.colorbar()
    plt.show()
Связано, если не дубликат: как нормализуются коэффициенты в модели EGM96? К сожалению, этот вопрос остается без ответа.
Пакет scipy sph_harm — это не то, что вам нужно. Он использует форму сферических гармоник, предпочитаемую в квантовой физике. Геофизики используют форму, в которой используются реальные функции синуса и косинуса, а не комплексная экспонента, и нормализация другая.
@DavidHammen Спасибо за предупреждение, это действительно полезно! Делая С с т а р знак равно С + Дж С а затем оценивая р е а л ( Д   С с т а р ) эффективно разделяет их (хотя, возможно, мне следовало использовать знак минус С с т а р знак равно С Дж С теперь, когда я думаю об этом) нормализация - настоящая банка червей, поэтому я не удивлен, что может быть более одного способа сделать это. Хорошо, я пойду рыться в статьях по геофизике. Возможно, это будет в pdf-файле «как использовать», связанном с моделью WGS84.
обновление: я столкнулся со следующим и сейчас исследую; Физическая геодезия, 2-е (исправленное) изд. Бернхард Хофманн-Велленхоф Гельмут Мориц, SpringerWienNewYork, Раздел 1.10 Полностью нормализованные сферические гармоники
О господи... было весело читать, чувак. Спасибо за публикацию кода! Как разработчик это круто!!!
Если вы пытаетесь сопоставить гравитацию на поверхности со сферическими гармониками, удачи. Это может быть невозможно, так как сферические гармоники расходятся внутри сферы Бриллюэна, поэтому для посадочных операций предпочтительны многогранные или масконные модели. Но, возможно, я неправильно понял вопрос. В любом случае, если ваше конечное приложение представляет собой орбитальное тело, я бы предложил вручную закодировать процедуру вручную для ускорения (есть аналитическое выражение для градиента) и проверить, соответствуют ли результаты функции SciPy (если есть). Извините, я не пользователь Python, но это то, что я сделал в MATLAB.
@Julio спасибо за быстрый ответ! Хорошо, я посмотрю на это снова (это было некоторое время). Да, я хочу рассчитать орбиты, но надеюсь, что это будет за пределами какой-то минимальной сферы, чтобы гармоники были действительными. Я еще раз посмотрю, какие гравитационные данные доступны для Цереры...
@uhoh Не уверен, что смогу дать полный ответ, но по моему опыту нормализованные коэффициенты гравитации обычно означают настоящие гармоники, нормализованные на 4pi. Я понимаю, что вы хотите кодировать что-то самостоятельно, но, возможно, сверите свои расчеты с библиотекой SHTOOLS, которая написана для работы с потенциальными полями в науках о Земле и планетах. Если у вас есть доступ к информации об эллипсоиде и топографии, этот пример записной книжки позволяет легко пройти маршрут сравнения Бугера: nbviewer.jupyter.org/github/SHTOOLS/SHTOOLS/blob/master/…
@WJB Посмотрю, большое спасибо! Будет ли космический корабль на орбите Цереры работать на Юпитере? :-)

Ответы (1)

Формулировка

Брэндон А. Джонс написал превосходный обзор различных формулировок и методов вычисления сферических гармоник в своей докторской диссертации 2010 года, доступной здесь . Глава 2 представляет особый интерес. Вы также можете прочитать Fantino & Casotto 2008 «Методы гармонического синтеза для глобальных моделей геопотенциала и их градиентов первого, второго и третьего порядка», в котором предлагается несколько упрощенное вычисление гармоник.

Важно: кадр, в котором вычисляются гармоники, является фиксированным кадром тела. В случае с Землей вы будете использовать фрейм ECEF (см. главу 2 G. Xu and Y. Xu, GPS, DOI 10.1007/978-3-662-50367-6_2, которая находится в открытом доступе, для a путем вычисления этого кадра из кадра ECI с использованием структуры IAU2000). В случае других тел, и в частности Цереры, вам нужно будет создать фиксированную рамку тела. Эта документация GMAT может быть полезной.

Нормализация или нет

Я сам столкнулся с подобной проблемой несколько недель назад. С точки зрения нормализации и, по крайней мере, в случае ядер Земли, Луны и других ядер, доступных на PDS Geosciences Node , файлы SHADR содержат нормализованные сферические гармоники. Точно так же модель EGM2008 Tide Free также содержит нормализованные гармоники. Это значительно упрощает вычисления, поскольку вам не нужно пересчитывать гармоники с помощью факториальной математики.

Проверка и проверка

Шаг проверки должен быть довольно простым, но проверка — нет. Процесс проверки, по моему опыту, состоит в том, чтобы убедиться, что все реализовано правильно: проверяется закодированная математика и соответствие всех блоков друг другу. Однако этап проверки более сложен. Там вы хотите убедиться, что реализовано правильно, то есть, несмотря на то, что математика верна, используется ли правильная система отсчета для вычисления влияния сферических гармоник на орбитальный аппарат.

Как обсуждалось выше, файлы SHADR и SHBDR хранят нормализованные коэффициенты. Следовательно, один из методов проверки, который я выбрал для своего будущего инструмента , состоит в строгом сравнении результатов одного и того же сценария с другим известным инструментом проверки. В моем случае я использую GMAT НАСА, а GMAT использует STK и другие . Однако в случае с GMAT я не думаю, что можно импортировать файлы SHADR. Таким образом, вам нужно будет преобразовать его в файл поддержки COF или найти другой инструмент распространения, который также позволяет вам включать и выключать определенную динамику (в этом случае вам нужно, чтобы гармоники включались в заданной степени и порядке, но только Церера как точечная масса).

ChrisR спешит на помощь (снова)! Хорошо, я внимательно прочитаю это. Можете ли вы сначала дать мне tl; dr? Найду ли я некоторые точки данных гравитационного потенциала в нескольких местах, которые я могу использовать в качестве точек подтверждения, или ваш ответ заключается в том, что мне нужно будет освободить место на моем ноутбуке, скачать, установить под MacOS, а затем изучить совершенно новую программу, прежде чем я можно получить что-нибудь полезное?
Да, извините, я не дошел до сути вашего вопроса. Если вы хотите проверить свою реализацию, я думаю, что сравнение графика Бугера - хорошее начало. Для проверки вам нужно будет посмотреть на конкретные числовые значения. Для этого есть два метода. Первый требует, чтобы вы нашли значения из надежного источника (например, из бумаги), т.е. «с этим заданным состоянием мы получаем гравитационный потенциал X при использовании степени N и порядка M из файла Z». Вторая возможность — найти результат распространения или сгенерировать его из источника, такого как GMAT (работает в Windows, Linux и Mac).
@uhoh, вы также можете обратиться к ученым-планетологам из Open Planetary. Они очень полезны и довольно быстро отвечают в своей общедоступной системе чата Slack.
Хорошо, я думал, что объяснил, почему сравнение с графиком Бугера было бы плохой идеей для меня. Я никогда не слышал об Open Planetary, что это такое?
Хорошо, я думал, что объяснил, почему сравнение с графиком Бугера было бы плохой идеей для меня. Я никогда не слышал об Open Planetary, что это такое? О, я вижу, это коллекция портретов людей, пытающихся выглядеть умными, дальновидными и знающими. Я думаю, что веб-сайты, которые показывают дюжину тщеславных портретов , а не научные данные, как правило, не очень полезны, но ладно, я посмотрю. Спасибо за это предложение!
@uhoh, вы проверили их Slack ( openplanetary.slack.com ). Люди там обычно отзывчивые. В любом случае, я только что перечитал, почему вы не могли сравнить сюжет, и это имеет смысл. Вам нужно найти хорошую ссылку для этого. Более того, да, сферические гармоники относятся к эталонному эллипсоиду, поэтому вам нужен коэффициент сглаживания этой ссылки. Наконец, вы можете проверить NASA GEODYN, код Фортрана для точной геодезии, широко используемый даже сегодняшними аспирантами (два друга используют его каждый день).
"сферические гармоники относятся к эталонному эллипсоиду" Нет, это не так. Однако график Бугера может показать силу гравитационного ускорения на эллипсоиде. Есть ли способ узнать определения в GEODYN для коэффициентов сферических гармоник такие же, как те, которые используются в данных Dawn/Ceres?
Вы правы (а я ошибался): гармоники не соответствуют референтному эллипсоиду, по крайней мере, не для земных гармоник. Я спросил друга, который разбирается в геодезии намного лучше меня, и он порекомендовал следующую ссылку для хорошего объяснения аномалии Бугера: planetary.org/blogs/emily-lakdawalla/2012/… . Я также не думаю, что ГЕОДИН предоставляет свои собственные гармоники, но вместо этого я думаю, что пользователь должен указать их. Отнеситесь к этому последнему утверждению с особой осторожностью, потому что я никогда не использовал GEODYN!
Я спрашивал о ГЕОДИН, чтобы увидеть, как он использует коэффициенты сферических гармоник для построения полей потенциала и ускорения, а не для их создания.