Arazi verildiğinde, akış akış yolunu nasıl çizersiniz?


23

Bir arazim olduğunu varsayarsak, her zamanki gibi arazinin sırtları, dereleri ve gerçek bir yaşam haritasında bulabileceğiniz tüm özellikleri vardır. Su dağın tepesinden aşağı alana akar, suyun aktığı yol dere akış yolu olarak adlandırılır.

Arazi, her bir p (x, y) değerinin az olduğu üçgen düzensiz ağ (TIN) cinsinden verilmiştir. Bu bilgi akış akış yolunu oluşturmak için nasıl kullanılır? Bunun arkasındaki fizik nedir?

Bildiğim kadarıyla, bu sorunu çözmek için en dik iniş yöntemi kullanılabilir . Kendi akış akış algoritmamı yazmayı düşünüyorum, bu yüzden mevcut araçları kullanmak yerine teorik arkaplanla ilgileniyorum.

Yanıtlar:


26

Farklı olası uygulamalar vardır, ancak çoğu prosedür TIN'den değil, bir şebekeden başlayacaktır.

En basit olanı muhtemelen D8 prosedürüdür: Suyun akacağı yönü hesaplarsınız. Merkezi bir ızgara hücresinin yanında bulunan 8 hücre, 8 olasılık vardır. İlk önce bu yönleri hesaplayabilir, hücrelerin nasıl bağlandığını ve son olarak da çizgileri çizebilirsiniz. SAGA'da kolay bir uygulama bulundu, neredeyse sahte kod olarak okundu: http://saga-gis.svn.sourceforge.net/viewvc/saga-gis/trunk/saga-gis/src/modules_terrain_analysis/terrain_analysis/ta_channels/D8_alal_analysis/terrain_analysis/ta_channels/D8_alFal_Analysis/terrain_analysis/ta_channels/D8_allow_analysis/terrain_analysis/ta_channels/D8_allow_analysis/terrain_analysis/ta_channels/D8_allow_analysis/terrain_analysis/ta_channels/D8_alF_ cpp? düzeltme = 911 görüntülemek = biçimlendirme

Çok kolay olmasına rağmen, bu çok gerçekçi değil: Her hücrede başlayan bir akışa sahip olmayacaksınız. Daha gelişmiş algoritmalar genellikle ilk önce çukurları kapatır (özellikle ayrıntılı bir DEM'iniz varsa), daha sonra hücre başına toplama alanını hesaplayın, yani belirli bir hücreye suya katkıda bulunan hücre sayısıdır ve daha sonra bir akışın olup olmadığını belirlemek için bir eşik kullanın mevcut.

SAGA CBS bu havza yöntemlerinin çok uygulayan, bu manuel bunların açıklamasını bulabilirsiniz http://sourceforge.net/settings/mirror_choices?projectname=saga-gis&filename=SAGA%20-%20Documentation/SAGA%20Documents/ SagaManual.pdf

SAGA GIS'in daha eski bir sürümü için yazılmış, ancak algoritmaların tanımı hala oldukça doğru ve hızlı başvuru için buraya kopyalayacağım (bu sayfa 120 civarındadır), açık kaynak olduğundan, Uygulama detaylarını koda bakarak.

  • Deterministik 8 (D8): Klasik. Akış, bir hücrenin merkezinden, çevredeki hücrelerin birinin (ve yalnızca birinin) merkezine gider. Bu nedenle akış yönleri, yöntemin dezavantajlarının çoğunun temel nedeni olan 45o'nun katları ile sınırlıdır. (O'Callaghan ve Mark 1984).
  • Rho8: Yukarıdakiyle aynı, ancak onu iyileştirmesi gereken stokastik bir bileşenle. Akış yönü, iki bitişik komşu hücrenin yönü ve yönü arasındaki farka bağlı rastgele bir argüman ile belirlenir. Çok kullanışlı değil. . . (Fairfield ve Leymarie 1991).
  • Deterministik sonsuzluk (D∞): Akış bir hücreden iki bitişik çevreleyen hücreye gider, böylece iki boyutlu bir akış düşünülür ve D8 yönteminin sakıncaları giderilir. (Tarboton 1998).
  • Braunschweiger Digitales Reliefmodell: Başka Bir Çok Akış Yönü algoritması. Akış, oryantasyonu merkez hücrenin enine en yakın olan çevredeki hücre ve iki bitişik hücresi arasında bölünür. (Bauer, Bork ve Rohdenburg 1985).
  • FD8 (SAGA'da Çoklu Akış Yönü olarak bulunur): D8 türetilmiş iki boyutlu bir akış yönlendirme algoritması. (Quinn ve arkadaşları 1991).
  • Kinematik Yönlendirme Algoritması (KRA). Tek boyutlu bir akış izleme algoritması. Akış, DEM'i aşağı doğru yuvarlayan bir top gibi davranır, konumunu hücrelerin merkezine sınırlamaz. (Lea 1992).
  • Dijital Yükseklik Model Ağı (DEMON): En karmaşık olanı. İki boyutlu bir akış izleme algoritması. Oldukça zaman alıcı. (Costa-Cabral ve Burgess 1994).

Son zamanlarda daha da fazla model eklendi:

  • Üçgen Çoklu Akış Yönü - Seibert, J. / McGlynn, B. (2007): 'Yükselen alanları ızgaralı dijital yükseklik modellerinden hesaplamak için yeni bir üçgen çoklu akış yönü algoritması', Su Kaynakları Araştırması, Cilt. 43, W04501 sayılı belge. Bu sizin için ilginç olabilir çünkü doğrudan bir TIN üzerinde de çalışabilir.
  • Gruber ve Peckham (2008) tarafından önerilen DEM tabanlı akış birikiminin hesaplanması için Kütle Akışı Yöntemi (MFM). Gruber, S., Peckham, S. (2008): Hidrolojide Arazi Yüzey Parametreleri ve Nesneleri. In: Hengl, T. ve Reuter, HI [Eds.]: Jeomorfometri: Kavramlar, Yazılım, Uygulamalar. Toprak Biliminde Gelişmeler, Elsevier, Bd.33, S.293-308.
  • Yan algoritma: http://watershed.montana.edu/Hydrology/Home_files/2010WR009296.pdf ve kodu aynı zamanda web sitesinde de bulunuyor: http://thomasgrabs.com/side-algorithm/

5

Orijinal bir yaklaşım bu makalede önerilen yaklaşımdır :

Fisher, P., J. Wood ve T. Cheng (2004). Helvellyn nerede? Çok ölçekli peyzaj morfometrisinin bulanıklığı. İngiliz Coğrafyacılar Enstitüsü'nün İşlemleri 29, 106-128.

Bulanık ve çok ölçekli temsili temel alan bir yöntem sunar. Emin değilim, ancak bu yöntem LandSerf'te uygulanan yöntem olabilir .

görüntü tanımını buraya girin


Yukarıdaki kağıt bağlantısına artık erişilemiyor
Graviton

@Graviton: Bağlantı düzeltildi!
julien

4

ArcGIS’deki Spatial Analyst’e erişiminiz varsa, akış yollarını hesaplamak için bir dizi aracınız vardır. Bir tam akışı ESRI referans verilen, ama tipik bir iş akışı içerir:

  1. TIN'inizi bir yükseklik rasterine dönüştürün.
  2. Akış Yönünü hesaplayın.
  3. Küçük evyeleri doldurun.
  4. Akış Birikimini Hesapla
  5. Bir eşik kullanarak, yalnızca belirli miktarda akışa sahip hücreleri seçin.
  6. Akışları bir vektör şekil dosyasına aktarmak için Özelliğe Akış aracını kullanın.

Tabii ki, farklı yöntemleri tanımlayan çok sayıda akademik makale vardır, ancak bu yöntem, Mekansal Analiste erişimi olan herkes için kolaydır.


Kodu sıfırdan yazmak zorunda kalacağım, bu yüzden bu yazılım paketini kullanamıyorum.
Graviton

Pekala, bu çoğu CBS paketinin kullandığı prosedür gibi görünüyor. TerraFlow açık kaynaklı bir seçenektir, ancak hiç kullanmadım. TIN ile başa çıkmak için ne kullanmayı düşünüyorsun?
Patrick

1
Kendi akış akış algoritmamı yazmayı düşünüyorum, bu yüzden bahsettiğiniz yazılım paketleri benim için geçerli değil
Graviton

2
Tamam. "Bunu nasıl yapacağım konusunda daha az emin olacağım" derken, bunun nasıl yapılacağına dair pratik tavsiyeler istediğinizi varsaydım. Muhtemelen bu yazılım paketleri tarafından kullanılan iş akışı, algoritmanızın genel yapısı için bir rehber sağlayabilir. Oradan özellikleri hakkında akademik literatüre danışmanızı öneririz. Örneğin, Tarboton, 1997 akış yönü algoritmaları araştırmamda birkaç kez referans alındı.
Patrick

3

Şebeke bazlı dijital yükseklik modellerinde D8-LTD yöntemi ile şev çizgilerinin güvenilir tespitleri sağlanmaktadır:

Orlandini, S. ve G. Moretti (2009), Izgaralı yükselti verilerinden yüzey akış yollarının belirlenmesi, Su Resour. Res., 45 (3), W03417, doi: 10.1029 / 2008WR007099.

Orlandini, S., G. Moretti, M. Franchini, B. Aldighieri ve B. Testa (2003), Şebeke bazlı dijital yükseklik modellerinde yayılmayan drenaj yönlerinin belirlenmesi için Path-tabanlı yöntemler, Su kaynağı. Res., 39 (6), 1144, doi: 10.1029 / 2002WR001639.

Kontur tabanlı dijital yükseklik modellerinde, eğim çizgileri, aşağıdaki makalede açıklanan (karmaşık) model kullanılarak karmaşık topografik yapılar çözülerek otomatik olarak belirlenebilir:

Moretti, G. ve S. Orlandini (2008), Drenaj havzalarının iskelet yapım teknikleri kullanılarak kontur yükseklik verilerinden otomatik olarak tasfiyesi, Su Resour. Res., 44 (5), W05403, doi: 10.1029 / 2007WR006309.


1

Sıfırdan bir araç yazmak için bu iş oldukça iş gibi görünüyor. ESRI onlarca yıldır var ve hala haklı değiller.

AutoCAD (Civil 3D) bunu bir TIN kullanarak yapabilir. Orada sahne arkasında neler olup bittiğinin farkında değilim, ancak ArcGIS'te akış ağlarını tanımlayan raster analizi ile gerçekleştiriliyor.

(Her bir hücre, X, Y, Z değerlerine sahip olduğu) Özetle, bir giriş DEM tarama girişi olarak kullanılır ve bir algoritma hesaplar tırnaklama "giriş raster her downslope hücre içine akan tüm hücrelerin (biriken ağırlık gibi) akışı kartı. " Ürün, her bir hücrenin bir akış birikim değerine sahip olduğu bir rasterdir. Akış ağını tanımlamak için daha sonra "konsantre akış" alanları olan yüksek akışlı hücreleri izole edersiniz. İsteğe bağlı ağırlık faktörü, hidrolojik doğru DEM girişi, vb. Gibi başka hususlar da vardır.

Sadece birkaç fikre değineceğim: Bu tür bir algoritmanın “mekaniği” teriminde sanırım oldukça basit olabilir; özyinelemeli olarak ve her bir hücre için, çevresindeki tüm hücrelerin yerini ve yükselmesini belirler ve yükselmesine bağlı olarak, içine akan hücre sayısını arttırır. TIN'e gelince, muhtemelen her üçgenin iki noktasından (en yüksek ve en düşük tepe noktası) bir çizgi oluşturabilir ve daha sonra tüm bunları bir ağa birleştirebilirsiniz.


1
Komplikasyonlar, lavabo ve düz alanlarla uğraşırken ortaya çıkar. Aşırı bir örnek olarak, DEM'in çoğunun tamamen düz olması için bir dağ gölü temsil eden DEM'i düşünün. Özyinelemeli bir uygulama göle giren tüm akışı çıkış noktalarına nasıl yönlendirir?
whuber
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.