Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
U
uwb
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
nlas
uwb
Commits
815010f9
Commit
815010f9
authored
2 years ago
by
Adriaens, Ines
Browse files
Options
Downloads
Patches
Plain Diff
start summary behaviour over day
parent
ce864035
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
__pycache__/heatmap_visualisation.cpython-39.pyc
+0
-0
0 additions, 0 deletions
__pycache__/heatmap_visualisation.cpython-39.pyc
exploration.py
+174
-11
174 additions, 11 deletions
exploration.py
heatmap_visualisation.py
+12
-7
12 additions, 7 deletions
heatmap_visualisation.py
with
186 additions
and
18 deletions
__pycache__/heatmap_visualisation.cpython-39.pyc
0 → 100644
+
0
−
0
View file @
815010f9
File added
This diff is collapsed.
Click to expand it.
exploration.py
+
174
−
11
View file @
815010f9
...
...
@@ -11,11 +11,13 @@ os.chdir(r"C:\Users\adria036\OneDrive - Wageningen University & Research\iAdriae
#%% import modules
from
datetime
import
date
,
timedelta
,
datetime
from
datetime
import
date
,
datetime
import
pandas
as
pd
import
numpy
as
np
import
matplotlib.pyplot
as
plt
import
matplotlib
import
seaborn
as
sns
from
heatmap_visualisation
import
heatmap_barn
#%matplotlib qt
#%% set paths and constants and load data
...
...
@@ -165,12 +167,12 @@ for cow in cows:
plt
.
close
()
# summarize variables
data
[[
"
xnew
"
,
"
X
"
,
"
ynew
"
,
"
y
"
]].
describe
()
data
[
""
]
test
=
data
.
loc
[(
data
[
"
ynew
"
]
<
-
17
)
&
(
data
[
"
ynew
"
]
>
-
19
)
&
(
data
[
"
cowid
"
]
=
cow
),:]
sns
.
scatterplot
(
data
=
test
,
x
=
test
.
index
.
values
,
y
=
"
ynew
"
)
sns
.
scatterplot
(
data
=
test
,
x
=
test
.
index
.
values
,
y
=
"
y
"
)
#
# summarize variables
#
data[["xnew","X","ynew","y"]].describe()
#
data[""]
#
test = data.loc[(data["ynew"] < -17) & (data["ynew"] > -19) & (data["cowid"] = cow),:]
#
sns.scatterplot(data=test, x = test.index.values, y = "ynew")
#
sns.scatterplot(data=test, x = test.index.values, y = "y")
...
...
@@ -183,13 +185,11 @@ sns.scatterplot(data=test, x = test.index.values, y = "y")
- explore gaps and gapsize
"""
#gapsize
#-------------------------------gapsize----------------------------------------
subset
=
data
.
loc
[
data
[
"
X
"
].
isna
(),[
"
cowid
"
,
"
barn
"
,
"
date
"
,
"
t
"
]]
sumdata
=
subset
.
groupby
(
by
=
[
"
cowid
"
,
"
barn
"
,
"
date
"
]).
count
()
subset
=
data
.
loc
[
data
[
"
xnew
"
].
isna
(),[
"
cowid
"
,
"
barn
"
,
"
date
"
,
"
t
"
]]
test
=
subset
.
groupby
(
by
=
[
"
cowid
"
,
"
barn
"
,
"
date
"
]).
count
()
sumdata
[
"
xnew
"
]
=
test
[
"
t
"
]
sumdata
[
"
gapperc
"
]
=
sumdata
[
"
t
"
]
/
864
...
...
@@ -209,10 +209,173 @@ ax = sns.scatterplot(data=sumdata,x = "xlabel", y = "gap180s",
palette
=
"
tab10
"
,
hue
=
"
cowid
"
,
style
=
"
date
"
,
legend
=
False
)
plt
.
savefig
(
svpath
+
"
\\
gap_imputed.png
"
)
# average gap
#------------------------------behaviour over 24h------------------------------
#sns.set_style("darkgrid") # whitegrid, dark, white, ticks
cows
=
data
[
"
cowid
"
].
drop_duplicates
().
reset_index
(
drop
=
1
)
for
cow
in
cows
:
print
(
cow
)
days
=
data
.
loc
[(
data
[
"
cowid
"
]
==
cow
),[
"
date
"
]].
drop_duplicates
()
days
=
days
.
sort_values
(
by
=
[
"
date
"
]).
reset_index
(
drop
=
1
)
for
dd
in
days
[
"
date
"
]:
print
(
dd
)
subset
=
data
.
loc
[(
data
[
"
cowid
"
]
==
cow
)
&
\
(
data
[
"
date
"
]
==
dd
),:].
copy
()
palette
=
{
"
walking
"
:
"
darkorange
"
,
"
concentrate
"
:
"
tan
"
,
"
cubicle_A
"
:
"
darkorchid
"
,
"
cubicle_B
"
:
"
violet
"
,
"
cubicle_C
"
:
"
palevioletred
"
,
"
feed_rack
"
:
"
crimson
"
,
"
drink_trough
"
:
"
gold
"
,
"
slatted
"
:
"
limegreen
"
,
"
resting
"
:
"
darkorchid
"
,
"
waiting_area
"
:
"
mediumseagreen
"
,
"
unknown
"
:
"
royalblue
"
}
fig
,
ax
=
plt
.
subplots
(
1
,
1
,
figsize
=
(
18
,
7
))
sns
.
scatterplot
(
data
=
subset
,
x
=
"
t
"
,
y
=
"
zone
"
,
hue
=
"
area
"
,
marker
=
"
s
"
,
linewidth
=
0
,
palette
=
palette
,
legend
=
False
)
sns
.
lineplot
(
data
=
subset
,
x
=
'
t
'
,
y
=
'
zone
'
,
linewidth
=
0.2
,
color
=
'
k
'
)
ax
.
set_yticks
(
range
(
9
))
ax
.
set_yticklabels
([
"
walking
"
,
"
cubicles
"
,
"
feed rack
"
,
"
drink trough
"
,
"
concentrate feeder
"
,
"
slatted (b62)
"
,
"
resting (b62)
"
,
"
waiting area
"
,
"
unknown
"
])
sns
.
set_style
(
"
ticks
"
)
ax
.
set_xticks
([
0
,
14400
,
28800
,
43200
,
57600
,
72000
,
86400
])
ax
.
set_xticklabels
([
'
00:00
'
,
'
04:00
'
,
'
08:00
'
,
'
12:00
'
,
'
16:00
'
,
'
20:00
'
,
'
24:00
'
])
ax
.
set_xlabel
(
"
time [h]
"
)
ax
.
set_title
(
"
cow =
"
+
str
(
cow
)
+
'
, date =
'
+
str
(
dd
))
ax
.
set_xlim
([
-
1000
,
87400
])
plt
.
savefig
(
svpath
+
"
\\
timebudget_cow_
"
+
str
(
cow
)
+
"
_
"
+
str
(
dd
).
replace
(
"
-
"
,
""
)
+
"
.png
"
)
plt
.
close
()
# ------------------------- individual cow heatmaps ---------------------------
cows
=
data
[
"
cowid
"
].
drop_duplicates
().
reset_index
(
drop
=
1
)
#barn limits
barn
=
{
"
60
"
:[
64.8
,
75.6
],
"
61
"
:[
54
,
64.8
],
"
62
"
:[
32.4
,
54
],
"
70
"
:[
21.6
,
32.4
],
"
71
"
:[
10.8
,
21.6
],
"
72
"
:[
0
,
10.8
],
"
73
"
:[
-
10.8
,
0
],
}
# plots per cow-day
for
cow
in
cows
[
"
cowid
"
]:
# unique days
days
=
data
.
loc
[(
data
[
"
cowid
"
]
==
cow
),[
"
date
"
]].
drop_duplicates
()
days
=
days
.
sort_values
(
by
=
[
"
date
"
]).
reset_index
(
drop
=
1
)
# select data and create heatmaps
for
dd
in
days
[
"
date
"
]:
print
(
cow
,
dd
)
# select data
data_x
=
data
.
loc
[(
data
[
"
cowid
"
]
==
cow
)
&
(
data
[
"
date
"
]
==
dd
),
"
X
"
]
data_y
=
data
.
loc
[(
data
[
"
cowid
"
]
==
cow
)
&
(
data
[
"
date
"
]
==
dd
),
"
y
"
]
# set limits (based on information barn)
barnnr
=
int
(
data
.
loc
[(
data
[
"
cowid
"
]
==
cow
)
&
(
data
[
"
date
"
]
==
dd
),
"
barn
"
].
mean
())
x_lim
=
barn
[
str
(
barnnr
)]
y_lim
=
[
-
18
,
0
]
# plot heatmap
# matplotlib.rcdefaults()
fig
,
ax
=
plt
.
subplots
()
ax
=
heatmap_barn
(
data_x
,
data_y
,
0.1
,
0.1
,
x_lim
,
y_lim
)
ax
.
set_xlabel
(
'
y coordinate
'
)
ax
.
set_ylabel
(
'
x coordinate
'
)
ax
.
set_title
(
"
barn =
"
+
str
(
barnnr
)
+
'
, cow =
'
+
str
(
cow
)
+
\
"
, date =
"
+
datetime
.
strftime
(
dd
,
"
%Y-%m-%d
"
).
replace
(
"
-
"
,
""
))
ax
.
xaxis
.
tick_top
()
plt
.
savefig
(
svpath
+
"
//heatmap_
"
+
str
(
cow
)
+
"
_
"
+
str
(
dd
).
replace
(
"
-
"
,
""
))
plt
.
close
()
#------------------combine heatmap with budget-area over time------------------
#barn limits
barn
=
{
"
60
"
:[
64.8
,
75.6
],
"
61
"
:[
54
,
64.8
],
"
62
"
:[
32.4
,
54
],
"
70
"
:[
21.6
,
32.4
],
"
71
"
:[
10.8
,
21.6
],
"
72
"
:[
0
,
10.8
],
"
73
"
:[
-
10.8
,
0
],
}
palette
=
{
"
walking
"
:
"
darkorange
"
,
"
concentrate
"
:
"
tan
"
,
"
cubicle_A
"
:
"
darkorchid
"
,
"
cubicle_B
"
:
"
violet
"
,
"
cubicle_C
"
:
"
palevioletred
"
,
"
feed_rack
"
:
"
crimson
"
,
"
drink_trough
"
:
"
gold
"
,
"
slatted
"
:
"
limegreen
"
,
"
resting
"
:
"
darkorchid
"
,
"
waiting_area
"
:
"
mediumseagreen
"
,
"
unknown
"
:
"
royalblue
"
}
cows
=
data
[
"
cowid
"
].
drop_duplicates
().
reset_index
(
drop
=
1
)
for
cow
in
cows
:
print
(
cow
)
days
=
data
.
loc
[(
data
[
"
cowid
"
]
==
cow
),[
"
date
"
]].
drop_duplicates
()
days
=
days
.
sort_values
(
by
=
[
"
date
"
]).
reset_index
(
drop
=
1
)
for
dd
in
days
[
"
date
"
]:
print
(
dd
)
subset
=
data
.
loc
[(
data
[
"
cowid
"
]
==
cow
)
&
\
(
data
[
"
date
"
]
==
dd
),:].
copy
()
fig
,
ax
=
plt
.
subplots
(
1
,
2
,
gridspec_kw
=
{
'
width_ratios
'
:
[
3
,
1.5
]},
figsize
=
(
22
,
7
))
# plot scatter + line
sns
.
scatterplot
(
data
=
subset
,
x
=
"
t
"
,
y
=
"
zone
"
,
hue
=
"
area
"
,
marker
=
"
s
"
,
linewidth
=
0
,
palette
=
palette
,
legend
=
False
,
ax
=
ax
[
0
])
sns
.
lineplot
(
data
=
subset
,
x
=
'
t
'
,
y
=
'
zone
'
,
linewidth
=
0.2
,
color
=
'
k
'
,
ax
=
ax
[
0
])
ax
[
0
].
set_yticks
(
range
(
9
))
ax
[
0
].
set_yticklabels
([
"
walking
"
,
"
cubicles
"
,
"
feed rack
"
,
"
drink trough
"
,
"
concentrate feeder
"
,
"
slatted (b62)
"
,
"
resting (b62)
"
,
"
waiting area
"
,
"
unknown
"
])
sns
.
set_style
(
"
ticks
"
)
ax
[
0
].
set_xticks
([
0
,
14400
,
28800
,
43200
,
57600
,
72000
,
86400
])
ax
[
0
].
set_xticklabels
([
'
00:00
'
,
'
04:00
'
,
'
08:00
'
,
'
12:00
'
,
'
16:00
'
,
'
20:00
'
,
'
24:00
'
])
ax
[
0
].
set_xlabel
(
"
time [h]
"
)
ax
[
0
].
set_title
(
"
cow =
"
+
str
(
cow
)
+
'
, date =
'
+
str
(
dd
))
ax
[
0
].
set_xlim
([
-
1000
,
87400
])
# set limits (based on information barn)
barnnr
=
int
(
data
.
loc
[(
data
[
"
cowid
"
]
==
cow
)
&
(
data
[
"
date
"
]
==
dd
),
"
barn
"
].
mean
())
x_lim
=
barn
[
str
(
barnnr
)]
y_lim
=
[
-
18
,
0
]
# plot heatmap
ax
[
1
]
=
heatmap_barn
(
subset
[
"
xnew
"
],
subset
[
"
ynew
"
],
0.1
,
0.1
,
x_lim
,
y_lim
)
ax
[
1
].
set_xlabel
(
'
y coordinate
'
)
ax
[
1
].
set_ylabel
(
'
x coordinate
'
)
ax
[
1
].
set_title
(
"
barn =
"
+
str
(
barnnr
)
+
'
, cow =
'
+
str
(
cow
)
+
\
"
, date =
"
+
str
(
dd
))
ax
[
1
].
xaxis
.
tick_top
()
ax
[
1
].
yaxis
.
tick_right
()
ax
[
1
].
yaxis
.
set_label_position
(
"
right
"
)
plt
.
savefig
(
svpath
+
"
\\
spatial_cow_
"
+
str
(
cow
)
+
"
_
"
+
str
(
dd
).
replace
(
"
-
"
,
""
)
+
"
.png
"
)
plt
.
close
()
\ No newline at end of file
This diff is collapsed.
Click to expand it.
heatmap_visualisation.py
+
12
−
7
View file @
815010f9
...
...
@@ -12,7 +12,8 @@ import numpy as np
# from read_data_sewio import start_end_dates, read_all_data, read_ids, combine_data_id
import
os
import
seaborn
as
sns
import
matplotlib
as
plt
import
matplotlib
import
matplotlib.pyplot
as
plt
# path_out
...
...
@@ -113,11 +114,15 @@ def heatmap_barn(data_x,data_y,xstep,ystep,x_lim,y_lim):
ax
=
sns
.
heatmap
(
df
,
yticklabels
=
round
(
1
/
xstep
),
xticklabels
=
round
(
1
/
ystep
*
2
),
robust
=
True
robust
=
True
,
cbar
=
False
)
return
ax
"""
#%% usage
# ------------------------- individual cow heatmaps ---------------------------
# unique cows
...
...
@@ -163,14 +168,14 @@ for cow in cows["cowid"]:
y_lim = [-18,0] #[data_y.min(),data_y.max()]
# plot heatmap
plt
.
rcdefaults
()
fig
,
ax
=
plt
.
pyplot
.
subplots
()
matplotlib
.rcdefaults()
fig, ax = plt.subplots()
ax = heatmap_barn(data_x, data_y, xstep, ystep, x_lim, y_lim)
ax.set_xlabel(
'
y coordinate
'
)
ax.set_ylabel(
'
x coordinate
'
)
ax.set_title(
"
barn =
"
+str(barnnr) +
'
, cow =
'
+ str(cow) +
"
, date =
"
+ datetime.strftime(dd,
"
%Y-%m-%d
"
).replace(
"
-
"
,
""
))
ax.xaxis.tick_top()
plt
.
pyplot
.
savefig
(
path_out
+
"
//heatmap_
"
+
str
(
cow
)
+
"
_
"
+
datetime
.
strftime
(
dd
,
"
%Y-%m-%d
"
).
replace
(
"
-
"
,
""
))
plt
.
pyplot
.
close
()
plt.savefig(path_out +
"
//heatmap_
"
+ str(cow) +
"
_
"
+ datetime.strftime(dd,
"
%Y-%m-%d
"
).replace(
"
-
"
,
""
))
plt.close()
"""
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment