Глобальная историческая климатологическая сеть 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 года)
- ЭЛЕМЕНТ = 4-значный индикатор типа элемента. Фактически, тип измерения. Хотя имеется много доступных измерений, мы выбираем следующие:
- PRCP - Осадки (десятых долей мм)
- SNOW - Снегопад (мм)
- SNWD - Глубина снега (мм)
- TMAX - Максимальная температура (десятых долей °C)
- TAVG - Средняя температура (десятых долей °C)
- TMIN - Минимальная температура (десятых долей °C)
- 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]