\(\require{physics}\)
require("weather")
その後,
weather = weather.NonUniformWeather("uniform_wind_data.inp", "./wind_folder/x_dir_folder", "./wind_folder/y_dir_folder", 0.0, 36000.0)
このオブジェクトには,風以外の気象を与えるための通常の気象ファイル(一様風のデータと同じ.このファイルの 風情報は利用しない),x方向の風のデータを含むディレクトリー,y方向の風のデータを含むディレクト リー,計算開始時間(通常0.0),風データの時間間隔(サンプルでは10時間,36000秒)を与える.ディレクトリー構造は任意であるが,この例では 一様風データは実行のluaファイルと同一ディレクトリー,非一様風の風データのディレクトリー構造は下の図のように なっている.
風の空間解像度はコンテナと同一になっている.つまりコンテナ内では風は一定である.従って風ファイルはコンテナと同じ形のマトリックスとなる.風ファイルを用意する際のルールがいくつかあり,風のファイルは,x方向,y方向別々のフォルダーにそれぞれ同じ数だけ入れる.ファイル名は名前でソートした時に時間経過と 同じ順番になるように名前をつける.陸域の風速は99999ではなく,ゼロとする.
実行するためには,通常の気象オブジェクトのように時間ループの中に以下の行を追加する.
weather:apply(water_body, time)
その他,非一様な風応力だけを与えて,熱の計算をしないNonUniformWindオブジェクトもある.このオブジェクトは lua_weatherと組み合わせることができる(この場合,lua_weatherの風応力分はコメントアウトしておかなけれなならない).
weather = weather.NonUniformWind("./wind_folder/x_dir_folder", "./wind_folder/y_dir_folder", 0.0, 36000.0)