# -*- coding: utf-8 -*- # Descripció: # Agafa el llistat de municipis d'un arxiu en format CSV i en retorna les coordenades geogràfiques # que consten a OpenStreetMap (OSM) # # El sistema de coordenades obtingut és WGS84 (EPSG: 4326) # # Requisits: # Lliberies geocoder, time i csv # ------------------------------------------------------------------------------------------------- # Importem llibreries import geocoder import csv import time # Definim l'hora d'inici i els paràmetres de treball: fitxers CSV d'entrada i de sortida, i l'idioma de la Viquipèdia (codi ISO) start_time = int(time.time()) NomFitxer = "" #escriure el nom del fitxer sense l'extensió FitxerEntrada = NomFitxer+".csv" FitxerSortida = NomFitxer+"_georef.csv" # Obrim el fitxer CSV on guardarem els resultats with open(FitxerEntrada) as csv_entrada: with open(FitxerSortida, 'wb') as csv_sortida: fieldnames = ['Nom', 'Lon_x', 'Lat_y'] writer = csv.DictWriter(csv_sortida, fieldnames=fieldnames,delimiter=";") writer.writeheader() csv_reader = csv.reader(csv_entrada, delimiter=';') i = 0 for row in csv_reader: municipi = row[1] + ', ' +NomFitxer if i==0: # a la primera línia del CSV d'entrada hi ha l'encapçalament. No fer res i +=1 else: i +=1 cerca = geocoder.arcgis(municipi) lng = cerca.x lat = cerca.y # Copiar l'informació al nou arxiu CSV writer.writerow({'Nom':row[1],'Long_x': lng, 'Lat_y':lat}) # Definim l'hora de sortida end_time = int(time.time()) print ("\nFi. L'script ha tardat {} segons a executar-se".format(end_time - start_time))