Я провел тест, чтобы определить, как скорость и качество отличаются между двумя методами, вот результаты:
Входные данные
- 4-полосное изображение NAIP DOQQ в формате .img (349,34 МБ)
- Класс объектов, используемый в качестве маски / ограничителя
Производительность
Три испытания были выполнены и оценены. Метод Clip (Управление данными) значительно быстрее, чем метод Extract by Mask (Spatial Analyst).
Качество
Оба экстента были идентичны, как и значения 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)