Goal and pace

Start with a 24-week first pass at an assumed 4–6 hours per week, around 96–144 hours. The goal is to read research, reproduce small analyses and ask testable questions, not master every energy-engineering field. Weeks are relative to your chosen start; all tasks are planned.

Allow 1 hour for reading, 1 for concepts/units, 1–2 for worked examples and 1–2 for writing/review. At 2–3 hours weekly, spread this over 48 weeks. At 8–10 hours, add replication and counterexamples instead of rushing into large models.

Entry and prerequisites

Check whether you can distinguish MW/MWh, calculate a weighted mean, read a CSV and explain a chart’s geography, period and units. Demonstrate existing Python/pandas skills to skip familiar material, but retain the week 4 reproduction. Beginners start with weeks 1–4. Use a spreadsheet first if coding blocks conceptual progress, then reproduce the same calculation in Python.

Before dispatch, explain variables, objectives and constraints. Before heat pumps, understand power, energy and efficiency. Before materials, distinguish stocks, flows and system boundaries. Repeat an exercise when its gate is unmet rather than advancing by date alone.

Route: data and units → markets and solar → storage service → industrial heat → grids and end use → materials and industry.

Weekly tasks

Resource codes refer to the GitHub entries below. Existing module numbers are retained but reordered by prerequisite. These are project-designed exercises, not a claim that every task exists in an upstream tutorial.

WeekTopicResourceModule / thesisCheckable outcome
1Units and boundariesESM01 / H1Make a units, stocks/flows and dates reference
2Python and tablesESM01 / H1Read a small CSV and distinguish zero from missing
3Time series and plottingESM01 / H1Document timezone, units and aggregation in one plot
4Data reproduction projectPUDL01 / H1Reproduce one existing validated observation or explain why not
5Markets and dispatchPSA01 / H1Draw a three-generator teaching merit order and hand-check dispatch
6Single-node market modelESM01 / H1Run a small example from tutorial 09 and change demand
7Solar output mechanismsPV02 / H1/H2Explain a simulated output change from temperature or tilt
8Solar value and system costCOST02 / H1/H2Calculate generation-weighted capture price and distinguish LCOE
9Storage energy balancePSA03 / H2Build an hourly charge/discharge/efficiency/state-of-charge table
10Storage dispatchPSA03 / H2Compare storage/no storage; check power, energy and terminal constraints
11Storage service costCOST03 / H2Hold service fixed and vary efficiency and utilization
12Solar-storage reviewESM03 / H2Draft a sprint separating scenario outputs from observations
13Delivered industrial costCOST05 / H4Separate energy, demand and tax charges within one geography
14Heat-pump fundamentalsHEAT06 / H3/H4Draw energy flows and explain temperature lift with a qualified COP example
15Industrial heat choicesHEAT07 / H4/H6Compare heat pump, resistance and storage by temperature and duty
16Matched heat-service comparisonESM07 / H4/H6Compare useful-heat costs; separate capital and operating costs
17Grid and connectionPSA04 / H5Sketch two nodes, vary a line limit and explain congestion
18EVs and flexible demandESM08 / H3/H5Compare fixed/flexible charging with equal mobility energy
19Power electronics and componentsDRIVE09 / H2/H6Map conversion stages and losses; control simulation is optional
20System-constraint reviewEUR12 / H4/H5Compare two regions on tariffs, connection and supply; avoid unsupported rankings
21Material stocks and flowsMAT10 / H6Draw a mass balance separating additions, replacements and recycling
22Components to material propertiesMAT11 / H6Document one component: materials, duty, properties, failure and sources
23Capstone investigationEUR12 / H4/H5/H6Answer one factory question across service, region, cost, grid, materials and counterevidence
24Reproduction and publication reviewPUDL12 / H4/H5/H6Reproduce from instructions; prepare sprint and learning summary; review thesis changes separately

Six stage gates

End of weekDeliverablePassing condition
4Traceable data noteValues, units, missingness and calculations agree; source locators recorded
8Solar-and-market noteDistinguish generation, capture price and system cost; explain a counterexample
12Solar-storage mini-sprintBalance energy; explain a sensitivity; label scenarios separately from facts
16Industrial heat comparisonSame geography and useful heat; specify temperature, utilization and cost boundaries
20Grid/end-use constraint mapDistinguish physical limits, price signals and administrative connection processes
24Capstone and learning summaryReproduce from sources, retain counterevidence and trace component/material requirements

GitHub resources and how to use them

Checked through GitHub API on 2026-10-08; none is archived. Last push indicates repository-wide activity, not tutorial freshness or a successful local run. ESM, PSA and COST form the core; use supplements when needed. HEAT is an older tutorial; MAT/ESM update less frequently. Pin their environments. DRIVE/BATT are optional advanced branches.

Code / repositoryLast push (UTC)Entry and task
ESM · open-energy-transition/data-science-for-esm2025-10-22Start here: Core: Python, arrays/plots, pandas, PyPSA, expansion and sector coupling; Linopy as needed.
PSA · PyPSA/PyPSA2026-10-08Start here: System models: select dispatch, storage or sector-coupling examples and explain inputs, constraints and outputs.
PV · pvlib/pvlib-python2026-10-08Start here: Solar supplement: position, temperature and output profiles; full device physics is optional.
COST · PyPSA/technology-data2026-10-05Start here: Trace efficiency, lifetime, cost units and sources for three technologies; assumptions are not market quotes.
HEAT · oemof/heat-pump-tutorial2024-07-19Start here: Start with the simple TESPy heat pump, then part-load and solph; this older workshop needs an environment check.
MAT · IndEcol/ODYM2025-09-26Start here: Materials supplement: start with tutorial 1, system boundaries and mass balance; later tutorials are optional.
EUR · PyPSA/pypsa-eur2026-10-08Start here: Advanced: inspect configuration, sources and limitations; defer full European runs.
PUDL · catalyst-cooperative/pudl2026-10-08Start here: Data methods: provenance, cleaning and definitions; US data is not a proxy for China or the EU.
DRIVE · Aalto-Electric-Drives/motulator2026-10-07Start here: Optional motor/grid-converter branch requiring circuits and control prerequisites.
BATT · pybamm-team/PyBaMM2026-10-08Start here: Optional battery-physics branch after system storage; cell results do not establish plant economics.

Start with week one

  1. Begin with ESM tutorial 01: variables, lists, arithmetic and a small table. Experienced users can focus on data boundaries.
  2. Explain MW versus MWh, capacity versus generation, sales versus stock, and observation versus publication dates.
  3. Calculate energy for 25 MW operating for 4 hours. Explain why annual output needs operating assumptions. These numbers are teaching assumptions.
  4. Select one existing research claim and record source, table/page, geography, period, units and one conclusion it cannot support.
  5. Write a short note: what did I confuse, and what evidence is still missing? Pass the units/boundaries check before continuing.

From learning to publication

Accumulate personal notes weekly. At each stage gate, curate one bilingual Learning article. Weeks 12, 16 and 24 can become Research Sprints; source and semantic review precede any edition. Keep calculations, execution logs and personal progress in the research workspace; publish curated explanations and sources. Exercises never automatically change evidence status or thesis confidence.

The following half-year and version maintenance

After the first pass, deepen the original twelve modules: months 7–8 reproduce one solar-storage or heat case; months 9–10 deepen grids, power electronics and materials; months 11–12 compare regions and reassess hypotheses. Choose one question at a time. PyBaMM, motulator and full-scale PyPSA-Eur are optional.

Review core releases and breaking changes monthly. Record a commit/tag, environment, input sources and dates when starting an exercise. Avoid changing versions midway. Keep tutorial environments separate from the research environment and follow the selected version’s installation instructions. The project has not yet installed or run these tutorials; checked links do not guarantee they run.