洪水モデリングシステムを作成しようとしています。このシステムは、主に河川氾濫シミュレーションと降雨シミュレーションの2つの部分で構成されています。これを行うには、GRASS 6.4の最新バージョンを実行しています。また、CGIARから入手したSRTMを DEMとして使用しています。
シミュレーションを実行するのに最も適切なコマンドは何ですか?例 テラフロー
また、河川に基づいて洪水をモデル化しているので、HEC-RASを使用することをお勧めしますか?それはGRASSを作った同じ人々によって作成されました。:)
私はエンジニアというよりはプログラマーです。これは、私の学位の一部としてシミュレーションシステムに取り組む初めての試みです。
現在のところ、降水量(疑似コード)の計画は次のとおりです。
int i = 0, j = 0;
int passes, numberOfmesh;
double rainAmount;
double store1[][];
double store2[][];
numberOfmesh = getTotalMeshCells();
passes = computePasses(numberOfmesh());
rainAmount = getRainAmount();
/* rainAmount corresponds to the input of the user in the textfield.
store1 contains the elevation and the number of times an amount of water
has been passed to it (per pixel)
store2 contains the elevation and the total accumulated water (per pixel)
Both store1 and store2 have 'n' number of rows and 2 columns;
ASSUME THAT THE ARRAY HAS ALREADY BEEN POPULATED */
while(i != passes)
{
while(j != numberOfmesh)
{
direct = getDirection(store[j][0]);
/* direct corresponds to the direction of a mesh cell;
I don't know what id the datatype for direct; */
store2[j][6] += rainAmount;
gotoDirection(direct);
}
}
computeAccumulated();
//Here is what gotoDirect is supposed to do:
gotoDirect(direct)
{
/* How can we determine the elevation of the mesh cell to where the
'direct' points to?
In the following code, j refers to the elevation of the mesh cell where
the 'direct' point to.
*/
store1[j][7] += 1;
/* increases the number of times that an amount of water
was passed to it */
}
//Here is what computeAccumulated is supposed to do:
computeAccumulated()
{
while(j != numberOfmesh)
{
store2[j][8] += store1[j][9] * rainAmount;
}
}