11 KiB
- Overview of
daily-breakdowns.py
Script - Design/Trade-Off Notes and Decisions
- Files Used
- Files Produced
- What the Script Does
- Examples/Screenshots
Overview of daily-breakdowns.py
Script
I have assumed you have ran ./separator.sh
and ./totalilator.sh
, created a
virtual-environment (venv) (python3 -m venv venv
) and installed the dependencies
(via pip -r install requirements.txt
). See the project's README for more
information on setting the repository up.
cd <PATH TO RITHERDON-CHARTS>
# Activate the virtual-environment if you haven't...
source venv/bin/activate
# Run the script...
python daily-breakdowns.py
Design/Trade-Off Notes and Decisions
-
This script is the main one regarding the chart generation part of the project.
- The original
../data/lm1-exhibiton-all.csv
and../data/lm2-exhibiton-all.csv
files are too large to work with on average hardware. So, I had to split it them up (using./separator.sh
) into smaller files. If you are use the CSV files (found in../data
) with Microsoft Excel, I recommend the ones listed in the Files Used section below.
- The original
- Each day (for each Light Meter) has its data processed and a chart is made
from that data. This is cause for the bulk of the files produced in the
../output
directory. -
The reason for line charts is because Nicola would like to use the lines formed in these charts for an artwork.
- Ideally, she would prefer to use the files containing all the data, for a given Light Meter, but they are too cumbersome. Splitting the original CSV files into smaller (daily) ones was the preferred compromise.
- The charts produced for Light Meter 1 use blue lines and orange for Light Meter 2. I standardised on these two colours to help quickly identify the Light Meter depicted in a given chart. There is no specific reasons for the colours chosen.
-
The exhibition ran until the 1^st August 2021, which a Sunday. Ritherdon was not open that day so no readings were recorded. I have omitted the files for that date because of this.
- It was easier to stop the
separator.sh
script from splitting files up at the end of July (2021) than extending it for an extra day in August (2021). This is especially true when you realise there is no usable data for 1^st August.
- It was easier to stop the
- The data illustrated in all the charts (produced with this script) consist of the times each Light Meter was on for a given day. Both Light Meters were sometimes not turned on during working hours (in Ritherdon); This is the main cause for the inconsistencies across the x-axis timestamps in the charts produced by this script. Basically, the data is messy and the results show some of the mess.
- The staff at Ritherdon turned the Light Meters on and kept them on until they finished their shift. Technically, the Light Meters could have been turned on and off multiple times a day but that behaviour never happened. The code in this script makes the assumption each day was one continuous series of readings because of this. The code in this script would need to change if that were not the case.
Files Used
ls ../data/light-meter-*/*.csv
../data/light-meter-1/2021-06-13.csv
../data/light-meter-1/2021-06-14.csv
../data/light-meter-1/2021-06-15.csv
../data/light-meter-1/2021-06-16.csv
../data/light-meter-1/2021-06-17.csv
../data/light-meter-1/2021-06-18.csv
../data/light-meter-1/2021-06-19.csv
../data/light-meter-1/2021-06-20.csv
../data/light-meter-1/2021-06-21.csv
../data/light-meter-1/2021-06-22.csv
../data/light-meter-1/2021-06-23.csv
../data/light-meter-1/2021-06-24.csv
../data/light-meter-1/2021-06-25.csv
../data/light-meter-1/2021-06-26.csv
../data/light-meter-1/2021-06-27.csv
../data/light-meter-1/2021-06-28.csv
../data/light-meter-1/2021-06-29.csv
../data/light-meter-1/2021-06-30.csv
../data/light-meter-1/2021-07-01.csv
../data/light-meter-1/2021-07-02.csv
../data/light-meter-1/2021-07-03.csv
../data/light-meter-1/2021-07-04.csv
../data/light-meter-1/2021-07-05.csv
../data/light-meter-1/2021-07-06.csv
../data/light-meter-1/2021-07-07.csv
../data/light-meter-1/2021-07-08.csv
../data/light-meter-1/2021-07-09.csv
../data/light-meter-1/2021-07-10.csv
../data/light-meter-1/2021-07-11.csv
../data/light-meter-1/2021-07-12.csv
../data/light-meter-1/2021-07-13.csv
../data/light-meter-1/2021-07-14.csv
../data/light-meter-1/2021-07-15.csv
../data/light-meter-1/2021-07-16.csv
../data/light-meter-1/2021-07-17.csv
../data/light-meter-1/2021-07-18.csv
../data/light-meter-1/2021-07-19.csv
../data/light-meter-1/2021-07-20.csv
../data/light-meter-1/2021-07-21.csv
../data/light-meter-1/2021-07-22.csv
../data/light-meter-1/2021-07-23.csv
../data/light-meter-1/2021-07-24.csv
../data/light-meter-1/2021-07-25.csv
../data/light-meter-1/2021-07-26.csv
../data/light-meter-1/2021-07-27.csv
../data/light-meter-1/2021-07-28.csv
../data/light-meter-1/2021-07-29.csv
../data/light-meter-1/2021-07-30.csv
../data/light-meter-2/2021-06-13.csv
../data/light-meter-2/2021-06-14.csv
../data/light-meter-2/2021-06-15.csv
../data/light-meter-2/2021-06-16.csv
../data/light-meter-2/2021-06-17.csv
../data/light-meter-2/2021-06-18.csv
../data/light-meter-2/2021-06-19.csv
../data/light-meter-2/2021-06-20.csv
../data/light-meter-2/2021-06-21.csv
../data/light-meter-2/2021-06-22.csv
../data/light-meter-2/2021-06-23.csv
../data/light-meter-2/2021-06-24.csv
../data/light-meter-2/2021-06-25.csv
../data/light-meter-2/2021-06-26.csv
../data/light-meter-2/2021-06-27.csv
../data/light-meter-2/2021-06-28.csv
../data/light-meter-2/2021-06-29.csv
../data/light-meter-2/2021-06-30.csv
../data/light-meter-2/2021-07-01.csv
../data/light-meter-2/2021-07-02.csv
../data/light-meter-2/2021-07-03.csv
../data/light-meter-2/2021-07-04.csv
../data/light-meter-2/2021-07-05.csv
../data/light-meter-2/2021-07-06.csv
../data/light-meter-2/2021-07-07.csv
../data/light-meter-2/2021-07-08.csv
../data/light-meter-2/2021-07-09.csv
../data/light-meter-2/2021-07-10.csv
../data/light-meter-2/2021-07-11.csv
../data/light-meter-2/2021-07-12.csv
../data/light-meter-2/2021-07-13.csv
../data/light-meter-2/2021-07-14.csv
../data/light-meter-2/2021-07-15.csv
../data/light-meter-2/2021-07-16.csv
../data/light-meter-2/2021-07-17.csv
../data/light-meter-2/2021-07-18.csv
../data/light-meter-2/2021-07-19.csv
../data/light-meter-2/2021-07-20.csv
../data/light-meter-2/2021-07-21.csv
../data/light-meter-2/2021-07-22.csv
../data/light-meter-2/2021-07-23.csv
../data/light-meter-2/2021-07-24.csv
../data/light-meter-2/2021-07-25.csv
../data/light-meter-2/2021-07-26.csv
../data/light-meter-2/2021-07-27.csv
../data/light-meter-2/2021-07-28.csv
../data/light-meter-2/2021-07-29.csv
../data/light-meter-2/2021-07-30.csv
Files Produced
ls ../output/lm*-2021-*-*.html
../output/lm1-2021-06-13.html
../output/lm1-2021-06-14.html
../output/lm1-2021-06-15.html
../output/lm1-2021-06-16.html
../output/lm1-2021-06-17.html
../output/lm1-2021-06-18.html
../output/lm1-2021-06-19.html
../output/lm1-2021-06-20.html
../output/lm1-2021-06-21.html
../output/lm1-2021-06-22.html
../output/lm1-2021-06-23.html
../output/lm1-2021-06-24.html
../output/lm1-2021-06-25.html
../output/lm1-2021-06-26.html
../output/lm1-2021-06-27.html
../output/lm1-2021-06-28.html
../output/lm1-2021-06-29.html
../output/lm1-2021-06-30.html
../output/lm1-2021-07-01.html
../output/lm1-2021-07-02.html
../output/lm1-2021-07-03.html
../output/lm1-2021-07-04.html
../output/lm1-2021-07-05.html
../output/lm1-2021-07-06.html
../output/lm1-2021-07-07.html
../output/lm1-2021-07-08.html
../output/lm1-2021-07-09.html
../output/lm1-2021-07-10.html
../output/lm1-2021-07-11.html
../output/lm1-2021-07-12.html
../output/lm1-2021-07-13.html
../output/lm1-2021-07-14.html
../output/lm1-2021-07-15.html
../output/lm1-2021-07-16.html
../output/lm1-2021-07-17.html
../output/lm1-2021-07-18.html
../output/lm1-2021-07-19.html
../output/lm1-2021-07-20.html
../output/lm1-2021-07-21.html
../output/lm1-2021-07-22.html
../output/lm1-2021-07-23.html
../output/lm1-2021-07-24.html
../output/lm1-2021-07-25.html
../output/lm1-2021-07-26.html
../output/lm1-2021-07-27.html
../output/lm1-2021-07-28.html
../output/lm1-2021-07-29.html
../output/lm1-2021-07-30.html
../output/lm2-2021-06-13.html
../output/lm2-2021-06-14.html
../output/lm2-2021-06-15.html
../output/lm2-2021-06-16.html
../output/lm2-2021-06-17.html
../output/lm2-2021-06-18.html
../output/lm2-2021-06-19.html
../output/lm2-2021-06-20.html
../output/lm2-2021-06-21.html
../output/lm2-2021-06-22.html
../output/lm2-2021-06-23.html
../output/lm2-2021-06-24.html
../output/lm2-2021-06-25.html
../output/lm2-2021-06-26.html
../output/lm2-2021-06-27.html
../output/lm2-2021-06-28.html
../output/lm2-2021-06-29.html
../output/lm2-2021-06-30.html
../output/lm2-2021-07-01.html
../output/lm2-2021-07-02.html
../output/lm2-2021-07-03.html
../output/lm2-2021-07-04.html
../output/lm2-2021-07-05.html
../output/lm2-2021-07-06.html
../output/lm2-2021-07-07.html
../output/lm2-2021-07-08.html
../output/lm2-2021-07-09.html
../output/lm2-2021-07-10.html
../output/lm2-2021-07-11.html
../output/lm2-2021-07-12.html
../output/lm2-2021-07-13.html
../output/lm2-2021-07-14.html
../output/lm2-2021-07-15.html
../output/lm2-2021-07-16.html
../output/lm2-2021-07-17.html
../output/lm2-2021-07-18.html
../output/lm2-2021-07-19.html
../output/lm2-2021-07-20.html
../output/lm2-2021-07-21.html
../output/lm2-2021-07-22.html
../output/lm2-2021-07-23.html
../output/lm2-2021-07-24.html
../output/lm2-2021-07-25.html
../output/lm2-2021-07-26.html
../output/lm2-2021-07-27.html
../output/lm2-2021-07-28.html
../output/lm2-2021-07-29.html
../output/lm2-2021-07-30.html
What the Script Does
This script produces a series of charts illustrating the readings taken for each
day the exhibition was running (excluding the 1^st August 2021). It does this by
reading all the files listed above in the Files Used section. It processes the
data for both Light Meters, also. Conceptually, there is less faffing in this
script than in some of the others. It takes the values in the time
column (in
the CSV files) for the x-axis and the values in the reading
column for the
y-axis. Below is an example of the what the data looks like in the CSV
files. The example is from ../data/light-meter-1/2021-06-14.csv
.
time | reading |
---|---|
2021-06-14 06:45:54.000000 | -111 |
2021-06-14 06:45:58.000000 | 0 |
2021-06-14 06:46:01.000000 | 2 |
2021-06-14 06:46:03.000000 | 3 |
2021-06-14 06:46:06.000000 | 3 |
2021-06-14 06:46:08.000000 | 4 |
2021-06-14 06:46:11.000000 | 4 |
2021-06-14 06:46:13.000000 | 4 |
2021-06-14 06:46:15.000000 | 5 |
MORE READINGS HERE | … |
2021-06-14 15:59:59.000000 | 17 |
2021-06-14 16:00:00.000000 | 17 |
2021-06-14 16:00:01.000000 | 17 |
When the script has finishing processing a file, you should get a chart with a single continuous line on it containing light readings for the entire day (excluding non-work hours).
Examples/Screenshots
- Blue used for Ligth Meter 1 charts
- Orange used for Light Meter 2 charts