Dado um terreno, como desenhar o caminho do fluxo do fluxo?


23

Supondo que eu tenha um terreno, como de costume, o terreno tem cumes, riachos e todas as características que você pode encontrar em um mapa da vida real. A água flui do topo da montanha para a área inferior, o caminho que a água flui é denominado caminho do fluxo da corrente.

O terreno é dado em termos de rede triangular irregular (NIF), na qual cada ponto p (x, y) possui um valor az. Como usar essas informações para construir o caminho do fluxo do fluxo? Qual é a física por trás disso?

Pelo que sei, o método de descida mais íngreme pode ser usado para resolver esse problema . Estou pensando em escrever meu próprio algoritmo de fluxo de fluxo, por isso estou interessado na base teórica, em vez de usar as ferramentas existentes.

Respostas:


26

Existem diferentes implementações possíveis, mas a maioria dos procedimentos será iniciada a partir de uma grade e não de um NIF.

O mais simples é provavelmente o procedimento D8: você calcula a direção em que a água estaria fluindo. Existem 8 possibilidades, as 8 células próximas a uma célula da grade central. Você pode primeiro calcular essas direções, como as células estão conectadas e, finalmente, desenhar as linhas). Uma implementação fácil é encontrada no SAGA, quase como um pseudocódigo: http://saga-gis.svn.sourceforge.net/viewvc/saga-gis/trunk/saga-gis/src/modules_terrain_analysis/terrain_analysis/ta_channels/D8_Flow_Analysis. cpp? revision = 911 & view = marcação

Embora muito fácil, isso não é muito realista: você não terá um fluxo iniciando em todas as células. Algoritmos mais avançados geralmente primeiro fecham os poços (especialmente se você tiver um DEM detalhado), depois calculam a área de captação por célula, que é o número de células que contribuem com água para uma célula específica e, em seguida, usam um limite para determinar se um fluxo é presente.

O SAGA GIS implementa muitos desses métodos de bacia hidrográfica, você pode encontrar uma descrição deles neste manual http://sourceforge.net/settings/mirror_choices?projectname=saga-gis&filename=SAGA%20-%20Documentation/SAGA%20Documents/ SagaManual.pdf

Ele foi escrito para uma versão mais antiga do SAGA GIS, mas a descrição dos algoritmos ainda é bastante precisa, e vou copiá-la aqui para referência rápida (isso é por volta da página 120), uma vez que é de código aberto, você pode verificar o detalhes de implementação observando o código.

  • Determinístico 8 (D8): O clássico. O fluxo vai do centro de uma célula para o centro de uma (e apenas uma) das células circundantes. As direções de fluxo são, portanto, restritas a múltiplos de 45o, que é o principal motivo da maioria das desvantagens do método. (O'Callaghan e Mark 1984).
  • Rho8: O mesmo que acima, mas com um componente estocástico que deve melhorá-lo. A direção do fluxo é determinada por um argumento aleatório que depende da diferença entre o aspecto e a direção das duas células vizinhas adjacentes. Não é muito útil. . . (Fairfield e Leymarie 1991).
  • Infinito determinístico (D∞): O fluxo passa de uma célula para duas células adjacentes contíguas, considerando um fluxo bidimensional e superando as desvantagens do método D8. (Tarboton 1998).
  • Modelo de alívio da Braunschweiger Digitales: outro algoritmo de direção de fluxo múltiplo. O fluxo é dividido entre a célula circundante cuja orientação é a mais próxima do aspecto da célula central e suas duas células adjacentes. (Bauer, Bork e Rohdenburg, 1985).
  • FD8 (encontrado no SAGA simplesmente como Direção de Fluxo Múltiplo): Um algoritmo de roteamento de fluxo bidimensional derivado do D8. (Quinn et al 1991).
  • Algoritmo de Roteamento Cinemático (KRA). Um algoritmo de rastreamento de fluxo unidimensional. O fluxo se comporta como uma bola rolando pelo DEM, sem restringir sua posição ao centro das células. (Lea 1992).
  • Rede de modelo de elevação digital (DEMON): a mais complexa. Um algoritmo de rastreamento de fluxo bidimensional. Bastante demorado. (Costa-Cabral e Burgess, 1994).

Ainda mais modelos foram adicionados recentemente:

  • Direção de Fluxo Múltiplo Triangular - Seibert, J. / McGlynn, B. (2007): 'Um novo algoritmo triangular de direção de fluxo múltiplo para computar áreas de declive a partir de modelos de elevação digital com grade', Water Resources Research, vol. 43, W04501. Isso pode ser interessante para você, porque também pode funcionar diretamente em um NIF
  • O método do fluxo de massa (MFM) para o cálculo baseado no DEM da acumulação de vazão, conforme proposto por Gruber e Peckham (2008). Gruber, S., Peckham, S. (2008): Parâmetros da Superfície da Terra e Objetos em Hidrologia. In: Hengl, T. e Reuter, HI [Eds.]: Geomorfometria: Conceitos, Software, Aplicações. Desenvolvimentos em Ciência do Solo, Elsevier, Bd.33, S.293-308.
  • O algoritmo lateral: http://watershed.montana.edu/Hydrology/Home_files/2010WR009296.pdf e seu código também estão em seu site: http://thomasgrabs.com/side-algorithm/

5

Uma abordagem original é a proposta neste artigo :

Fisher, P., J. Wood e T. Cheng (2004). Onde fica Helvellyn? Fuzziness da morfometria da paisagem da multi-escala. Transações do Institute of British Geographers 29, 106-128.

Ele propõe um método baseado na representação difusa e em várias escalas. Não tenho certeza, mas esse método pode ser o implementado no LandSerf .

insira a descrição da imagem aqui


O link papel acima não está mais acessível
Graviton

@Graviton: O link foi corrigido!
julien

4

Se você tem acesso ao Spatial Analyst no ArcGIS, possui uma série de ferramentas para calcular caminhos de fluxo. Um fluxo de trabalho completo é fornecido na referência ESRI, mas o fluxo de trabalho típico inclui:

  1. Converta seu TIN em uma varredura de elevação.
  2. Calcule a direção do fluxo.
  3. Encha pequenas pias.
  4. Calcular a acumulação de fluxo
  5. Usando um limite, escolha apenas as células com uma determinada quantidade de fluxo.
  6. Use a ferramenta Stream to Feature para exportar os fluxos para um shapefile de vetor.

Obviamente, existem inúmeros trabalhos acadêmicos descrevendo diferentes métodos, mas esse método é fácil para todos os que têm acesso ao Analista Espacial.


Eu precisaria escrever o código do zero, para não poder usar este pacote de software.
Graviton

Bem, este parece ser o procedimento usado pela maioria dos pacotes GIS. O TerraFlow é uma opção de código aberto, mas nunca o usei. O que você planeja usar para lidar com o NIF?
Patrick

1
Estou pensando em escrever meu próprio algoritmo de fluxo de corrente, razão pela qual os pacotes de software que você menciona não é aplicável a mim
Graviton

2
OK. Quando você disse "Sou menos claro sobre como executar isso", presumi que você desejasse conselhos práticos sobre como fazer isso. Presumivelmente, o fluxo de trabalho usado por esses pacotes de software pode fornecer um guia para a estrutura geral do seu algoritmo. A partir daí, sugiro que você consulte a literatura acadêmica sobre detalhes. Por exemplo, Tarboton, 1997 foi referenciado várias vezes em minha busca por algoritmos de direção de fluxo.
Patrick

3

Nos modelos de elevação digital baseados em grade, determinações confiáveis ​​das linhas de inclinação são fornecidas pelo método D8-LTD:

Orlandini, S. e G. Moretti (2009), Determinação de caminhos de fluxo de superfície a partir de dados de elevação em grade, Water Resour. Res., 45 (3), W03417, doi: 10.1029 / 2008WR007099.

Orlandini, S., G. Moretti, M. Franchini, B. Aldighieri e B. Testa (2003), Métodos baseados em caminhos para a determinação de direções de drenagem não dispersivas em modelos de elevação digital baseados em grade, Water Resour. Res., 39 (6), 1144, doi: 10.1029 / 2002WR001639.

Nos modelos de elevação digital baseados em contorno, as linhas de inclinação podem ser determinadas automaticamente, resolvendo estruturas topográficas complexas usando o modelo (complexo) descrito no artigo a seguir:

Moretti, G. e S. Orlandini (2008), Delineamento automático de bacias de drenagem a partir de dados de elevação de contorno usando técnicas de construção de esqueletos, Water Resour. Res., 44 (5), W05403, doi: 10.1029 / 2007WR006309.


1

Parece que esse será o trabalho de escrever uma ferramenta do zero. A ESRI faz isso há décadas e ainda não tem o direito.

O AutoCAD (Civil 3D) pode fazer isso usando um TIN. Não estou ciente do que está acontecendo nos bastidores, mas no ArcGIS, a identificação de redes de fluxo é tratada por análise raster.

Em poucas palavras, uma varredura DEM de entrada (onde cada célula tem valores X, Y, Z) é usada como entrada e um algoritmo calcula citando "fluxo acumulado (como o peso acumulado) de todas as células que fluem para cada célula descendente na varredura de entrada. " O produto é uma varredura em que cada célula possui um valor de acumulação de fluxo. Para identificar a rede de fluxo, você isola as células de alto fluxo, que são as áreas de "fluxo concentrado". Existem outras considerações, como fator de peso opcional, entrada hidrologicamente correta de DEM, etc.

Vou apenas lançar algumas idéias: Em termos da "mecânica" de tal algoritmo, suponho que possa ser bastante direto; recursivamente e para cada célula, determine a localização e elevação de todas as células circundantes e, com base em sua elevação, some o número de células que fluem para ela. Quanto ao TIN, você provavelmente poderia construir uma linha a partir de dois pontos em cada triângulo (vértice mais alto e mais baixo) e depois juntar todos esses elementos em uma rede.


1
Surgem complicações ao lidar com pias e áreas planas. Como um exemplo extremo, considere um DEM representando um lago de montanha, para que a maior parte do DEM seja perfeitamente plana. Exatamente como uma implementação recursiva direcionaria toda a entrada no lago para o (s) seu (s) ponto (s) de saída?
whuber
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.