2026年5月2日土曜日

コード整備

先月、地方への出張が続いたためか、出不精がより落ち着いて家にこもっています。この時間のあるうちに、いくつかのコードとマニュアルを整備することにしました。


・機械学習モデルの利用サンプル
お客様のご依頼で、Pythonを触ったことのない方でも使えるようにブラウザ上で判定させるサンプルモデルを作成。Python 環境を Docker file にまとめ、OSに関わらず動くようにしました。

・水文水質データベースのスクレーパー
国土交通省 水文水質データベースから、以下のデータをCSVファイルとして取得できるようにしました。
  • 観測所一覧 雨量・水位流量・ダム堰
  • 時間雨量 指定観測所の任意期間の時間雨量 [mm/h]
  • ダム諸量 指定ダムの任意期間の流域平均雨量・貯水量・流入量・放流量・貯水率
  • 水位・流量 指定観測所の任意期間の水位 [m]・流量 [m³/s]
このスクレーパーは、後輩さんからの依頼です。以前、Python で似たようなスクリプトを作成していましたが、Pythonを知らない方でも簡単に使えるようにC++へ移植・拡張。すべてブラウザのフォーム操作のみで完結するGUIも作成し、コマンドプロンプトでなくとも動かせるようにしました。
リクエスト間隔を2秒に固定しサーバー負荷への配慮しつつ、取得済みデータはローカルにキャッシュして二度取得しないようにしました。どの程度のアクセス頻度がOUTなのか判断できなかったため、公開は控えています。

・SPH 土ー水連成
Drag Force を考慮した2相2層でのコードを整備。もともと書いていたコードに対し、以下の点を変更しました。 
  • IDF(Peng 2022)への移植 — 水相を intrinsic density rho_tilde で記述し、自由水-飽和土界面の数値不整合を解消。ベースライン定式化を置換し、以後の全機能の土台に。
  • 境界条件の刷新 — mDBC(English 2022) へ統一(Shepard ghost + hydrostatic 補正)。
  • 数値安定化レイヤ追加 — Tait γ=7において、Riemann 圧力拡散(Zhang 2017)、δ-SPH 拡散、Bonet-Lok カーネル補正、HHT-α 積分を追加。
最も効いた改編はIDF 移植でした。
上記以外にもAIに多様な文献を集めさせて実装し試しています。便利な時代になったのですが、それら棄却した内容に対する理解が追い付いていません。復習が必要です。

つづきます。

0 件のコメント:

コメントを投稿