Интерполяция значений вектора с помощью Gaussian Process/Kriging в Python

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

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

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? Я предполагаю, что мои вопросы в том, является ли это математически обоснованным процессом?


person markcoder1980    schedule 29.11.2018    source источник


Ответы (1)


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

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

person Bill Oates    schedule 29.11.2018