Encontre em anexo um pequeno script que grava a referência de projeção de spatialreference.org em um arquivo .prj. Ele adiciona um arquivo de projeção a todos os arquivos especificados em um diretório. Por exemplo, todos os shapefiles no diretório E: \. Apenas se preocupe com o código EPSG da projeção que você deseja incorporar, a extensão dos arquivos aos quais você deseja adicionar um arquivo de projeção e o diretório em que eles estão. Ele percorrerá recursivamente todos os subdiretórios, portanto, use com cuidado.
import os
def getWKT_PRJ (epsg_code):
import urllib.request, urllib.parse, urllib.error
# Access projection information
wkt = urllib.request.urlopen("http://spatialreference.org/ref/epsg/{0}/prettywkt/".format(epsg_code))
decoded = (wkt.read().decode('utf-8'))
# Remove spaces between charachters
remove_spaces = decoded.replace(" ","")
# Place all the text on one line
output = remove_spaces.replace("\n","")
return output
def referencer(folder_path, extension):
for path, subdirs, files in os.walk(folder_path):
for name in files:
file_extension = os.path.splitext(name)[-1]
if(extension in file_extension):
file_path = os.path.join(path,name)
file_name = os.path.splitext(file_path)[0]
prj = file_name + ".prj"
projection = open(prj,"w")
projection.write(epsg)
projection.close()
epsg = getWKT_PRJ("25831")
referencer('E:\Testfolder', '.shp')