Часть 0: настройка фрейма данных
Метеорологические и океанские модели являются важным инструментом для получения будущего поведения метеорологических переменных, таких как интенсивность ветра, температура воздуха, облачный покров, интенсивность дождя, высота волн и т. Д. Каждый может пользоваться широким спектром приложений и веб-страниц, на которых отображается метеорологическая и океаническая информация.
Метеорологические модели - это математические представления. Модель рассчитывает для нескольких временных интервалов и нескольких мест значения метеорологических или океанических переменных. Давайте посмотрим на пример.
На рисунке выше показан результат модели GFS. Метеорологической переменной была скорость и направление ветра. Модель берет начальные условия (в 06Z 03 сентября, вторник 2019) и пытается вычислить ветер через 45 часов (03Z 05 сентября, четверг 2019). Модели только прогнозируют значение метеорологических переменных в определенных местах. Места образуют модельную сетку. На рисунке показана модельная сетка и расположение аэропорта Виго (Испания).
Точки, обозначенные от 0 до 8, являются точками, в которых метеорологическая модель определяет значение прогнозируемых переменных. Метеорологическая станция находится в аэропорту Виго (LEVX по индикатору OACI). Мы стремимся построить модель машинного обучения, в которой входные данные являются выходными данными метеорологической модели. Метеорологическая модель прогнозирует в точках от 0 до 8 в разное время в будущем все метеорологические переменные.
Во-первых, нам нужно создать базу данных, когда строки - это даты, а столбцы - переменные, наблюдаемые (с метеорологической станции), и переменные, прогнозируемые (на основе метеорологической модели).
Метеорологическая модель, которую я использовал для создания базы данных, поддерживается Meteogalicia (государственная метеорологическая служба). Meteogalicia предоставила модель WRF, применяемую в регионе Галисия (северо-запад Испании). Они используют THREDDS (Тематическая служба распределенных данных окружающей среды в реальном времени) - инструмент связи между поставщиками научных данных и конечными пользователями. Историческую модель мы можем получить из архива Meteogalicia WRF.
Актуальные метеорологические данные получены с метеорологической станции в аэропорту Виго. Университет штата Айова предоставляет базу данных с метеорологическими отчетами аэропортов, проверьте эту ссылку.
Вы можете получить фрейм данных из моего репозитория в Github. Код будет таким:
import pandas as pd #from Github link url="https://raw.githubusercontent.com/granantuin/LEVX_class/master/maestro.csv" master=pd.read_csv(url,index_col=”datetime”,parse_dates=True)
И вы можете визуализировать фрейм данных с помощью:
import pandas_profiling pandas_profiling.ProfileReport(master)
Фрейм данных содержит 33 функции (столбцы) и 61256 наблюдений (строки раз).
Столбцы названы:
[‘dir_o’, ‘wind_gust_o’, ‘skyc1_o’, ‘skyc2_o’, ‘skyc3_o’, ‘skyc4_o’, ‘wxcodes_o’, ‘metar_o’, ‘dir_p’, ‘lhflx_p’, ‘mod_p’, ‘prec_p’, ‘rh_p’, ‘visibility_p’, ‘wind_gust_p’, ‘mslp_p’, ‘temp_p’, ‘cape_p’, ‘cfl_p’, ‘cfm_p’, ‘cin_p’, ‘conv_prec_p’, ‘mslp_o’, ‘temp_o’, ‘dwp_o’, ‘rh_o’, ‘visibility_o’, ‘mod_o’, ‘skyl1_o’, ‘skyl2_o’, ‘skyl3_o’, ‘skyl4_o’]
Столбцы со знаком «_o» - данные, наблюдаемые на метеостанции. Столбцы с «_p» - это переменные, прогнозируемые для модели на тот момент. Модель, которую я использую, прогнозирует от 0 до 72 часов. Даты в кадре данных - это прогнозы от 24 до 48 часов.
Мы можем получить индекс с помощью:
master.index
И получаем:
DatetimeIndex([‘2011–08–22 20:00:00’, ‘2011–08–22 21:00:00’, ‘2011–08–22 22:00:00’, ‘2011–08–22 23:00:00’, ‘2011–08–23 00:00:00’, ‘2011–08–23 01:00:00’, ‘2011–08–23 02:00:00’, ‘2011–08–23 03:00:00’, ‘2011–08–23 04:00:00’, ‘2011–08–23 05:00:00’, … ‘2019–05–29 14:00:00’, ‘2019–05–29 15:00:00’, ‘2019–05–29 16:00:00’, ‘2019–05–29 17:00:00’, ‘2019–05–29 18:00:00’, ‘2019–05–29 19:00:00’, ‘2019–05–29 20:00:00’, ‘2019–05–29 21:00:00’, ‘2019–05–29 22:00:00’, ‘2019–05–29 23:00:00’]
Строки имеют тип DateTime. Время указано в единицах UTC. Например, первая строка (индекс) 2011-08-22 20:00:00 означает, что переменная, предсказанная моделью на 2011-08-22 20:00:00, была получена из модели, выпущенной во время анализа времени 2011-08-21. 00:00:00. Значит, мы видим прогноз H + 45. Фрейм данных содержит только прогнозы с интервалами от 24 часов до 48 часов. Строки с временем 00:00:00 - это прогноз H + 24, а строки со временем 23:00:00 - это прогнозы H + 48. Я выбираю пространственную точку 3 на рисунке выше. Примерно в 5 км от метеостанции аэропорта.
Теперь мы объясним значение и единицы измерения каждой переменной. Начнем с наблюдаемых переменных (расширение «_o»).
metar_o: необработанный метеорологический отчет, публикуемый каждые 30 минут на станции Виго. Мы не используем полчаса, потому что модель не сообщает за полчаса. Более подробную информацию об отчете METAR вы можете увидеть здесь.
dir_o: наблюдаемое направление ветра. С севера по часовой стрелке. Единицы - градусы. -1 означает переменное направление.
mod_o: интенсивность ветра. Единицы измерения - метры в секунду. Все измерения ветра производятся на высоте 10 метров.
wind_gust_o: порыв ветра. Единицы измерения - метры в секунду. -1 означает, что порыв ветра не сообщается.
visibility_o: видимость в метрах. Минимальная видимость - 48 280 319 метров. Сообщается о максимальной видимости 9994.026301 (полная видимость). Извините за десятичные точки. Речь идет о смене единиц несколько раз.
wxcodes_o: коды текущей погоды (через пробел). Перейдите по ссылке на отчет Metar, чтобы получить текущие коды погоды.
skyc1_o, skyc2_o, skyc3_o, skyc4_o: охват уровня неба на нескольких уровнях. Грубо говоря, количество облаков. Категориальные данные. M означает отсутствие облачности.
skyl1_o, skyl2_o, skyl3_o, skyl4_o: уровень неба Высота облачного покрова в метрах на нескольких уровнях. -One означает отсутствие облачности
temp_o: температура воздуха по Кельвину на расстоянии 2 метров.
dwp_o: температура точки росы в градусах Кельвина на расстоянии 2 метра.
rh_o: относительная влажность.
mslp_o: давление на уровне моря в паскалях
Столбцы с расширением _p - это переменные, прогнозируемые моделью. Вы можете получить более подробную информацию о переменных, предсказываемых моделью WRF, здесь. Давайте опишем каждый из них, как они появляются во фрейме данных:
lhflx_p: S направлен вниз, скрытый тепловой поток. Единицы, Вт на квадратный метр
dir_p: прогнозируемое направление ветра. С севера по часовой стрелке. Единицы - градусы. В отличие от dir_o, переменный ветер не прогнозируется (нет значений -1)
mod_p: прогнозируемая интенсивность ветра. Единицы измерения - метры в секунду.
Prec_p: общее количество осадков между выходными данными каждой модели. В нашем случае каждый час. Единицы килограммы на квадратный метр.
rh_p: относительная влажность.
visibility_p: Видимость в воздухе. Единицы измерения. Минимальная видимость 26,028316 метров. Максимальная видимость 24235.000000
wind_gust_p: порыв ветра. Единицы измерения - метры в секунду. В отличие от wind_gust_o всегда прогнозируется (нет значения -1)
mslp_p: Давление на уровне моря в паскалях
temp_p: температура воздуха по Кельвину на высоте 2 метров.
cape_p: Конвективная доступная потенциальная энергия. Единицы: Жюли на килограмм. Проверьте эту ссылку для получения дополнительной информации.
cin_p: Конвективное торможение. Для получения дополнительной информации нажмите здесь. Единицы Жюлей на килограмм
cfl_p: Доля площади облаков в нижнем слое атмосферы. Я нашел 1251 образец со значениями выше 1. Возможно, мы бы не стали так сильно доверять этой функции.
cfm_p: Доля площади облаков в среднем слое атмосферы. Кроме того, я нашел 37 образцов со значениями выше 1.
conv_prec_p: Общее количество конвективных осадков между выходными данными каждой модели. В нашем случае каждый час.
С помощью этого фрейма данных мы будем создавать задачи классификации и регрессии, в которых независимой переменной будут переменные с расширением «_p», которые являются выходными данными метеорологической модели. Зависимые переменные или целевые переменные будут переменными с расширением «_o», наблюдаемыми на станции.
Оценим метеорологическую модель. Мы будем применять те же показатели, что и для оценки модели машинного обучения. Иногда будет сложно победить метеорологическую модель. Например, корреляция между наблюдаемыми и прогнозируемыми переменными давления составляет более 0,9.
Заключение и перспективы
База данных является отправной точкой для оценки метеорологических моделей и создания моделей машинного обучения для повышения их точности. Следующий пост я начну с видимости переменной. Я надеюсь, что эта научная область может заинтересовать многих. Не стесняйтесь присылать свои комментарии. Спасибо, что прочитали пост!