J'ai plus de 100 fichiers de formes qui n'ont pas de fichier .prj et donc quand je les amène dans ArcMap 10, ils montrent le système de coordonnées comme inconnu. Je sais que le système de coordonnées de tous les fichiers de formes est GCS WGS 1984. Je sais également que je peux utiliser l'outil Define Projection GP pour attribuer individuellement le système de coordonnées à chaque fichier, mais cela prendra une éternité.
J'espérais qu'il y avait un outil GP pour les définir par lots, mais je n'en vois pas. Ensuite, je pensais que je pourrais peut-être utiliser python pour cela, alors j'ai regardé dans le menu d'aide et trouvé un script, mais cela me donne une erreur.
Voici le code python que j'ai essayé (c'est pour un seul fichier shp donc j'aurais toujours la peine de taper le nom de chaque fichier:
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)
Réponses:
Je pense que vous pensez trop à celui-ci ...
la source
S'ils sont dans le même répertoire, quelque chose comme ça fonctionnerait (remplacez simplement vos chemins, peut-être ajoutez une gestion des exceptions):
la source
import os, shutil
(voir la réponse mise à jour). docs.python.org/tutorial/stdlib.html si vous y êtes.Faites simplement des copies du .prj et renommez. Donc, par exemple, si vous avez 3 fichiers de formes:
Définissez la projection pour one.shp et vous aurez one.prj dans le répertoire. Copiez one.prj dans le répertoire two.shp et renommez-le en two.prj, répétez pour tous les fichiers de formes. Le .prj est juste un fichier texte. Tant qu'il y a un .prj dans le même répertoire qu'un .shp et avec le même nom, le logiciel le récupérera. Automatisez avec les outils que vous connaissez pour copier et renommer des fichiers.
la source
Modifier:
La méthode la plus simple serait probablement. Apportez-les tous et attribuez les bons CRS au document. Ils seraient «non projetés» mais assis au bon endroit. Il vous suffit ensuite d'exporter (plusieurs) vers un nouvel emplacement.
Je vois un outil GP pour la projection par lots.
Il ne peut pas être exposé à l'arc. ??
Je pense que je créerais un pgdb (fichier, personnel ou même sde) puis créerais un fds (ensemble de données de fonctionnalité).
Attribuez les crs appropriés à ces fds.
Importez les fichiers de forme (plusieurs). [tous les fc dans un fds héritent des crs des fds].
Ensuite, vous pouvez exporter vers un fichier de forme (plusieurs).
Ce serait au lieu de la projection par lots, et je suis sûr que cela pourrait être scripté.
la source
que diriez-vous d'un simple script shell et ogr2ogr? Voir http://www.gdal.org/ogr2ogr.html pour la syntaxe exacte.
la source
Voici ce que j'utilise ... il ne définira que la projection pour les fichiers raster qui n'ont pas de projection. J'espère que ça aide. Il crée également une liste des fichiers sans projection à des fins d'assurance qualité.
Pour vos vecteurs, il suffit d'un léger mod - FileList = arcpy.ListFeatureClasses ()
la source