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