Перейти к основному содержимому
Перейти к основному содержимому

Глобальная историческая климатологическая сеть NOAA

Этот набор данных содержит метеорологические измерения за последние 120 лет. Каждая строка представляет собой измерение для определенной точки во времени и станции.

Более подробно, согласно источнику этих данных:

GHCN-Daily — это набор данных, который содержит дневные наблюдения по всему миру. Он включает измерения на основе станций с наземных метеостанций по всему миру, примерно две трети из которых предназначены только для измерений осадков (Menne et al., 2012). GHCN-Daily является композицией климатических записей из множества источников, которые были объединены и подвергнуты общему набору проверок качества (Durre et al., 2010). Архив включает следующие метеорологические элементы:

  • Максимальная температура за день
  • Минимальная температура за день
  • Температура на момент наблюдения
  • Осадки (т.е. дождь, растопленный снег)
  • Снегопад
  • Глубина снега
  • Другие элементы, если они доступны

В следующих разделах представлена краткая информация о шагах, необходимых для загрузки этого набора данных в ClickHouse. Если вам интересно почитать о каждом шаге более подробно, рекомендуем ознакомиться с нашей статьей в блоге под названием "Исследование огромных реальных наборов данных: более 100 лет метеорологических записей в ClickHouse".

Загрузка данных

  • Предобработанная версия данных для ClickHouse, которая была очищена, переработана и обогащена. Эти данные охватывают годы с 1900 по 2022.
  • Скачать оригинальные данные и преобразовать в формат, нужный для ClickHouse. Пользователи, желающие добавить свои собственные столбцы, возможно, захотят воспользоваться этим подходом.

Предобработанные данные

Было удалено больше строк, которые не прошли проверки качества от NOAA. Данные также были переработаны с одной строкой на измерение до одной строки на идентификатор станции и дату, т.е.

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

Эти данные доступны по следующему пути S3. Вы можете либо скачать данные на свой локальный компьютер (и вставить с помощью клиента ClickHouse), либо вставить непосредственно в ClickHouse (см. Вставка из S3).

Для загрузки:

Оригинальные данные

Следующие шаги описывают процесс загрузки и преобразования оригинальных данных для подготовки к загрузке в ClickHouse.

Загрузка

Чтобы загрузить оригинальные данные:

Отбор образцов данных

Подводя итог документации по формату:

Подводя итог документации по формату и столбцам в порядке:

  • 11-значный код идентификации станции. Он сам по себе кодирует полезную информацию
  • ГОД/МЕСЯЦ/ДЕНЬ = 8-значная дата в формате YYYYMMDD (например, 19860529 = 29 мая 1986 года)
  • ELEMENT = 4-значный индикатор типа элемента. По сути, тип измерения. Хотя доступно много измерений, мы выбираем следующие:
    • PRCP - Осадки (десятые доли миллиметра)
    • SNOW - Снегопад (мм)
    • SNWD - Глубина снега (мм)
    • TMAX - Максимальная температура (десятые доли градуса Цельсия)
    • TAVG - Средняя температура (десятые доли градуса Цельсия)
    • TMIN - Минимальная температура (десятые доли градуса Цельсия)
    • PSUN - Дневной процент возможного солнечного света (процент)
    • AWND - Средняя дневная скорость ветра (десятые доли метра в секунду)
    • WSFG - Скорость ветра при порывах (десятые доли метра в секунду)
    • WT** = Тип погоды, где ** определяет тип погоды. Полный список типов погоды здесь.
  • DATA VALUE = 5-значное значение данных для ELEMENT т.е. значение измерения.
  • M-FLAG = 1-значный флаг измерения. Это значение может принимать 10 возможных значений. Некоторые из этих значений указывают на сомнительную точность данных. Мы принимаем данные, где этот флаг установлен на "P" - определённое как отсутствующий, с предполагаемым значением ноль, так как это имеет значение только для измерений PRCP, SNOW и SNWD.
  • Q-FLAG - это флаг качества измерения с 14 возможными значениями. Нас интересуют только данные с пустым значением, т.е. данные, которые не провалили ни одну проверку качества.
  • S-FLAG - флаг источника наблюдения. Не полезен для нашего анализа и игнорируется.
  • OBS-TIME = 4-значное время наблюдения в формате часы-минуты (т.е. 0700 = 7:00 утра). Обычно отсутствует в старых данных. Мы игнорируем это для наших целей.

Одно измерение на строку приведет к разреженной структуре таблицы в ClickHouse. Мы должны преобразовать к строке на время и станцию, с измерениями как столбцы. Сначала мы ограничиваем набор данных теми строками, которые не имеют проблем, т.е. где qFlag равно пустой строке.

Очистка данных

С помощью ClickHouse local мы можем отфильтровать строки, представляющие интересующие нас измерения и соответствующие нашим требованиям качества:

С более чем 2,6 миллиарда строк, этот запрос не является быстрым, так как он требует разбора всех файлов. На нашем 8-ядерном компьютере это занимает около 160 секунд.

Поворот данных

Хотя структура "одно измерение на строку" может быть использована с ClickHouse, она усложнит будущие запросы. В идеале нам нужна строка на идентификатор станции и дату, где каждый тип измерения и связанное значение — это столбец т.е.

С помощью ClickHouse local и простого GROUP BY мы можем переобработать наши данные в эту структуру. Чтобы ограничить использование памяти, мы делаем это с одним файлом за раз.

Этот запрос создает один файл на 50 ГБ noaa.csv.

Обогащение данных

В данных нет указания местоположения, кроме идентификатора станции, который включает префикс кода страны. В идеале, каждая станция должна иметь широту и долготу. Для достижения этой цели NOAA удобно предоставляет информацию о каждой станции в отдельном ghcnd-stations.txt. Этот файл имеет несколько столбцов, из которых пять полезны для нашего будущего анализа: id, широта, долгота, высота и название.

Этот запрос выполняется за несколько минут и создает файл размером 6.4 ГБ, noaa_enriched.parquet.

Создание таблицы

Создайте таблицу MergeTree в ClickHouse (из клиента ClickHouse).

Вставка в ClickHouse

Вставка из локального файла

Данные можно вставить из локального файла следующим образом (из клиента ClickHouse):

где <path> представляет собой полный путь к локальному файлу на диске.

Смотрите здесь, чтобы узнать, как ускорить эту загрузку.

Вставка из S3

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

Примеры запросов

Самая высокая температура когда-либо зарегистрированная

Убедительно подтверждает документированное значение в Furnace Creek на 2023 год.

Лучшие горнолыжные курорты

Используя список горнолыжных курортов в Соединенных Штатах и их соответствующие местоположения, мы соединяем их с 1000 метеостанциями с наибольшим количеством осадков в любом месяце за последние 5 лет. Упорядочивая это соединение по geoDistance и ограничивая результаты теми, где расстояние меньше 20 км, мы выбираем лучший результат для каждого курорта и сортируем по общему количеству снега. Обратите внимание, что мы также ограничиваем курорты высотой более 1800 м, как общий индикатор хороших условий для катания на лыжах.

Благодарности

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

Menne, M.J., I. Durre, B. Korzeniewski, S. McNeal, K. Thomas, X. Yin, S. Anthony, R. Ray, R.S. Vose, B.E.Gleason, и T.G. Houston, 2012: Глобальная историческая климатологическая сеть — Ежедневно (GHCN-Daily), Версия 3. [укажите использованную подсеть, следуя десятичной, например, Версия 3.25]. NOAA Национальные центры информации об окружающей среде. http://doi.org/10.7289/V5D21VHZ [17/08/2020]