Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Grégoire PETIT
DataScience
Commits
c62d4bb5
Commit
c62d4bb5
authored
Nov 27, 2018
by
Jéhoiakim KINGNE
Browse files
Commit
parent
cd2f7f41
Changes
1
Show whitespace changes
Inline
Side-by-side
Challenge3/code/challenge3.py
View file @
c62d4bb5
...
...
@@ -23,7 +23,7 @@ print("heigth = ", heigth)
pix_mont_blanc
=
im_alt
.
getpixel
((
1573
,
1593
))
pix_sea_level
=
im_alt
.
getpixel
((
929
,
1666
))
pix_sea
=
im_alt
.
getpixel
((
1
,
1
))
print
(
pix_sea
,
pix_sea_level
,
pix_mont_blanc
)
print
(
pix_sea
,
pix_sea_level
,
pix_mont_blanc
)
#rgb
def
getAltitude
(
rgbValues
):
if
rgbValues
==
(
255
,
255
,
255
):
...
...
@@ -33,12 +33,14 @@ def getAltitude(rgbValues):
res
=
4810
/
7921
*
(
G
-
186
)
**
2
return
(
res
)
def
getAltXY
(
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
):
def
getPopXY
(
pixel
):
#Permet d'avoir la population réelle pour un pixel
pop_max
=
3000
rgbValues
=
im_pop
.
getpixel
(
pixel
)
if
max
(
rgbValues
)
>=
30
:
#la mer n'est pas totalement noire, on filtre donc
...
...
@@ -47,19 +49,22 @@ def getPopXY(pixel):
res
=
0
return
(
res
)
def
popCaseXY
(
pixel
):
return
(
sum
([
sum
([
getPopXY
((
x
,
y
))
for
x
in
range
(
pixel
[
0
],
pixel
[
0
]
+
15
)])
for
y
in
range
(
pixel
[
1
],
pixel
[
1
]
+
15
)]))
def
altCaseXY
(
pixel
):
return
(
max
([
max
([
getAltXY
((
x
,
y
))
for
x
in
range
(
pixel
[
0
],
pixel
[
0
]
+
15
)])
for
y
in
range
(
pixel
[
1
],
pixel
[
1
]
+
15
)]))
print
(
popCaseXY
([
0
,
0
]))
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
],
case
[
0
]
+
15
)])
for
y
in
range
(
case
[
1
],
case
[
1
]
+
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
],
case
[
0
]
+
15
)])
for
y
in
range
(
case
[
1
],
case
[
1
]
+
15
)]))
#### from now on, the functions deal with the graph with cells of 15*15 pixels ####
def
denivele
(
graphe
,
p1
,
p2
):
return
(
abs
(
atan
((
graphe
[
p1
[
0
]][
p1
[
1
]]
-
graphe
[
p2
[
0
]][
p2
[
1
]])
/
15
)))
#positif
def
denivele
(
graphe
,
case1
,
case2
):
#Donne le denivelé entre deux cellules du graphe
return
(
abs
(
atan
((
graphe
[
case1
[
0
]][
case1
[
1
]]
-
graphe
[
case2
[
0
]][
case2
[
1
]])
/
15
)))
#positif
def
lambdad
(
graphe
,
p1
,
p2
):
d
=
denivele
(
graphe
,
p1
,
p2
)
def
lambdad
(
graphe
,
case1
,
case2
):
res
=
0
if
d
<
pi
/
9
:
res
=
(
pi
/
9
-
d
)
*
9
/
pi
...
...
@@ -79,6 +84,9 @@ def voisins(graphe,x,y):
return
(
flat
)
print
(
"alt = "
,
altCaseXY
((
1560
,
1590
)))
print
(
"pop = "
,
popCaseXY
((
1560
,
1590
)))
y
=
1591
x
=
range
(
4830
)
...
...
@@ -87,12 +95,14 @@ print(max(z))
plt
.
plot
(
x
,
z
)
plt
.
show
()
print
(
"alt = "
,
altCaseXY
((
1560
,
1590
)))
newWidth
=
4830
//
15
newHeigth
=
3510
//
15
graphe
=
[[[
popCaseXY
((
i
*
15
,
j
*
15
)),
altCaseXY
((
i
*
15
,
j
*
15
)),[
0
for
_
in
range
(
15
)]]
for
i
in
range
(
newWidth
)]
for
j
in
range
(
newHeigth
)]
#### initialization of the graph ####
pixelOutOfRize
=
[[
4422
,
2108
],[
4422
,
2109
],[
4422
,
2110
],[
4422
,
2111
],[
4423
,
2109
],[
4423
,
2110
],[
4423
,
2111
],[
4424
,
2110
],[
4425
,
2111
]]
pixelOutOfRize
.
append
([[
i
,
2111
]
for
i
in
range
(
4429
,
4436
)])
...
...
@@ -104,16 +114,21 @@ pixelOutOfRize.append([[4435,j] for j in range(2104,2110)])
for
i
in
range
(
4422
,
4436
):
#pixels de rize
for
j
in
range
(
2103
,
2218
):
if
[
i
,
j
]
not
in
pixelOutOfRize
:
graphe
[
i
//
15
][
j
//
15
][
1
]
+=
(
-
getPopXY
(
i
,
j
))
graphe
[
i
//
15
][
j
//
15
][
2
][
0
]
+=
getPopXY
(
i
,
j
)
graphe
[
j
//
15
][
i
//
15
][
0
]
+=
(
-
getPopXY
((
i
,
j
)))
graphe
[
j
//
15
][
i
//
15
][
0
]
+=
getPopXY
((
i
,
j
))
print
(
len
(
graphe
),
'taille graphe'
)
def
getZombiesOlder
(
listZombies
):
for
i
in
range
(
15
):
listZombies
[
14
-
i
]
=
listZombies
[
13
-
i
]
listZombies
[
0
]
=
0
def
getGraphOlder
(
graphe
):
"""def getGraphOlder(graphe):
for i in range(newWidth):
for
j
in
range
(
newHeigth
):
for j in range(newHeigth):
"""
def
stepOne
(
graphe
):
#
def stepOne(graphe):
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment