Tengo más de 100 archivos de formas que no tienen el archivo .prj y, por lo tanto, cuando los traigo a ArcMap 10, muestran el sistema de coordenadas como desconocido. Sé que todo el sistema de coordenadas de los archivos de forma es GCS WGS 1984. También sé que puedo usar la herramienta Definir GP de proyección para asignar individualmente el sistema de coordenadas a cada archivo, pero eso tomará una eternidad.
Esperaba que hubiera una herramienta de GP para definir estos lotes, pero no veo una. Luego pensé que tal vez podría usar Python para hacer esto, así que busqué en el menú de ayuda y encontré un script, pero me da un error.
Aquí está el código de Python que probé (esto es para un solo archivo shp, por lo que aún tendría la molestia de escribir el nombre de cada archivo:
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)
fuente
Respuestas:
Creo que ustedes están pensando demasiado en esto ...
fuente
Si están en el mismo directorio, algo como esto funcionaría (solo reemplace sus rutas, quizás agregue algún manejo de excepciones):
fuente
import os, shutil
(ver la respuesta actualizada). docs.python.org/tutorial/stdlib.html debería estar allí.Simplemente haga copias del .prj y cambie el nombre. Entonces, por ejemplo, si tiene 3 archivos de forma:
Defina la proyección para one.shp y tendrá one.prj en el directorio. Copie one.prj en el directorio de two.shp y cambie el nombre a two.prj, repita para todos los archivos de forma. El .prj es solo un archivo de texto. Mientras haya un .prj en el mismo directorio que un .shp y con el mismo nombre, el software lo recogerá. Automatice con cualquier herramienta con la que esté familiarizado para copiar y renombrar archivos.
fuente
Editar:
Probablemente el método más fácil sería. Tráigalos a todos y asigne los crs correctos al documento. Estarían "sin proyectar" pero sentados en el lugar correcto. Luego simplemente exporta (múltiples) a una nueva ubicación.
Veo una herramienta GP para la proyección por lotes.
No puede exponerse en arco. ??
Creo que crearía un pgdb, (File, personal o incluso sde) y luego crearía un fds (conjunto de datos de características).
Asigne los crs apropiados a ese fds.
Importar los archivos de forma (múltiples). [todos los fc en un fds heredan los crs de los fds].
Luego puede exportar a un archivo de forma (múltiple).
Esto sería en lugar de la proyección por lotes, y estoy seguro de que podría ser un guión.
fuente
¿Qué tal un simple script de shell y ogr2ogr? Consulte http://www.gdal.org/ogr2ogr.html para ver la sintaxis exacta.
fuente
Esto es lo que uso ... solo definirá la proyección para archivos ráster que no tienen una proyección. Espero eso ayude. También crea una lista de los archivos sin proyección para fines de garantía de calidad.
Para sus vectores solo necesita un ligero mod - FileList = arcpy.ListFeatureClasses ()
fuente