Jupyter notebook for easy beer analysis.
- Python 3.10 environment with
jupyterlab
,ipywidgets
,uncertainties
andjson
packages. - pdflatex.
You can use conda to install Python dependencies. Installation using ENV.yml
from source folder:
conda env create -f ENV.yml
- Activate the Python environment.
- Start Jupyter lab.
- Open Distillation.ipynb notebook.
- Run all cells.
After running all cells, you should see several tabs with widgets. Now you can try to enter data manually from the provided data sets or load the state from 20221223_Test_Example.json
(it is in the json
folder).
This data set contains only the values that are important for calculations. This dataset should show be "all green" (show no statistical warnings), see image below.
Parameter | Series1 | Series2 |
---|---|---|
Mass of pycnometer (empty), g | 30.6907 | 30.7931 |
Mass of pycnometer (with water), g | 80.7730 | 80.8525 |
Mass of pycnometer (with beer), g | 81.0660 | 81.1460 |
Mass of pycnometer (with distillate), g | 80.5227 | 80.6018 |
Mass of pycnometer (with residue), g | 81.3434 | 81.4235 |
pH | 4.330 | 4.314 |
This data set contains only the values that are important for calculations. This dataset should show some statistical warnings, see image below.
Parameter | Series1 | Series2 |
---|---|---|
Mass of pycnometer (empty), g | 30.6907 | 30.7931 |
Mass of pycnometer (with water), g | 80.7730 | 80.8525 |
Mass of pycnometer (with beer), g | 81.4130 | 81.4907 |
Mass of pycnometer (with distillate), g | 80.3232 | 80.4118 |
Mass of pycnometer (with residue), g | 81.8783 | 81.9567 |
pH | 4.310 | 4.330 |
State loading creates a union state. If you currently have state A and loading state B, you get the union of states A and B, with priority for B. Example:
State A
widget1: valueX
widget2:
widget3: valueY
State B
widget1:
widget2: valueP
widget3: valueZ
Union of states A and B
widget1: valueX
widget2: valueP
widget3: valueZ
Once you have entered the data manually or loaded the state, you can go to the "Create report" tab, choose what to include in the report, and generate the report.
- Explore if a comma can be used as a decimal separator.
- LGC proficiency testing reports require an alternative number of decimal points. Explore the difference.
- Change name to Alzymologist Oy laboratory.
- Make it possible to run the notebook on a server (using Voila or another service).
- Add colour measurement functions (see EBC 9.6 & 8.5)
- Add functions for bitterness calculations.
- Check existing functions and data inside
update()
for correctness. - Pull most of the code from the notebook into the source folder (the notebook should be used as a frontend).