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.


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)

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.