Figures and code
Every figure in these slides is a claim, and a claim without its computation cannot be checked. So here is the code — one figure at a time, as each is opened.
By Robin Girard, MINES Paris — PSL, Centre PERSEE. The slides themselves are on the course page.
Everything below lives in one repository: bachelor_intro_to_energy_figures. Code under the MIT licence, figures under CC BY 4.0. No third-party data is redistributed: where a figure consumes a dataset, the repository tells you how to fetch it from the source, it does not ship it.
The steam engine, step by step
Quatre machines dessinées dans la même convention graphique, chacune en plusieurs phases qui se superposent exactement à l’écran : la boîte englobante est identique d’une phase à l’autre, ce qui permet de les empiler dans PowerPoint pour animer le cycle sans que rien ne bouge.
Source — tikz/machines_vapeur · Build — ./build_layers.sh ·
Needs — pdflatex, pdftocairo ·
Data — none, this is a drawing
Papin’s piston and cylinder, 1690 — phase 0

Deck 2 · figures/Papin_P0.png
Papin — phase 1

Deck 2 · figures/Papin_P1.png
Papin — phase 2

Deck 2 · figures/Papin_P2.png
Papin — phase 3

Deck 2 · figures/Papin_P3.png
Papin — phase 4

Deck 2 · figures/Papin_P4.png
Savery’s engine, 1698 — phase 0

Deck 2 · figures/Savery_P0.png
Savery — phase 1

Deck 2 · figures/Savery_P1.png
Savery — phase 2

Deck 2 · figures/Savery_P2.png
Savery — phase 3

Deck 2 · figures/Savery_P3.png
Newcomen’s atmospheric engine, 1712 — phase 0

Deck 2 · figures/Newcomen_P0.png
Newcomen — phase 1

Deck 2,3 · figures/Newcomen_P1.png
Newcomen — phase 2

Deck 2,3 · figures/Newcomen_P2.png
Newcomen — phase 3

Deck 2,3 · figures/Newcomen_P3.png
Watt’s separate condenser, 1769 — phase 0

Deck 2 · figures/Watt_P0.png
Watt — phase 1

Deck 2 · figures/Watt_P1.png
Watt — phase 2

Deck 2 · figures/Watt_P2.png
Watt — phase 3

Deck 2 · figures/Watt_P3.png
Watt — phase 4

Deck 2 · figures/Watt_P4.png
Papin — incremental layer 2

Deck 2 · figures/Papin_L2.png
The Carnot ceiling, and its three uses
Les trois planches des slides 11, 28 et 32 du déck 3 : la même borne thermodynamique lue dans les trois sens — chaleur vers mouvement (le moteur), mouvement vers chaleur (la pompe à chaleur), mouvement vers froid (le réfrigérateur). C’est délibérément la même figure à chaque fois : le propos est qu’il n’y a qu’une seule borne.
Source — tikz/machines_vapeur · Build — ./build_carnot.sh ·
Needs — pdflatex, pdftocairo ·
Data — none, this is a drawing
Carnot ceiling: heat to movement

Deck 3 — slide 11 · figures/Uses_P0.png
Carnot ceiling: movement to heat

Deck 3 — slide 28 · figures/Uses_P1.png
Carnot ceiling: movement to cold

Deck 3 — slide 32 · figures/Uses_P2.png
A timeline of energy units
La frise qui accompagne la slide des unités : le joule, la calorie, le kilowattheure et la tonne équivalent pétrole n’ont pas été définis par les mêmes gens ni pour les mêmes raisons, et la CGPM de 1875 est le moment où l’unification devient politique autant que scientifique.
Source — tikz/metrologie_etat · Build — pdflatex frise_units_vertical.tex ·
Needs — pdflatex ·
Data — none, this is a drawing
Energy units, a vertical timeline
Deck 2 — slide 27 · figures/frise_units_vertical.svg
Higher and lower heating value
Le schéma de principe de la slide 29 du déck 2. Ce que le PCS compte et que le PCI ne compte pas, c’est la chaleur latente de la vapeur d’eau produite par la combustion — d’où les chaudières à condensation qui affichent plus de 100 % de rendement sans violer le premier principe.
Source — tikz/pcs_pci · Build — pdflatex pcs_pci.tex ·
Needs — pdflatex ·
Data — none, this is a drawing
HHV vs LHV — what the difference is made of
Deck 2 — slide 29 · figures/pcs_pci.svg
Not opened yet
The Python (matplotlib) figures of deck 1, and two of deck 3, are inventoried but not yet in the repository. Each needs the same work: lift the script out of its study folder, attach the aggregated data it actually reads, and write the fetch script for its sources.
| Family | Deck | Fig. | Data access |
|---|---|---|---|
co2_evolution_share |
1 | 3 | open — toutes les sources se retéléchargent par programme |
visual_emissions |
1 | 2 | manual — au moins une source se dépose à la main |
energy_taxes |
1 | 2 | open — toutes les sources se retéléchargent par programme |
prix_elec |
1 | 4 | closed — au moins une source n’est pas redistribuable |
empilement |
1,3 | 2 | open — toutes les sources se retéléchargent par programme |
sankey_world |
3 | 1 | open — toutes les sources se retéléchargent par programme |
coal |
1 | 2 | manual — au moins une source se dépose à la main |
reserves_fossiles |
1 | 4 | manual — au moins une source se dépose à la main |
energy_development |
1 | 1 | open — toutes les sources se retéléchargent par programme |
sufficiency |
1 | 1 | manual — au moins une source se dépose à la main |
aging_population |
1 | 8 | open — toutes les sources se retéléchargent par programme |
conversion_network |
2 | 1 | open — toutes les sources se retéléchargent par programme |
One figure is closed and will stay that way: the distribution of the
energy cost burden rests on the microdata of the 2020 French national
housing survey, which is released through Progedo. The script will be
published; the data cannot be.
How this inventory was made
Not from memory. The 287 images embedded in the three .pptx files
were matched by fingerprint against the 1 673 image files of the course
folder — exact hash, then a perceptual hash that survives PowerPoint’s
recompression, then for SVG a match on text content. A figure is here
only if it is really in a published slide.
About 230 of those images matched nothing, and that is worth saying: they are photographs, screenshots of papers, and diagrams drawn directly in PowerPoint. For those there is no code to publish — none exists.