Re: [OSM-dev-fr] Import addr:housenumber depuis le cadastre

2013-11-04 Par sujet Frédéric Rodrigo

Le 31/10/2013 14:05, Tyndare a écrit :


Le 25 octobre 2013 14:53, Frédéric Rodrigo fred.rodr...@gmail.com
mailto:fred.rodr...@gmail.com a écrit :

Tu peux également utiliser directement les opérateur de dessin de
base du PDF, ça évite un passage en SVG. Soit directement dans le
code de Qadastre, soit en exécutant un script depuis Quadastre en
lui passant les primitives (c'est comme ça que j'avais fait)


Cela serait surement beaucoup plus efficace en terme de performance,
mais je ne suis pas très à l'aise en C++, et je me suis perdu dans la
spec du format PDF. SVG m'a parut plus simple, mais je me trompe peut être.


Il n'y a pas grand chose à faire en C++, juste appeler une cmd externe 
et écrire les données dans un fichier. Ensuite tu peux coder en python.

Je n'ai pas retrouvé mon code qui faisait ça.
Coté PDF pas besoin de la spec, c'est aussi simple que le svg pour faire ça.



Pour détecter les numéros de rue, j'ai codé en dure un path
(au sens svg) correspondant à chaque numéro (0-9 et les lettres
B,T,Q,A,B,C,D,E,F), et je fait une transformation pour les
comparer. Je filtre ensuite selon la taille pour ne garder que
les numéros de rue (et éviter les numéros de parcelles).


Quel genre de transformations et de comparaison tu fais (je n'ai pas
pris le temps de regarder le code) ?
J'avais rencontré des problèmes la dessus : détermination de
l'orientation du texte, du mal à comparer les shapes entres elles
pour déterminer le caractère. Le path variait en fonction de la
taille de la commune et de son orientation.


Je commence par comparer les commandes qui composent les paths, si ce
sont exactement les mêmes, alors je compare les coordonnées de la liste
des points qui composent les paths (par rapport au format SVG j'ai en
fait normalisé la représentation des path pour n'avoir que des
coordonnées absolue, pas de valeur relatives). Je transforme donc les
points avec pour chaque path:
  - une mise à l'échèle de telle manière que le point le plus loin du
premier se retrouve à une distance de 1.0
  - une rotation pour que le premier point et le 6ème (choix arbitraire)
se retrouvent à l'horizontal
Une fois ces transformations effectuées, je vérifie que la distance
maximale entre les points des deux paths soit  0.05
Je pense donc avoir une vérification assez fiable et ne pas pouvoir
confondre un chiffre avec un autre, le risque est plus d'en rater
certains pour des problème de précision.

J'avais aussi à l'origine un problème de variation des path selon la
taille de la commune, mais je pense que c'était en fait un problème de
précision du au format PDF, et je crois l'avoir résolu en découpant la
récupération du cadastre en plusieurs fichiers PDF de taille raisonnable
(comme le script import-bati.sh).


Tout est là ! Résoudre le problème à la base et faire simple. Chapeau.


J'espère que a court et moyen terme on pourra avoir accès aux
données d'adresses du cadastre sans avoir à les extraire depuis le
WMS. Ces informations sont dans les EDIGEO et il faut à mon avis
pousser pour avoir accès à ces données, on a commencé à la faire
département par département, il faut poursuivre


Passer par les fichier EDIGEO serait effectivement plus sûr et plus
logique, mais là on sort de mon domaine de compétence.


Oui, mais pas pour toute la France de toute façon.

Je pense qu'une fois le problème de l'extraction passé le plus important 
est de chercher à créer les relations associatedStreet, sans même tenir 
compte de OSM. Ça nous reprocherait de ce que l'on peut avoir en 
OpenData. L'intégration à OSM est, pour moi, un autre problème. (Même 
s'il est vrais que l'on pourrait se servir des infos de OSM pour créer 
la relation).



Frédéric.


___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] Import addr:housenumber depuis le cadastre

2013-10-31 Par sujet Tyndare
Le 25 octobre 2013 14:53, Frédéric Rodrigo fred.rodr...@gmail.com a écrit
:

 Tu peux également utiliser directement les opérateur de dessin de base du
 PDF, ça évite un passage en SVG. Soit directement dans le code de Qadastre,
 soit en exécutant un script depuis Quadastre en lui passant les primitives
 (c'est comme ça que j'avais fait)


Cela serait surement beaucoup plus efficace en terme de performance, mais
je ne suis pas très à l'aise en C++, et je me suis perdu dans la spec du
format PDF. SVG m'a parut plus simple, mais je me trompe peut être.



 Pour détecter les numéros de rue, j'ai codé en dure un path (au sens
 svg) correspondant à chaque numéro (0-9 et les lettres B,T,Q,A,B,C,D,E,F),
 et je fait une transformation pour les comparer. Je filtre ensuite selon la
 taille pour ne garder que les numéros de rue (et éviter les numéros de
 parcelles).


 Quel genre de transformations et de comparaison tu fais (je n'ai pas pris
 le temps de regarder le code) ?
 J'avais rencontré des problèmes la dessus : détermination de l'orientation
 du texte, du mal à comparer les shapes entres elles pour déterminer le
 caractère. Le path variait en fonction de la taille de la commune et de son
 orientation.


Je commence par comparer les commandes qui composent les paths, si ce sont
exactement les mêmes, alors je compare les coordonnées de la liste des
points qui composent les paths (par rapport au format SVG j'ai en fait
normalisé la représentation des path pour n'avoir que des coordonnées
absolue, pas de valeur relatives). Je transforme donc les points avec pour
chaque path:
 - une mise à l'échèle de telle manière que le point le plus loin du
premier se retrouve à une distance de 1.0
 - une rotation pour que le premier point et le 6ème (choix arbitraire) se
retrouvent à l'horizontal
Une fois ces transformations effectuées, je vérifie que la distance
maximale entre les points des deux paths soit  0.05
Je pense donc avoir une vérification assez fiable et ne pas pouvoir
confondre un chiffre avec un autre, le risque est plus d'en rater certains
pour des problème de précision.

J'avais aussi à l'origine un problème de variation des path selon la taille
de la commune, mais je pense que c'était en fait un problème de précision
du au format PDF, et je crois l'avoir résolu en découpant la récupération
du cadastre en plusieurs fichiers PDF de taille raisonnable (comme le
script import-bati.sh).



 J'espère que a court et moyen terme on pourra avoir accès aux données
 d'adresses du cadastre sans avoir à les extraire depuis le WMS. Ces
 informations sont dans les EDIGEO et il faut à mon avis pousser pour avoir
 accès à ces données, on a commencé à la faire département par département,
 il faut poursuivre


Passer par les fichier EDIGEO serait effectivement plus sûr et plus
logique, mais là on sort de mon domaine de compétence.
___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] Import addr:housenumber depuis le cadastre

2013-10-25 Par sujet Christian Quest
Je rebondit côté EDIGEO... j'ai 5 départements en stock, sûrement d'autres
devraient suivre dès qu'on aura pu montrer qu'on peut en tirer quelque
chose.

Ton outil est très prometteur... il va falloir tester ça rapidement et voir
comment faciliter et organiser son usage pour ne pas reproduire le bazar
qu'on a eu avec les premiers scripts d'extraction vectorielle du cadastre.

J'imagine un outil d'aide à l'intégration, qui ferait l'extraction et
proposerait une interface web simple pour suivre l'avancée rue par rue...
est-ce réaliste ?


Le 25 octobre 2013 14:53, Frédéric Rodrigo fred.rodr...@gmail.com a écrit
:

 Le 22 octobre 2013 22:17, Tyndare tynd...@wanadoo.fr a écrit :

 Bounjour,

 Au cas où ça intéresse quelqu'un, je partage des scripts python que j'ai
 essayé de faire pour extraire les numéros de rue depuis le cadastre.

 https://www.gitorious.org/cadastre-housenumber/cadastre-housenumber/


 C'est en fait loin d'être la première tentative de faire ça. J'ai moi même
 essayé deux fois.


  Ce n'est pas codé très proprement, et pas beaucoup testé mais ça semble
 fonctionner en Drôme Ardèche, sous Ubuntu 13.04.
 Le code de récupération des pdf depuis le site cadastre.gouv.fr est un
 mixe entre le code de Qadastre de Pierre Ducroquet, et du script
 import-bati.sh afin de découper la zone d'une commune en pdf plus petits.
 Ensuite le programme inkscape est appelé afin de convertir les pdf en
 fichier svg.


 Tu peux également utiliser directement les opérateur de dessin de base du
 PDF, ça évite un passage en SVG. Soit directement dans le code de Qadastre,
 soit en exécutant un script depuis Quadastre en lui passant les primitives
 (c'est comme ça que j'avais fait)


 Pour détecter les numéros de rue, j'ai codé en dure un path (au sens
 svg) correspondant à chaque numéro (0-9 et les lettres B,T,Q,A,B,C,D,E,F),
 et je fait une transformation pour les comparer. Je filtre ensuite selon la
 taille pour ne garder que les numéros de rue (et éviter les numéros de
 parcelles).


 Quel genre de transformations et de comparaison tu fais (je n'ai pas pris
 le temps de regarder le code) ?
 J'avais rencontré des problèmes la dessus : détermination de l'orientation
 du texte, du mal à comparer les shapes entres elles pour déterminer le
 caractère. Le path variait en fonction de la taille de la commune et de son
 orientation.


  J'ai aussi fait un script qui essaye de fusionner un fichier .osm sauvé
 depuis JOSM avec un fichier d'import des addr:housenumber récupéré depuis
 le cadastre.
 Ce script essaye de positionner le tag addr:street au nom de la rue la
 plus proche, et d'intégrer le noeud addr:housenumber au building le plus
 proche. Le plus proche n'étant pas forcément le bon, ça se trompe un nombre
 non négligeable de fois, if faut donc bien évidement tout vérifier et
 corriger ensuite sous JOSM, mais je trouve que cela fait tout de même
 gagner un temps précieux.


 Intéressant. On a un projet ambitieux sur les adresses et on aura besoin
 de quelque chose comme ça, mais avec une bonne fiabilité.

 J'espère que a court et moyen terme on pourra avoir accès aux données
 d'adresses du cadastre sans avoir à les extraire depuis le WMS. Ces
 informations sont dans les EDIGEO et il faut à mon avis pousser pour avoir
 accès à ces données, on a commencé à la faire département par département,
 il faut poursuivre.

 Frédéric.


 ___
 dev-fr mailing list
 dev-fr@openstreetmap.org
 https://lists.openstreetmap.org/listinfo/dev-fr




-- 
Christian Quest - OpenStreetMap France
Un nouveau serveur pour OSM... http://donate.osm.org/server2013/
___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] Import addr:housenumber depuis le cadastre

2013-10-25 Par sujet Ab_fab
Christian,

Il y a déjà http://addr.openstreetmap.fr/ pour l'interface web qui met à
disposition des fichiers osm rue par rue dans les agglos où les adresses
ont été libérées.
Avec une couleur par statut

Pour la génération de ces fichiers .osm, je ne sais pas comment cela a été
fait en pratique.







Le 25 octobre 2013 15:00, Christian Quest cqu...@openstreetmap.fr a écrit
:

 Je rebondit côté EDIGEO... j'ai 5 départements en stock, sûrement d'autres
 devraient suivre dès qu'on aura pu montrer qu'on peut en tirer quelque
 chose.

 Ton outil est très prometteur... il va falloir tester ça rapidement et
 voir comment faciliter et organiser son usage pour ne pas reproduire le
 bazar qu'on a eu avec les premiers scripts d'extraction vectorielle du
 cadastre.

 J'imagine un outil d'aide à l'intégration, qui ferait l'extraction et
 proposerait une interface web simple pour suivre l'avancée rue par rue...
 est-ce réaliste ?


 Le 25 octobre 2013 14:53, Frédéric Rodrigo fred.rodr...@gmail.com a
 écrit :

 Le 22 octobre 2013 22:17, Tyndare tynd...@wanadoo.fr a écrit :

 Bounjour,

 Au cas où ça intéresse quelqu'un, je partage des scripts python que j'ai
 essayé de faire pour extraire les numéros de rue depuis le cadastre.

 https://www.gitorious.org/cadastre-housenumber/cadastre-housenumber/


 C'est en fait loin d'être la première tentative de faire ça. J'ai moi
 même essayé deux fois.


  Ce n'est pas codé très proprement, et pas beaucoup testé mais ça
 semble fonctionner en Drôme Ardèche, sous Ubuntu 13.04.
 Le code de récupération des pdf depuis le site cadastre.gouv.fr est un
 mixe entre le code de Qadastre de Pierre Ducroquet, et du script
 import-bati.sh afin de découper la zone d'une commune en pdf plus petits.
 Ensuite le programme inkscape est appelé afin de convertir les pdf en
 fichier svg.


 Tu peux également utiliser directement les opérateur de dessin de base du
 PDF, ça évite un passage en SVG. Soit directement dans le code de Qadastre,
 soit en exécutant un script depuis Quadastre en lui passant les primitives
 (c'est comme ça que j'avais fait)


 Pour détecter les numéros de rue, j'ai codé en dure un path (au sens
 svg) correspondant à chaque numéro (0-9 et les lettres B,T,Q,A,B,C,D,E,F),
 et je fait une transformation pour les comparer. Je filtre ensuite selon la
 taille pour ne garder que les numéros de rue (et éviter les numéros de
 parcelles).


 Quel genre de transformations et de comparaison tu fais (je n'ai pas pris
 le temps de regarder le code) ?
 J'avais rencontré des problèmes la dessus : détermination de
 l'orientation du texte, du mal à comparer les shapes entres elles pour
 déterminer le caractère. Le path variait en fonction de la taille de la
 commune et de son orientation.


  J'ai aussi fait un script qui essaye de fusionner un fichier .osm
 sauvé depuis JOSM avec un fichier d'import des addr:housenumber récupéré
 depuis le cadastre.
 Ce script essaye de positionner le tag addr:street au nom de la rue la
 plus proche, et d'intégrer le noeud addr:housenumber au building le plus
 proche. Le plus proche n'étant pas forcément le bon, ça se trompe un nombre
 non négligeable de fois, if faut donc bien évidement tout vérifier et
 corriger ensuite sous JOSM, mais je trouve que cela fait tout de même
 gagner un temps précieux.


 Intéressant. On a un projet ambitieux sur les adresses et on aura besoin
 de quelque chose comme ça, mais avec une bonne fiabilité.

 J'espère que a court et moyen terme on pourra avoir accès aux données
 d'adresses du cadastre sans avoir à les extraire depuis le WMS. Ces
 informations sont dans les EDIGEO et il faut à mon avis pousser pour avoir
 accès à ces données, on a commencé à la faire département par département,
 il faut poursuivre.

 Frédéric.


 ___
 dev-fr mailing list
 dev-fr@openstreetmap.org
 https://lists.openstreetmap.org/listinfo/dev-fr




 --
 Christian Quest - OpenStreetMap France
 Un nouveau serveur pour OSM... http://donate.osm.org/server2013/

 ___
 dev-fr mailing list
 dev-fr@openstreetmap.org
 https://lists.openstreetmap.org/listinfo/dev-fr




-- 
ab_fab http://wiki.openstreetmap.org/wiki/User:Ab_fab
Il n'y a pas de pas perdus, Nadja
___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] Import addr:housenumber depuis le cadastre

2013-10-25 Par sujet Frédéric Rodrigo
N'allons pas trop vite. Je sais ô combien l'extraction depuis le cadastre
WMS n'est pas facile pour y avoir passé (perdu?) des heures et des heures.
Il faut d'abord voir ce que fait effectivement l'outil.


Le 25 octobre 2013 15:16, Ab_fab gamma@gmail.com a écrit :

 Christian,

 Il y a déjà http://addr.openstreetmap.fr/ pour l'interface web qui met à
 disposition des fichiers osm rue par rue dans les agglos où les adresses
 ont été libérées.
 Avec une couleur par statut

 Pour la génération de ces fichiers .osm, je ne sais pas comment cela a été
 fait en pratique.


Pour addr.osm.fr

My actul workflow is:
- load shape file into postgis with shp2pgsql
- write sql code to fill nodes/relations table in osmosis format (like this
http://addr.openstreetmap.fr/Data/rennes.sql)
- export data with osmosis in .osm
- split .osm into one .osm by relation with a small ruby script

My 1 cent et un copie/coller à 1 cent.
Frédéric.
___
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr