Batch-Projizierung (Data Management)
Zusammenfassung
Ändert das Koordinatensystem eines Satzes von Eingabe-Feature-Classes oder -Feature-Datasets in ein gemeinsames Koordinatensystem. Wenn Sie das Koordinatensystem einer Feature-Class oder eines Feature-Datasets ändern möchten, können Sie dies mit dem Werkzeug Projizieren ausführen.
Verwendung
-
Alle gültigen Eingaben im Werkzeug Projizieren, z. B. alle Feature-Classes oder Feature-Datasets, gelten auch als gültige Eingaben für dieses Werkzeug.
-
Obwohl es sich sowohl beim Ausgabe-Koordinatensystem als auch beim Vorlagen-Dataset um optionale Parameter handelt, müssen Sie einen dieser Parameter eingeben. Wenn Sie beide Parameter leer lassen, kann das Werkzeug nicht ausgeführt werden.
-
Es wird mit dem Werkzeug nicht überprüft, ob eine Transformation erforderlich ist. Daher müssen Sie zuerst das Werkzeug Projizieren mit einer der Eingaben verwenden, um zu bestimmen, ob eine Transformation erforderlich ist. Mit dem Parameter Geographische Transformation in der Dropdown-Liste des Werkzeugs "Projizieren" wird angezeigt, welche Transformationen (ggf.) gültig sind.
-
Für eine Feature-Class oder ein Feature-Dataset mit einem nicht definierten oder unbekannten Koordinatensystem muss zuerst ein Koordinatensystem definiert werden. Verwenden Sie dazu das Werkzeug Projektion definieren. Anschließend kann die Feature-Class oder das Feature-Dataset mit dem Werkzeug verwendet werden.
-
Die Namen der Ausgabe-Feature-Classes basieren jeweils auf dem Namen der Eingabe-Feature-Classes. Beispiel: Wenn die Eingabe c:\myworkspace\Gondor.shp lautet, hat die Ausgabe-Feature-Class den Namen Gondor.shp. Wenn dieser Name im Ausgabe-Workspace bereits vorhanden ist, wird eine Zahl angehängt (z. B. _1), damit er im Ausgabe-Workspace eindeutig ist (Gondor_1.shp).
Syntax
Parameter | Erläuterung | Datentyp |
Input_Feature_Class_or_Dataset [Input_Feature_Class_or_Dataset,...] |
Die Eingabe-Feature-Classes oder -Feature-Datasets, deren Koordinaten konvertiert werden sollen. | Geodataset |
Output_Workspace |
Der Speicherort der einzelnen neuen Ausgabe-Feature-Classes oder -Feature-Datasets. | Feature Dataset; Workspace |
Output_Coordinate_System (optional) |
Das Koordinatensystem, das verwendet werden soll, um die Eingaben zu projizieren. Gültige Werte sind ein Raumbezugsobjekt, eine Datei mit der Erweiterung PRJ oder die Zeichenfolgendarstellung eines Koordinatensystems. | Coordinate System |
Template_dataset (optional) |
Die Feature-Class oder das Feature-Dataset, die bzw. das verwendet wird, um das für die Projektion verwendete Ausgabe-Koordinatensystem anzugeben. | Geodataset |
Transformation (optional) |
Name der geographischen Transformation, die angewendet werden soll, um Daten zwischen zwei geographischen Koordinatensystemen (Datum) zu konvertieren. | String |
Codebeispiel
Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion "BatchProject" im unmittelbaren Modus verwendet wird.
import arcpy
arcpy.env.workspace = "C:/data/input/batchproject"
arcpy.BatchProject_management(["citylim.shp", "flood.shp", "faultzn.shp"], "C:/data/output/batchproject", "", "C:/data/usa.gdb/templatefc")
Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion "BatchProject" in einem eigenständigen Skript verwendet wird.
# Name: BatchProject.py
# Description: Changes coordinate systems of several datasets in a batch.
import arcpy
from arcpy import env
# Set workspace environment
env.workspace = "C:/data/wgs1972.gdb"
# Input feature classes
input_features = ["cities", "counties", "blocks", "crime"]
# Output workspace
out_workspace = "C:/data/output.gdb"
# Output coordinate system - leave it empty
out_cs = ''
# Template dataset - it has GCS_WGS_1984 coordinate system
template = "C:/data/wgs1984.gdb/stateparks"
# Geographic transformation -
transformation = "WGS_1972_To_WGS_1984_1"
try:
res = arcpy.BatchProject(input_features, out_workspace, out_cs, template, transformation)
if res.maxSeverity == 0:
print "projection of all datasets successful"
else:
print "failed to project one or more datasets"
except:
print res.getMessages()