Интерполяция значений вектора с помощью гауссовского процесса / Кригинг в Python - PullRequest
0 голосов
/ 29 ноября 2018

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

Мой фрейм данных выглядит примерно так:

lons_   lats_   U2M_    V2M_
.
.
.

Я могу следовать примерам на SciPy, но не уверен, смогу ли я использовать их методы, поскольку я пытаюсь интерполировать векторы - скорость и направление ветраиметь оба компонента u & v:

 ws_   = np.sqrt((U2M_ ** 2) + (V2M_ ** 2))
 dir_  = np.arctan2(V2M_,U2M_)

Где U2M _.... - это просто pd.Series (...) соответствующих построчных компонентов u, v.Могу ли я выполнить расчет для каждого компонента отдельно, а затем восстановить значения скорости и направления из интерполированных значений u, v?Я думаю, мои вопросы, это математически обоснованный процесс?

1 Ответ

0 голосов
/ 29 ноября 2018

Скорость ветра может быть интерполирована непосредственно из наблюдений, но направление ветра более сложное.Стандартный подход заключается в преобразовании в векторы - вы на полпути к этому, рассчитав компоненты u и v.Вы можете усреднить и интерполировать эти два значения, прежде чем преобразовать обратно в переменные ws и dir, используя формулы, которые вы дали.История этого объясняется гораздо лучше, чем я, на этом действительно полезном ресурсе:

Грэйндж, Стюарт.(2014).Техническое примечание: Усреднение скоростей и направлений ветра.10,13140 / RG.2.1.3349.2006.https://www.researchgate.net/publication/262766424_Technical_note_Averaging_wind_speeds_and_directions

...