琵琶湖の水位データを取得して指定日の経年グラフを作ってみた
2026年もすっかり春になりました。なんと、今年初のブログ更新ですが、手元ではチマチマと色々しています。今回はそんなネタのひとつ、国交省の水文水質データベースから、琵琶湖水位のデータをまとめて取得し、指定した日時の経年グラフを作ってみたメモです。
一例として、1993〜2026年の04/23 06:00のグラフは次の通りです:
さて、
昨2025年末ごろから渇水のニュースをよく見かけるようになりました。ここ滋賀県でも行政による水位低下の状況調査や国への要請など渇水対策が行われていました。
そこで気になるのが琵琶湖の水位です。水資源機構から出ている前日までの琵琶湖水位を過去の代表年とあわせたグラフを見ていると、今年(2026年)の水位は低めで推移しているようです:
(リンク先は随時変化するので、2026/04/24 9:00現在の部分キャプチャを示しています)
ただ、このグラフに出ているのは「代表年」(記録的な高水位・低水位を示した年や近年のもの)の水位と昨年までの平均水位であり、今年の水位が過去と比較してどの程度なのかは分からず、例えば「低め」に見えても「よくある」低水位なのかも知れません。 グラフが参照しているデータを探したところ、国土交通省 水文水質データベースに行き当たりました(「データの利用について、許可等は必要ありません」と明示されていて安心)。琵琶湖の水位は、
「観測所諸元からの検索」
>「観測所名」に「琵琶湖」と入力して「検索」をクリック
>「1 水位流量 淀川 琵琶湖 琵琶湖 琵琶湖」の観測所名をクリック
>「水位月表検索」をクリック
>「年」「月」を入力して「検索開始」をクリック
という手順を経て、次の表(リンク先は2026年4月)が得られます:
(2026/04/24 10:55現在の部分キャプチャを加工)
ここで、2026/04/23 6時のデータ-0.22mが、上記水資源機構のグラフ中の値と一致しています。
しかし如何にも手順がややこしく、特定の日付のデータを1993年の取得開始から2026年までハンドで引っぱってくるのは無理です。そこで、過去データを全てローカルにダウンロードするプログラムと、ローカルのデータから欲しいところを取ってくるプログラムを書くことにしました。 データのダウンロードをするために、対象のURLを確認します(ブラウザによってはURL末尾が切れるかも知れません)。
1993年1月のデータ:
https://www1.river.go.jp/cgi-bin/DspWaterData.exe?KIND=2&ID=306041286603280&BGNDATE=19930101&ENDDATE=20261231&KAWABOU=NO
2026年4月のデータ:
https://www1.river.go.jp/cgi-bin/DspWaterData.exe?KIND=2&ID=306041286603280&BGNDATE=20260401&ENDDATE=20261231&KAWABOU=NO
どうやら、"BGNDATE"にYYYYMM01と入れれば良さそうだと見当を付けて試してみたら合っていました。また、クエリの順番が関係あるか確認したところ、例えば次のようにBGNDATEを最後に回しても大丈夫だと分かりました:
https://www1.river.go.jp/cgi-bin/DspWaterData.exe?KIND=2&ID=306041286603280&ENDDATE=20261231&KAWABOU=NO&BGNDATE=20260401
これであれば、URL文字列の生成は楽です。今回はデータ取得の開始年月・終了年月を引数で指定して、順に時刻水位月表をBeautiful Soupでスクレイピングし、Pandasでデータフレームに変換してCSV保存する、という手順でデータのダウンロードを行うプログラム"bl.py"(bl: Biwako Level)を組みました。 続いて、ダウンロードした年月毎のCSVデータから、引数で指定した月日・時のデータを抽出するプログラム"ebl.py"(ebl: Extract Biwako Level)を組みました。手順としてはCSVファイルのファイル名から、抽出する月データが存在する年をリスト化して、その年月のデータから指定月日の指定時間データを抽出し、年と水位のCSVファイルとして出力します。 このようにして抽出したデータを適当な表計算ソフト等でグラフ化すれば、やりたかったことの完了です。冒頭の図を再掲します:
コードはGitHubにアップしておきました。
結果として得られたグラフを見て、次のようなことを考えています:
1. やはり水資源機構のグラフでは代表年だけなので、今年の水位が示す意味は読み取りにくい。
2. 4月ごろの水位は基本的にB.S.L.で0m〜0.2mの間にコントロールしようとしているようだ。今年の水位は例年と比較しても低めであることは確か。
3. 但し、この-0.2mというレベルは、水質や淀川水系で必要とされる流量など多角的に決まるもので、「琵琶湖の水位情報|滋賀県ホームページ」の管理レベルにも余裕で入っており、深刻なものでは無いと思う。 また、今回プログラムを組んでいて気付いたのですが、観測所によってデータのフォーマットは様々です。「観測所諸元」の「観測項目」が「水位流量」である観測所の「水位月表」なら今回のプログラムのクエリを流用してデータ取得できそうですが、例えばダム諸量のデータは全くフォーマットが異なるので、欲しい情報によって検討が必要になります。 以上、何かの参考になれば幸いです。 パドラッパ from MacBook Air (M2)
一例として、1993〜2026年の04/23 06:00のグラフは次の通りです:
さて、
昨2025年末ごろから渇水のニュースをよく見かけるようになりました。ここ滋賀県でも行政による水位低下の状況調査や国への要請など渇水対策が行われていました。
そこで気になるのが琵琶湖の水位です。水資源機構から出ている前日までの琵琶湖水位を過去の代表年とあわせたグラフを見ていると、今年(2026年)の水位は低めで推移しているようです:
(リンク先は随時変化するので、2026/04/24 9:00現在の部分キャプチャを示しています)
ただ、このグラフに出ているのは「代表年」(記録的な高水位・低水位を示した年や近年のもの)の水位と昨年までの平均水位であり、今年の水位が過去と比較してどの程度なのかは分からず、例えば「低め」に見えても「よくある」低水位なのかも知れません。 グラフが参照しているデータを探したところ、国土交通省 水文水質データベースに行き当たりました(「データの利用について、許可等は必要ありません」と明示されていて安心)。琵琶湖の水位は、
「観測所諸元からの検索」
>「観測所名」に「琵琶湖」と入力して「検索」をクリック
>「1 水位流量 淀川 琵琶湖 琵琶湖 琵琶湖」の観測所名をクリック
>「水位月表検索」をクリック
>「年」「月」を入力して「検索開始」をクリック
という手順を経て、次の表(リンク先は2026年4月)が得られます:
(2026/04/24 10:55現在の部分キャプチャを加工)
ここで、2026/04/23 6時のデータ-0.22mが、上記水資源機構のグラフ中の値と一致しています。
しかし如何にも手順がややこしく、特定の日付のデータを1993年の取得開始から2026年までハンドで引っぱってくるのは無理です。そこで、過去データを全てローカルにダウンロードするプログラムと、ローカルのデータから欲しいところを取ってくるプログラムを書くことにしました。 データのダウンロードをするために、対象のURLを確認します(ブラウザによってはURL末尾が切れるかも知れません)。
1993年1月のデータ:
https://www1.river.go.jp/cgi-bin/DspWaterData.exe?KIND=2&ID=306041286603280&BGNDATE=19930101&ENDDATE=20261231&KAWABOU=NO
2026年4月のデータ:
https://www1.river.go.jp/cgi-bin/DspWaterData.exe?KIND=2&ID=306041286603280&BGNDATE=20260401&ENDDATE=20261231&KAWABOU=NO
どうやら、"BGNDATE"にYYYYMM01と入れれば良さそうだと見当を付けて試してみたら合っていました。また、クエリの順番が関係あるか確認したところ、例えば次のようにBGNDATEを最後に回しても大丈夫だと分かりました:
https://www1.river.go.jp/cgi-bin/DspWaterData.exe?KIND=2&ID=306041286603280&ENDDATE=20261231&KAWABOU=NO&BGNDATE=20260401
これであれば、URL文字列の生成は楽です。今回はデータ取得の開始年月・終了年月を引数で指定して、順に時刻水位月表をBeautiful Soupでスクレイピングし、Pandasでデータフレームに変換してCSV保存する、という手順でデータのダウンロードを行うプログラム"bl.py"(bl: Biwako Level)を組みました。 続いて、ダウンロードした年月毎のCSVデータから、引数で指定した月日・時のデータを抽出するプログラム"ebl.py"(ebl: Extract Biwako Level)を組みました。手順としてはCSVファイルのファイル名から、抽出する月データが存在する年をリスト化して、その年月のデータから指定月日の指定時間データを抽出し、年と水位のCSVファイルとして出力します。 このようにして抽出したデータを適当な表計算ソフト等でグラフ化すれば、やりたかったことの完了です。冒頭の図を再掲します:
コードはGitHubにアップしておきました。
結果として得られたグラフを見て、次のようなことを考えています:
1. やはり水資源機構のグラフでは代表年だけなので、今年の水位が示す意味は読み取りにくい。
2. 4月ごろの水位は基本的にB.S.L.で0m〜0.2mの間にコントロールしようとしているようだ。今年の水位は例年と比較しても低めであることは確か。
3. 但し、この-0.2mというレベルは、水質や淀川水系で必要とされる流量など多角的に決まるもので、「琵琶湖の水位情報|滋賀県ホームページ」の管理レベルにも余裕で入っており、深刻なものでは無いと思う。 また、今回プログラムを組んでいて気付いたのですが、観測所によってデータのフォーマットは様々です。「観測所諸元」の「観測項目」が「水位流量」である観測所の「水位月表」なら今回のプログラムのクエリを流用してデータ取得できそうですが、例えばダム諸量のデータは全くフォーマットが異なるので、欲しい情報によって検討が必要になります。 以上、何かの参考になれば幸いです。 パドラッパ from MacBook Air (M2)





















最近のコメント