Skip to content
Snippets Groups Projects
Commit 5f46e734 authored by Léna Aix's avatar Léna Aix
Browse files

ajout obj 4

parent 0a248eb1
Branches
No related tags found
No related merge requests found
...@@ -30,12 +30,13 @@ def trees_positions(liste_coord): #ATTENTION mettre la longitude en premier ...@@ -30,12 +30,13 @@ def trees_positions(liste_coord): #ATTENTION mettre la longitude en premier
#on classe les arbres afin de les regrouper par tronçon commun, on obtient un dictionnaire #on classe les arbres afin de les regrouper par tronçon commun, on obtient un dictionnaire
#ayant en clé les caractéristique du troncon, et en valeur les coordonnées des arbres de ce troncon #ayant en clé les caractéristique du troncon, et en valeur les coordonnées des arbres de ce troncon
classement=classement_arbres(liste_coord) classement=classement_arbres(liste_coord)
new_classement=classement_reduit(classement)
dict={} dict={}
#pour chaque troncon, on cherche l'ordre des arbres #pour chaque troncon, on cherche l'ordre des arbres
for troncon in classement: for troncon in new_classement:
print('troncon') print('troncon')
dict[troncon]={} # ce dictionnaire contiendra, pour chaque arbre du troncon, toutes les informations demandées dict[troncon]={} # ce dictionnaire contiendra, pour chaque arbre du troncon, toutes les informations demandées
ordre=ordre_arbre(classement[troncon],troncon[-1]) #troncon[-1] est la coordonnée du début de troncon à partir de laquelle on classe les arbres ordre=ordre_arbre(new_classement[troncon],troncon[-2]) #troncon[-2] est la coordonnée du début de troncon à partir de laquelle on classe les arbres
#ordre est le dictionnaire qui contient à la clé i les coordonnées du ième arbre du troncon #ordre est le dictionnaire qui contient à la clé i les coordonnées du ième arbre du troncon
for i in range(len(ordre)): for i in range(len(ordre)):
dict[troncon][i+1]={'lat':ordre[i][1], 'lon':ordre[i][0], 'ville':troncon[0], 'rue':troncon[1], 'début tronçon': troncon[2], 'fin tronçon':troncon[3]} dict[troncon][i+1]={'lat':ordre[i][1], 'lon':ordre[i][0], 'ville':troncon[0], 'rue':troncon[1], 'début tronçon': troncon[2], 'fin tronçon':troncon[3]}
...@@ -58,16 +59,62 @@ def classement_arbres(liste_coord): ...@@ -58,16 +59,62 @@ def classement_arbres(liste_coord):
dict[(i['ville'],i['rue'],i['début tronçon'],i['fin tronçon'],i['coordonnées début tronçon'],i['coordonnées fin tronçon'])].append((i['lon'],i['lat'])) dict[(i['ville'],i['rue'],i['début tronçon'],i['fin tronçon'],i['coordonnées début tronçon'],i['coordonnées fin tronçon'])].append((i['lon'],i['lat']))
return dict return dict
def classement_reduit(classement): #fonction pour l'objectif 3 qui rassemble les troncons d'une même rue
rue_princ={}
#on créé un dictionnaire ayant pour clé la rue principale et pour valeur ds couples avec les
# coordonnées de fin et début de troncon des arbres de cette rue ainsi que le nom de ces rues
new_classement={}
#on créé un dictionnaire qui contiendra la même chose que classement, mais avec les nouveau début et fin
for troncon in classement :
if troncon[1] in rue_princ:
rue_princ[troncon[1]].append((troncon[4],troncon[2]))
rue_princ[troncon[1]].append((troncon[5],troncon[3]))
else:
rue_princ[troncon[1]]=[(troncon[4],troncon[2]),(troncon[5],troncon[3])]
for rue in rue_princ:
liste_coord=rue_princ[rue]
dist_max=0
coord_deb=(0,0)
coord_fin=(0,0)
nom_deb=''
nom_fin=''
for i in range(len(liste_coord)):
for j in range(i, len(liste_coord)):
x1=liste_coord[i][0][0]
y1=liste_coord[i][0][1]
x2=liste_coord[j][0][0]
y2=liste_coord[j][0][1]
d=(x1-x2)**2+(y1-y2)**2
if d>dist_max:
dist_max=d
coord_deb=liste_coord[i][0]
coord_fin=liste_coord[j][0]
nom_deb=liste_coord[i][1]
nom_fin=liste_coord[j][1]
for troncon in classement:
if troncon[1]==rue:
if (troncon[0],rue,nom_deb,nom_fin,coord_deb,coord_fin) in new_classement:
new_classement[(troncon[0],rue,nom_deb,nom_fin,coord_deb,coord_fin)]+=classement[troncon]
else :
new_classement[(troncon[0],rue,nom_deb,nom_fin,coord_deb,coord_fin)]=classement[troncon]
return new_classement
if __name__=="__main__": if __name__=="__main__":
t1 = time.time() '''t1 = time.time()
lat, lon = 48.898867, 2.237485 lat, lon = 48.892046, 2.249319
print(tree_position(lat, lon)) #print(tree_position(lat, lon))
t2 = time.time() t2 = time.time()
#print(t2-t1) #print(t2-t1)
lat = 48.89227652 lat = 48.89227652
lon = 2.253773690 lon = 2.253773690
print(tree_position(lat, lon))''' print(tree_position(lat, lon))'''
liste=[(2.24697,48.89535),(2.24705,48.89529),(2.2472,48.89518)] #liste=[(2.24697,48.89535),(2.24705,48.89529),(2.2472,48.89518)]
liste=[(2.246212,48.896523),(2.247038,48.895916)]
print(trees_positions(liste)) print(trees_positions(liste))
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment