趣味で計算流砂水理

Computational Sediment Hydraulics for Fun

オープンデータによる河川流解析:平面二次元流解析 : 格子生成編

computational-sediment-hyd.hatenablog.jp

の詳細編です.

jupyterはこちら

格子生成

  • 原点の東経132.8143, 北緯35.4159,緯度から角度が26度
  • x軸(ξ軸)が1000m,y軸(η軸)が90m
  • メッシュサイズは5m

標高データの設定

  • さらに,周期境界で扱いやすくするため,平均河床勾配により正規化を行う.平均河床勾配は1/670.

出力

今回は,多次元データを取扱いのため,xarrayモジュールを使って,NetCDF形式で出力.

ds = xr.Dataset({'dz': (['x','y'], ZZZ)}, coords={'xc': (('x', 'y'), Qx), 'yc': (('x', 'y'), Qy)})
ds.to_netcdf('dz.nc')

ポイントと参考サイト

geoviewsによる描画

QuadMeshメソッドを使うことにより,曲線座標系の描画が非常に楽.

Quadmesh — HoloViews

Resampling Grids — GeoViews 1.6.2.post2+g5918985-dirty documentation

xarrayによるデータセットの作成

  • 今回は出力のみ使っているが,計算結果もxarrayによる出力している.多次元かつirregular gridsの扱いが容易.
  • NetCDFのファイルに入出力が可能であり軽量

Plotting — xarray 0.11.3+1.ga5cacb7 documentation

Serialization and IO — xarray 0.11.3+1.ga5cacb7 documentation