Я провів тест, щоб визначити, як швидкість та якість відрізняються між двома методами, ось результати:
Вхідні дані
- 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)