Пространственно-временной кригинг в питоне с использованием sklearn? - PullRequest
0 голосов
/ 17 мая 2018

У меня есть данные о погоде для 6 метеостанций. Для всех этих станций у меня есть долгота и широта, а также дата и время (каждые 10 минут с начала 2016 года или около того). Я хочу использовать метод интерполяции кригинга, чтобы заполнить пропущенные значения в других местах длинных / лат (между этими станциями).

Я знаю, что у scikit-learn есть GaussianProcessRegressor, который можно использовать для кригинга. Однако я не понимаю, как я могу включить временные измерения в процесс подбора. Это вообще возможно или мне нужно подбирать отдельную модель для каждого моего времени?

X должен быть массивом функций, которые в моем случае были бы широтой и долготой (я думаю). X теперь представляет собой список из 6 пар широта / длинна (например, [52.1093, 5.181]) для каждой станции. Я взял одну дату, чтобы проверить GPR. y - список длины 6, который содержит точки росы для этих станций в это конкретное время.

Теперь проблема в том, что я действительно хочу делать кригинг для всех дат. Как мне включить эти даты? Должен ли я добавить datetime в качестве элементов в массиве X (например, [52.1093, 5.181, 2017, 1, 2, 10, 50])? Это выглядит очень странно для меня. Однако я не могу найти другого способа также моделировать временной фактор.

Мой код для установки GaussianProcessRegressor:

one_date = meteo_df[meteo_df['datetime'] == 
datetime].drop_duplicates(subset=['long', 'lat'], keep='last')

long = one_date['long']
lat = one_date['lat']
x = [[la,lo] for la, lo in zip(lat, long)]
y = list(one_date['dew_point']) 

GPR = GaussianProcessRegressor(n_restarts_optimizer=10)
GPR.fit(x, y)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...