У меня есть более 100 файлов форм, которые не имеют файла .prj, и поэтому, когда я переносу их в ArcMap 10, они показывают систему координат как неизвестную. Я знаю, что все системы координат файлов форм - это GCS WGS 1984. Я также знаю, что могу использовать инструмент «Определить проекцию GP», чтобы индивидуально назначить систему координат каждому файлу, но это займет вечность.
Я надеялся, что есть инструмент GP для пакетного определения, но я его не вижу. Затем я подумал, может быть, я мог бы использовать Python для этого, поэтому я заглянул в меню справки и нашел скрипт, но он выдает ошибку.
Вот код Python, который я пробовал (это для одного файла shp, поэтому мне все равно придется набирать имя для каждого файла:
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)
Ответы:
Я думаю, что вы, ребята, задумываетесь над этим ...
источник
Если они находятся в одном и том же каталоге, будет работать что-то вроде этого (просто замените ваши пути, возможно, добавьте некоторую обработку исключений):
источник
import os, shutil
(см. обновленный ответ). docs.python.org/tutorial/stdlib.html если вы там.Просто сделайте копии .prj и переименуйте. Так, например, если у вас есть 3 шейп-файла:
Определите проекцию для one.shp, и вы получите one.prj в каталоге. Скопируйте one.prj в каталог two.shp и переименуйте в two.prj, повторите для всех шейп-файлов. .Prj - это просто текстовый файл. Пока .prj находится в том же каталоге, что и .shp и с тем же именем, программное обеспечение будет его забирать. Автоматизируйте с помощью любых знакомых вам инструментов для копирования и переименования файлов.
источник
Редактировать:
Вероятно, самый простой способ будет. Принесите их все и назначьте правильный документ для документа. Они были бы "непроектированными", но сидели бы в правильном месте. Затем просто экспортируйте (несколько) в новое место.
Я вижу инструмент GP для групповой проекции.
Это не может быть выставлено в arcpy. ??
Я думаю, что я создал бы pgdb (File, personal или даже sde), а затем создал fds (набор данных функций).
Назначьте соответствующие crs для этого fds.
Импортируйте файлы форм (несколько). [все fc в fds наследуют crs of fds].
Затем вы можете экспортировать в файл формы (несколько).
Это будет вместо пакетного проецирования, и я уверен, что можно было бы написать сценарий.
источник
как насчет простого сценария оболочки и ogr2ogr? См. Http://www.gdal.org/ogr2ogr.html для точного синтаксиса.
источник
Вот что я использую ... он будет определять проекцию только для растровых файлов, у которых нет проекции. Надеюсь, это поможет. Он также создает список файлов без проекции в целях обеспечения качества.
Для ваших векторов просто нужен небольшой мод - FileList = arcpy.ListFeatureClasses ()
источник