Re: [OSM-talk-fr] Création automatique de relations associated street

2014-11-27 Par sujet Frédéric Rodrigo

Oups, je t'avais un peu oublié !

Le 25/11/2014 15:44, Tony Emery a écrit :

J'ai réussi à relancer le fichier asso.rb.

Par contre, je ne pense pas que l'on puisse paramétrer le fichier .sh sous
windows, pas avec le bloc-note ou notepad, en tout cas.


Si, mais j'en convient que c'est pas très lisible avec tout sur une 
seule ligne. Tu peux aussi exécuté le code overpass 'en clair' dans dans 
overpass turbo et l'envoyer sur josm par ex.



Du coup, je te donne les relation_id des communes de la CCPRO, si tu peux me
faire plusieurs fichiers :

Villeosm_relation_id
Bédarrides   147 870
Caderousse   148 147
Châteauneuf-du-Pape  148 164
Courthézon   148 169
Jonquières   148 979
Orange   187 038
Sorgues  181 308



J'ai relancé le script pour ça, c'est dispo là :
http://f.rodrigo.free.fr/tmp/orange.tar.bz2
Avec une petit mise à jour des scripts.

Frédéric.


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


Re: [OSM-talk-fr] Création automatique de relations associated street

2014-11-25 Par sujet Tony Emery
J'ai réussi à relancer le fichier asso.rb.

Par contre, je ne pense pas que l'on puisse paramétrer le fichier .sh sous
windows, pas avec le bloc-note ou notepad, en tout cas.

Du coup, je te donne les relation_id des communes de la CCPRO, si tu peux me
faire plusieurs fichiers :

Villeosm_relation_id 
Bédarrides   147 870   
Caderousse   148 147   
Châteauneuf-du-Pape  148 164   
Courthézon   148 169   
Jonquières   148 979   
Orange   187 038   
Sorgues  181 308   


Merci d'avance



-
Tony EMERY
Administrateur OpenStreetMap.fr
Mandataire Grand Sud-Est
Géomaticien  chef de projets
--
View this message in context: 
http://gis.19327.n5.nabble.com/Creation-automatique-de-relations-associated-street-tp5823180p5825364.html
Sent from the France mailing list archive at Nabble.com.

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


Re: [OSM-talk-fr] Création automatique de relations associated street

2014-11-13 Par sujet Tony Emery
Je vais être casse-pied mais tu pourrais pas me faire un tuto avec des copies
d'écrans ?

Parce que le .rb, je le lance avec quoi ? Je dois télécharger un logiciel
spécifique ?

Du coup, les 2 fichiers asso.xml et osm.xml, je les ouvre dans JOSM pour
envoyer les données dans OSM ? Je n'ai pas besoin de recharger à nouveau les
voies ?

Si le script regroupe les objets par nom dans une relation, ça veut dire que
les objets ayant le même nom sur 2 communes différentes se retrouveront dans
la même relation ? 



-
Tony EMERY
Administrateur OpenStreetMap.fr
Mandataire Grand Sud-Est
Géomaticien  chef de projets
--
View this message in context: 
http://gis.19327.n5.nabble.com/Creation-automatique-de-relations-associated-street-tp5823180p5824185.html
Sent from the France mailing list archive at Nabble.com.

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


Re: [OSM-talk-fr] Création automatique de relations associated street

2014-11-13 Par sujet Frédéric Rodrigo

Le 13/11/2014 11:21, Tony Emery a écrit :

Je vais être casse-pied mais tu pourrais pas me faire un tuto avec des copies
d'écrans ?


Non je ne peux pas, il n'y a pas d'écran !
Et le tuto c'est le contenu de mon dernier mail.
Tout est en ligne de commande.


Parce que le .rb, je le lance avec quoi ? Je dois télécharger un logiciel
spécifique ?


Un .rb c'est un script ruby. Il te faut ajour ruby d'installer. Pour 
l'executer (comme dans mon dernier mail)

ruby monscript.rb


Du coup, les 2 fichiers asso.xml et osm.xml, je les ouvre dans JOSM pour
envoyer les données dans OSM ? Je n'ai pas besoin de recharger à nouveau les
voies ?


Tu ne va pas pouvoir charger le osm.xml dans JOSM. Le script overpass 
n'a pas l'option meta info d'activer (mais ça peut se rajouter).


Tu peux changer le asso.xml dans JOSM, pour récupérer les voies et les 
adresses tu peux demander à JOSM de compléter les relations.



Si le script regroupe les objets par nom dans une relation, ça veut dire que
les objets ayant le même nom sur 2 communes différentes se retrouveront dans
la même relation ?


Oui, il vaut mieux le faire par commune.
Je te le relance sur une/des communes si tu veux, donne moi juste les id 
des relations;


Frédéric.


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


Re: [OSM-talk-fr] Création automatique de relations associated street

2014-11-06 Par sujet Frédéric Rodrigo
Le .sh permet de faire l'export des données depuis la requête overpass. 
Tu peux changer les communes en changeant le numéro de la relation 
(numéro + 36 pour avoir la surface).


Le .rb est un script ruby (pas besoin de dépendances, juste ruby). Tu 
peux le relancer par

# ruby asso.rb osm.xml  asso.xml

Le script regroupe par nom dans une relation (sur plusieurs commune ça 
va toujours grouper sur le nom). Le tag fantoir de la relation est une 
concatenation de tous les fantoir différent trouvés sur les voies.


Le résultat ne contient que les relations, pas les numéros et les voies.


Le 06/11/2014 08:57, Tony Emery a écrit :

Salut Fred,

Je te remercie pour ton script. Et en plus, c'est sur toute l'interco

Par contre, ça marche comment ?



-
Tony EMERY
Administrateur OpenStreetMap.fr
Mandataire Grand Sud-Est
Géomaticien  chef de projets
--
View this message in context: 
http://gis.19327.n5.nabble.com/Creation-automatique-de-relations-associated-street-tp5823180p5823345.html
Sent from the France mailing list archive at Nabble.com.

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




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


Re: [OSM-talk-fr] Création automatique de relations associated street

2014-11-05 Par sujet Vincent de Château-Thierry
Bonjour,

 De: Tony Emery tony.em...@yahoo.fr
 
 Je suis en train de réaliser un référentiel voirie sur notre
 intercommunalité. On a fait le tour des tronçons de rues et on
 voudrait,
 pour chaque voie de chaque commune, créer une relation associated
 street.
 
 Existe-t-il un script sous josm ou QGIS qui pourrait automatiser ce
 travail
 qui serait, en gros :
 - sélectionne les objets qui ont la même valeur pour le tag name
 - s'il n'y a pas de relation associated street, créé-la
 - en option, s'il y a des adresses rattachées au même nom de rue,
 mets-les
 dans la relation.

Tu as l'outil disponible ici : http://cadastre.openstreetmap.fr/ qui propose 
quelque chose d'approchant : création d'une relation associatedStreet par nom 
de voie d'une commune, avec ajout du code Fantoir, ajout des highways portant 
le nom, et inclusion des adresses trouvées _sur le cadastre_ pour la voie en 
question.
Une nuance de taille par rapport à ton besoin : ça ne tient pas compte des 
adresses déjà présentes dans OSM, les points proposés sont des ajouts.
Du détail ici : 
http://wiki.openstreetmap.org/wiki/WikiProject_France/Cadastre/Import_semi-automatique_des_adresses

vincent

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


Re: [OSM-talk-fr] Création automatique de relations associated street

2014-11-05 Par sujet Tony Emery
On travaille actuellement dans les communes de la CCPRO dans lesquelles nous
n'avons pas qualifier les adresses.

Donc, sauf quelques adresses isolées, ça doit pour être jouable.

Le problème est qu'on doit être sûr que la relation qui est créée dans OSM
récupère aussi les tronçons de voies correspondant et qui, eux, sont déjà
dans OSM.



-
Tony EMERY
Administrateur OpenStreetMap.fr
Mandataire Grand Sud-Est
Géomaticien  chef de projets
--
View this message in context: 
http://gis.19327.n5.nabble.com/Creation-automatique-de-relations-associated-street-tp5823180p5823208.html
Sent from the France mailing list archive at Nabble.com.

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


Re: [OSM-talk-fr] Création automatique de relations associated street

2014-11-05 Par sujet Jo
Si tu peux installer le plugin scripting et Jython, j'ai un script qui fait
cela. Il fait un peu plus, donc tu devras enlever ce dont tu n'as pas
besoin.

Jo

Ce qui t'intéresse commence à la ligne 122.

#!/bin/jython
'''
CheckRouteOrNetworkOrCollectionOfRoutes.jy
- Validation of a rXn route relation

This code is released under the GNU General
Public License v2 or later.

The GPL v3 is accessible here:
http://www.gnu.org/licenses/gpl.html

The GPL v2 is accessible here:
http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

It comes with no warranty whatsoever.

This code illustrates how to use Jython (Python in the scripting plugin of
JOSM) to:
* loop over all members of a route relation
* find out whether the member is a node, a way or a relation
* add/change properties of a relation
* remove properties of a relation
* add members to a relation
* remove members from a relation
* sort all members backwards

* How to set an element selected

'''
from javax.swing import JOptionPane
from org.openstreetmap.josm import Main
import org.openstreetmap.josm.command as Command
import org.openstreetmap.josm.data.osm.Node as Node
import org.openstreetmap.josm.data.osm.Way as Way
import org.openstreetmap.josm.data.osm.Relation as Relation
import org.openstreetmap.josm.data.Bounds as Bounds
import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor as
BoundingXYVisitor
import org.openstreetmap.josm.data.osm.TagCollection as TagCollection
import org.openstreetmap.josm.data.osm.DataSet as DataSet
import org.openstreetmap.josm.data.osm.RelationMember as RelationMember
import
org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationMemberTask as
DownloadRelationMemberTask
import org.openstreetmap.josm.actions.DownloadReferrersAction as
DownloadReferrersAction
import org.openstreetmap.josm.actions.AutoScaleAction as AutoScaleAction
import
org.openstreetmap.josm.plugins.utilsplugin2.replacegeometry.ReplaceGeometryUtils
as ReplaceGeometryUtils
#import
org.openstreetmap.josm.plugins.utilsplugin2.selection.SelectAllInsideAction.java
as SelectAllInsideAction
import org.openstreetmap.josm.plugins.todo as Todo
import org.openstreetmap.josm.plugins.todo.TodoListModel as TodoListModel
import org.openstreetmap.josm.plugins.todo.TodoDialog as TodoDialog
print dir(TodoDialog)
import javax.swing.DefaultListSelectionModel as DefaultListSelectionModel


# the file name where the report for the wiki goes, needs to be configurable
wikiReportFN = 'C:/data/wikiReport.txt'
# comment to disable side effect
sideEffects = {}

logVerbosity = 30
'''
10: only report problems that require attention
20: report on collection
30: report on network nodes
40: report on which routes are being checked
50: report everything
'''

def getMapView():
if Main.main and Main.main.map:
return Main.main.map.mapView
else:
return None

def findSuitableBuilding(node, ignorelist, zoomOutThisManyTimes=2,
houseNumber=None, street=None):
bboxCalculator = BoundingXYVisitor()
bboxCalculator.computeBoundingBox([node])
bboxCalculator.enlargeBoundingBox()
if bboxCalculator.getBounds():
 mv.recalculateCenterScale(bboxCalculator)
mv.zoomTo(node.getEastNorth())
stopPosition = Node()
found = False
for i in range(1,zoomOutThisManyTimes):
candidates =
mv.getAllNearest(mv.getPoint(node),ignorelist,Node().nodePredicate)
if candidates:
for candidate in candidates:
if candidate in ignorelist: break
for foundway in candidate.getReferrers():
if houseNumber and \
  'addr:housenumber' in foundway.getKeys() and \
  foundway.get('addr:housenumber').upper() ==
houseNumber.upper():
if 'addr:street' in foundway.getKeys() and street
and \
  foundway.get('addr:street').upper() ==
street.upper():
continue
# if we find a building with the housenumber we
were looking for, stop searching
print 'Building with same housenumber'
found = True; break
if 'addr:housenumber' in foundway.getKeys():
# If we find a building with another housenumber,
add its nodes to the ignorelist
print foundway.get('addr:housenumber') +  not a
good candidate
for node in foundway.getNodes():
ignorelist.append(node)
continue
if 'building' in foundway.getKeys():
# If we get here, this means we found a building,
without housenumber information, which may be a good candidate
print 'found a good candidate building without a
housenumber'
found = True; break
else:
ignorelist.append(candidate)
print 

Re: [OSM-talk-fr] Création automatique de relations associated street

2014-11-05 Par sujet Christian Quest
Essaye !

Sur les communes où j'ai utilisé ces extractions automatiques, c'était très
complet.

Pour les communes où il y a déjà des adresses, un script supplémentaire
devrait permettre de tout bien ranger.


Le 5 novembre 2014 11:37, Tony Emery tony.em...@yahoo.fr a écrit :

 On travaille actuellement dans les communes de la CCPRO dans lesquelles
 nous
 n'avons pas qualifier les adresses.

 Donc, sauf quelques adresses isolées, ça doit pour être jouable.

 Le problème est qu'on doit être sûr que la relation qui est créée dans OSM
 récupère aussi les tronçons de voies correspondant et qui, eux, sont déjà
 dans OSM.



 -
 Tony EMERY
 Administrateur OpenStreetMap.fr
 Mandataire Grand Sud-Est
 Géomaticien  chef de projets
 --
 View this message in context:
 http://gis.19327.n5.nabble.com/Creation-automatique-de-relations-associated-street-tp5823180p5823208.html
 Sent from the France mailing list archive at Nabble.com.

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




-- 
Christian Quest - OpenStreetMap France
___
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr


Re: [OSM-talk-fr] Création automatique de relations associated street

2014-11-05 Par sujet Jo
Salut Tony,

Celui-ci est plus proche de ce que tu cherchais:

#!/bin/jython
'''
FindWaysBelongingToRoutesStartingFromStops.jy
- Given a list of stops, find all ways belonging to the route

This code is released under the GNU General
Public License v2 or later.

The GPL v3 is accessible here:
http://www.gnu.org/licenses/gpl.html

The GPL v2 is accessible here:
http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

It comes with no warranty whatsoever.

'''
from javax.swing import JOptionPane
from org.openstreetmap.josm import Main
import org.openstreetmap.josm.command as Command
import org.openstreetmap.josm.data.osm.Node as Node
import org.openstreetmap.josm.data.osm.Way as Way
import org.openstreetmap.josm.data.osm.Relation as Relation
import org.openstreetmap.josm.data.Bounds as Bounds
import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor as
BoundingXYVisitor
import org.openstreetmap.josm.data.osm.TagCollection as TagCollection
import org.openstreetmap.josm.data.osm.DataSet as DataSet
import org.openstreetmap.josm.data.osm.RelationMember as RelationMember
import org.openstreetmap.josm.actions.search.SearchAction as SearchAction

dummyRelation = Relation(); dummyWay = Way()

sideEffects = {
'addWayToRoute': None,
'createStopAreaRelations': None,
}

logVerbosity = 50
'''
10: only report problems that require attention
20: report on collection
30: report on network nodes
40: report on which routes are being checked
50: report everything
'''

def getMapView():
if Main.main and Main.main.map:
return Main.main.map.mapView
else:
return None

dummy_way = Way()
dummy_relation = Relation()

print
print 

cleanupTags=[['odbl', ['CRAB:huisnrlabel', 'CRAB:hnrLabel',
'CRAB:hnrLabels']],
 ['tiger:source', ['CRAB:source', 'CRAB:herkomst']],
 ['yh:TYPE', ['addr:postcode']],
 ['yh:LINE_NAME', ['addr:city']],
 ['addr:flats',   ['CRAB:message']]
]
SearchAction.search('inview new addr:housenumber type:node',
SearchAction.SearchMode.fromCode('R'))

mv = getMapView()
if mv and mv.editLayer and mv.editLayer.data:
commandsList = []; i=0; names = {}; modified = False

relationStillNeedsToBeCreated = True

for node in mv.editLayer.data.getSelectedNodes():
for key in node.getKeys():
if ('addr:street' in node.getKeys()):
if relationStillNeedsToBeCreated:
notFound = True
for relation in node.getReferrers():
if relation.get('type') == 'associatedStreet':
notFound = False
break
if notFound:
recycled=False
newRelation = Relation(dummyRelation)
relationStillNeedsToBeCreated = False
else:
recycled=True
newRelation = Relation(relation)
newRelation.removeAll()
relationStillNeedsToBeCreated = False

newMember = RelationMember('house',node)
if not(newMember in newRelation.getMembers()):
newRelation.addMember(i, newMember)
i+=1
modified = True
newNode=Node(node)
nodeTags = node.getKeys()
for replaceWith, replaceThese in cleanupTags:
for replaceThis in replaceThese:
if replaceThis in nodeTags:
newNode.put(replaceWith, node.get(replaceThis))
newNode.remove(replaceThis)
commandsList.append(Command.ChangeCommand(node, newNode))

newRelation.put('type', 'associatedStreet')
newRelation.put('name', node.get('addr:street'))
newRelation.put('addr:country', 'BE')

if ('addr:city' in nodeTags):
newRelation.put('addr:city', node.get('addr:city'))
elif ('yh:LINE_NAME' in nodeTags):
newRelation.put('addr:city', node.get('yh:LINE_NAME'))
else:
newRelation.put('addr:city', 'GemeenteOnbekend')

if ('addr:postcode' in nodeTags):
newRelation.put('addr:postcode', node.get('addr:postcode'))
elif ('yh:TYPE' in nodeTags):
newRelation.put('addr:postcode', node.get('yh:TYPE'))
else:
newRelation.put('addr:postcode', 'PostnummerOnbekend')
newRelation.put('addr:country', 'BE')

SearchAction.search(node.get('addr:street') + ' type:way',
SearchAction.SearchMode.fromCode('R'))

for way in mv.editLayer.data.getSelectedWays():
if way.get('building'):
newMember = RelationMember('house',way)
else:
newMember = RelationMember('street',way)
if not(newMember in newRelation.getMembers()):
newRelation.addMember(i, newMember)
i+=1
modified = True

#print dir(mv)

Re: [OSM-talk-fr] Création automatique de relations associated street

2014-11-05 Par sujet Frédéric Rodrigo
Comme promis ce week-end j'ai fait un petit script pour ça. Tout est là, 
c'est sur la comcom :


http://f.rodrigo.free.fr/tmp/orange.tar.bz2


Pour les curieux voila les scripts overpass api et ruby (sans dépendances) :

[out:xml][timeout:25];
// gather results
(
  node[addr:housenumber](area:3602156557);
  way[addr:housenumber](area:3602156557);
  relation[addr:housenumber](area:3602156557);
  way[highway][name](area:3602156557);
);
// print results
out body;
;
out skel qt;




require rexml/document
file = File.new( osm.xml )
doc = REXML::Document.new file

stock = Hash.new{ |h, k| h[k] = {street: [], house: []} }
REXML::XPath.each( doc, '/osm/*' ) { |n|
name = REXML::XPath.first(n, 'tag[@k=name]/@v')
if name
fantoir = REXML::XPath.first(n, 'tag[@k=ref:FR:FANTOIR]/@v')
stock[name.value][:street]  [n.attributes['id'], n.name, 
fantoir  fantoir.value]

end
addr = REXML::XPath.first(n, 'tag[@k=addr:street]/@v')
if addr
stock[addr.value][:house]  [n.attributes['id'], n.name]
end
}

id = 0
puts ?xml version='1.0' encoding='UTF-8'?
puts osm version='0.6' generator='Overpass API'
stock.each{ |name, h|
puts relation id='#{id-=1}' visible='true'
puts   tag k='type' v='associatedStreet'/
puts   tag k='name' v='#{name.gsub('', 'amp;').gsub('\'', 
'apos;').gsub('\', 'quot;').gsub('', 'lt;')}'/

fantoir = h[:street].select{ |c| c }.collect{ |c| c[2] }.uniq.join(';')
if fantoir != ''
  puts   tag k='ref:FR:FANTOIR' v='#{fantoir}'/
end
h[:street].each{ |s|
puts   member role='street' type='#{s[1]}' ref='#{s[0]}'/
}
h[:house].each{ |s|
puts   member role='house' type='#{s[1]}' ref='#{s[0]}'/
}
puts /relation
}
puts /osm




Le 05/11/2014 09:28, Tony Emery a écrit :

Bonjour à tous,

Je suis en train de réaliser un référentiel voirie sur notre
intercommunalité. On a fait le tour des tronçons de rues et on voudrait,
pour chaque voie de chaque commune, créer une relation associated street.

Existe-t-il un script sous josm ou QGIS qui pourrait automatiser ce travail
qui serait, en gros :
- sélectionne les objets qui ont la même valeur pour le tag name
- s'il n'y a pas de relation associated street, créé-la
- en option, s'il y a des adresses rattachées au même nom de rue, mets-les
dans la relation.

Merci pour vos réponses.



-
Tony EMERY
Administrateur OpenStreetMap.fr
Mandataire Grand Sud-Est
Géomaticien  chef de projets
--
View this message in context: 
http://gis.19327.n5.nabble.com/Creation-automatique-de-relations-associated-street-tp5823180.html
Sent from the France mailing list archive at Nabble.com.

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




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


Re: [OSM-talk-fr] Création automatique de relations associated street

2014-11-05 Par sujet Tony Emery
Salut Fred,

Je te remercie pour ton script. Et en plus, c'est sur toute l'interco

Par contre, ça marche comment ?



-
Tony EMERY
Administrateur OpenStreetMap.fr
Mandataire Grand Sud-Est
Géomaticien  chef de projets
--
View this message in context: 
http://gis.19327.n5.nabble.com/Creation-automatique-de-relations-associated-street-tp5823180p5823345.html
Sent from the France mailing list archive at Nabble.com.

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