3. AnalyserMerge
● Source de données OpenData
– CSV : format, encodage...
● Chargement
– X,Y, SRID
– Table, filtre
● Conversion en tags
● Sélection données OSM à comparer
4. Génération
● Données OSM non trouvées dans l'OpenData
● Données OpenData non trouvé dans OSM
– Proposition d'intégration
● Données retrouvées
– Proposition de mise à jour
5. class Analyser_Merge_College_FR(Analyser_Merge):
def __init__(self, config, logger = None):
self.missing_official = {"item":"8030", "class": 100, "level": 3, "tag": ["merge", "railway"], "desc": T_(u"College not
integrated") }
Analyser_Merge.__init__(self, config, logger,
Source(
url = "http://www.data.gouv.fr/DataSet/30382046",
name = u"Etablissements d'enseignement supérieur",
file = "college_FR.csv.bz2"),
Load("GPS_Y", "GPS_X", table = "college_fr",
xFunction = self.float_comma,
yFunction = self.float_comma),
Mapping(
select = Select(
types = ["nodes", "ways", "relations"],
tags = {"amenity": ["college", "university"]}),
conflationDistance = 50,
generate = Generate(
static = {
"amenity": "college",
"source": u"data.gouv.fr:Office national d'information sur les enseignements et les professions - 11/2011"},
mapping = {
"name": "NOM_ETABLISSEMENT",
"operator:type": lambda res: "private" if res["STATUT_ETABLISSEMENT"] in [u"CFA privé", u"Privé hors
contrat", u"Privé reconnu", u"Privé sous contrat"] else None,
"short_name": "SIGLE_ETABLISSEMENT"},
text = lambda tags, fields: {"en": " - ".join(filter(lambda i: i != "None", [fields["SIGLE_ETABLISSEMENT"],
fields["NOM_ETABLISSEMENT"]]))} )))
6. class Analyser_Merge_College_FR(Analyser_Merge):
def __init__(self, config, logger = None):
self.missing_official = {"item":"8030", "class": 100, "level": 3, "tag": ["merge", "railway"], "desc": T_(u"College not
integrated") }
Analyser_Merge.__init__(self, config, logger,
Source(
url = "http://www.data.gouv.fr/DataSet/30382046",
name = u"Etablissements d'enseignement supérieur",
file = "college_FR.csv.bz2"),
Load("GPS_Y", "GPS_X", table = "college_fr",
xFunction = self.float_comma,
yFunction = self.float_comma),
Mapping(
select = Select(
types = ["nodes", "ways", "relations"],
tags = {"amenity": ["college", "university"]}),
conflationDistance = 50,
generate = Generate(
static = {
"amenity": "college",
"source": u"data.gouv.fr:Office national d'information sur les enseignements et les professions - 11/2011"},
mapping = {
"name": "NOM_ETABLISSEMENT",
"operator:type": lambda res: "private" if res["STATUT_ETABLISSEMENT"] in [u"CFA privé", u"Privé hors
contrat", u"Privé reconnu", u"Privé sous contrat"] else None,
"short_name": "SIGLE_ETABLISSEMENT"},
text = lambda tags, fields: {"en": " - ".join(filter(lambda i: i != "None", [fields["SIGLE_ETABLISSEMENT"],
fields["NOM_ETABLISSEMENT"]]))} )))