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

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

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

Более точно и согласно происхождению этих данных:

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

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

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

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

Предварительно подготовленные данные

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

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

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

Чтобы скачать:

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

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

Загрузка

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

Выборка данных

Резюмируя документацию формата:

Резюмируя документацию формата и колонки в порядке:

  • Код идентификации станции из 11 символов. Это само по себе кодирует некоторую полезную информацию.
  • ГОД/МЕСЯЦ/ДЕНЬ = 8-символьная дата в формате YYYYMMDD (например, 19860529 = 29 мая 1986 года).
  • ЭЛЕМЕНТ = 4-символьный индикатор типа элемента. Фактически, тип измерения. Хотя доступно много измерений, мы выбираем следующие:
    • PRCP - Осадки (десятые доли мм)
    • SNOW - Снегопад (мм)
    • SNWD - Глубина снега (мм)
    • TMAX - Максимальная температура (десятые доли градуса Цельсия)
    • TAVG - Средняя температура (десятые доли градуса Цельсия)
    • TMIN - Минимальная температура (десятые доли градуса Цельсия)
    • PSUN - Дневной процент возможного солнечного света (процент)
    • AWND - Средняя скорость ветра за день (десятые доли метра в секунду)
    • WSFG - Максимальная скорость порыва ветра (десятые доли метра в секунду)
    • WT** = Тип погоды, где ** определяет тип погоды. Полный список типов погоды здесь.
  • ЗНАЧЕНИЕ ДАННЫХ = 5-символьное значение данных для ЭЛЕМЕНТА, т.е. значение измерения.
  • 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]