source: osmose-backend/analysers/analyser_merge_poste_fr.py @ feccd33

Last change on this file since feccd33 was feccd33, checked in by Jocelyn Jaubert <jocelyn.jaubert@…>, 6 years ago

Move analysers to a sub-directory

  • Property mode set to 100644
File size: 5.0 KB
Line 
1#!/usr/bin/env python
2#-*- coding: utf-8 -*-
3
4###########################################################################
5##                                                                       ##
6## Copyrights Frédéric Rodrigo 2012                                      ##
7##                                                                       ##
8## This program is free software: you can redistribute it and/or modify  ##
9## it under the terms of the GNU General Public License as published by  ##
10## the Free Software Foundation, either version 3 of the License, or     ##
11## (at your option) any later version.                                   ##
12##                                                                       ##
13## This program is distributed in the hope that it will be useful,       ##
14## but WITHOUT ANY WARRANTY; without even the implied warranty of        ##
15## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         ##
16## GNU General Public License for more details.                          ##
17##                                                                       ##
18## You should have received a copy of the GNU General Public License     ##
19## along with this program.  If not, see <http://www.gnu.org/licenses/>. ##
20##                                                                       ##
21###########################################################################
22
23import re
24from Analyser_Merge import Analyser_Merge
25
26
27# http://wiki.openstreetmap.org/wiki/WikiProject_France/data.gouv.fr/Import_des_points_de_contact_postaux
28
29class Analyser_Merge_Poste_Fr(Analyser_Merge):
30
31    create_table = """
32        identifiant VARCHAR(254) PRIMARY KEY,
33        libelle_site VARCHAR(254),
34        caracteristique_site VARCHAR(254),
35        complement_adresse VARCHAR(254),
36        adresse VARCHAR(254),
37        lieu_dit VARCHAR(254),
38        code_postal VARCHAR(254),
39        localite VARCHAR(254),
40        pays VARCHAR(254),
41        latitude NUMERIC(10,7),
42        longitude NUMERIC(10,7),
43        telephone VARCHAR(254),
44        changeur_monnaie VARCHAR(254),
45        photocopieur VARCHAR(254),
46        dab VARCHAR(254),
47        affranchissement_libre_service VARCHAR(254),
48        recharge_moneo VARCHAR(254),
49        monnaie_paris VARCHAR(254)
50    """
51
52    def __init__(self, config, logger = None):
53        self.missing_official = {"item":"8020", "class": 1, "level": 3, "tag": ["merge", "post"], "desc":{"fr":u"Poste non intégrée"} }
54        self.missing_osm      = {"item":"7050", "class": 2, "level": 3, "tag": ["merge", "post"], "desc":{"fr":u"Poste sans ref:FR:LaPoste ou invalide"} }
55        self.possible_merge   = {"item":"8021", "class": 3, "level": 3, "tag": ["merge", "post"], "desc":{"fr":u"Poste, proposition d'intégration"} }
56        Analyser_Merge.__init__(self, config, logger)
57        self.officialURL = "http://www.data.gouv.fr/donnees/view/Liste-des-points-de-contact-du-r%C3%A9seau-postal-fran%C3%A7ais-551640"
58        self.officialName = "points de contact du réseau postal français"
59        self.csv_file = "merge_data/270949f7a9ff7dce81b45d8150279259.csv"
60        self.csv_format = "WITH DELIMITER AS ';' NULL AS 'null' CSV"
61        self.csv_encoding = "ISO-8859-15"
62        self.osmTags = {
63            "amenity": "post_office",
64        }
65        self.osmRef = "ref:FR:LaPoste"
66        self.osmTypes = ["nodes", "ways"]
67        self.sourceTable = "poste_fr"
68        self.sourceRef = "identifiant"
69        self.sourceX = "longitude"
70        self.sourceY = "latitude"
71        self.sourceSRID = "4326"
72        self.defaultTag = {
73            "amenity": "post_office",
74            "operator": "La Poste",
75            "source": "data.gouv.fr:LaPoste - 04/2012"
76        }
77        self.Annexe = re.compile(' A$')
78        self.Principal = re.compile(' PAL$')
79        self.defaultTagMapping = {
80            "ref:FR:LaPoste": "identifiant",
81            "name": lambda res: re.sub(self.Principal, " Principal", re.sub(self.Annexe, " Annexe", res["libelle_site"])),
82            "post_office:type": lambda res: {
83                None: None,
84                "AGENCE POSTALE COMMUNALE": "post_annex",
85                "RELAIS POSTE COMMERCANT": "post_partner"
86            }[res["caracteristique_site"]],
87            "addr:postcode": "code_postal",
88            # localite
89            # pays
90            "phone": "telephone",
91            "change_machine": lambda res: self.bool[res["changeur_monnaie"]],
92            "copy_facility": lambda res: self.bool[res["photocopieur"]],
93            "atm": lambda res: self.bool[res["dab"]],
94            "stamping_machine": lambda res: self.bool[res["affranchissement_libre_service"]],
95            "moneo:loading": lambda res: self.bool[res["recharge_moneo"]],
96            # monnaie_paris
97        }
98        self.conflationDistance = 1000
99        self.text = lambda tags, fields: {"fr":"Bureau de poste de %s" % ", ".join(filter(lambda x: x!=None, [fields["adresse"], fields["complement_adresse"], fields["lieu_dit"], fields["localite"]]))}
100
101    bool = {"N": None, "O": "yes"}
Note: See TracBrowser for help on using the repository browser.