Batch-Georeferenzierung in ArcMap / ArcPy?


9

Ich habe ungefähr 50 PDF-Karten, die ich georeferenzieren und / oder georektifizieren möchte. Ich habe eine als JPG gespeichert und manuell georeferenziert und möchte den Rest automatisieren, der sich am selben Ort befindet und denselben Umfang hat.

Geben Sie hier die Bildbeschreibung ein

Der Dichtegradient ändert sich jeweils, aber die Karte (jetzt als JPG gespeichert) hat für alle 50 Fälle die gleiche Ausdehnung.

Kennt jemand einen Link zu einer Schritt-für-Schritt- Anleitung, die sich nur mit der Stapelverarbeitung in Arcmap 10.2 befasst? Ich denke darüber nach, den Warp from File-Code oder möglicherweise die Autoregistrierungsoption zu verwenden , bin mir aber nicht sicher, wo ich anfangen soll?

Der Beispielcode lautet:

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

Nehmen sie den gleichen Raum ein? Sind die Dateien nebeneinander?

Können Sie Ihre Frage so bearbeiten, dass sie einen Link zum von Ihnen erwähnten Wrap from File-Code enthält?
PolyGeo

Die physischen Dateien befinden sich im selben Ordner. Die Kartendaten nehmen in allen 50 Beispielen genau den gleichen Platz ein.
Codesurfer

Antworten:


15

In Ihrem Fall (JPG-Raster und genau gleiches Ausmaß für alle Raster) ist das Warp From File-Tool in Ordnung.

Wenn Sie noch keine Linkdatei gespeichert haben, sollten Sie dies zuerst tun: Georeferenzieren Sie ein Raster in ArcMap, klicken Sie auf die Schaltfläche Link-Tabelle anzeigen und speichern Sie die Links in einer Textdatei über die Schaltfläche Speichern:

Link-Tabelle anzeigen Dann gibt es verschiedene Möglichkeiten:

  • Batch : Sie können das Tool "Warp aus Datei" im Batch-Modus verwenden, indem Sie mit der rechten Maustaste in der Toolbox darauf klicken:

Stapel

  • arcpy : Ändern Sie die Variablen im folgenden Code und führen Sie sie nach Ihren Wünschen aus. Ich würde es einfach in das Python-Fenster in ArcMap oder ArcCatalog kopieren / einfügen.
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 : Mit dem Rasters Iterator (Einfügen> Iteratoren> Raster) können Sie die Raster durchlaufen. Verwenden Sie% Name% .png im Ausgabepfad, um Ihre Ausgaben genauso zu benennen wie die Eingaben (oder% Name% _suffix.png):

Geben Sie hier die Bildbeschreibung ein


Vielen Dank. Ich werde es heute Abend versuchen und mit den Ergebnissen aktualisieren.
Codesurfer
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.