Georeferencje wsadowe w ArcMap / ArcPy?


9

Mam około 50 map pdf, które chciałbym grupować georeferencją i / lub georektem. Zapisałem jeden jako plik JPG i georeferenowałem go ręcznie i chciałbym zautomatyzować pozostałe, które są w tej samej lokalizacji i mają ten sam zasięg.

wprowadź opis zdjęcia tutaj

Gradient gęstości zmieni się w każdym przypadku, ale mapa (teraz zapisana jako jpg) będzie miała taki sam zasięg dla wszystkich 50 przypadków.

Czy ktoś zna link do samouczka krok po kroku, który dotyczy przetwarzania wsadowego tylko w Arcmap 10.2? Zastanawiam się nad użyciem kodu Warp from File lub ewentualnie opcji automatycznej rejestracji , ale nie jestem pewien, od czego zacząć?

Przykładowy kod to:

import arcpy
arcpy.WarpFromFile_management(
"\\cpu\data\raster.img", "\\cpu\data\warp_out.tif",
"\\cpu\data\gcpfile.txt", "POLYORDER2", "BILINEAR")

Czy zajmują to samo miejsce? Czy pliki sąsiadują ze sobą?

Czy możesz edytować swoje pytanie, dołączając link do wspomnianego kodu Zawiń z pliku?
PolyGeo

Pliki fizyczne znajdują się w tym samym folderze. Dane mapy zajmują dokładnie tę samą przestrzeń we wszystkich 50 przykładach.
Codesurfer

Odpowiedzi:


15

W twoim przypadku (rastry jpg i dokładnie taki sam zakres dla wszystkich rastrów) narzędzie Warp From File jest w porządku.

Jeśli nie zapisałeś jeszcze pliku linku, powinieneś zrobić to najpierw: Georeferencja jeden raster w ArcMap, kliknij przycisk Wyświetl tabelę linków i zapisz linki do pliku tekstowego za pomocą przycisku Zapisz:

Zobacz tabelę linków Następnie są różne opcje:

  • Batch : Możesz użyć narzędzia Warp from file w trybie Batch, klikając go prawym przyciskiem myszy w przyborniku:

Partia

  • arcpy : zmień zmienne w poniższym kodzie i uruchom go tak, jak chcesz. Chciałbym po prostu skopiować / wkleić go w oknie Pythona w ArcMap lub ArcCatalog.
import arcpy, os

# Variables
arcpy.env.workspace = r"C:\InFolder"    # Folder with rasters to be georeferenced"
OutF = r"C:\OutFolder"                  # Output folder
Suf = "_georef"                         # Suffix added to the output (if necessary)
Ext = ".jpg"                            # Format of the output rasters
LinkFile = r"C:\linkfile.txt"           # Your link file
Transf = "POLYORDER0"                   # Transformation type - to choose from:
                                        #"POLYORDER0", "POLYORDER1", "POLYORDER2", "POLYORDER3", "ADJUST SPLINE" or "PROJECTIVE"
Resampl = "NEAREST"                     # Resampling type - to choose from:
                                        # "NEAREST", "BILINEAR", "CUBIC" or "MAJORITY"

# Process
ListRas = arcpy.ListRasters()
for ras in ListRas:
    basename = arcpy.Describe(ras).baseName
    outpath = os.path.join(OutF, basename + Suf + Ext)
    arcpy.WarpFromFile_management(ras, outpath, LinkFile, Transf, Resampl)
    print "Georeferenced {} successfully".format(basename)
  • ModelBuilder : możesz iterować po rastrach za pomocą Rasters Iterator (Insert> Iterators> Rasters). Użyj% Name% .png na ścieżce wyjściowej, aby uzyskać nazwy tak samo jak dane wejściowe (lub% Name% _suffix.png):

wprowadź opis zdjęcia tutaj


Dziękuję Ci. Spróbuję tego wieczoru i zaktualizuję wyniki.
Codesurfer
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.