#!/usr/bin/python # -*- coding: latin-1 -*- """ Script importation des données data.gouv.fr pour fichier des établissements de santé du Loir-et-Cher Auteur: Emmanuel Dewaele Licence: BSD Pré-requis: * python avec bibliothèque psycopg2 * une instance PostgreSQL avec PostGIS Documentation: 1. Exporter en SQL les données du fichier shapefile: shp2pgsql -s 2154 -W LATIN1 etab_sante.shp > etab_sante.sql 2. Les injecter dans une base PostgreSQL psql -f etab_sante.sql 3. Lancer ce script qui va lire la base de données et générer un fichier .osm python etab_sante.py """ import os import psycopg2 minLon, minLat = 90,90 maxLon, maxLat = -90,-90 def traiterFichier(): global minLon, minLat,maxLon, maxLat idNode = -1 conn = psycopg2.connect("coord bd") cur = conn.cursor() cur.execute("SELECT x(st_transform(the_geom,4326)),y(st_transform(the_geom,4326)),nom,finess,type from etab_sante") rows = cur.fetchall() xml = "" for ligne in rows: lon = float(str(ligne[0])) lat = float(str(ligne[1])) minLon,minLat = min(minLon,lon),min(minLat,lat) maxLon,maxLat = max(maxLon,lon),max(maxLat,lat) typeE = "" if ligne[4] == "CH" or ligne[4] == "CH-Rf": typeE = "hospital" else: typeE = "clinic" xml += "\n" xml += "\n" xml += "\n" xml += "\n" xml += "\n" xml += "\n" idNode -= 1 return xml if __name__ == "__main__": fichierSortie = open("etab_sante.osm",'w') fichierSortie.write('\n') fichierSortie.write('\n') xml = traiterFichier() fichierSortie.write('\n') fichierSortie.write(xml) fichierSortie.write('') fichierSortie.close()