Commit c2d1fd68 authored by Grégoire PETIT's avatar Grégoire PETIT
Browse files

graphe[col][line] --> graphe=[[ , , , , , , ], ... ,[ , , , , , , ]]

parent aa23f7d2
......@@ -36,14 +36,16 @@ def getAltitude(rgbValues):
res=4810/7921*(G-186)**2
return(res)
def getAltXY(pixel): #Permet d'avoir l'altitude réelle pour un pixel
def getAltXY(pixel):
'''Permet d'avoir l'altitude réelle pour un pixel'''
rgbValues=im_alt.getpixel(pixel)
# print("rgbValues = ", rgbValues)
return(getAltitude(rgbValues))
def getPopXY(pixel):#Permet d'avoir la population réelle pour un pixel
def getPopXY(pixel):
'''Permet d'avoir la population réelle pour un pixel'''
pop_max=3000
rgbValues=im_pop.getpixel(pixel) #c'est des niveaux de gris, donc r=g=b
if rgbValues[0]>=24: #la mer n'est pas totalement noire ((24,24,24) ou (16,16,16)), on filtre donc
......@@ -52,18 +54,21 @@ def getPopXY(pixel):#Permet d'avoir la population réelle pour un pixel
res=0
return(res)
def popCaseXY(case): #Permet d'avoir la population moyenne réelle d'une cellule (donc prend une cellule en entrée)
return(sum([sum([getPopXY((x,y)) for x in range(case[0]*15,case[0]*15+15)]) for y in range(case[1]*15,case[1]*15+15)]))
def popCaseXY(case):
'''Permet d'avoir la population moyenne réelle d'une cellule (donc prend une cellule en entrée)'''
return(sum([sum([getPopXY((col,line)) for col in range(case[0]*15,case[0]*15+15)]) for line in range(case[1]*15,case[1]*15+15)]))
def altCaseXY(case):#Permet d'avoir l'altitude moyenne réelle d'une cellule (donc prend une cellule en entrée)
return(max([max([getAltXY((x,y)) for x in range(case[0]*15,case[0]*15+15)]) for y in range(case[1]*15,case[1]*15+15)]))
def altCaseXY(case):
'''Permet d'avoir l'altitude moyenne réelle d'une cellule (donc prend une cellule en entrée)'''
return(max([max([getAltXY((col,line)) for col in range(case[0]*15,case[0]*15+15)]) for line in range(case[1]*15,case[1]*15+15)]))
#### from now on, the functions deal with the graph with cells of 15*15 pixels ####
def denivele(graphe,case1,case2): #Donne le denivelé entre deux cellules du graphe
def denivele(graphe,case1,case2):
'''Donne le denivelé entre deux cellules du graphe'''
print(case1, case2, 'deux cases')
return(abs(atan((graphe[case1[0]][case1[1]][1]-graphe[case2[0]][case2[1]][1])/15))) #positif
......@@ -112,22 +117,21 @@ def neighbors(node, size):
return my_neighbors
print("alt = ",altCaseXY((1560//15,1590//15)))
print("pop = ",popCaseXY((1560//15,1590//15)))
print("alt = ",altCaseXY((4435//15,2214//15)))
print("pop = ",popCaseXY((4435//15,2214//15)))
y=1591
x=range(4830)
z=[getAltXY((xi,y)) for xi in x] #profil de l'altitude de la ligne du mont blanc (il est à x=1573)
print(max(z))
plt.plot(x,z)
plt.show()
""" x=range(4830)
y=range(3510)
z=[[getAltXY((xi,yi)) for xi in x] for yi in y] #profil de l'altitude de la ligne du mont blanc (il est à x=1573)
print(max([max(zi) for zi in z])) """
newWidth=4830//15
newHeigth=3510//15
graphe=[[[popCaseXY((i,j)),altCaseXY((i,j)),[0 for _ in range(15)]] for i in range(newWidth)] for j in range(newHeigth)]
graphe=[[[popCaseXY((col,line)),altCaseXY((col,line)),[0 for _ in range(15)]] for col in range(newWidth)] for line in range(newHeigth)]
......@@ -141,22 +145,19 @@ pixelOutOfRize.append([[4435,j] for j in range(2104,2110)])
test=0
for i in range(4422,4436): #pixels de rize
for j in range(2103,2218):
if [i,j] not in pixelOutOfRize:
print([i,j], 'pixel de Rize')
graphe[j//15][i//15][2][0]=graphe[j//15][i//15][0]
graphe[j//15][i//15][0]=0
if graphe[j//15][i//15][0] != 0:
print([i,j], graphe[j//15][i//15][0], 'pop')
test+=graphe[j//15][i//15][0]
print("pop totale de Rize = ", test)
#Exemple de cellule à Rize : (4435, 2150), (4434, 2128)
print(graphe[2214//15][4435//15], graphe[2215//15][4435//15], 'Rize au début')
for col in range(4422,4436): #pixels de rize
for line in range(2103,2218):
if [col,line] not in pixelOutOfRize:
print([col,line], 'pixel de Rize')
graphe[col//15][line//15][2][0]=graphe[col//15][line//15][0]
graphe[col//15][line//15][0]=0
if graphe[col//15][line//15][0] != 0:
print([col,line], graphe[col//15][line//15][0], 'pop')
test+=graphe[col//15][line//15][2][0]
print("pop totale de Rize = ", test)
print("graphe prêt !")
#On fait viellir les zombies grâce à cette fonction
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment