Является ли Clip (управление данными) или Extract By Mask (Spatial Analyst) более эффективным?

12

Я пытаюсь закрепить ортофото до границы округа. Я использовал инструмент Extract By Mask Tool, но этот процесс длился около 12 часов! Уже прошло 2 цикла, поэтому я предполагаю, что это каждая группа. Может кто-нибудь поправить меня, если я ошибаюсь?

Будет ли клип в управлении данными работать лучше (быстрее)? Как бы точность была?

Я всегда пытался использовать Extract By Mask, но это занимает слишком много времени.

user26133
источник
Я всегда обрезаю, а не извлекаю маску, чтобы обрезать растр по контуру многоугольника, и это довольно быстро (минуты, а не часы). Можете ли вы уточнить, что вы подразумеваете под «точностью» результата?
Эрика
Я использовал инструмент Clip в управлении данными один раз, но это был растр осадков, который предназначался для использования в гораздо большей области, с которой я работал. Это было для школьного задания, и они отметили, что это не получится хорошо.
user26133
Насколько мне известно, Clip не изменяет содержимое растровых значений (равно как и Extract By Mask), поэтому они могли просто ссылаться на неточности значений анализа из-за меньшей анализируемой пространственной области, а не для клипа. процесс, влияющий на данные. Это не будет проблемой для ортофото, если вы не используете его для анализа, а не фона.
Эрика
2
Клип делает только прямоугольную область (конверт), но извлечение по маске будет извлекать в неправильный / составной / кольцевой многоугольник. Если вы хотите, чтобы только данные в экстенте использовали клип, это намного быстрее, но если вам нужно обрезать до неправильной формы, используйте извлечение по маске.
Майкл Стимсон
4
На самом деле клип может делать неправильные формы тоже. Если вы выберите полигоны в файле shp, к которым хотите обрезать растр, а затем установите флажок «Использовать входные объекты для обрезки геометрии», вы получите форму многоугольника, а не прямоугольный экстент всего файла shp.
ecolog1234

Ответы:

19

Я провел тест, чтобы определить, как скорость и качество отличаются между двумя методами, вот результаты:

Входные данные

  1. 4-полосное изображение NAIP DOQQ в формате .img (349,34 МБ)
  2. Класс объектов, используемый в качестве маски / ограничителя

введите описание изображения здесь

Производительность

Три испытания были выполнены и оценены. Метод 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)
Аарон
источник
1
Отличный ответ! Я не претендую на звание эксперта по статистике, но я возился с миниатюрами, поэтому я проверил ваш тайминг с помощью t-критерия с двумя выборками, и я знаю, что размер выборки немного мал, но это была существенная разница. ;)
Хорнбидд
3
Если метод извлечения по маске каким-либо образом изменил оригинал, как вы сообщаете, то, вероятно, он не был выполнен с соответствующей маской: то есть той, которая была точно выровнена с исходным растром. Это привело бы к повторной выборке оригинала, что привело бы к дополнительным вычислительным нагрузкам, но также предполагает, что сравнение времени не является справедливой оценкой ситуации. Действительно, процедура отсечения, скорее всего, начинается с создания маски и последующего ее применения, поэтому можно ожидать, что отсечение будет немного менее эффективным, чем извлечение только по маске.
whuber
1
Я надеюсь, что вы не будете постоянно удалять свой вклад, Аарон: он содержит полезную информацию. В идеале, если бы вы могли обновить его, чтобы включить синхронизацию для точно зарегистрированной маски, это был бы примерный ответ. (Кто знает, этот результат может также опровергнуть мои предположения!)
whuber