From ccfb410515153685d1f02e4ae441112287072642 Mon Sep 17 00:00:00 2001 From: "a.pradeilles" <alexandre.pradeilles@student-cs.fr> Date: Thu, 15 Apr 2021 13:52:40 +0200 Subject: [PATCH] simple output --- .../coord_to_intersections.cpython-38.pyc | Bin 3352 -> 3352 bytes __pycache__/ordre_arbres.cpython-38.pyc | Bin 523 -> 523 bytes __pycache__/research.cpython-38.pyc | Bin 2331 -> 2599 bytes coord_to_intersections.py | 16 ++++++++++++++-- main.py | 12 +++++------- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/__pycache__/coord_to_intersections.cpython-38.pyc b/__pycache__/coord_to_intersections.cpython-38.pyc index 28d62caf207a3a0fc43ea6b8353d4b7d8ead0dcd..fc092d6c46a2f8effb3f1b171e10654751089825 100644 GIT binary patch delta 181 zcmbOsHA9Lol$V!_fq{Wxo<>E2xY9<x5_VQ5F-AV7$?fd6yi8(@0!)02e2g3*k&Eog z>?|ydEQ|uIn}4%^XOypFU|=XV1L<bsVB%n8VPs<hNpmoQ*epzw1-ZWSF94|l+W^wY xJXxIkB>ze@vG?37WHup*F>x>|F!C@KX)`b|_-S(9n!K4Oj=hRQiG!1a69BFf8q@#) delta 181 zcmbOsHA9Lol$V!_fq{Xc=wn$zo$N-w5_VQbF-AVd$?fd6yo_Ru0*ri&e2g3*k&Eog z?942TEQ|syn}4%^XOu5zU|=XV1L<buVB}zAVPs<hNkiByjFSbqzVlB5sR7#n(#SMf uockpIJT$TQ+$&_3A&YS^Dlqae7HKmuF!*V5Mor$#6USc6A<x0V!2tj|&KnQ_ diff --git a/__pycache__/ordre_arbres.cpython-38.pyc b/__pycache__/ordre_arbres.cpython-38.pyc index b05408dc19e6d84c4888815c085ff8cdd17f892a..e28b2a55adf60b8388afbd95585e8ddae84c77c3 100644 GIT binary patch delta 37 scmeBX>1N>z<>lpKU|?V{`C6Xvh-o9=9!5?k14aQRK1Lp<$(I=|0Gd?@5C8xG delta 37 scmeBX>1N>z<>lpKU|?W~UR;*2lW`;89!5?^14aQxK1LqK$(I=|0Fx&Nw*UYD diff --git a/__pycache__/research.cpython-38.pyc b/__pycache__/research.cpython-38.pyc index 93e98b12919c39a7ab7e7ed717d0bc3c49314af2..fa252d443fc9ddc868a03696f242dd8604e04b25 100644 GIT binary patch delta 661 zcmbO&v|NNQl$V!_fq{XcO}Qdrp5R128O9G2wO#7PQaDmLTNtCbQ@B#NTNt8vQg~8$ zTNt8vQ~6T(vYCqBr0_@arwBv|qzFa{rU*p|rE)IdT*we5oXVTRpCXVV*vuRy0u>WY z6-yOO6_#LVW@Kc5iV3HRrwFHrG&8v{#A-!Jq)Ma;iZDb;ri!PCHZ!^~7{!W2Nu~0n z@}~-<N~Q{>N;R`GG87&tTm#jPVq^+SFoUM}W--R+jP*<cj4VtnOdO0ni~@`Tj9iRd z%thi13=BmePbM>id<w<v3=9k)?99NxQ0&3Lz>vaN%bdbg%TmKq>{7yz!VGdptV%6w z31baI4Py;+4O0zkGixnd4O<OUHdC=k4I2{!BSSDlp-2sL3ZpqgEps79eGOYMgC>h# z`p1mN9b12Vv2!cpW?*2@WGdnXIf4(wW-sCgu?0YcAczoVU|_h#nwDRhmr^7G5)c9r zqHsbCBrlwtS(IFwlUNjAlv<pcSd^R*ZzKb9I!G}C8w(={@^CW>Fmix=%~&M4S%`T% z6SodXO&G|}ESs;eDl!U4gUpo$5g?ZpNlj*D-=i1{QU$Vyff-~DA0sFLl^E3+c^LT^ z#Tbh;CqH7h5=Ygl$p{WqP3g%x9KPI=AQM6UE7F`?&!Hx*0dh1`iP0_Af}+g45{UoR lK#J5SAK=gy(PLm>;9-<t<YDAs;t=B!;4tLipZu3Y4gj*|d;<Ug delta 376 zcmZ23GFyl*l$V!_fq{X+_ETAc8_z^O8OCQ5wO#7jQ#e`}qPSByQ@C0fqIgnyQ@FF4 ziXNr#MDeBYM)9ZcMG2(vM+v5KF5q0q5G9n#lfsk2o5I)393>1D6G;_K6-gD6U}$D! zWPpkZrHZ8pqzE=MxiG|PMTw`1rwWKLL`kHIr3f`Mx-i6wL`kM{r}CxpYotn~3Z_an zvobOiZYx{_)sA9h3QI79rtoG3#^;Qpi~@`-j4X^Cj6942i~@{Yj9iRG;+q9nwli^y zGcYg|hk<;^wD}U7BBOvL0|P^mG>G5^5fYP`Irb>JfmDfsRDliR0~@8psK&^{$j2zg zSfoDr0f!ZuR!ynNhMc}^d>~WQCwFqHF{(}8z$wC}0uoT2e2P<BNQZ%efrn9ok%y6k Pi9?V>pM!TYCzl)mzgb1N diff --git a/coord_to_intersections.py b/coord_to_intersections.py index 61e7da8..ea01872 100644 --- a/coord_to_intersections.py +++ b/coord_to_intersections.py @@ -13,8 +13,10 @@ def coord_to_inter(liste_coord,lat,long,main_street): #On regarde l'intersection la plus proche de l'arbre print('nouveau candidat') try: + #On regarde si il reste des intersections possibles candidat=liste_coord[dist.index(min(dist))] except ValueError: + #Si aucune intersection possible, on considère que la rue ne s'intersecte qu'avec elle-même inter_street.append(main_street) inter_street_coord.append([long, lat]) inter_street.append(main_street) @@ -24,7 +26,7 @@ def coord_to_inter(liste_coord,lat,long,main_street): #On regarde si cette intersection correspond bien au croisement avec une autre rue, on trouve le nom de cette autre rue nom_de_rue=circular_research(candidat[1], candidat[0], main_street) if nom_de_rue== None : - #Si on ne trouve pas d'autre rue a cette intersection on écarte cette intersection + #Si on ne trouve pas d'autre rue que celle de l'arbre a cette intersection on écarte cette intersection indice=dist.index(min(dist)) dist.pop(indice) liste_coord.pop(indice) @@ -55,12 +57,15 @@ def coord_to_inter(liste_coord,lat,long,main_street): #On regarde l'intersection admissible la plus proche du début du tronçon print('nouveau candidat 2') try: + #On regarde si il reste des intersections possibles candidat=liste_coord_admissibles[d_1_2.index(min(d_1_2))] except ValueError: + # Si non, la rue est donc une impasse, donc la fin de tronçon correspond au début inter_street.append(inter_street[0]) inter_street_coord.append(inter_street_coord[0]) print("Arbre au niveau de l'intersection") return inter_street+inter_street_coord + #On cherche le nom de la rue qui croise la rue de l'arbre à cette intersection nom_de_rue=circular_research(candidat[1], candidat[0], main_street) if nom_de_rue== None : #Si cette intersection ne donne rien, on la rejette @@ -92,6 +97,7 @@ def coord_to_inter(liste_coord,lat,long,main_street): #On prend la liste des intersection situé du premier coté de l'arbe #Pour cela on calcule les distances entre le second point trouvé, l'arbre et les autres points #On conserve les points qui permettent de former un triangle avec un angle obtu au niveau de l'arbre + #Ce qui nous assure que l'on se situe de l'autre côté de l'arbre d=(liste_coord[i][0]-inter_street_coord[1][0])**2 + (liste_coord[i][1]-inter_street_coord[1][1])**2 if d > dist[i] + d_2: @@ -118,7 +124,9 @@ def coord_to_inter(liste_coord,lat,long,main_street): def opti_inter_street(c, main_street, liste_coord_admissibles, liste_coord_admissibles2, d_1_2, d_2_1, inter_street_init, inter_street_coord_init): + #p représente le coté de l'arbre duquel on se situe (p vaut 0 ou 1) p = c % 2 + #On charge les données correspondant au cas p if p == 0: liste_coord = liste_coord_admissibles2 dist = d_2_1 @@ -129,6 +137,7 @@ def opti_inter_street(c, main_street, liste_coord_admissibles, liste_coord_admis inter_street_coord = deepcopy(inter_street_coord_init) found = False while not(found): + #On cherche l'intersection la plus proche de l'intersection trouvée du côté opposé candidat=liste_coord[dist.index(min(dist))] nom_de_rue=circular_research(candidat[1], candidat[0], main_street) if nom_de_rue== None : @@ -151,7 +160,8 @@ def opti_inter_street(c, main_street, liste_coord_admissibles, liste_coord_admis def fct_d_1_2(liste_coord, inter_street_coord): d_1_2 = [] for i in range(len(liste_coord)): - #On prend la liste des intersection situé du premier coté de l'arbe + #On prend la liste des intersection situé du second coté de l'arbe + #On calcule la distance de ces points avec l'intersection trouvée pour le premier côté d=(liste_coord[i][0]-inter_street_coord[0][0])**2 + (liste_coord[i][1]-inter_street_coord[0][1])**2 d_1_2.append(d) return d_1_2 @@ -160,12 +170,14 @@ def fct_d_2_1(liste_coord, inter_street_coord): d_2_1 = [] for i in range(len(liste_coord)): #On prend la liste des intersection situé du premier coté de l'arbe + #On calcule la distance de ces points avec l'intersection trouvée pour le second côté d=(liste_coord[i][0]-inter_street_coord[1][0])**2 + (liste_coord[i][1]-inter_street_coord[1][1])**2 d_2_1.append(d) return d_2_1 def fct_dist(liste_coord, lat, long): dist=[] + #calcule les distances entre les points de la liste et le point de référence indiqué par lat et longs for inter in liste_coord: d=(inter[0]-long)**2 + (inter[1]-lat)**2 dist.append(d) diff --git a/main.py b/main.py index b439881..8d1eee2 100644 --- a/main.py +++ b/main.py @@ -44,8 +44,7 @@ def trees_positions(liste_coord): #ATTENTION mettre la longitude en premier 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 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]} - print(i+1) + dict[troncon][i+1]={'lat':ordre[i][1], 'lon':ordre[i][0]} return dict def classement_arbres(liste_coord): @@ -121,12 +120,11 @@ if __name__=="__main__": #print(tree_position(lat, lon)) t2 = time.time() #print(t2-t1) - ''' + lat = 48.89227652 lon = 2.253773690 print(tree_position(lat, lon)) ''' - #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)) - ''' \ No newline at end of file + 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)) \ No newline at end of file -- GitLab