Modelagem de inundação no GRASS?


8

Estou tentando criar um sistema de modelagem de inundação. O sistema consiste em duas partes, principalmente uma simulação de inundação de rio e simulação de chuva. Para fazer isso, estou executando a versão mais recente do GRASS 6.4. Também estou usando o SRTM obtido do CGIAR como meu DEM.

Gostaria de perguntar quais são os comandos mais apropriados para executar uma simulação. Ex. Terraflow

Também como estamos modelando inundações com base em um rio, é aconselhável usar o HEC-RAS ? Foi criado pelas mesmas pessoas que fizeram o GRASS. :)

Sou mais um programador do que um engenheiro. É o meu primeiro empreendimento em sistemas de simulação como parte do meu diploma.

A partir de agora Aqui está o nosso plano para a precipitação (pseudocódigo):

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;       

    }               
}

Respostas:


3

Não posso falar muito sobre o GRASS especificamente, mas parece que o que você está tentando fazer aqui é desenvolver grades de direção de fluxo e acumulação - tenho certeza que o GRASS já tem essa funcionalidade incorporada.

Depois de desenvolver essas grades, você pode usar uma equação de regressão (o USGS desenvolve estas: http://water.usgs.gov/osw/programs/nss/pubs.html#wv ) para calcular o fluxo em uma célula específica e use esses fluxos em um modelo HEC-RAS. O HEC-RAS é bom para modelagem de inundação, mas tem várias limitações - a saber, é desajeitado e não existe nenhuma documentação que eu saiba sobre as estruturas de arquivos. Mas é gratuito e muito utilizado por engenheiros civis.

Se o que você deseja fazer é integrar hidrologia e hidráulica em um único processo, esteja preparado para fazer muita leitura sobre a dinâmica de fluidos.



2

Na descrição do seu projeto, não ficou claro se você está tentando modelar a passagem de uma onda de inundação através de uma grade de fluxo bidimensional (isto é, a mudança na área de inundação em função do tempo, à medida que a inundação passa de montante para rio abaixo) ou se a sua saída deve mostrar a maior elevação de inundação em qualquer ponto causado por um único evento de inundação (como o que é mostrado nos mapas de seguro contra inundações da FEMA).

O método sugerido pelos thwllms (usando as equações de regressão do USGS em cada célula) forneceria o fluxo PEAK de um determinado período de retorno (probabilidade de ser igual ou excedido em um determinado ano) em um determinado local de um rio. A execução do HEC-RAS para o rio em questão fornecerá a elevação da superfície da água em estado estacionário POR UM FLUXO em qualquer seção transversal do rio. (O HEC-RAS é principalmente um modelo unidimensional de "perfil da superfície da água" no estado estacionário). As elevações da superfície da água assim obtidas são então transferidas para um mapa topográfico em papel ou para um DEM para derivar as áreas de inundação causadas por esse nível de fluxo de inundação. Este é o método tradicionalmente usado (com algumas variações) para os estudos de seguro contra inundações da FEMA.

Se o seu projeto for modelar a passagem de uma única onda de inundação ao longo do tempo, os fluxos não serão de estado estacionário e o HEC-RAS pode não ser o melhor modelo a ser usado. Existem outros modelos usados ​​pelo USGS, o Corpo de Engenheiros e o Bureau of Reclamation (junto com as agências de engenharia dos governos estaduais) que modelam esses fluxos. Infelizmente, não estou muito familiarizado com esses modelos de estado instável.

Depois de decidir sobre o tipo de fluxo de rio que você deseja modelar, será apropriado procurar o modelo apropriado a ser usado. Boa sorte!


Meu projeto é criar um software de modelagem de inundação. Simularei as possíveis inundações causadas pelo escoamento de uma barragem. É o escoamento da abertura dos portões da barragem (não por quebra da barragem) a ser canalizado ao longo de um rio. Isso é considerado um estado estacionário?
teamAngat

1
Desculpe, acabei de ver seu comentário esta tarde. Joseph Jones respondeu à sua pergunta sobre o fluxo de um portão aberto, e eu concordo com a resposta dele.
Howard Y

2

A parte da chuva fica complicada rapidamente se você quer ser realista ... Quanta chuva cai no chão? evapora? causa derretimento de neve? Com que rapidez ele flui sobre o solo saturado? etc. etc. Se este é apenas um "exercício", vá em frente e trate o mundo inteiro como concreto e termine com ele.

Fluir para fora de um portão, constante e a longo prazo é o estado estacionário clássico. O HEC-RAS é apropriado.

Caso contrário, você precisaria formar uma equipe com um engenheiro para guiá-lo na aplicação das equações que regem o fluxo de canal aberto ... reinventando totalmente a roda. Realisticamente, você precisaria de batimetria do canal, a menos que o fluxo seja muito maior do que o canal pode acomodar. O SRTM é bruto demais para uma simulação confiável, mas, novamente, parece que este é um exercício de codificação ...


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.