趣味で計算流砂水理

趣味で計算流砂水理 Computational Sediment Hydraulics for Fun Learning

数値計算とか河川工学とかプログラミングのことを書いています

MENU

水工学委員会「令和元年度台風19号豪雨災害調査団」速報会に参加してきた

12/25追記 発表資料が公開されていました。

committees.jsce.or.jp


12/6に水工学委員会「令和元年度台風19号豪雨災害調査団」速報会に参加してきたのでそのレポートを.

プログラムはこんな感じです.

f:id:SedimentHydraulics:20191216181122j:plain

仕事の関係で前半のみ(中北先生の前)で帰りました.

私の専門分野なので令和元年台風19号水害の特徴を自分なりにまとめておきます.

降雨規模は過去最高クラスで短時間,広範囲型

河川流,越水はとにかく大規模

  • 多くの河川で計画高水位を超過.利根川でも広範囲で超過.
  • 越流水深が多きすぎる.千曲川では縦断的に1km以上の範囲で越流し,水深は最大1m.
  • 10時間以上越水し続けた場所もある.
  • 入間川流域では,短時間で急激に降ったため,計画降雨の遅れ時間よりも短くなり,ピークが重なった.

氾濫,破堤はあらゆるところで

  • 破堤は多分100箇所以上.大部分が県管理箇所なので情報が少ない.宮城,福島がほとんど.
  • 氾濫流が河川に戻す際にまた越水して堤防の川表を浸食し,破堤する現象が多く見られた.
  • 扇状地の県管理河川では,河道を完全に無視して,自由に網状化,蛇行化するような現象が多く見られた.
  • 那珂川の氾濫箇所では3日間浸水が続いた.ここはもともと霞堤があったが河川整備で閉じられた.

避難指示にまずいところがあった

  • 避難判断(実績ベース) は遅れ時間の判断にまずいところがあった.入間川流域の一部では避難指示解除後に越水,破堤.
  • そもそも水位周知河川ではない河川※で越水.※判断基準や浸水想定区域図がない.

被害者,死者は溺死が多い

  • 業界の定説で豪雨による河川氾濫は死者がほとんど出ない(死者は土砂災害)がありますが,今回は溺死が多い.
  • 原因は現時点では不明ですが,氾濫流が大き過ぎたことが想定される.

その他

  • 各発表資料はかなり貴重なデータなので是非公開してほしい.
  • 定量的なデータがほとんどない.どんどん計測,公開して良い研究が生まれて欲しい.
  • 危機管理水位計のデータはあまり使えなかったらしい.
  • すべての発表で石川忠晴先生が質問してました.元気です.

報告会を聞いてから思うこと

  • 今回の雨は近年最大で今後河川整備のベンチマークになってくるのかなと思う.
  • 想定を超える外力に対するシステム設計(ビヨンドデザイン)の必要性を痛感.
  • 被災状況はメディア等の情報以上に深刻で,情報収集は重要だと思った.実際に自宅の市内でも,外水氾濫が多く生じたがほとんど報道されてない.
  • 直轄とそれ以外では情報量の差がかなり大きい.
  • 判断の分かれるところではあるが,各地域の具体策を国主導で進めるのは経済的,時間的に難しい気がする.河川計画のダウンスケーリングは各地域でやる必要があるのでないか.
  • そんなところで,最近まじめに地域防災を考えてみようかなと感じてます.

Tellus Satellite Cafeに参加してきた

12/5にさくらインターネットが主催するTellus Satellite Cafeに参加してきた 衛星データの活用の勉強会です. プログラムはこんな感じです.

f:id:SedimentHydraulics:20191208100027j:plain

  • 相変わらずプレゼンのレベルが高い.(普段は土木なので特に感じます.)
  • Tellusのさくらインターネットのビジネスモデルとしては,データはオープンで開発環境(jupyterlab)を動かすクラウドで儲ける感じだと思います(今は無料).なので,開発環境外からのデータの呼び出しはできません
  • 開発環境は関連モジュールが一通り整備されていて(tensorflowも),GPU等のパワフルなクラウドも準備されているので良いのかもしれませんが,個人的にはローカルでやりたいですね.
  • 別途webベースのjsを使えるアプリケーションもありますが,こちらもデータはダウンロードできない.
  • オープンデータの概念から外れるかもしれませんが,データを有料(サブスクとか)にしても良いのでローカルで作業したい.
  • restecの道下さんのプレゼンは,光学,合成開口レーダの衛星の基礎知識を短時間で完結にまとめたもので非常に勉強になりました.
  • restecのe-laernning(https://rs-training.jp/traininglist/)も比較的安価で準備されているので勉強してみようかと思います.
  • 衛星データの活用は,衛星とDeep learnnigが基本で何か物理じゃないんですよね.アイデアはいくつかあるので時間を見つけて頑張ってみます.
  • Tellus上には他では手に入らないようなデータもセットされていますが都市部が中心です.河川屋的には地方が欲しいです.

全然関係ないですが,衛星つながりで,

https://www.bbc.com/japanese/features-and-analysis-50051505

https://graphics.reuters.com/ASIA-STORM-JAPAN-LJA/0100B2GP1R7/index.html

  • 価格が高いので個人利用はできませんが,今後流行るような気がします.

応用力学講演会「災害現象に対する応用力学研究の展望」に参加してきた

なんか本業が忙しくて全然書けません。もう少しで落ち着くのいろいろ書きます。

応用力学講演会「災害現象に対する応用力学研究の展望」に参加してきました。プログラムはこんな感じです。

f:id:SedimentHydraulics:20191204211636j:plain

なんとなく印象に残ったことを。

  • 設計基準を超過するような現象(河川だと越水破堤、ダムの異常洪水時操作等)はこれまで想定してこなかったが、これからはこれらのリスクを評価することが必要(辻本先生)。
  • 設計基準は単なる線引きで安全とは別。設計基準から安全までの残余のリスクを評価することが必要。大規模外力時のソフト対策から復旧までのシステム全体の最適化を図る。リスクは頻度と影響度で評価。(吉田先生)
  • 起こりうる大規模外力の想定が必要であるが、降雨はd4PDFを使う研究が増えている(杉原先生)。
  • 予測精度を上げるためには、複合現象の数値計算が必要であるが、まだまだ計算資源が足りないため、deep learningによるHPCのケイパビリティの向上が期待できる(市村先生)。

高水敷にデューンが...

ふと川のライブカメラをみていると高水敷にデューンが見えました.

先日の台風19号によってできたものですが,多分低水路から乗り上げた土砂によるものと思われます. ということは,乗り上げた粒径が相当荒いのと高水敷上でも相当な掃流力が働いたこと想定されます. ぜひ計算してみたい...

f:id:SedimentHydraulics:20191022124032j:plain

ライブ版はこちら

多分どこよりも速い:千曲川破堤氾濫地区の再現計算(第2報)

computational-sediment-hyd.hatenablog.jp

前回の続きです。

 アニメーション

破堤後0~20時間のアニメーションです。

f:id:SedimentHydraulics:20191015220819g:plain

地理院の結果との比較

20時間の比較です。いい感じです。

f:id:SedimentHydraulics:20191015220858p:plain

f:id:SedimentHydraulics:20191015220914j:plain

詳細な水深分布はこちらから https://computational-sediment-hyd.github.io/ChikumaRivOnOct2019-FloodWaterD2Dmodel/20hour.html

ソースコード等はgithub

github.com

多分どこよりも速い:千曲川破堤氾濫地区の再現計算(速報)

千曲川の破堤による氾濫地区について,速報として再現計算をしてみました。 計算条件は得られる情報で以下のとおりにしました。

  • 地形条件は国土地理院の5mメッシュ
  • 氾濫条件は,破堤幅70m,越流水深1mで,本間の越流公式(完全越流)で計算すると,約100m3/sのため,連続式の右辺の同量を加えた。つまり,フラックス0の水塊がある状態。計算は,10 x 10mのメッシュで計算したため,0.2cmづつ5メッシュに分割して設定。

右側のツールバーのwheel zoom等で拡大,縮小できます。

計算結果

水深と流速ベクトルを図化しました。 右側のツールバーのwheel zoom等で拡大,縮小できます。

  • 破堤30分後

車両基地のほうに向かって一直線です。相対的に低いようですね。

  • 破堤1時間後

盛土があるのか南北方向に広がります。

  • 破堤3時間後

車両基地はアウトですね。どんどん広がります。

  • 破堤10時間後

浅川の左岸側まで広がりました。地形条件がおかしい?

地理院の情報と比較すると浸水範囲が狭いので,氾濫流量が多いか氾濫時間が長いのかどっちかだと思います。引き続き検証してみます。

浸水深の情報は地理院より公開されておりますので,それも参照下さい。 https://www1.gsi.go.jp/geowww/201910/shinsui/01_shinsui_chikuma.pdf

その他

  • 数値計算は,現象を理解するためには有効な手段の一つなので,今後の河道計画,都市計画の立案,見直しの基礎資料になるかと思います。
  • ご依頼いただければ,他地域も計算します。

ソースコード

MITライセンスですべてオープンにしております。ご活用下さい。

github.com

高設定のためモジュールは以下の参照

computational-sediment-hyd.hatenablog.jp

衛星画像処理用スクリプト:備忘録

最近衛星画像の処理をする機会が増えましたが,データ容量が大きいため,GISソフトウェアなんか使っていたらいつまでも終わらないので,GDALやpythonで処理をします。

結構煩雑なので備忘録的にまとめておきます。

ちなみにフリーで手に入るものは,

ALOS AVNIR-2 https://www.eorc.jaxa.jp/ALOS/alos-ori/index.html

LANDSAT8(他にもいろんなダウンロードサイトがあります) https://landbrowser.airc.aist.go.jp/landbrowser/index.html

等があります。

回転したgeotifのRGB合成

衛星画像は緯度に対して回転した(傾いた)geotiffがほとんどですが,gdalが対応してません。なので,worldfileを使って以下のようなに処理が必要。

rem worldfile(tfw file)を作成
gdal_translate -co "TFW=YES" band.tif out.tif

rem worldfileを設定(作業終了後は必ずunsetする)
set GDAL_GEOREF_SOURCES=out.tfw
rem vrtファイルを作成
gdalbuildvrt -separate out.vrt bandred.tif bandgreen.tif bandblue.tif
rem RGB合成したtifを作成
gdal_translate out.vrt out.tif

参考サイト

https://gis.stackexchange.com/questions/271995/how-to-get-gdaltranslate-to-create-world-file

https://stackoverflow.com/questions/52334933/merging-multiple-bands-together-through-gdal-correctly

https://gis.stackexchange.com/questions/336367/error-gdalbuildvrt-does-not-support-rotated-geo-transforms/336674

pansharpen

LANDSAT等は,パンシャープンを行う。

gdal_pansharpen panchro.tif bandred.tif bandgreen.tif bandblue.tif out.tif

参考サイト

https://gdal.org/programs/gdal_pansharpen.html

大規模tifのmerge

基本的には使わない。gdalbuildvrtでvrtを作る。

圧縮とかbigtiffとかを指定。

gdal_merge -o out.tif -ot Uint16 -co COMPRESS=LZW -co BIGTIFF=YES file1.tif file2.tif ......

参考サイト

https://qiita.com/naru-T/items/b87c83fad05634919532

ラスタ演算

pythonがかなり楽です。

import xarray as xr

# この一行でgeotiffをxarrayで読み込む
d = xr.open_rasterio('*.tif')
# バンドを取得,シングルでもマルチでも同じ
band = d.values

# こんな感じで計算
ind = (band[2] - band[4]) / (band[2] + band[4])

ちなみに結果をgeotiffで出力する場合,rioxarrayを使う。

import rioxarray

xrds = xr.Dataset({'value':(['y','x'], ind)} 
                    , coords={'x':d['x'], 'y':d['y']}
                    , attrs= d.attrs ) 


# うまくepsgが付かないことがある。
#xrds.rio.set_crs("epsg:****")

# 2020/7/7追記
xrds = xrds.rio.write_crs('EPSG:****',inplace = True)
# 投影を変換する場合
# xrds = xrds.rio.reproject("epsg:****")

xrds['value'].rio.to_raster('out.tif')

tellus(https://www.tellusxdp.com/ja/)がローカルのjupyterでも使えるようになったらいいのな。


2020/5/2追記

以下のサイトにも詳しく書いてました。

http://www7b.biglobe.ne.jp/~oyama/GDAL/gdal.html