Ich habe über 100 Shape-Dateien, die keine .prj-Datei haben. Wenn ich sie in ArcMap 10 bringe, wird das Koordinatensystem daher als unbekannt angezeigt. Ich weiß, dass das Koordinatensystem aller Formdateien GCS WGS 1984 ist. Ich weiß auch, dass ich mit dem GP-Tool "Projektion definieren" das Koordinatensystem jeder Datei einzeln zuweisen kann, aber das wird ewig dauern.
Ich hatte gehofft, dass es ein GP-Tool gibt, mit dem sich diese stapelweise definieren lassen, aber ich sehe keines. Als nächstes dachte ich, ich könnte vielleicht Python verwenden, also habe ich im Hilfemenü ein Skript gefunden, aber es gibt mir einen Fehler.
Hier ist der Python-Code, den ich ausprobiert habe (dies ist für eine einzelne shp-Datei, so dass ich immer noch die Mühe habe, den Namen für jede Datei einzugeben:
import arcpy
infc = r"C:\Documents and Settings\User\My Documents\ArcGIS\shpfiles\Site_2.shp"
prjfile = r"<install directory>\Coordinate Systems\Geographic Coordinate Systems\World\WGS 1984.prj"
arcpy.DefineProjection_management(infc, prjfile)
quelle
Antworten:
Ich denke ihr überdenkt diesen einen ...
quelle
Wenn sie sich im selben Verzeichnis befinden, würde so etwas funktionieren (ersetzen Sie einfach Ihre Pfade, fügen Sie möglicherweise eine Ausnahmebehandlung hinzu):
quelle
import os, shutil
(siehe die aktualisierte antwort). docs.python.org/tutorial/stdlib.html sollten Sie da sein.Einfach Kopien der .prj erstellen und umbenennen. Also zB wenn Sie 3 Shapefiles haben:
Definieren Sie die Projektion für one.shp und Sie haben one.prj im Verzeichnis. Kopieren Sie one.prj in das Verzeichnis two.shp und benennen Sie es in two.prj um. Wiederholen Sie diesen Vorgang für alle Shapefiles. Die .prj ist nur eine Textdatei. Solange sich eine .prj-Datei im selben Verzeichnis wie eine .shp-Datei mit demselben Namen befindet, wird sie von der Software abgerufen. Automatisieren Sie mit allen Tools, die Sie zum Kopieren und Umbenennen von Dateien kennen.
quelle
Bearbeiten:
Die wahrscheinlich einfachste Methode wäre. Bringen Sie sie alle ein und weisen Sie dem Dokument die richtigen crs zu. Sie würden "unprojektiert" sein, aber am richtigen Ort sitzen. Dann exportieren Sie einfach (mehrere) an einen neuen Speicherort.
Ich sehe ein GP-Tool für die Stapelprojektion.
Es darf nicht bogenförmig belichtet werden. ??
Ich denke, ich würde eine pgdb erstellen (Datei, persönlich oder sogar sde) und dann einen fds (Feature-Datensatz) erstellen.
Weisen Sie diesem fds das entsprechende crs zu.
Importieren Sie die Formdateien (mehrere). [alle fc in einem fds erben die crs des fds].
Dann können Sie in eine Formdatei exportieren (mehrere).
Dies würde die Stapelprojektion ersetzen, und ich bin sicher, dass Skripte erstellt werden könnten.
quelle
Wie wäre es mit einem einfachen Shell-Skript und ogr2ogr? Die genaue Syntax finden Sie unter http://www.gdal.org/ogr2ogr.html .
quelle
Hier ist, was ich benutze ... es wird nur die Projektion für Rasterdateien definieren, die keine Projektion haben. Ich hoffe es hilft. Es wird auch eine Liste der Dateien ohne Projektion für Qualitätssicherungszwecke erstellt.
Für deine Vektoren wird nur ein kleiner Mod benötigt - FileList = arcpy.ListFeatureClasses ()
quelle