O Clip (gerenciamento de dados) ou o Extract By Mask (Spatial Analyst) são mais eficientes?

12

Estou tentando cortar uma Orthophoto até o limite de um condado. Estou usando a ferramenta Extrair por máscara, mas esse processo está em execução há cerca de 12 horas! Já passou por 2 ciclos, então estou assumindo que esta é cada banda. Alguém pode me corrigir se eu estiver errado nisso.

O clipe no gerenciamento de dados funcionaria melhor (mais rápido)? Como seria a precisão?

Eu sempre tentei usar Extract By Mask, mas isso está demorando muito.

user26133
fonte
Eu sempre recortei em vez de Extrair por máscara para aparar uma varredura no contorno de um polígono, e é bastante rápido (minutos, não horas). Você pode esclarecer o que quer dizer com "precisão" do resultado?
Erica
Eu usei a ferramenta Clip no gerenciamento de dados uma vez, mas era uma varredura de precipitação que deveria ser usada em uma área muito maior com a qual eu estava trabalhando. Era para um trabalho escolar, e eles mencionaram que não sairia bem.
usar o seguinte comando
De acordo com o meu conhecimento, o Clip não altera o conteúdo do valor de varredura (nem o Extrair por máscara); portanto, eles podem estar simplesmente se referindo aos valores de análise imprecisos devido à menor área espacial sendo analisada, em vez do clipe processo que afeta os dados. Isso não seria um problema para uma ortofoto, a menos que você a esteja usando para análise e não para segundo plano.
29614 Erica
2
O clipe possui apenas uma área retangular (envelope), no entanto, a extração por máscara será extraída para um polígono irregular / multipart / rosquinha. Se você deseja que apenas os dados utilizem um clipe, é muito mais rápido, mas se precisar recortar para uma forma irregular, use extrair pela máscara.
Michael Stimson
4
Na verdade, o clipe também pode fazer formas irregulares. Se você selecionar os polígonos no arquivo shp ao qual deseja recortar a varredura e marque a caixa "Usar recursos de entrada para geometria de recorte", obtém a forma do polígono, não a extensão retangular de todo o arquivo shp.
ecologist1234

Respostas:

19

Fiz um teste para determinar como a velocidade e a qualidade diferem entre os dois métodos, eis os resultados:

Dados de entrada

  1. Imagem NAIP DOQQ de 4 bandas no formato .img (349.34MB)
  2. Uma classe de recurso usada como máscara / cortador

insira a descrição da imagem aqui

atuação

Três ensaios foram realizados e comparados. O método Clipe (Gerenciamento de dados) é significativamente mais rápido que o método Extrair por máscara (analista espacial).

insira a descrição da imagem aqui

Qualidade

Ambas as extensões eram idênticas aos valores NoData. No entanto, uma avaliação visual mostrou que o método de extração por máscara alterou ligeiramente o arranjo de pixels - provavelmente o resultado de algum tipo de reamostragem. A disposição dos pixels na operação do clipe era idêntica à imagem de entrada original.


# 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)
Aaron
fonte
1
Ótima resposta! Eu não pretendo ser um estatístico especialista, mas eu estava brincando no minitab, então coloquei seus tempos em um teste t de 2 amostras e sei que o tamanho da amostra é um pouco pequeno, mas houve uma diferença significativa. ;)
Hornbydd 17/05
3
Se o método de extração por máscara alterou o original de qualquer maneira, como você relata, provavelmente não foi realizado com uma máscara apropriada: ou seja, uma que estava exatamente alinhada com a varredura original. Isso teria forçado a reamostragem do original, o que explicaria a carga computacional adicional - mas também sugere que suas comparações de tempo não são uma avaliação justa da situação. De fato, o procedimento de recorte provavelmente começa criando uma máscara e depois aplicando-a; portanto, seria de esperar que o recorte fosse um pouco menos eficiente do que uma extração apenas pela máscara.
whuber
1
Espero que você não mantenha sua contribuição excluída permanentemente, Aaron: ela contém informações úteis. Idealmente, se você pudesse atualizá-lo para incluir o tempo para uma máscara registrada com precisão, seria uma resposta exemplar. (Quem sabe, esse resultado também pode refutar as minhas especulações!)
whuber