Eğimli yüzeyler üzerinde yükseliş trendi kaldırılsın mı?


16

Bir DEM yüzeyinden eğilimi kaldırmak için bilinen bir yöntem var mı?

Örneğin, bir nehrin DEM'i olsaydı, o nehir yüksek yükseklikten (akış yukarı) daha düşük yüksekliklere (akış aşağı) akardı. Su yüzeyinin üstünden nehir yatağının tabanına kadar olan mesafe tüm nehir boyunca aynı olsa bile, rasterin aşağı akış kısmı DEM'de daha düşük yükseklik değerlerine sahip olacaktır. Bu değerleri eşit derinlikteki alanların da aynı yüksekliğe sahip olması için eşitlemek mümkün müdür?

Bu eğilimi kaldırırken, nehir yatağındaki düşüşler gibi DEM'in genel özelliklerini korumak ideal olacaktır.resim açıklamasını buraya girin

Yanıtlar:


9

@jul, "bir trend yüzeyini hesaplamanız ve daha sonra" detrended "olanı elde etmek için ilk DEM'inizden çıkarmanız gerektiği doğrudur, ancak bu durumda" düşüşleri korumak "için daha basit prosedürlere ihtiyaç vardır. "Trend yüzeyi" orijinal DEM'i çok yakından takip ediyorsa, artıklar yüzeyin yerel özelliklerini korumaz. Bu nedenle, kaçınılması gereken teknikler arasında tüm yerel olanlar (spline'lar, filtreler ve - özellikle kriging) ve lehine olanlar küreseldir.

Basit, sağlam, doğrudan bir yaklaşım, nehrin yakınındaki DEM'e bir uçağa uymaktır. Bu herhangi bir fantezi teknolojisi veya ağır hesaplama gerektirmez, çünkü (Öklid'e göre) bir düzlem uzayda üç (doğrusal olmayan) nokta ile belirlenir. Buna göre, nehrin başında bir nokta (x1 ', y1', z1 ') = (koordinatlar, yükseklik), aşağı yönde uçta başka bir nokta (x2', y2 ', z2') ve (x0 ', y0', z0 ') ilk iki noktayı birleştiren çizgi segmentinden uzağa seçtiğinizden. (Bu koordinatlar Biz yakında onları değişecek çünkü asal ile gösterilir.) Bu son nokta yapar değilzemin yüzeyinde veya hatta yakınında bir noktaya karşılık gelmelidir! Aslında, iyi bir başlangıç ​​seçeneği, yüksekliğini yukarı akış ve aşağı akış yüksekliklerinin ortalamasına ayarlamak olabilir, z0 '= (z1' + z2 ') / 2.

Hesaplamalar, yerel koordinat sisteminin kaynağı olarak nokta (x0 ', y0', z0 ') benimsenerek kolaylaştırılır . Bu koordinatlarda diğer iki nokta

(x1,y1,z1) = (x1'-x0',y1'-y0',z1'-z0') 
(x2,y2,z2) = (x2'-x0',y2'-y0',z2'-z0'). 

Orijinal koordinat sistemindeki (x ', y') üzerindeki herhangi bir rastgele konumun bu yeni sistemde (x, y) = (x'-x0 ', y'-y0') koordinatları vardır. Başlangıç ​​noktasından (0,0,0) geçen herhangi bir düzlemin z = a * x + b * y biçiminde bir denklemi olması gerektiğinden, bu sorunu aşağıdaki şekilde azaltır:

(0,0,0), (x1, y1, z1) ve (x2, y2, z2) noktalarından geçen düzlem için z = a * x + b * y formunda bir denklem bulun.

Eşsiz çözüm hesaplamaktır

u = z1 y2 - z2 y1
v = x1 z2 - x2 z1
w = x1 y2 - x2 y1

hangi terimlerle

a = u/w, b = v/w.

Bu iki sayı a ve b'yi bulduktan ve iki orijinal koordinat x0 've y0' hatırlatılarak formun raster hesaplaması

[DEM] - a * ([X'] - x0') - b * ([Y'] - y0')

"eğimi" DEM'den kaldırır . Bu ifadede [X '] orijinal koordinatlardaki x-koordinat ızgarasını ve [Y'] orijinal y-koordinat ızgarasını belirtir. Ortaya çıkan DEM'in, seçtiğiniz üç noktanın her birinde aynı yüksekliğe (yani, z0 ') sahip olması garanti edilir; başka bir yerde yaptığı şey DEM'in kendisine bağlıdır!


(Umarım bazı okuyucular bu yaklaşımın trigonometri veya en küçük kareler makinelerine yapılan tüm referansları nasıl önlediğini takdir eder. :-)


Bir raster eğerek için başvuru eklemek unutmayın forums.arcgis.com/threads/22904-Trouble-with-Hillshading

@Dan Good point: gis.stackexchange.com/questions/10959/… adresindeki önceki gönderi bununla yakından ilgili.
whuber

Önceki soru da bana aitti - soruları daha özlü bir şekilde sormak için rafine etmem gerektiğini hissettim (örn. Düşüşleri koruma ihtiyacı). Bu tür analizleri gerçekleştirecek kodu aradım, ama başarısız oldum. ArcObjects kullanan ve yararlı olabilecek herhangi bir şeyin farkında mısınız yoksa sıfırdan başlamalıyım mı? Yardım için teşekkürler - çok değerli oldu.
Radar

@Radar Önce bu analizi elle deneyin. Biraz yargılama gerektirir (bu üç noktayı dikkatlice seçmeniz gerekir) ve çoğu zaman doğru yapmak için bazı tekrarlamalar gerekir. Bu deneyim size hesaplamaların nasıl çalıştığına dair daha iyi bir fikir verecektir. Bu yaklaşımı ArcGIS içinde sunulan doğrusal trend yüzey fitingiyle de karşılaştırabilirsiniz.
whuber

Yeterince adil - Ben zaten yukarı ve aşağı noktaların türetilmesini otomatikleştirdim. En zor bölümün bu 3. noktayı alacağını hayal ediyorum. Tekrar teşekkürler!
Radar

3

Trend analizi ile de-trendleri nehirler için yetersiz buldum. Orta batı gibi bölgelerde çalışabilir, ancak batıda tek bir doğrusal veya polinom yüzeyi, karmaşık topografya nedeniyle nehir eğimine asla çok iyi yaklaşmaz gibi görünmektedir. Bunun yerine bir yayla pikselinin yüksekliğini bir çekirdek yoğunluğu kullanarak nehrin ağırlıklı ortalamasıyla karşılaştırdığımda ağırlıklı ortalama kullanıyorum (Kış 2010 ArcUser makalesine bakın). Bu daha "yerelleştirilmiş" bir sonuç üretir. Bazı negatif değerler elde etmek hala mümkündür, ancak bu değerlerin nehir kanalıyla sınırlı gibi göründüğünü ve en dik eğim alanlarında yaygın olduğunu gördüm. Daha yakın zamanda "taşkın yüksekliği" ni haritalamak için yol gösterici yaklaşımları denedim ama bu kazanmadı '


Yorumlarınız için teşekkür ederim Tom. Sitemize hoş geldiniz - sizi burada görmek güzel!
whuber

2

Bir trend yüzeyini hesaplamanız ve daha sonra "detrended" olanı elde etmek için ilk DEM'inizden çıkarmanız gerekir.

Bir trend yüzeyini hesaplamak için herhangi bir yüzey sadeleştirme fonksiyonu kullanılabilir (filtreleme, spline yumuşatma, kriging vb.). Bu seçim, bu trend yüzeyinin nasıl görünmesini istediğinize bağlıdır.

Bunun için arcGIS 10.0'da kriging'in nasıl kullanılacağına dair bir örnek .


1
Örneğim için, trend yüzeyini elde etmek için tercih edilen bir yöntem var mı (örn. Yüzey sadeleştirme tipi)?
Radar

Bu soru! Hangi arazi varyasyonlarının "trend" olarak kabul edileceğini ve kaldırılacağını ve hangilerini korumak istediğinize bağlıdır. Sadeleştirme ne kadar güçlü olursa, arazinizin yerel varyasyonlarını o kadar az tutarsınız. Whuber'ın dediği gibi, yerel uçaklardan oluşan bir trend yüzeyi bile tatmin edici olabilir.
julien
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.