diff --git a/GeocoderOSM.py b/GeocoderOSM.py new file mode 100644 index 0000000..4c2dc7c --- /dev/null +++ b/GeocoderOSM.py @@ -0,0 +1,49 @@ +# -*- 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))