Czy Clip (zarządzanie danymi) lub Extract By Mask (Spatial Analyst) jest bardziej wydajny?

12

Próbuję wyciąć ortofoto do granicy hrabstwa. Korzystam z narzędzia Wyodrębnij według maski, ale proces ten trwa około 12 godzin! Przeszły już 2 cykle, więc zakładam, że to każdy zespół. Czy ktoś może mnie poprawić, jeśli się mylę.

Czy klip w zarządzaniu danymi działałby lepiej (szybciej)? Jaka byłaby dokładność?

Zawsze próbowałem użyć Extract By Mask, ale to trwa zbyt długo.

użytkownik26133
źródło
Zawsze przycinam zamiast Wyciągaj według maski, aby przyciąć raster do obrysu wielokąta, i jest dość szybki (minuty, a nie godziny). Czy możesz wyjaśnić, co rozumiesz przez „dokładność” wyniku?
Erica
Kiedyś użyłem narzędzia Clip w zarządzaniu danymi, ale był to raster opadów, który miał być używany na znacznie większym obszarze, z którym pracowałem. To było na zadanie szkolne, a oni wspomnieli, że nie wyjdzie dobrze.
user26133,
Zgodnie z moją najlepszą wiedzą, Clip nie zmienia zawartości wartości rastrowej (ani nie wyodrębnia maski), więc mogły po prostu odnosić się do niedokładnych wartości analizy z powodu analizowanego mniejszego obszaru przestrzennego, a nie do klipu proces wpływający na dane. To nie byłby problem dla ortofoto, chyba że używasz go do analizy, a nie w tle.
Erica
2
Klip wykonuje tylko prostokątny obszar (koperta), jednak wyciąg po masce wyodrębnia się do nieregularnego / wieloczęściowego / pączka. Jeśli chcesz tylko danych z zakresu, użyj klipu, jest to znacznie szybsze, ale jeśli chcesz przyciąć do nieregularnego kształtu, użyj wyciągu po masce.
Michael Stimson
4
W rzeczywistości klip może również mieć nieregularne kształty. Jeśli wybierzesz wielokąty w pliku shp, do którego chcesz przyciąć raster, a następnie zaznaczysz pole „Użyj funkcji wprowadzania do wycinania geometrii”, otrzymasz kształt wielokąta, a nie prostokątny zasięg całego pliku shp.
ecologist1234

Odpowiedzi:

19

Przeprowadziłem test, aby ustalić, w jaki sposób prędkość i jakość różnią się między dwiema metodami, oto wyniki:

Dane wejściowe

  1. 4-pasmowy obraz NAIP DOQQ w formacie .img (349,34 MB)
  2. Klasa funkcji używana jako maska ​​/ maszynka do strzyżenia

wprowadź opis zdjęcia tutaj

Występ

Przeprowadzono trzy próby i przeprowadzono testy porównawcze. Metoda Clip (zarządzanie danymi) jest znacznie szybsza niż metoda Extract by Mask (Spatial Analyst).

wprowadź opis zdjęcia tutaj

Jakość

Oba zakresy były identyczne, podobnie jak wartości NoData. Ocena wizualna wykazała jednak, że metoda ekstrakcji metodą maski nieznacznie zmieniła układ pikseli - prawdopodobnie wynik pewnego rodzaju ponownego próbkowania. Układ pikseli w operacji klipu był identyczny z oryginalnym obrazem wejściowym.


# 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
źródło
1
Świetna odpowiedź! Nie twierdzę, że jestem ekspertem od statystyk, ale bawiłem się w minitabie, więc poddałem wasze czasy testowi t dla 2 próbek i wiem, że wielkość próbki jest trochę mała, ale to była znacząca różnica. ;)
Hornbydd
3
Jeśli według metody wyodrębnianie metodą maski zmieniło oryginał w jakikolwiek sposób, prawdopodobnie nie zostało to wykonane przy użyciu odpowiedniej maski: to znaczy dokładnie dopasowanej do oryginalnego rastra. Zmusiłoby to do ponownego próbkowania oryginału, co stanowiłoby dodatkowe obciążenie obliczeniowe - ale sugeruje również, że porównania czasowe nie są rzetelną oceną sytuacji. Rzeczywiście, procedura przycinania najprawdopodobniej zaczyna się od utworzenia maski, a następnie jej zastosowania, więc można by oczekiwać, że obcinanie będzie nieco mniej wydajne niż ekstrakcja samą maską.
whuber
1
Mam nadzieję, że Twój wpis nie zostanie trwale usunięty, Aaron: zawiera przydatne informacje. Idealnie byłoby, gdybyś mógł zaktualizować go tak, aby zawierał czas dla dokładnie zarejestrowanej maski, byłaby to przykładowa odpowiedź. (Kto wie, ten wynik może również obalić moje spekulacje!)
whuber