Añadir 'GeocoderOSM.py'
This commit is contained in:
pare
e79dec81f3
commit
3eb688e235
S'han modificat 1 arxius amb 49 adicions i 0 eliminacions
49
GeocoderOSM.py
Normal file
49
GeocoderOSM.py
Normal file
|
@ -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))
|
Loading…
Referencia en una nova incidència