Re: [OSM-talk-fr] Améliorer le Bâti
Le 31 août 2011 23:14, julien balas jul...@krilin.org a écrit : * les erreurs liées aux arrondis des coordonnées: - on valide avec josm. - on telecharge de nouveau la zone = la validation josm en trouve d'autres - on verifie sur osmose.openstreetmap.fr 2 jours après, on trouve encore d'autres erreurs si apres avoir telechargé le fichier .osm cleo - on l'ouvre avec josm - on le sauve tout de suite. - on ferme le fichier - on le recharge. Ca fait les même arrondis que sur le serveur je crois (en tout cas ca leve des erreurs qui n'apparaissent pas sinon) On a ce genre d'erreur à cause des batiments proches mais non jointifs: si ces batiments partagent bien leurs noeuds comme il se doit, une erreur d'arrondi sur des noeuds partagés ne va pas se faire chevaucher les batiments. node_join.py doit corriger ces pb. ___ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr
Re: [OSM-talk-fr] Améliorer le Bâti
Le 01/09/2011 09:09, ades_f...@orange.fr a écrit : Il serait sans doute possible, et peut-être opportun, de remplacer tous les wall=no par wall=yes, puisque dans tous les cas il s'agit d'une construction, même si elle est légère ;-). Un toit est quand même une construction. ___ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr
Re: [OSM-talk-fr] Améliorer le Bâti
2011/9/1 Nicolas Frery nicolas-l...@zoubi.info: Le 01/09/2011 09:09, ades_f...@orange.fr a écrit : Il serait sans doute possible, et peut-être opportun, de remplacer tous les wall=no par wall=yes, puisque dans tous les cas il s'agit d'une construction, même si elle est légère ;-). Un toit est quand même une construction. Je vais reprendre ici la définition de bâtiment dur/bâtimentléger du cadastre que j'ai trouvé dans un document du CNIG ([1]): Un bâtiment en dur est défini comme étant attaché au sol par des fondations et fermé sur le 4 côtés ou comme un bâtiment industriel. Un bâtiment léger est une structure légère non attachée au sol par l'intermédiaire de fondations ou un bâtiment quelconque ouvert sur au moins un côté. On peut dire que wall=no n'est pas toujours approprié mais wall=yes l'est encore moins. Il y a deux critères pour un bâtiment léger: - l'ouverture sur un ou plusieurs côtés - et/ou l'absence de fondations Et aussi un détail qu'il ne faut jamais oublier : le cadastre peut aussi se tromper (ou avoir été trompé) ou être en retard d'une guerre. Il n'a jamais été dit que wall=no était idéal mais c'est ce que nous trouvions de plus approprié à l'époque. Et on a dit dès le départ qu'on pourrait le changer s'il y avait une meilleure proposition... Pieren [1] http://www.cnig.gouv.fr/Front/docs/cms/specif-composante-parcellaire_124033065172611000.pdf ___ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr
Re: [OSM-talk-fr] Améliorer le Bâti
Mon impression de simple utilisateur est que le wall=no est en général bien approprié, la quasi-totalité de ceux que je connais sont des hangars agricoles ouverts ... mes 2c Sylvain Le 1 septembre 2011 10:41, Pieren pier...@gmail.com a écrit : 2011/9/1 Nicolas Frery nicolas-l...@zoubi.info: Le 01/09/2011 09:09, ades_f...@orange.fr a écrit : Il serait sans doute possible, et peut-être opportun, de remplacer tous les wall=no par wall=yes, puisque dans tous les cas il s'agit d'une construction, même si elle est légère ;-). Un toit est quand même une construction. Je vais reprendre ici la définition de bâtiment dur/bâtimentléger du cadastre que j'ai trouvé dans un document du CNIG ([1]): Un bâtiment en dur est défini comme étant attaché au sol par des fondations et fermé sur le 4 côtés ou comme un bâtiment industriel. Un bâtiment léger est une structure légère non attachée au sol par l'intermédiaire de fondations ou un bâtiment quelconque ouvert sur au moins un côté. On peut dire que wall=no n'est pas toujours approprié mais wall=yes l'est encore moins. Il y a deux critères pour un bâtiment léger: - l'ouverture sur un ou plusieurs côtés - et/ou l'absence de fondations Et aussi un détail qu'il ne faut jamais oublier : le cadastre peut aussi se tromper (ou avoir été trompé) ou être en retard d'une guerre. Il n'a jamais été dit que wall=no était idéal mais c'est ce que nous trouvions de plus approprié à l'époque. Et on a dit dès le départ qu'on pourrait le changer s'il y avait une meilleure proposition... Pieren [1] http://www.cnig.gouv.fr/Front/docs/cms/specif-composante-parcellaire_124033065172611000.pdf ___ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr ___ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr
Re: [OSM-talk-fr] Améliorer le Bâti
Tant que les rendus sur OSM ne font pas de différence entre wall=yes et wall=no ; ça n'a effectivement pas grande importance, ça reste du bâti. Cela dit si la construction (wall=no) est isolée, ça correspond (souvent) au terrain ; mais si elle est accolée à une 'wall=yes' le tag 'no' ne me semble plus très bien approprié, dans 90% des cas (à la louche) il s'agit soit d'une loggia soit d'une verenda qui fait partie du bâtiment (cas des varangues dans les îles tropicales). Le 1 sept. 2011 à 10:50, Sylvain Maillard a écrit : Mon impression de simple utilisateur est que le wall=no est en général bien approprié, la quasi-totalité de ceux que je connais sont des hangars agricoles ouverts ... mes 2c Sylvain Le 1 septembre 2011 10:41, Pieren pier...@gmail.com a écrit : 2011/9/1 Nicolas Frery nicolas-l...@zoubi.info: Le 01/09/2011 09:09, ades_f...@orange.fr a écrit : Il serait sans doute possible, et peut-être opportun, de remplacer tous les wall=no par wall=yes, puisque dans tous les cas il s'agit d'une construction, même si elle est légère ;-). Un toit est quand même une construction. Je vais reprendre ici la définition de bâtiment dur/bâtimentléger du cadastre que j'ai trouvé dans un document du CNIG ([1]): Un bâtiment en dur est défini comme étant attaché au sol par des fondations et fermé sur le 4 côtés ou comme un bâtiment industriel. Un bâtiment léger est une structure légère non attachée au sol par l'intermédiaire de fondations ou un bâtiment quelconque ouvert sur au moins un côté. On peut dire que wall=no n'est pas toujours approprié mais wall=yes l'est encore moins. Il y a deux critères pour un bâtiment léger: - l'ouverture sur un ou plusieurs côtés - et/ou l'absence de fondations Et aussi un détail qu'il ne faut jamais oublier : le cadastre peut aussi se tromper (ou avoir été trompé) ou être en retard d'une guerre. Il n'a jamais été dit que wall=no était idéal mais c'est ce que nous trouvions de plus approprié à l'époque. Et on a dit dès le départ qu'on pourrait le changer s'il y avait une meilleure proposition... Pieren [1] http://www.cnig.gouv.fr/Front/docs/cms/specif-composante-parcellaire_124033065172611000.pdf ___ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr ___ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr ___ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr
[OSM-talk-fr] Améliorer le Bâti
Bonjour, Afin de voir où l'on en est sur la qualité des fichiers bâti issus du cadastre, j'en ai récupéré quelques uns sur cleo, et j'ai tenté d'identifier les pb récurrents que le contributeur doit gérer quand il se lance dans l'aventure import du bati: 1. Des noeuds en doubles ou très proches 2. Des chemins avec un même noeud répété 3. Des bâtiments se croisant eux-mêmes 4. Des bâtiments se chevauchant très faiblement 5. Des bâtiments adjacents, mais qui ne partagent pas leurs noeuds. Topologiquement ils ne sont pas mitoyens, de quelques centimètres. 6. Des bâtiments en double 7. Des bâtiments inclus dans d’autres, ou se superposant franchement 8. Des bâtiments découpés par les limites de parcelle 9. Des bâtiments avec un nombre exubérant de nœuds 10. Validator c’est long et ça rate des anos en plus ! 11. Des bâtiments qui existent déjà dans OSM 12. Des bâtiments sur les highway existantes Vous en avez d’autres ? J'ai écrit 2 scripts python. Ce n’est pas très pythonique, pas très performant, mais cela règle plus d’anos que ça n’en crée (je crois pas que cela en crée :-) ). Ils utilisent OsmSax [1], Rtree, et Shapely : Node_simplifier.py : A partir d’un fichier .osm, crée un autre .osm en éliminant les nœuds en double, ou proches, et nettoie les chemins des nœuds se répétant. Node_join.py : A partir d’un fichier .osm, crée un autre .osm en « J »isant tous les nœuds. Il s’agit de la fonction J de JOSM qui intègre un nœud à un chemin si celui-ci en est suffisamment proche. A noter que cela ne déplace aucun point, et que l’on conserve tous les points. Pour l’instant les paramètres de distance sont en dur (et en angulaire), et tous les objets modifiés se voient ajouter un tag fixme pour visualiser les modifs. Ces deux scripts, passés dans cet ordre, traitent les points 1,2,4,5. Un troisième script est en cours pour le point 9. Je vous laisse juge de leur qualité et de leur intérêt. A vos remarques ! A final je crois qu'il faudra supprimer les dépôts type cléo, et mettre à dispo une interface d’import différentiel tuilé, c'est-à-dire qui n'affiche et ne renvoie qu’une portion des bâtiments à importer et, pour combler les manques de Validator, en ajoutant les tag fixme du type : « bâtiment superposé avec l’existant », « bâtiment superposé au cadastre », « bâtiment sur highway », etc…afin d'aider et d'alerter le contributeur... et peut-être aussi le réfréner ;-) BrunoC [1] https://gitorious.org/osmose/backend/blobs/master/modules/OsmSax.py #!/usr/bin/python # -*- coding: utf8 -*- from rtree import Rtree import OsmSax, sys DIST_MIN = 1.0e-12 def coords(n): return (n.lat, n.lon) def distance2(a,b): xa, ya = coords(a) xb, yb = coords(b) return (xa-xb)**2 + (ya-yb)**2 class Node(object): def __init__(self, id=None, lon=None, lat=None, tags=None): self.id = id if lon != None: self.lon, self.lat = float(lon), float(lat) if tags: self.tags = tags else: self.tags = {} self.inWay = set() self.inRel = set() class Way(object): def __init__(self, id=None, nodes=None, tags=None): self.id = id if nodes: self.nodes = nodes else: self.nodes = [] if tags: self.tags = tags else: self.tags = {} class Relation(object): def __init__(self, id, members=None, tags=None): self.id = id if members: self.members = members else: self.members = [] if tags: self.tags = tags else: self.tags = {} def __repr__(self): return Relation(id=%r, members=%r, tags=%r) % (self.id, self.members, self.tags) class Cache: def __init__(self): self.nods = {} self.ways = {} self.rels = {} def NodeCreate(self, data): self.nods[data[id]] = Node(id=data[id],lon=data[lon],lat=data[lat],tags=data[tag]) def WayCreate(self, data): self.ways[data[id]] = Way(id=data[id],nodes=data[nd],tags=data[tag]) def RelationCreate(self, data): self.rels[data[id]] = Relation(id=data[id],tags=data[tag],members=data[member]) ### fout = sys.argv[2] data = OsmSax.OsmSaxReader(sys.argv[1]) cache = Cache() print 'Parse du fichier...' data.CopyTo(cache) idxNode = Rtree() tabindx = {} print 'Indexation...' i = 0 for k in cache.nods.keys(): i += 1 idxNode.insert(i, coords(cache.nods[k])) tabindx[i] = cache.nods[k] # set des chemins utilisant un noeud for w in cache.ways.values(): for nid in w.nodes: cache.nods[nid].inWay.add(w) # set des relations utilisant un noeud for r in cache.rels.values(): for m in r.members: if m['type'] == 'node': cache.nodes[m['ref']].inRel.add(r) print 'Simplification des noeuds...' # balayage des noeuds à simplifier for noeud in cache.nods.values(): #
Re: [OSM-talk-fr] Améliorer le Bâti
Salut, À la fin des itérations, s'il n'y a pas d'effet de bord, je ferai passer automatiquement chaque commune générée par ces moulinettes. Philippe Le 31/08/2011 20:36, Bruno Cortial a écrit : Bonjour, Afin de voir où l'on en est sur la qualité des fichiers bâti issus du cadastre, j'en ai récupéré quelques uns sur cleo, et j'ai tenté d'identifier les pb récurrents que le contributeur doit gérer quand il se lance dans l'aventure import du bati: 1. Des noeuds en doubles ou très proches 2. Des chemins avec un même noeud répété 3. Des bâtiments se croisant eux-mêmes 4. Des bâtiments se chevauchant très faiblement 5. Des bâtiments adjacents, mais qui ne partagent pas leurs noeuds. Topologiquement ils ne sont pas mitoyens, de quelques centimètres. 6. Des bâtiments en double 7. Des bâtiments inclus dans d’autres, ou se superposant franchement 8. Des bâtiments découpés par les limites de parcelle 9. Des bâtiments avec un nombre exubérant de nœuds 10. Validator c’est long et ça rate des anos en plus ! 11. Des bâtiments qui existent déjà dans OSM 12. Des bâtiments sur les highway existantes Vous en avez d’autres ? J'ai écrit 2 scripts python. Ce n’est pas très pythonique, pas très performant, mais cela règle plus d’anos que ça n’en crée (je crois pas que cela en crée :-) ). Ils utilisent OsmSax [1], Rtree, et Shapely : Node_simplifier.py : A partir d’un fichier .osm, crée un autre .osm en éliminant les nœuds en double, ou proches, et nettoie les chemins des nœuds se répétant. Node_join.py : A partir d’un fichier .osm, crée un autre .osm en « J »isant tous les nœuds. Il s’agit de la fonction J de JOSM qui intègre un nœud à un chemin si celui-ci en est suffisamment proche. A noter que cela ne déplace aucun point, et que l’on conserve tous les points. Pour l’instant les paramètres de distance sont en dur (et en angulaire), et tous les objets modifiés se voient ajouter un tag fixme pour visualiser les modifs. Ces deux scripts, passés dans cet ordre, traitent les points 1,2,4,5. Un troisième script est en cours pour le point 9. Je vous laisse juge de leur qualité et de leur intérêt. A vos remarques ! A finalje crois qu'il faudra supprimer les dépôts type cléo, et mettre à dispo une interface d’import différentiel tuilé, c'est-à-dire qui n'affiche et ne renvoie qu’une portion des bâtiments à importer et, pour combler les manques de Validator, en ajoutant les tag fixme du type : « bâtiment superposé avec l’existant », « bâtiment superposé au cadastre », « bâtiment sur highway », etc…afin d'aider et d'alerter le contributeur... et peut-être aussi le réfréner ;-) BrunoC [1] https://gitorious.org/osmose/backend/blobs/master/modules/OsmSax.py ___ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr ___ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr
Re: [OSM-talk-fr] Améliorer le Bâti
* les erreurs liées aux arrondis des coordonnées: - on valide avec josm. - on telecharge de nouveau la zone = la validation josm en trouve d'autres - on verifie sur osmose.openstreetmap.fr 2 jours après, on trouve encore d'autres erreurs si apres avoir telechargé le fichier .osm cleo - on l'ouvre avec josm - on le sauve tout de suite. - on ferme le fichier - on le recharge. Ca fait les même arrondis que sur le serveur je crois (en tout cas ca leve des erreurs qui n'apparaissent pas sinon) c'est plus long a décrire lire qu'a le faire en vrai ;) Sinon dans les erreurs on vois bien les batiments qui se recouvrent de quelques centimetres, par contre on ne vois pas ceux qui sont séparé de quelques centimetres :( -- JB ___ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr