Lider의 포인트 클라우드에서 특이 치를 필터링하는 방법은 무엇입니까?

Aug 18 2020

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를 사용하여 나무를 분할하는 것이 더 나을 것이라고 생각했습니다 .

답변

3 JRR Aug 18 2020 at 19:55

에는 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()를 갖습니다 (또는 읽는시기에 따라 '이미 있습니다') .