Clip (데이터 관리) 또는 Extract By Mask (Spatial Analyst)가 더 효율적입니까?


12

Orthophoto를 카운티 경계로 자르려고합니다. 마스크로 추출 도구를 사용했지만이 프로세스는 약 12 ​​시간 동안 실행되었습니다! 이미 2주기를 거쳤으므로 이것이 각 밴드라고 가정합니다. 내가 틀렸다면 누군가 나를 교정 할 수 있습니까?

데이터 관리의 클립이 더 빨리 작동합니까? 정확도는 어떻습니까?

마스크로 추출을 사용하려고 항상 시도했지만 시간이 너무 오래 걸립니다.


래스터를 폴리곤의 외곽선으로 다듬기 위해 마스크로 추출하는 대신 항상 클립을 사용했으며 시간이 아닌 몇 분이면 매우 빠릅니다. 결과의 "정확도"가 의미하는 바를 명확하게 설명 할 수 있습니까?
Erica

데이터 관리에서 클립 도구를 한 번 사용했지만 작업했던 훨씬 더 넓은 영역에서 사용되는 강수 래스터였습니다. 그것은 학교 배정을위한 것이었고, 그들은 잘되지 않을 것이라고 언급했습니다.
user26133

내가 아는 한, Clip은 래스터 값 내용을 변경하지 않으며 (마스크로 추출하지 않음) 클립보다 작은 공간 영역으로 인해 분석 값이 부정확하다는 것을 단순히 언급했을 수도 있습니다. 데이터에 영향을 미치는 프로세스. 배경보다는 분석을 위해 사용하지 않는 한 정교 사진에는 문제가되지 않습니다.
Erica

2
클립은 사각형 영역 (봉투) 만 수행하지만 마스크로 추출하면 불규칙 / 멀티 파트 / 도넛 다각형으로 추출됩니다. 익스텐트 사용 클립의 데이터 만 원한다면 훨씬 빠르지 만 불규칙한 모양으로 트리밍해야하는 경우 마스크로 추출을 사용하십시오.
Michael Stimson

4
실제로 클립도 불규칙한 모양을 만들 수 있습니다. shp 파일에서 래스터를 자르려는 다각형을 선택한 다음 "클리핑 지오메트리에 입력 피처 사용"확인란을 선택하면 전체 shp 파일의 직사각형 범위가 아닌 다각형 모양이 표시됩니다.
ecologist1234

답변:


19

두 방법간에 속도와 품질이 어떻게 다른지 확인하기 위해 테스트를 실행했습니다. 결과는 다음과 같습니다.

입력 데이터

  1. .img 형식의 4 밴드 NAIP DOQQ 이미지 (349.34MB)
  2. 마스크 / 클리퍼로 사용되는 피처 클래스

여기에 이미지 설명을 입력하십시오

공연

세 가지 시험이 수행되고 벤치마킹되었습니다. 클립 (데이터 관리) 방법은 마스크로 추출 (공간 분석가) 방법보다 훨씬 빠릅니다.

여기에 이미지 설명을 입력하십시오

품질

두 범위는 NoData 값과 동일합니다. 그러나 육안 평가에 따르면 마스크 방식으로 추출하면 픽셀 배열이 약간 변경되었습니다 (일부 유형의 리샘플링 결과). 클립 작업에서 픽셀 배열은 원래 입력 이미지와 동일합니다.


# Import system modules
import arcpy, time, os
from arcpy import env
from arcpy.sa import *

env.overwriteOutput = 1

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Set local variables
inRaster = r'C:\temp\naip2011.img'
inMaskData = r'C:\temp\fgdb.gdb\clipper'
outws = r'C:\temp'
out1 = os.path.join(outws, 'extractbymask.img')
out2 = os.path.join(outws, 'clip.img')

#############TRIAL 1: EXTRACT BY MASK#########################################
start = time.clock()

# ExtractByMask
outExtractByMask = ExtractByMask(inRaster, inMaskData)

# Save the output
outExtractByMask.save(out1)

end = time.clock()
total = end - start

print "The extract by mask method took:  %s seconds" % round(total, 3)

###############TRIAL 2: CLIP#################################################
start = time.clock()

# Clip
arcpy.Clip_management(inRaster, "#", out2, inMaskData, "", "ClippingGeometry")

end = time.clock()
total = end - start

print "The clip method took:             %s seconds" % round(total, 3)

1
좋은 대답입니다! 나는 전문가 통계 전문가라고 주장하지는 않지만 미니탭을 둘러보고 있었으므로 2 샘플 t- 검정을 통해 타이밍을 적용했으며 샘플 크기가 약간 작지만 큰 차이가 있음을 알고 있습니다. ;)
Hornbydd

3
마스크로 추출 방법이 어떤 방식 으로든 원본을 변경 한 경우,보고 한대로 적절한 마스크로 수행되지 않았을 수 있습니다. 즉 , 원본 래스터와 정확하게 정렬 된 마스크 입니다. 이로 인해 원본을 다시 샘플링해야하므로 추가 계산 부담이 발생하지만 타이밍 비교가 상황에 대한 공정한 평가가 아님을 암시합니다. 실제로, 클리핑 절차는 마스크를 생성하고 적용하는 것으로 시작될 가능성이 높기 때문에 클리핑 만 마스크에 의한 추출보다 약간 효율적일 것으로 예상 할 수있다 .
whuber

1
기부금을 영구적으로 삭제하지 않기를 바랍니다. Aaron : 유용한 정보가 들어 있습니다. 이상적으로 정확하게 등록 된 마스크의 타이밍을 포함하도록 업데이트 할 수 있다면 모범적 인 답변이 될 것입니다. (누군가, 그 결과도 내 추측을 반증 할 수도있다!)
whuber
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.