Aykırı değerleri lidr'deki nokta bulutundan filtrelemenin yolu?
ALS nokta bulutum var. Yüksekliği başarılı bir şekilde normalleştirmeyi başardım, ancak açıkça hata / aykırı olan bazı noktaları kaldırmanın / filtrelemenin bir yolu olup olmadığını merak ediyorum (0'ın altındaki noktalar ve en uzun ağaçların 30-50 m, hatta 100 m yukarısı). Kullandığım veriler USGS Ulusal Haritasından, yalnızca sınıflandırılmış yer noktaları ile indirildi.
tin()
Algoritma ile normalize edersem ve chm'mi doğrudan normalize nokta bulutundan oluşturursam, chm min / max değerlerim:
values : -5.23, 129.98 (min, max)
ve bir dtm ile normalleştirirsem:
values : -14.65, 129.91 (min, max)
Nihayetinde ağaçları segmentlere ayırmaya ve ağaç yükseklikleri, gölgelik örtüsü, ağaç yoğunluğu vb. Ürünleri üretmeye çalışıyorum. Ancak çalışma sahamda maksimum ağaç yüksekliğinin <30 m olacağını bildiğimde analizimi çalıştıramıyorum.
Zemini yeniden sınıflandırmaya çalışırsam, bu 0'ın altındaki noktalara yardımcı olur mu? Ama bu 129m maks.
li2012()
Algoritmayı kullanmanın iyi bir yolunu bulmakta zorlandığım için ağaçları ayırmak için chm / ağaç üstlerini kullansam daha iyi olur diye düşünüyordum .
Yanıtlar
Süzme Aykırı hayır 'ileri' Orada lidR
henüz . Ancak basit durumlar için kendiniz basit bir yöntem oluşturabilirsiniz. İşte bazı ipuçları ve örnekleri ihtiyacınıza göre değiştirebilirsiniz.
Eşikleri kullanarak ilgi çekici yerleri filtreleyin
las <- filter_poi(las, Z >= 0, Z <= 30)
95. yüzdelik CHM kullanarak yüksek aykırı değerleri filtreleyin
Bu, bu vinyetten alınmış bir örnektir . 95. yüzdelik bir raster oluşturur ve bu yükseklik haritasına göre çok yüksek olanı kaldırır.
filter_noise = function(las, sensitivity)
{
p95 <- grid_metrics(las, ~quantile(Z, probs = 0.95), 10)
las <- merge_spatial(las, p95, "p95")
las <- filter_poi(las, Z < p95*sensitivity)
las$p95 <- NULL
return(las)
}
las <- filter_noise(las, sensitivity = 1.2)
Aykırı değerleri nokta tabanlı metrikler kullanarak filtreleyin
Verilen hiçbir örnek yoktur ama sonunda bu bölümde yoktur bir bölüm ile oldukça gelişmiş aykırı filtre yöntemini nasıl oluşturulacağını açıklarpoint_metrics()
v3.1.0'da classify_noise ()
Bu bilgiyi gelecekteki okuyucular için buraya koyuyorum. Başlangıçta birkaç olası algoritmaya sahip v3.1.0
lidR
bir işleve classify_noise()
sahip olacak (veya okuduğunuz zamana bağlı olarak 'zaten vardır') .