本レッスンは「観測所 = 特徴量ベクトル」と捉え、 14日間の時間プロファイル + 緯度経度 という異なる性格の特徴量を 1 つのクラスタリング問題として扱う。
| 論題 | データセット | DL | 保存先 | 形式 | サイズ |
|---|---|---|---|---|---|
| 雨量10分値 14日分 (各日別 CSV) | DoBoX #1275 | ページから DL ボタン | data/rain_2024/rain_2024-MM-DD.csv (×14) | CSV (5段ヘッダ, 10分値, UTF-8 BOM) | 1.0〜1.4 MB / 日 |
| 観測所一覧 (緯度経度) | DoBoX #1274 | 直DL | data/extras/stations_master.csv | CSV (3行ヘッダ, 緯度経度・観測所属性) | 約 160 KB |
個別取得(PowerShell, このレッスンだけ):
cd "2026 DoBoX 教材"
iwr "https://hiroshima-dobox.jp/resource_download/39775" -OutFile "data/extras/stations_master.csv"一括取得(全レッスン共通, 推奨):
cd "2026 DoBoX 教材"
py -X utf8 data\fetch_all.pyfetch_all.py はカタログ・追加データを data/ と data/extras/ に再現可能ダウンロード。DoBoX のオープンデータは申請不要、商用・非商用とも利用可。本レッスンの .py スクリプトは、データが無ければ自動取得してから処理を始めるよう実装されています(ensure_dataset() ヘルパ)。
cd "2026 DoBoX 教材"
python -X utf8 lessons/L07_kmeans_stations.py
resample("D").sum)。
さらに 14日合計が 1mm 未満の観測所は無降雨/欠測として除外。↑ L07_kmeans_stations.py 行 418–562





| クラスタ | 観測所数 | 14日合計 平均(mm) | 最大日 平均(mm) | 雨日数 平均 | ピーク時刻 平均(時) | 緯度 平均 | 経度 平均 |
|---|---|---|---|---|---|---|---|
| 0 | 22 | 201.0 | 75.3 | 5.68 | 20.4 | 34.619 | 133.038 |
| 1 | 52 | 199.0 | 66.6 | 6.69 | 3.4 | 34.346 | 132.851 |
| 2 | 31 | 281.6 | 91.5 | 7.23 | 20.2 | 34.565 | 132.449 |
| 3 | 100 | 219.7 | 74.3 | 7.00 | 20.3 | 34.703 | 132.804 |
| 4 | 36 | 174.6 | 53.8 | 7.06 | 20.4 | 34.673 | 132.691 |
| 5 | 88 | 253.6 | 95.8 | 7.07 | 3.2 | 34.416 | 132.607 |
| 6 | 36 | 216.9 | 71.4 | 8.39 | 19.2 | 34.825 | 133.066 |
| 7 | 27 | 323.0 | 136.2 | 7.04 | 5.6 | 34.358 | 132.344 |
| 比較 | Adjusted Rand Index |
|---|---|
| (A) 雨量のみ vs (B) 空間のみ | 0.130 |
| (A) 雨量のみ vs (C) 統合 | 0.679 |
| (B) 空間のみ vs (C) 統合 | 0.211 |
ARI は 2 つのクラスタリング結果の一致度 (1.0 で完全一致, 0 でランダム同等, 負で逆相関)。雨量と空間が低 ARI なら「時間パターンと地理は別軸の情報」、高 ARI なら「地理が時間パターンを支配」と解釈できる。
scipy.cluster.hierarchy.linkage で観測所間の
類似度ツリーを作り、k を「ツリーをどこで切るか」で選ぶ。folium.CircleMarker で DoBoX
のオープンデータを可視化し、クラスタ凡例付きで HTML 埋め込みする
(L076-L079 参照)。