NOAAグローバル歴史気候ネットワーク
このデータセットには、過去120年間の天候測定値が含まれています。各行は、特定の時点および観測所に対する測定値です。
より正確には、このデータの起源に従って:
GHCN-Dailyは、世界の陸地における日次観測を含むデータセットです。これは、世界中の陸上観測所からの測定に基づいており、その約3分の2は降水量の測定のみに関係しています(Menne et al., 2012)。GHCN-Dailyは、多くのソースからの気候記録の合成であり、一緒にマージされ、共通の品質保証レビューを受けました(Durre et al., 2010)。アーカイブには、以下の気象要素が含まれています:
- 日次最大気温
- 日次最小気温
- 観測時の温度
- 降水量(すなわち、雨、融雪)
- 降雪量
- 雪の深さ
- 利用可能な他の要素
以下のセクションでは、このデータセットをClickHouseに取り込むために関与した手順の概要を簡単に説明します。各ステップについて詳細に読みたい場合は、私たちのブログ記事「"大規模なリアルワールドデータセットを探る: ClickHouseにおける100年以上の気象記録"」を参照することをお勧めします。
データのダウンロード
- ClickHouse用にクリーンアップ、再構成、強化されたデータの事前準備されたバージョン。このデータは1900年から2022年までをカバーしています。
- オリジナルのデータをダウンロードし、ClickHouseが必要とするフォーマットに変換します。独自のカラムを追加したいユーザーは、このアプローチを検討するかもしれません。
事前準備されたデータ
より具体的には、Noaaの品質保証チェックに失敗しなかった行が削除されています。また、データは行ごとの測定から、各観測所IDと日付ごとの行に再構成されました。すなわち、
これはクエリがシンプルになり、結果として得られるテーブルがスパースになりにくくなります。最終的に、データには緯度と経度も追加されています。
このデータは以下のS3ロケーションで入手可能です。データをローカルファイルシステムにダウンロード(そしてClickHouseクライアントを使用して挿入)するか、ClickHouseに直接挿入します(S3からの挿入を参照)。
ダウンロードするには:
オリジナルデータ
以下に、ClickHouseにロードするためのオリジナルデータをダウンロードし、変換する手順を詳述します。
ダウンロード
オリジナルデータをダウンロードするには:
データのサンプリング
フォーマットのドキュメントを要約すると:
フォーマットドキュメントとカラムの概要:
- 11文字の観測所識別コード。これ自体は有用な情報をエンコードしています。
- YEAR/MONTH/DAY = YYYYMMDD形式の8文字の日付(例:19860529 = 1986年5月29日)
- ELEMENT = 要素タイプの4文字指標。実質的に測定タイプです。多くの測定値がありますが、以下を選択します:
- PRCP - 降水量(十分の1ミリメートル)
- SNOW - 降雪量(ミリメートル)
- SNWD - 雪の深さ(ミリメートル)
- TMAX - 最大気温(十分の1度)
- TAVG - 平均気温(十分の1度)
- TMIN - 最小気温(十分の1度)
- PSUN - 日次の可能な日差しの割合(パーセント)
- AWND - 平均日次風速(十分の1メートル毎秒)
- WSFG - 最大突風風速(十分の1メートル毎秒)
- WT** = 天候タイプ、ここで**は天候タイプを定義します。天候タイプの完全なリストはこちらです。
- DATA VALUE = ELEMENTの5文字データ値、すなわち測定値の値。
- M-FLAG = 1文字の測定フラグ。これは10の可能な値があります。これらの値のいくつかは、データの正確性に疑問を呈します。"P"に設定されたデータを受け入れます - 雨量がゼロと見なされていることが確認されていますが、これはPRCP、SNOW、およびSNWDの測定にのみ関連しています。
- Q-FLAGは測定の品質フラグで、14の可能な値があります。私たちは、空の値のデータのみを関心に持ちます。すなわち、これは品質保証チェックに失敗していません。
- S-FLAGは観測のソースフラグです。私たちの分析には役立たず無視します。
- OBS-TIME = 時刻観測の4文字(時:分)形式の時間(すなわち、0700 =午前7時)。これは、古いデータには通常存在しません。私たちの目的には無視します。
1行ごとの測定は、ClickHouseでスパースなテーブル構造を生成します。私たちは時間と駅ごとの行に変換し、測定値をカラムにしなければなりません。まず、qFlag
が空の文字列に等しい行のみを制限します。
データのクリーニング
ClickHouse localを使用すると、関心のある測定を表す行をフィルタリングし、品質要件を満たすことができます:
26億行を超えるため、これはすべてのファイルを解析するため、迅速なクエリではありません。私たちの8コアマシンでは、約160秒かかります。
データのピボット
1行ごとの構造は、ClickHouseで使用できますが、今後のクエリを不必要に複雑にすることになります。理想的には、各観測所IDと日付ごとの行が必要で、それぞれの測定タイプと関連値がカラムとして存在する形です。すなわち、
ClickHouse localを使用し、シンプルな GROUP BY
を用いることで、データをこの構造に再ピボットすることができます。メモリオーバーヘッドを制限するため、1ファイルずつ行います。
このクエリは単一の50GBファイル noaa.csv
を生成します。
データの強化
データは観測所ID以外のロケーション情報を持っていませんが、観測所IDには国コードのプレフィックスが含まれています。理想的には、各観測所に関連する緯度と経度が必要です。これを実現するために、NOAAは各観測所の詳細を別のghcnd-stations.txtとして便利に提供しています。このファイルには、私たちの将来の分析に有用な5つのカラム(ID、緯度、経度、標高、名前)が含まれています。
このクエリは数分かかり、6.4 GBのファイル noaa_enriched.parquet
を生成します。
テーブル作成
ClickHouse内でMergeTreeテーブルを作成します(ClickHouseクライアントから)。
ClickHouseへのデータの挿入
ローカルファイルからの挿入
データは次のようにローカルファイルから挿入できます(ClickHouseクライアントから):
ここで、<path>
はディスクのローカルファイルへのフルパスを表します。
こちらを参照して、この読み込みを加速する方法を確認してください。
S3からの挿入
この読み込みを加速する方法は、大規模なデータ読み込みのチューニングについてのブログ記事を参照してください。
サンプルクエリ
これまでの最高気温
Furnace Creekにおける記録された最高気温と一致しているのは、安心です(2023年時点)。
最高のスキーリゾート
アメリカ合衆国のスキーリゾートのリストと、それぞれの場所を使用して、過去5年間において最も降雪があった上位1000の気象観測所と結合し、geoDistanceでソートし、距離が20km未満の結果に制限します。リゾートごとの上位結果を選択し、総降雪量でソートします。なお、スキー条件の良い指標として、1800m以上のリゾートに制限しています。
クレジット
私たちは、データの準備、クリーニング、配布におけるグローバル歴史気候ネットワークの努力を認識したいと思います。あなたの努力に感謝します。
Menne, M.J., I. Durre, B. Korzeniewski, S. McNeal, K. Thomas, X. Yin, S. Anthony, R. Ray, R.S. Vose, B.E.Gleason, and T.G. Houston, 2012: Global Historical Climatology Network - Daily (GHCN-Daily), Version 3. [小数点以下のサブセットを指定してください。例:バージョン3.25]。NOAA国立環境情報センター。http://doi.org/10.7289/V5D21VHZ [17/08/2020]