Lider의 포인트 클라우드에서 특이 치를 필터링하는 방법은 무엇입니까?
ALS 포인트 클라우드가 있습니다. 높이를 성공적으로 정규화 할 수 있었지만 분명히 오류 / 이상 값 (0 미만의 포인트와 가장 높은 나무에서 30 ~ 50m 또는 심지어 100m 위에있는 소수) 인 일부 포인트를 제거 / 필터링 할 방법이 있는지 궁금합니다. 내가 사용중인 데이터는 이미 분류 된 지상 지점 만있는 USGS National Map에서 다운로드되었습니다.
나는 함께 정상화되면 tin()
알고리즘과 정규화 포인트 클라우드에서 바로 내 CHM를 작성, 내 CHM의 분 / 최대 값은 다음과 같습니다
values : -5.23, 129.98 (min, max)
dtm으로 정규화하면 :
values : -14.65, 129.91 (min, max)
궁극적으로 저는 나무를 분할하고 나무 높이, 캐노피 덮개, 나무 밀도 등의 제품을 생성하려고합니다.하지만 최대 나무 높이가 내 연구 사이트에서 30m 미만이라는 것을 알고 있으면 분석을 실행할 수 없습니다.
지면을 재 분류하려고하면 0 점 미만의 점수에 도움이됩니까? 그러나 그것은 최대 129m를 다루지 않을 것입니다.
나는 li2012()
알고리즘 을 활용하는 좋은 방법을 찾는 데 어려움을 겪고 있었기 때문에 chm을 부드럽게하고 chm / tree tops를 사용하여 나무를 분할하는 것이 더 나을 것이라고 생각했습니다 .
답변
에는 lidR
아직 '고급'이상치 필터링이 없습니다 . 그러나 간단한 경우에는 간단한 방법을 직접 만들 수 있습니다. 다음은 몇 가지 힌트이며 필요에 맞게 예제를 수정할 수 있습니다.
임계 값을 사용하여 관심 지점 필터링
las <- filter_poi(las, Z >= 0, Z <= 30)
95 번째 백분위 수 CHM을 사용하여 높은 이상 값 필터링
이 비 네트 에서 가져온 예 입니다. 95 번째 백분위 수의 래스터를 만들고이 높이 맵에 비해 상대적으로 너무 높은 것을 제거합니다.
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)
포인트 기반 메트릭을 사용하여 이상 값 필터링
주어진 어떤 예는 없습니다 만의 말에 이 장 이 섹션 에 꽤 고급 특이 필터 방법을 구축하는 방법에 대해 설명합니다point_metrics()
v3.1.0의 classify_noise ()
나는 미래의 독자들을 위해이 정보를 여기에 넣었습니다. 시작은 몇 가지 가능한 알고리즘이 v3.1.0
lidR
있는 함수 classify_noise()
를 갖습니다 (또는 읽는시기에 따라 '이미 있습니다') .