Eu tenho mais de 100 arquivos de forma que não possuem arquivo .prj e, portanto, quando os trago para o ArcMap 10, eles mostram o sistema de coordenadas como desconhecido. Sei que todo o sistema de coordenadas dos arquivos de formas é GCS WGS 1984. Também sei que posso usar a ferramenta Define Projection GP para atribuir individualmente o sistema de coordenadas a cada arquivo, mas isso levará uma eternidade.
Eu esperava que houvesse uma ferramenta GP para definir em lote, mas não a vejo. Em seguida, pensei que talvez pudesse usar python para fazer isso. Procurei no menu de ajuda e encontrei um script, mas isso me deu um erro.
Aqui está o código python que eu tentei (isso é para um único arquivo shp, então eu ainda teria a dor de digitar o nome de cada arquivo:
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)
fonte
Respostas:
Eu acho que vocês estão pensando demais neste ...
fonte
Se eles estiverem no mesmo diretório, algo como isso funcionaria (apenas substitua seus caminhos, talvez adicione algum tratamento de exceção):
fonte
import os, shutil
(veja a resposta atualizada). docs.python.org/tutorial/stdlib.html você deve estar lá.Basta fazer cópias do .prj e renomear. Então, por exemplo, se você tem 3 shapefiles:
Defina a projeção para one.shp e você terá one.prj no diretório Copie one.prj para o diretório de two.shp e renomeie para two.prj, repita para todos os shapefiles. O .prj é apenas um arquivo de texto. Enquanto houver um .prj no mesmo diretório que um .shp e com o mesmo nome, o software irá buscá-lo. Automatize com as ferramentas que você conhece para copiar e renomear arquivos.
fonte
Editar:
Provavelmente o método mais fácil seria. Traga todos eles e atribua as CRs corretas ao documento. Eles seriam "não projetados", mas sentados no lugar certo. Em seguida, basta exportar (vários) para um novo local.
Eu vejo uma ferramenta GP para projeção em lote.
Não pode ser exposto no arco. ??
Eu acho que criaria um pgdb (arquivo, pessoal ou mesmo sde) e depois criaria um fds (recurso de conjunto de dados).
Atribua os crs apropriados a esses fds.
Importe os arquivos de forma (vários). [todos os fc em um fds herdam os crs do fds].
Em seguida, você pode exportar para o arquivo de forma (vários).
Isso substitui a projeção em lote e, com certeza, poderia ser roteirizado.
fonte
que tal um script de shell simples e ogr2ogr? Consulte http://www.gdal.org/ogr2ogr.html para obter a sintaxe exata.
fonte
Aqui está o que eu uso ... ele definirá apenas a projeção para arquivos rasterizados que não têm projeção. Espero que ajude. Ele também cria uma lista dos arquivos sem projeção para fins de garantia de qualidade.
Para seus vetores, ele só precisa de um pequeno mod - FileList = arcpy.ListFeatureClasses ()
fonte