Recensement, cartographie et photographie des rues sur les plateformes libres/Belleville-en-Beaujolais

Liste des voies dans OpenStreetMap modifier

Le site overpass turbo permet de faire des requêtes sur la base OpenStreetMap.

La sélection géographique se fait avec l'instruction : {{geocodeArea:nom du lieu}}.

La sélection des voies se fait sur l'élément highway.

Ce qui donne avec l'ensemble des instructions pour l'affichage (incluant l'export en JSON plutôt qu'en XML) :

[out:json];
{{geocodeArea:Belleville-en-Beaujolais}}->.searchArea;
(
  way["highway"](area.searchArea);
);
(._;>;);
out body;

On obtient ainsi la carte suivante : voies sur OpenStreetMap.

Extraction des voies depuis le fichier JSON modifier

En cliquant sur l'onglet Données, le fichier JSON peut être copié et collé dans un fichier, par exemple Belleville.json.

Il suffit alors d'extraire les champs "name", par exemple sous Linux avec :

cat Belleville.json |egrep -o '"name": "(.*?)"' |sed 's/"name": //' |sort |uniq >Belleville.txt

En supprimant le double de la Voie Verte du Beaujolais, on obtient une liste de 302 voies : (voir liste reportée en Annexe 1)

Note : Il est possible d'obtenir la même liste avec un export CSV : [out:csv(name)]; en filtrant les lignes vides et les doublons.

Liste des voies dans le fichier FANTOIR modifier

Le fichier FANTOIR, maintenu par la Direction générale des finances publiques, liste les voies et lieux-dits des toutes les communes de France.

Pour retrouver le code d'une commune dans le fichier FANTOIR, il faut chercher son code INSEE, par exemple sur le site OpenDataSoft :

  • pour Belleville-en-Beaujolais, c'est : 69019 (à ne pas confondre avec le code postal qui est 69220)
  • pour Lyon 2e, c'est : 69382 (le dernier chiffre est celui de l'arrondissement)

Il faut ensuite prendre les deux chiffres du département, rajouter le code direction qui vaut 0 en général (voir les exceptions dans la documentation, pour les départements d'outre-mer, Paris, les Bouches-du-Rhône, le Nord et les Hauts-de-Seine), puis terminer avec les trois derniers chiffres du code INSEE.

Le code FANTOIR pour :

  • Belleville : 690019
  • Lyon 2e : 690382

Extraction des voies modifier

Pour extraire les voies directement dans un fichier CSV, il est possible d'utiliser le script suivant écrit en Python version 3 : (le script est consultable à l'annexe2)

extrait ci-dessous

#!/usr/bin/env python
# -*- coding: utf-8 -*-

fichierFANTOIR = 'FANTOIR0119'
codeCommune = '690019'

voies = {
    'ACH': 'ancien chemin',
    'AER': 'aérodrome',
    'AERG': 'aérogare',
    'AGL': 'agglomeration',
    'AIRE': 'aire',
    ...
    'VTE': 'vieille route',
    'ZA': 'ZA',
    'ZAC': 'ZAC',
    'ZAD': 'ZAD',
    'ZI': 'ZI',
    'ZONE': 'zone',
    'ZUP': 'ZUP',
}


with open(fichierFANTOIR, 'r') as f:
    for line in f:
        text = line.rstrip()
        if not text.startswith(codeCommune):
            continue

        fantoir = text[0:11]
        voie = text[11:15].rstrip()
        nom = text[15:41].rstrip()
        annulation = text[73].rstrip()
        typevoie = ''
        if len(text) > 107:
            typevoie = text[108].rstrip()
        caractere = ''
        if len(text) > 108:
            caractere = text[109].rstrip()

        if voie == 'LYON' or voie == 'N':
            continue

        if voie != '':
            if not voie in voies:
                print 'Type de voie inconnu: ' + voie
            else:
                voie = voies[voie]

        if nom != 'NON DESIGNEE':
            print(fantoir + ';' + voie + ';' + nom + ';' + annulation + ';' + typevoie + ';' + caractere)

Filtrage du fichier CSV modifier

Le fichier CSV obtenu contient les lieux-dits et quelques bâtiments qui ne nous intéressent pas. Ils s'appellent lotissement ou n'ont tout simplement pas de valeur dans la deuxième colonne.

Premières lignes du fichier FANTOIR pour Belleville-en-Beaujolais
Code FANTOIR Voie Nom Code annulation Type Lieu-dit
6900190004X rue DES ABATTOIRS 1
6900190005Y chemin DE L ABBAYE 1
6900190020P rue DE L ABREUVOIR 1

Le code annulation contient Q quand la voie n'existe plus. Le type que l'on conserve est le 1 (il y a aussi 2 pour les ensembles immobiliers, 3 pour les lieux-dits, 4 pour les pseudo-voies et 5 pour les voies provisoires).

Après correction des erreurs, suppression des lieux sans description et des voies supprimées, il en reste 175 : (voir Annexe3 )

les 10 premières ci-dessous :

  • 6900190004X rue DES ABATTOIRS
  • 6900190005Y chemin DE L ABBAYE
  • 6900190020P rue DE L ABREUVOIR
  • 6900190040L rue D AIGUERANDE
  • 6900190055C place ALEXIS BICHONNIER
  • 6900190063L rue ANTOINE FERRAUD
  • 6900190065N rue ANTOINE MORTIER
  • 6900190067R rue DES ARMANDS
  • 6900190080E rue BALLOFFET DURY
  • 6900190090R rue DE BALMONT

...

Liste des voies de la métropole de Lyon modifier

Comparaison des fichiers modifier

Après avoir compilé les différentes liste, il faut maintenant les comparer et garder ceux qui manquent dans l'une ou l'autre.

Par exemple, en comparant les fichiers OSM et FANTOIR, on apprend que le Commandant Bianchetti a pour prénom René (absent sur OSM), et on s'aperçoit que la voie Antoine Mortier est une avenue pour OSM et une rue pour FANTOIR. Le fichier FANTOIR propose une rue François Bourdis, en plus de François Bourdy, qui est probablement la même personne avec une orthographe différente.

Voies du fichier FANTOIR absentes du fichier OSM :

  • allée DU CEDRE DE L'ATLAS
  • allée DU LAC
  • allée DU SEQUOIA
  • avenue RENE CASSIN
  • chemin DE CHAMBORD
  • chemin DE CHAMPCLOS
  • chemin DE FONTENAILLES
  • chemin DES PALISSARDS
  • chemin DU MARU
  • chemin DU PORT
  • chemin vicinal NO 3
  • place CLAUDE BERNARD
  • place DU CHAMP DE FOIRE
  • place DU VIVIER
  • place PORCHERIE
  • place VICTOR PULLIAT
  • route DE LA MATRAZIERE
  • rue DE CHAMPCLOS
  • rue DES PRES D OUTRY
  • rue DES PRES MELETTE
  • rue DU BATTOIR
  • rue DU GR SCOL DE LA CROISEE
  • rue DU SGT CHARLES GAUTRET
  • rue DU STADE
  • rue DU THEATRE
  • rue FLEURIE
  • rue FRANCOIS BOURDIS
  • rue GEORGES CHARPAK
  • square DE LA RESISTANCE
  • square DE LA VIGNE
  • square DES GONES
  • square LAMARTINE
  • voie communale DES GUENETTES

En cherchant sur d'autres cartes (Mappy, Google Maps, documents divers sur internet), on trouve ces voies qui n'existent pas (encore) sur OSM :

  • allée DU LAC
  • avenue RENE CASSIN
  • chemin DE CHAMBORD
  • chemin DU MARU
  • place DU VIVIER
  • rue DE CHAMPCLOS
  • rue DU BATTOIR
  • rue DU SGT CHARLES GAUTRET (probablement la rue du Sergeant Charles Gautheret)
  • rue FRANCOIS BOURDIS (probablement la rue François Bourdy)
  • rue GEORGES CHARPAK

Constitution d'un fichier CSV dans un tableur modifier

Script d'import dans Wikidata modifier

Une fois les données bien rangées dans un tableau, il est possible de les importer automatiquement avec un petit bot. Celui-ci est écrit en Python pour Pywikibot. Il suppose que élements Wikidata qui existent déjà ont été enlevés du fichier (sinon il plante).

# -*- coding: utf-8 -*

import pywikibot
site = pywikibot.Site("wikidata", "wikidata")
repo = site.data_repository()

import csv, sys


localite = 'Q58183261' # Belleville-en-Beaujolais


def create_wd_item(site, label_dict):
    new_item = pywikibot.ItemPage(site)
    new_item.editLabels(labels=label_dict, summary=u"Création d'un nouvel élément")
    return new_item.getID()


natures = {
    'allée': 'Q207934',
    'avenue': 'Q7543083',
    'boulevard': 'Q54114',
    'chemin': 'Q5004679',
    'cours': 'Q16544740',
    'esplanade': 'Q88372',
    'impasse': 'Q12731',
    'jardin public': 'Q55177716',
    'montée': 'Q79007',
    'parc': 'Q22746',
    'passage': 'Q13634881',
    'passerelle': 'Q1068842',
    'place': 'Q174782',
    'promenade': 'Q787113',
    'quai': 'Q3840711',
    'rond-point': 'Q1529',
    'rue': 'Q79007',
    'ruelle': 'Q1251403',
    'square': 'Q2026833',
    'traboule': 'Q8379'
}


with open('Belleville-en-Beaujolais.csv') as csv_file:
    reader = csv.reader(csv_file, delimiter=';')
    line_count = 0
    for row in reader:
        if line_count == 0:
            pass
        else:
            fantoir = row[0]
            libelle = row[1]
            description = row[2]
            nature = row[3]
            pays = row[4]
            codepostal = row[5]
            coords = row[6]
            relationOSM = row[7]
            referenceA = row[8]
            print(f"\tVoie: {libelle}, nature {nature}, code postal {codepostal}, coords {coords}, OSM {relationOSM}, référence {referenceA}.")

            # test nature
            natureQ = ''
            if nature in natures:
                natureQ = natures[nature]
            else:
                print("Voie inconnue: ", nature)
                sys.exit()

            latS, lonS = coords.split(',')
            latI = float(latS)
            lonI = float(lonS)
            print(f'Lat: {latI}, lon: {lonI}')



            # create WD
            some_labels = {"fr": libelle}
            new_item_id = create_wd_item(site, some_labels)
            print(new_item_id)

            item = pywikibot.ItemPage(repo, new_item_id)
            item.get()

            claim = pywikibot.Claim(repo, u'P31') # nature de l'élément
            target = pywikibot.ItemPage(repo, natureQ)
            claim.setTarget(target)
            item.addClaim(claim, summary=u'Nature')

            desc = { u'fr': description }
            item.editDescriptions(desc, summary=u'Set description')

            claim = pywikibot.Claim(repo, u'P17') # pays
            target = pywikibot.ItemPage(repo, u'Q142') # France
            claim.setTarget(target)
            item.addClaim(claim, summary=u'Pays')

            claim = pywikibot.Claim(repo, u'P131') # localisation administrative
            target = pywikibot.ItemPage(repo, localite)
            claim.setTarget(target)
            item.addClaim(claim, summary=u'Localisation')

            claim = pywikibot.Claim(repo, u'P281') # code postal
            claim.setTarget(codepostal)
            item.addClaim(claim, summary=u'Code postal')


            coordinateclaim  = pywikibot.Claim(repo, u'P625')
            coordinate = pywikibot.Coordinate(lat=latI, lon=lonI, precision=0.0001, site=site)
            coordinateclaim.setTarget(coordinate)
            item.addClaim(coordinateclaim, summary=u'Coordinates')


            if fantoir:
                claim = pywikibot.Claim(repo, u'P3182') # code FANTOIR
                claim.setTarget(fantoir)
                item.addClaim(claim, summary=u'Code FANTOIR')


            if relationOSM:
                claim = pywikibot.Claim(repo, u'P402') # relation OSM
                claim.setTarget(relationOSM)
                item.addClaim(claim, summary=u'relation OSM')

            if referenceA:
                claim = pywikibot.Claim(repo, u'P138') # nommé en référence à
                reference = pywikibot.ItemPage(repo, referenceA)
                claim.setTarget(reference)
                item.addClaim(claim, summary=u'nommé en référence à')

        line_count += 1

Affichage du résultat dans Wikidata modifier

Pour afficher l'ensemble des voies sur une carte, une requête SPARQL :

#defaultView:Map
SELECT DISTINCT ?voie ?image ?coord ?loc ?locLabel ?layer ?voieLabel WHERE {
  { ?voie (wdt:P31/(wdt:P279*)) wd:Q79007. } # rue
  UNION
  { ?voie (wdt:P31/(wdt:P279*)) wd:Q174782. } # place
  UNION
  { ?voie (wdt:P31/(wdt:P279*)) wd:Q16544740. } # cours
  UNION
  { ?voie (wdt:P31/(wdt:P279*)) wd:Q3840711. } # quai
  UNION
  { ?voie (wdt:P31/(wdt:P279*)) wd:Q13634881. } # passage
  UNION
  { ?voie (wdt:P31/(wdt:P279*)) wd:Q2354973. } # tunnel routier
  UNION
  { ?voie (wdt:P31/(wdt:P279*)) wd:Q22746. } # jardin public
  UNION
  { ?voie (wdt:P31/(wdt:P279*)) wd:Q3323198. } # montée
  MINUS
  { ?voie wdt:P582 ?dateDeFin. } # on exclut les voies qui ont une date de fin (n'existent plus)
  ?voie wdt:P131 wd:Q58183261. # localisation administrative = Belleville-en-Beaujolais
  OPTIONAL { ?voie wdt:P18 ?image. } # affichage de l'image si elle existe
  BIND(IF(?image = "", "yes", "no") AS ?layer)
  OPTIONAL { ?voie wdt:P625 ?coord. }
  OPTIONAL { ?voie wdt:P131 ?loc. }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". } 
}

Lien direct vers la carte.

Annexes modifier

Annexe 1 - Extraction des voies depuis le fichier JSON modifier

Voici la liste des 302 voies obtenues :

  1. Allée des Jardiniers
  2. Allée des Sablons
  3. Allée du Parc
  4. Allée du Petit Prince
  5. Autoroute du Soleil
  6. Avenue Antoine Mortier
  7. Avenue Benoît Raclet
  8. Avenue de l'Europe
  9. Avenue de Salzkotten
  10. Avenue des Explorateurs
  11. Avenue des Vendangeurs
  12. Avenue de Verdun
  13. Avenue du Port
  14. Avenue Marius Mathon
  15. Boulevard Gambetta
  16. Boulevard Joseph Rosselli
  17. Carrefour des crus
  18. Chemin Beauj'Ano
  19. Chemin Caron
  20. Chemin d'Amorges
  21. Chemin de Balmont
  22. Chemin de l'Abbaye
  23. Chemin de l'Abbaye à Peillon
  24. Chemin de la Grange du Villard
  25. Chemin de Pain Perdu
  26. Chemin de Pomponey
  27. Chemin de Saône
  28. Chemin des Cerisiers
  29. Chemin des Gouchoux
  30. Chemin des Massues
  31. Chemin des Sablons
  32. Chemin des Vignes
  33. Chemin du Pressoir
  34. Chemin Sainte-Catherine
  35. Contre-Allée Rue des Remparts
  36. Espace Francis Mandy
  37. Impasse Akhenaton
  38. Impasse Balmont
  39. Impasse de la Favorite
  40. Impasse de la Gaité
  41. Impasse de la Noiseraie
  42. Impasse de la Thébaïde
  43. Impasse de l'Écluse
  44. Impasse de l'Hôpital
  45. Impasse de l'Oasis
  46. Impasse des Biches
  47. Impasse des Bouleaux
  48. Impasse des Cerisiers
  49. Impasse des Garennes
  50. Impasse des Graves
  51. Impasse des Grives
  52. Impasse des Hirondelles
  53. Impasse des Jardins
  54. Impasse des Lauriers
  55. Impasse des Lilas
  56. Impasse des Lys
  57. Impasse des Méharis
  58. Impasse des Oiseaux
  59. Impasse des Orchidées
  60. Impasse des Plattards
  61. Impasse des Poiriers
  62. Impasse des Pommiers
  63. Impasse des Rosiers
  64. Impasse des Sables
  65. Impasse des Sarments
  66. Impasse des Saules
  67. Impasse des Tonneliers
  68. Impasse des Vergers
  69. Impasse de Villandry
  70. Impasse du Clos
  71. Impasse du Grand Logis
  72. Impasse du Jarlot
  73. Impasse du Moulin
  74. Impasse du Paradis
  75. Impasse du Prieuré
  76. Impasse du Reg
  77. Impasse du Sou
  78. Impasse du Stade Jomard Dury
  79. Impasse Edith Piaf
  80. Impasse Gizeh
  81. Impasse Grange Gauthier
  82. Impasse Hector Berlioz
  83. Impasse Jean Ferrat
  84. Impasse Léo Ferré
  85. Impasse Lucy
  86. Impasse Serge Réggiani
  87. Impasse Théodore Monod
  88. Impasse Vivaldi
  89. Impasse Yves Coppens
  90. Parking de l'Étang
  91. Passage du 3 Septembre 1944
  92. Passage Souterrain
  93. Place Alexis Bichonnier
  94. Place de la Gare
  95. Place de l'Église
  96. Place des Arts
  97. Place du Timbre
  98. Place Georges Dutrève
  99. Place Henri Nigay
  100. Place Pasteur
  101. Porte du Beaujolais
  102. Quai Charles Voisin
  103. Quai Joannes Monternier
  104. Rocade Nord de Belleville
  105. Rond-Point de Peillon
  106. Rond-point des Remparts
  107. Rond-Point d’Outry
  108. Rond-point du Beaujolais
  109. Rond-point du Lycée
  110. Rond-Point du Motio
  111. Rond-point du parc Popy
  112. Rond-point Joseph-Rosselli
  113. Route d'Amorges
  114. Route de Beaujeu
  115. Route de Bel Air
  116. Route de Bois-Dieu
  117. Route de Chalendières
  118. Route de Champanard
  119. Route de Chantemerle
  120. Route de Charentay
  121. Route de Chassagne
  122. Route de Commune
  123. Route de Fort Michon
  124. Route de Frans
  125. Route de Grille Midi
  126. Route de Grolet
  127. Route de Jasseron
  128. Route de la Charaboutière
  129. Route de la Croix Rouge
  130. Route de l'Aérodrome
  131. Route de la Mézerine
  132. Route de l'Érable Champêtre
  133. Route d'Éloi
  134. Route de Mâcon
  135. Route de Moreil
  136. Route de Pizay
  137. Route de Ruty
  138. Route de Sainte-Geneviève
  139. Route de Saint-Ennemond
  140. Route des Beaujolais
  141. Route des Granges
  142. Route des Guenettes
  143. Route des Massues
  144. Route des Nazins
  145. Route des Petites Bruyères
  146. Route des Pillets
  147. Route des Rochons
  148. Route des Sarments
  149. Route des Vadoux
  150. Route de Thouaille
  151. Route de Thuaille
  152. Route de Villié
  153. Route du Château
  154. Route du Pont
  155. Route Henri Fessy
  156. Route Nationale
  157. Route Paul Melot
  158. Rue Albert Schweitzer
  159. Rue Antoine Ferraud
  160. Rue Balloffet-Dury
  161. Rue Bayard
  162. Rue Burdiat
  163. Rue Chopin
  164. Rue Claude Nougaro
  165. Rue Colombier
  166. Rue Cugnot
  167. Rue d'Aiguerande
  168. Rue David Comby
  169. Rue de Balmont
  170. Rue de Bois Blanchet
  171. Rue de Bourgogne
  172. Rue de Chambord
  173. Rue de Champs-Clos
  174. Rue de Descours
  175. Rue De Dion-Bouton
  176. Rue de Fontenailles
  177. Rue de Grange Rouge
  178. Rue de la Blanchisserie
  179. Rue de la Brasserie
  180. Rue de l'Abreuvoir
  181. Rue de la Charbonnière
  182. Rue de la Combe
  183. Rue de la Dune Rose
  184. Rue de la Fontaine
  185. Rue de la Gare
  186. Rue de la Grange Berchet
  187. Rue de la Grappe
  188. Rue de la Plume
  189. Rue de la Poste
  190. Rue de la République
  191. Rue de la Salamandre
  192. Rue de la Serpette
  193. Rue de la Serve de Vignes
  194. Rue de la Tannerie
  195. Rue de l'Étang
  196. Rue de l'Étang de Laly
  197. Rue de l'Industrie
  198. Rue de Peillon
  199. Rue des Abattoirs
  200. Rue des Armands
  201. Rue des Artisans
  202. Rue des Arts
  203. Rue des Compagnons
  204. Rue des Coteaux
  205. Rue des Crus
  206. Rue des Écoles
  207. Rue des Fonderies
  208. Rue des Frères Lumière
  209. Rue des Frères Voisin
  210. Rue des Grisemottes
  211. Rue des Maisons Neuves
  212. Rue des Mésanges
  213. Rue des Mûres
  214. Rue des Négociants
  215. Rue des Palissards
  216. Rue des Pérelles
  217. Rue des Plattards
  218. Rue des Poutoux
  219. Rue des Prés de la Cloche
  220. Rue des Primeurs
  221. Rue des Remparts
  222. Rue des Sarmentelles
  223. Rue des Tourterelles
  224. Rue des Vignerons
  225. Rue des Vignobles
  226. Rue des Villards
  227. Rue de Tanis
  228. Rue du 11 Novembre 1918
  229. Rue du 14 Juillet
  230. Rue du 8 Mai
  231. Rue du 8 Mai 1945
  232. Rue du Béal
  233. Rue du Beaujolais
  234. Rue du Bois Baron
  235. Rue du Bois Fleuri
  236. Rue du Canon Braque
  237. Rue du Cep
  238. Rue du Clos Du Chateau
  239. Rue du Commandant Bianchetti
  240. Rue du Désert Blanc
  241. Rue du Docteur Duplant
  242. Rue du Forgeron
  243. Rue du Four
  244. Rue du Mâconnais
  245. Rue du Maréchal Foch
  246. Rue du Mont Brouilly
  247. Rue du Moulin
  248. Rue du Nil
  249. Rue du Parc Saint-Jean
  250. Rue du Pré de l'Ardières
  251. Rue du Presbytère
  252. Rue du Pressoir
  253. Rue du Roy
  254. Rue du Sahara
  255. Rue du Sergent Charles Gautheret
  256. Rue du Sou
  257. Rue du Tonkin
  258. Rue du Vivier
  259. Rue Élise Portal
  260. Rue Francis Popy
  261. Rue François Bourdy
  262. Rue Gabriel Voisin
  263. Rue Georges Brassens
  264. Rue Gonthier
  265. Rue Granger
  266. Rue Jean Carron
  267. Rue Jean Macé
  268. Rue Jean Philibert Damiron
  269. Rue Jean Sébastien Bach
  270. Rue Johan Strauss
  271. Rue Joliot Curie
  272. Rue Joseph Pillard
  273. Rue Jules Ferry
  274. Rue Lamartine
  275. Rue Lulli
  276. Rue Martinière
  277. Rue Michel
  278. Rue Michel Richard Delalande
  279. Rue Mozart
  280. Rue Muller
  281. Rue Pasteur
  282. Rue Paul Berthoud
  283. Rue Paulin Bussières
  284. Rue Pêcherie
  285. Rue Pidancet
  286. Rue Pierre Cothenet
  287. Rue Pierre Montet
  288. Rue Prévert
  289. Rue Saint-André
  290. Rue Saint-Exupéry
  291. Rue Teillard Pressavin
  292. Rue Théodore Monod
  293. Rue Thévenet
  294. Rue Verdi
  295. Rue Victor Hugo
  296. Rue Vivaldi
  297. Rue Voie Royale
  298. Rue Yves Coppens
  299. Square de la Liberté
  300. Square du Souvenir
  301. Voie de la Baryte
  302. Voie Verte du Beaujolais

Annexe 2 - Script de filtrage du fichier FANTOIR modifier

#!/usr/bin/env python
# -*- coding: utf-8 -*-

fichierFANTOIR = 'FANTOIR0119'
codeCommune = '690019'

voies = {
    'ACH': 'ancien chemin',
    'AER': 'aérodrome',
    'AERG': 'aérogare',
    'AGL': 'agglomeration',
    'AIRE': 'aire',
    'ALL': 'allée',
    'ANGL': 'angle',
    'ARC': 'arcade',
    'ART': 'ancienne route',
    'AUT': 'autoroute',
    'AV': 'avenue',
    'BASE': 'base',
    'BD': 'boulevard',
    'BER': 'berge',
    'BORD': 'bord',
    'BRE': 'barrière',
    'BRG': 'bourg',
    'BRTL': 'bretelle',
    'BSN': 'bassin',
    'CAE': 'carriera',
    'CALL': 'calle/callada',
    'CAMI': 'camin',
    'CAMP': 'camp',
    'CAN': 'canal',
    'CAR': 'carrefour',
    'CARE': 'carrière',
    'CASR': 'caserne',
    'CC': 'chemin communal',
    'CD': 'chemin departemental',
    'CF': 'chemin forestier',
    'CHA': 'chasse',
    'CHE': 'chemin',
    'CHEM': 'cheminement',
    'CHL': 'chalet',
    'CHP': 'champ',
    'CHS': 'chaussée',
    'CHT': 'château',
    'CHV': 'chemin vicinal',
    'CITE': 'cité',
    'CIVE': 'coursive',
    'CLOS': 'clos',
    'CLR': 'couloir',
    'COIN': 'coin',
    'COL': 'col',
    'COR': 'corniche',
    'CORO': 'coron',
    'COTE': 'côte',
    'COUR': 'cour',
    'CPG': 'camping',
    'CR': 'chemin rural',
    'CRS': 'cours',
    'CRX': 'croix',
    'CTR': 'contour',
    'CTRE': 'centre',
    'DARS': 'darse/darce',
    'DEVI': 'déviation',
    'DIG': 'digue',
    'DOM': 'domaine',
    'DRA': 'draille',
    'DSC': 'descente',
    'ECA': 'écart',
    'ECL': 'écluse',
    'EMBR': 'embranchement',
    'EMP': 'emplacement',
    'ENC': 'enclos',
    'ENV': 'enclave',
    'ESC': 'escalier',
    'ESP': 'esplanade',
    'ESPA': 'espace',
    'ETNG': 'étang',
    'FD': 'fond',
    'FG': 'faubourg',
    'FON': 'fontaine',
    'FOR': 'forêt',
    'FORT': 'fort',
    'FOS': 'fosse',
    'FRM': 'ferme',
    'GAL': 'galerie',
    'GARE': 'gare',
    'GBD': 'grand boulevard',
    'GPL': 'grande place',
    'GR': 'grande rue',
    'GREV': 'grêve',
    'HAB': 'habitation',
    'HAM': 'hameau',
    'HIP': 'hippodrome',
    'HLE': 'halle',
    'HLG': 'halage',
    'HLM': 'HLM',
    'HTR': 'hauteur',
    'ILE': 'île',
    'ILOT': 'îlot',
    'IMP': 'impasse',
    'JARD': 'jardin',
    'JTE': 'jetée',
    'LAC': 'lac',
    'LEVE': 'levée',
    'LICE': 'lices',
    'LIGN': 'ligne',
    'LOT': 'lotissement',
    'MAIL': 'mail',
    'MAIS': 'maison',
    'MAR': 'marché',
    'MARE': 'mare',
    'MAS': 'mas',
    'MNE': 'morne',
    'MRN': 'marina',
    'MTE': 'montée',
    'NTE': 'nouvelle route',
    'PAE': 'petite avenue',
    'PARC': 'parc',
    'PAS': 'passage',
    'PASS': 'passe',
    'PCH': 'petit chemin',
    'PCHE': 'porche',
    'PHAR': 'phare',
    'PIST': 'piste',
    'PKG': 'parking',
    'PL': 'place',
    'PLA': 'placa',
    'PLAG': 'plage',
    'PLAN': 'plan',
    'PLCI': 'placis',
    'PLE': 'passerelle',
    'PLN': 'plaine',
    'PLT': 'plateau',
    'PNT': 'pointe',
    'PONT': 'pont',
    'PORQ': 'portique',
    'PORT': 'port',
    'POST': 'poste',
    'POT': 'poterne',
    'PROM': 'promenade',
    'PRT': 'petite route',
    'PRV': 'parvis',
    'PTA': 'petite alleé',
    'PTE': 'porte',
    'PTR': 'petite rue',
    'PTTE': 'placette',
    'QUA': 'quartier',
    'QUAI': 'quai',
    'RAC': 'raccourci',
    'REM': 'rempart',
    'RES': 'résidence',
    'RIVE': 'rive',
    'RLE': 'ruelle',
    'ROC': 'rocade',
    'RPE': 'rampe',
    'RPT': 'rond-point',
    'RTD': 'rotonde',
    'RTE': 'route',
    'RUE': 'rue',
    'RUET': 'ruette',
    'RUIS': 'ruisseau',
    'RULT': 'ruellette',
    'RVE': 'ravine',
    'SAS': 'sas',
    'SEN': 'sentier;sente',
    'SQ': 'square',
    'STDE': 'stade',
    'TER': 'terre',
    'TOUR': 'tour',
    'TPL': 'terre-plein',
    'TRA': 'traverse',
    'TRAB': 'traboule',
    'TRN': 'terrain',
    'TRT': 'tertre',
    'TSSE': 'terrasse',
    'TUN': 'tunnel',
    'VAL': 'val',
    'VALL': 'vallon/vallée',
    'VC': 'voie communale',
    'VCHE': 'vieux chemin',
    'VEN': 'venelle',
    'VGE': 'village',
    'VIA': 'via',
    'VIAD': 'viaduc',
    'VIL': 'ville',
    'VLA': 'villa',
    'VOIE': 'voie',
    'VOIR': 'voirie',
    'VOUT': 'voute',
    'VOY': 'voyeul',
    'VTE': 'vieille route',
    'ZA': 'ZA',
    'ZAC': 'ZAC',
    'ZAD': 'ZAD',
    'ZI': 'ZI',
    'ZONE': 'zone',
    'ZUP': 'ZUP',
}


with open(fichierFANTOIR, 'r') as f:
    for line in f:
        text = line.rstrip()
        if not text.startswith(codeCommune):
            continue

        fantoir = text[0:11]
        voie = text[11:15].rstrip()
        nom = text[15:41].rstrip()
        annulation = text[73].rstrip()
        typevoie = ''
        if len(text) > 107:
            typevoie = text[108].rstrip()
        caractere = ''
        if len(text) > 108:
            caractere = text[109].rstrip()

        if voie == 'LYON' or voie == 'N':
            continue

        if voie != '':
            if not voie in voies:
                print 'Type de voie inconnu: ' + voie
            else:
                voie = voies[voie]

        if nom != 'NON DESIGNEE':
            print(fantoir + ';' + voie + ';' + nom + ';' + annulation + ';' + typevoie + ';' + caractere)

Annexe 3 - Liste des voies FANTOIR modifier

  • 6900190004X rue DES ABATTOIRS
  • 6900190005Y chemin DE L ABBAYE
  • 6900190020P rue DE L ABREUVOIR
  • 6900190040L rue D AIGUERANDE
  • 6900190055C place ALEXIS BICHONNIER
  • 6900190063L rue ANTOINE FERRAUD
  • 6900190065N rue ANTOINE MORTIER
  • 6900190067R rue DES ARMANDS
  • 6900190080E rue BALLOFFET DURY
  • 6900190090R rue DE BALMONT
  • 6900190100B rue DU BATTOIR
  • 6900190110M rue BAYARD
  • 6900190115T rue DU BEAL
  • 6900190120Y route DE BEAUJEU
  • 6900190130J rue DU BEAUJOLAIS
  • 6900190135P avenue BENOIT RACLET
  • 6900190136R rue DE LA BLANCHISSERIE
  • 6900190137S impasse DES BICHES
  • 6900190150F rue DU BOIS BARON
  • 6900190154K rue DE BOIS BLANCHET
  • 6900190181P route DE BOIS DIEU
  • 6900190190Z rue DE BOURGOGNE
  • 6900190200K rue DE LA BRASSERIE
  • 6900190210W rue BURDIAT
  • 6900190220G rue DU CANON BRAQUE
  • 6900190230T chemin CARON
  • 6900190232V allée DU CEDRE DE L'ATLAS
  • 6900190234X impasse DES CERISIERS
  • 6900190236Z chemin DE CHAMBORD
  • 6900190237A rue DE CHAMBORD
  • 6900190245J chemin DE CHAMPCLOS
  • 6900190247L rue DE CHAMPCLOS
  • 6900190248M place DU CHAMP DE FOIRE
  • 6900190249N route DE LA CHARABOUTIERE
  • 6900190250P rue DE LA CHARBONNIERE
  • 6900190260A route DE CHARENTAY
  • 6900190264E rue DU SGT CHARLES GAUTRET
  • 6900190270L quai CHARLES VOISIN
  • 6900190275S chemin vicinal NO 3
  • 6900190280X place CLAUDE BERNARD
  • 6900190290H rue DU COLOMBIER
  • 6900190293L rue DE LA COMBE
  • 6900190307B route DE COMMUNE
  • 6900190308C rue DU CDT RENE BIANCHETTI
  • 6900190309D rue DES COTEAUX
  • 6900190312G route DE LA CROIX ROUGE
  • 6900190315K rue DES CRUS
  • 6900190330B rue DAVID COMBY
  • 6900190332D rue DE DESCOURS
  • 6900190350Y rue DOC DUPLANT
  • 6900190355D place GEORGES DUTREVE
  • 6900190360J rue DES ECOLES
  • 6900190370V place DE L EGLISE
  • 6900190375A rue ELISE PORTAL
  • 6900190378D impasse DE LA FAVORITE
  • 6900190380F rue FLEURIE
  • 6900190394W chemin DE FONTENAILLES
  • 6900190396Y rue DE FONTENAILLES
  • 6900190400C rue DU FOUR
  • 6900190405H rue FRANCIS POPY
  • 6900190410N rue FRANCOIS BOURDIS
  • 6900190411P rue FRANCOIS BOURDY
  • 6900190415U rue GABRIEL VOISIN
  • 6900190420Z boulevard GAMBETTA
  • 6900190450G place DE LA GARE
  • 6900190455M rue GEORGES CHARPAK
  • 6900190458R square DES GONES
  • 6900190460T rue GONTHIER
  • 6900190475J rue DE GRANGE ROUGE
  • 6900190480P rue GRANGER
  • 6900190482S impasse DES GRAVES
  • 6900190485V rue DU GR SCOL DE LA CROISEE
  • 6900190487X voie communale DES GUENETTES
  • 6900190488Y route DES GUENETTES
  • 6900190492C place HENRI NIGAY
  • 6900190500L impasse DE L HOPITAL
  • 6900190509W allée DES JARDINIERS
  • 6900190510X rue DU 8 MAI 1945
  • 6900190515C rue DE L INDUSTRIE
  • 6900190516D impasse DU JARLOT
  • 6900190517E rue JEAN MACE
  • 6900190518F rue JEAN PHILIBERT DAMIRON
  • 6900190519G quai JOANNES MONTERNIER
  • 6900190520H rue JOSEPH PILLARD
  • 6900190525N boulevard JOSEPH ROSSELLI
  • 6900190526P impasse DES JARDINS
  • 6900190527R allée DU LAC
  • 6900190528S rue DE L ETANG DE LALY
  • 6900190530U square LAMARTINE
  • 6900190540E rue DU MACONNAIS
  • 6900190555W rue DES MAISONS NEUVES
  • 6900190560B rue MAL FOCH
  • 6900190570M avenue MARIUS MATHON
  • 6900190580Y rue MARTINIERE
  • 6900190595P chemin DU MARU
  • 6900190597S route DE LA MATRAZIERE
  • 6900190600V rue DES MESANGES
  • 6900190605A route DE LA MEZERINE
  • 6900190615L rue MICHEL
  • 6900190617N rue DU MONT BROUILLY
  • 6900190620S rue DU MOULIN
  • 6900190621T impasse DU MOULIN
  • 6900190625X rue MULLER
  • 6900190630C route NATIONALE
  • 6900190632E rue DES NEGOCIANTS
  • 6900190640N rue DU 11 NOV 1918
  • 6900190642R chemin DE PAIN PERDU
  • 6900190645U rue DES PALISSARDS
  • 6900190646V route DES PILLETS
  • 6900190647W rue DES POUTOUX
  • 6900190651A rue DES PRES D OUTRY
  • 6900190655E chemin DES PALISSARDS
  • 6900190661L impasse DU PARADIS
  • 6900190668U allée DU PARC
  • 6900190669V place PASTEUR
  • 6900190670W rue PASTEUR
  • 6900190675B rue PAUL BERTHOUD
  • 6900190680G rue PAULIN BUSSIERES
  • 6900190690T rue PECHERIE
  • 6900190715V rue DE PEILLON
  • 6900190717X allée DU PETIT PRINCE
  • 6900190730L rue PIDANCET
  • 6900190745C rue DES PLATTARDS
  • 6900190752K rue DE LA PLUME
  • 6900190753L impasse DES POIRIERS
  • 6900190754M impasse DES POMMIERS
  • 6900190755N place PORCHERIE
  • 6900190757R chemin DE POMPONEY
  • 6900190780R avenue DU PORT
  • 6900190785W chemin DU PORT
  • 6900190790B rue DE LA POSTE
  • 6900190809X rue DES PRES DE LA CLOCHE
  • 6900190811Z rue DES PRES MELETTE
  • 6900190815D rue DU PRESBYTERE
  • 6900190816E rue DU PRESSOIR
  • 6900190817F rue DES PRIMEURS
  • 6900190820J rue DU 14 JUILLET
  • 6900190830V rue DES REMPARTS
  • 6900190833Y avenue RENE CASSIN
  • 6900190850S rue DE LA REPUBLIQUE
  • 6900190860C square DE LA RESISTANCE
  • 6900190861D rue DU ROY
  • 6900190866J chemin DES SABLONS
  • 6900190867K allée DES SABLONS
  • 6900190880Z rue SAINT ANDRE
  • 6900190882B rue SAINT EXUPERY
  • 6900190883C rue DE LA SALAMANDRE
  • 6900190885E avenue DE SALZKOTTEN
  • 6900190890K chemin DE LA SAONE
  • 6900190892M rue DES SARMENTELLES
  • 6900190893N rue DE LA SERPETTE
  • 6900190894P passage DU 3 SEPTEMBRE 1944
  • 6900190896S rue DU STADE
  • 6900190898U impasse DU STADE JOMARD DURY
  • 6900190899V rue DE LA SERVE DE VIGNES
  • 6900190900W rue DE LA TANNERIE
  • 6900190902Y allée DU SEQUOIA
  • 6900190910G rue TEILLARD PRESSAVIN
  • 6900190913K rue DU THEATRE
  • 6900190914L impasse DE LA THEBAIDE
  • 6900190915M rue THEVENET
  • 6900190918R place DU TIMBRE
  • 6900190920T rue DU TONKIN
  • 6900190923W impasse DES TONNELIERS
  • 6900190931E route DES VADOUX
  • 6900190932F avenue DES VENDANGEURS
  • 6900190935J avenue DE VERDUN
  • 6900190940P rue VICTOR HUGO
  • 6900190942S place VICTOR PULLIAT
  • 6900190943T square DE LA VIGNE
  • 6900190944U rue DES VIGNERONS
  • 6900190945V rue DES VIGNOBLES
  • 6900190948Y impasse DE VILLANDRY
  • 6900190950A place DU VIVIER
  • 6900190951B rue DU VIVIER