Saya mencoba membuat sistem pemodelan banjir. Sistem ini terdiri dari dua bagian terutama simulasi banjir sungai dan simulasi curah hujan. Untuk melakukan ini, saya menjalankan GRASS 6.4 versi terbaru . Saya juga menggunakan SRTM yang diperoleh dari CGIAR sebagai DEM saya.
Saya ingin bertanya perintah apa yang paling tepat untuk menjalankan simulasi. Ex. Terraflow
Juga karena kita memodelkan banjir berdasarkan sungai, apakah disarankan untuk menggunakan HEC-RAS ? Itu dibuat oleh orang yang sama yang membuat GRASS. :)
Saya lebih dari seorang programmer daripada seorang insinyur. Ini adalah usaha pertama saya ke dalam sistem simulasi sebagai bagian dari gelar saya.
Sampai sekarang Ini adalah rencana kami untuk curah hujan (pseudocode):
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;
}
}