{
"cells": [
{
"cell_type": "markdown",
"id": "61d66c34-c1c0-440e-817c-f70119c2b5e1",
"metadata": {
"tags": []
},
"source": [
"# Weather data and solar radiation on a tilted surface\n",
"\n",
"*Note*: These notebooks follow the writing conventions for unit symbols and names recommanded by the *International Bureau of Weights and Measures* ([BIPM 2019](https://www.bipm.org/documents/20126/41483022/SI-Brochure-9-EN.pdf/2d2b50bf-f2b4-9661-f402-5f9d66e4b507?version=1.11&t=1671101192839&download=true)) and *National Institute of Standards and Technology* ([Thomson A. et al. 2008](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication811e2008.pdf)).\n",
"\n",
"## Introduction\n",
"\n",
"### Objectives\n",
"\n",
"- Download weather data in [EnergyPlus™](https://energyplus.net/documentation) format.\n",
"- Read weather data.\n",
"- Find solar radiation on a tilted surface.\n",
"- Visualize the data.\n",
"\n",
"### Summary\n",
"This notebook:\n",
"\n",
"- Imports standard modules such as numpy, pandas, and matplotlib.pyplot, and a dedicated module, dm4bem. It then reads a file in EnergyPlus Weather Format (epw) containing weather data for Lyon, France.\n",
"\n",
"- Selects three columns from the weather data, namely air temperature, direct radiation on a normal surface, and diffuse radiation on an horizontal surface, and replaces the year in the index with 2000.\n",
"\n",
"- Defines a start date and an end date and filters the weather data based on these dates.\n",
"\n",
"- Creates three plots using the filtered weather data:\n",
" - A line plot of outdoor air temperature over time.\n",
" - A line plot of solar radiation (normal direct and horizontal diffuse) over time.\n",
" - A line plot of solar radiation on a tilted surface over time, calculated using the filtered weather data and the slope, azimuth, and latitude of the surface.\n",
"\n",
"- Calculates the solar radiation on a tilted surface by computing the direct radiation, diffuse radiation, and reflected radiation. It then stores the calculated solar radiation as a new column in the filtered weather data."
]
},
{
"cell_type": "markdown",
"id": "37169b9e-5a48-436a-ad88-69151c20a353",
"metadata": {
"tags": []
},
"source": [
"## Obtain weather data in `EnergyPlus™` format"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "5aa43d35-feaf-4588-8b68-c651d327ab35",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from dm4bem import read_epw, sol_rad_tilt_surf"
]
},
{
"cell_type": "markdown",
"id": "d9b38d0b-02df-453d-b8ef-4697024b1b0e",
"metadata": {
"tags": []
},
"source": [
"### Download data file\n",
"\n",
"Download the weather file with extension `.epw` from: \n",
"- [Climate.OneBuilding.Org](http://climate.onebuilding.org): folder of files at the repository of free climate data for building performance simulation,\n",
"- [EnergyPlus™](https://energyplus.net/weather): interactive map with locations,\n",
"- [LadyBug Tools](http://www.ladybug.tools/epwmap/): interactive map with locations,\n",
"- [PV GIS](https://re.jrc.ec.europa.eu/pvg_tools/en/tools.html): interractive map with interpollated data.\n",
"\n",
"For example, for the airport Lyon-Bron, France (N45.73, E5.08), download the files:\n",
"- `FRA_Lyon.074810_IWEC.epw` or \n",
"- `FRA_AR_Lyon-Bron.AP.074800_TMYx.2004-2018`\n",
"\n",
"and place them in the `./weather_data` folder."
]
},
{
"cell_type": "markdown",
"id": "53ee5f0c-f06b-4842-9333-592a244b118a",
"metadata": {
"tags": []
},
"source": [
"### Read weather data"
]
},
{
"cell_type": "markdown",
"id": "ba380042-2a60-4532-b868-869ae1fbcad5",
"metadata": {},
"source": [
"#### Weather data file name"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "8b81357b-09f0-4905-8760-856582b31cd1",
"metadata": {},
"outputs": [],
"source": [
"filename = './weather_data/FRA_Lyon.074810_IWEC.epw'\n",
"# filename = './weather_data/FRA_AR_Lyon-Bron.AP.074800_TMYx.2004-2018.epw'"
]
},
{
"cell_type": "markdown",
"id": "5102f423-a176-4814-8fba-65f52f2c920b",
"metadata": {},
"source": [
"The weather file `.epw` contains hourly data for one year. For the description of the structure and the meaning of the fileds of the `.epw` file, see `read_epw` function in [dm4bem.py](dm4bem.py) module and the documentation for [pvlib.iotools.read_epw](https://pvlib-python.readthedocs.io/en/v0.9.0/generated/pvlib.iotools.read_epw.html) function of [pvlib python](https://pvlib-python.readthedocs.io/en/v0.9.0/index.html)."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "bda706f2-8250-4f29-850c-0d4be24cd178",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" year \n",
" month \n",
" day \n",
" hour \n",
" minute \n",
" data_source_unct \n",
" temp_air \n",
" temp_dew \n",
" relative_humidity \n",
" atmospheric_pressure \n",
" ... \n",
" ceiling_height \n",
" present_weather_observation \n",
" present_weather_codes \n",
" precipitable_water \n",
" aerosol_optical_depth \n",
" snow_depth \n",
" days_since_last_snowfall \n",
" albedo \n",
" liquid_precipitation_depth \n",
" liquid_precipitation_quantity \n",
" \n",
" \n",
" \n",
" \n",
" 1983-01-01 00:00:00+01:00 \n",
" 1983 \n",
" 1 \n",
" 1 \n",
" 1 \n",
" 60 \n",
" C9C9C9C9*0?9?9?9?9?9?9?9A7A7A7A7A7A7*0E8*0*0 \n",
" 0.8 \n",
" 0.3 \n",
" 96 \n",
" 100100 \n",
" ... \n",
" 15 \n",
" 0 \n",
" 999999599 \n",
" 0 \n",
" 0.204 \n",
" 0 \n",
" 88 \n",
" 0.0 \n",
" 0.0 \n",
" 0.0 \n",
" \n",
" \n",
" 1983-01-01 01:00:00+01:00 \n",
" 1983 \n",
" 1 \n",
" 1 \n",
" 2 \n",
" 60 \n",
" C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
" -0.6 \n",
" -0.9 \n",
" 97 \n",
" 100300 \n",
" ... \n",
" 30 \n",
" 0 \n",
" 999999599 \n",
" 0 \n",
" 0.204 \n",
" 0 \n",
" 88 \n",
" 0.0 \n",
" 0.0 \n",
" 0.0 \n",
" \n",
" \n",
" 1983-01-01 02:00:00+01:00 \n",
" 1983 \n",
" 1 \n",
" 1 \n",
" 3 \n",
" 60 \n",
" C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
" -1.5 \n",
" -1.7 \n",
" 98 \n",
" 100400 \n",
" ... \n",
" 30 \n",
" 0 \n",
" 999999599 \n",
" 0 \n",
" 0.204 \n",
" 0 \n",
" 88 \n",
" 0.0 \n",
" 0.0 \n",
" 0.0 \n",
" \n",
" \n",
" 1983-01-01 03:00:00+01:00 \n",
" 1983 \n",
" 1 \n",
" 1 \n",
" 4 \n",
" 60 \n",
" C9C9C9C9*0?9?9?9?9?9?9?9A7A7A7A7A7A7*0E8*0*0 \n",
" -1.9 \n",
" -2.0 \n",
" 99 \n",
" 100500 \n",
" ... \n",
" 30 \n",
" 0 \n",
" 999999599 \n",
" 0 \n",
" 0.204 \n",
" 0 \n",
" 88 \n",
" 0.0 \n",
" 0.0 \n",
" 0.0 \n",
" \n",
" \n",
" 1983-01-01 04:00:00+01:00 \n",
" 1983 \n",
" 1 \n",
" 1 \n",
" 5 \n",
" 60 \n",
" C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
" -2.1 \n",
" -2.2 \n",
" 100 \n",
" 100500 \n",
" ... \n",
" 30 \n",
" 0 \n",
" 999999599 \n",
" 0 \n",
" 0.204 \n",
" 0 \n",
" 88 \n",
" 0.0 \n",
" 0.0 \n",
" 0.0 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 1986-12-31 19:00:00+01:00 \n",
" 1986 \n",
" 12 \n",
" 31 \n",
" 20 \n",
" 60 \n",
" C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
" 5.9 \n",
" 4.7 \n",
" 92 \n",
" 99400 \n",
" ... \n",
" 22000 \n",
" 9 \n",
" 999999999 \n",
" 0 \n",
" 0.117 \n",
" 2 \n",
" 88 \n",
" 0.0 \n",
" 0.0 \n",
" 0.0 \n",
" \n",
" \n",
" 1986-12-31 20:00:00+01:00 \n",
" 1986 \n",
" 12 \n",
" 31 \n",
" 21 \n",
" 60 \n",
" C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
" 5.5 \n",
" 4.5 \n",
" 93 \n",
" 99400 \n",
" ... \n",
" 22000 \n",
" 9 \n",
" 999999999 \n",
" 0 \n",
" 0.117 \n",
" 2 \n",
" 88 \n",
" 0.0 \n",
" 0.0 \n",
" 0.0 \n",
" \n",
" \n",
" 1986-12-31 21:00:00+01:00 \n",
" 1986 \n",
" 12 \n",
" 31 \n",
" 22 \n",
" 60 \n",
" C9C9C9C9*0?9?9?9?9?9?9?9A7A7A7A7A7A7*0E8*0*0 \n",
" 4.9 \n",
" 3.9 \n",
" 94 \n",
" 99500 \n",
" ... \n",
" 22000 \n",
" 9 \n",
" 999999999 \n",
" 0 \n",
" 0.117 \n",
" 2 \n",
" 88 \n",
" 0.0 \n",
" 0.0 \n",
" 0.0 \n",
" \n",
" \n",
" 1986-12-31 22:00:00+01:00 \n",
" 1986 \n",
" 12 \n",
" 31 \n",
" 23 \n",
" 60 \n",
" C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
" 3.7 \n",
" 2.9 \n",
" 94 \n",
" 99600 \n",
" ... \n",
" 22000 \n",
" 9 \n",
" 999999999 \n",
" 0 \n",
" 0.117 \n",
" 2 \n",
" 88 \n",
" 0.0 \n",
" 0.0 \n",
" 0.0 \n",
" \n",
" \n",
" 1986-12-31 23:00:00+01:00 \n",
" 1986 \n",
" 12 \n",
" 31 \n",
" 24 \n",
" 60 \n",
" C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
" 2.3 \n",
" 1.6 \n",
" 95 \n",
" 99800 \n",
" ... \n",
" 1320 \n",
" 9 \n",
" 999999999 \n",
" 0 \n",
" 0.117 \n",
" 2 \n",
" 88 \n",
" 0.0 \n",
" 0.0 \n",
" 0.0 \n",
" \n",
" \n",
"
\n",
"
8760 rows × 35 columns
\n",
"
"
],
"text/plain": [
" year month day hour minute \\\n",
"1983-01-01 00:00:00+01:00 1983 1 1 1 60 \n",
"1983-01-01 01:00:00+01:00 1983 1 1 2 60 \n",
"1983-01-01 02:00:00+01:00 1983 1 1 3 60 \n",
"1983-01-01 03:00:00+01:00 1983 1 1 4 60 \n",
"1983-01-01 04:00:00+01:00 1983 1 1 5 60 \n",
"... ... ... ... ... ... \n",
"1986-12-31 19:00:00+01:00 1986 12 31 20 60 \n",
"1986-12-31 20:00:00+01:00 1986 12 31 21 60 \n",
"1986-12-31 21:00:00+01:00 1986 12 31 22 60 \n",
"1986-12-31 22:00:00+01:00 1986 12 31 23 60 \n",
"1986-12-31 23:00:00+01:00 1986 12 31 24 60 \n",
"\n",
" data_source_unct \\\n",
"1983-01-01 00:00:00+01:00 C9C9C9C9*0?9?9?9?9?9?9?9A7A7A7A7A7A7*0E8*0*0 \n",
"1983-01-01 01:00:00+01:00 C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
"1983-01-01 02:00:00+01:00 C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
"1983-01-01 03:00:00+01:00 C9C9C9C9*0?9?9?9?9?9?9?9A7A7A7A7A7A7*0E8*0*0 \n",
"1983-01-01 04:00:00+01:00 C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
"... ... \n",
"1986-12-31 19:00:00+01:00 C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
"1986-12-31 20:00:00+01:00 C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
"1986-12-31 21:00:00+01:00 C9C9C9C9*0?9?9?9?9?9?9?9A7A7A7A7A7A7*0E8*0*0 \n",
"1986-12-31 22:00:00+01:00 C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
"1986-12-31 23:00:00+01:00 C9C9C9C9*0?9?9?9?9?9?9?9A7A7B8B8A7A7*0E8*0*0 \n",
"\n",
" temp_air temp_dew relative_humidity \\\n",
"1983-01-01 00:00:00+01:00 0.8 0.3 96 \n",
"1983-01-01 01:00:00+01:00 -0.6 -0.9 97 \n",
"1983-01-01 02:00:00+01:00 -1.5 -1.7 98 \n",
"1983-01-01 03:00:00+01:00 -1.9 -2.0 99 \n",
"1983-01-01 04:00:00+01:00 -2.1 -2.2 100 \n",
"... ... ... ... \n",
"1986-12-31 19:00:00+01:00 5.9 4.7 92 \n",
"1986-12-31 20:00:00+01:00 5.5 4.5 93 \n",
"1986-12-31 21:00:00+01:00 4.9 3.9 94 \n",
"1986-12-31 22:00:00+01:00 3.7 2.9 94 \n",
"1986-12-31 23:00:00+01:00 2.3 1.6 95 \n",
"\n",
" atmospheric_pressure ... ceiling_height \\\n",
"1983-01-01 00:00:00+01:00 100100 ... 15 \n",
"1983-01-01 01:00:00+01:00 100300 ... 30 \n",
"1983-01-01 02:00:00+01:00 100400 ... 30 \n",
"1983-01-01 03:00:00+01:00 100500 ... 30 \n",
"1983-01-01 04:00:00+01:00 100500 ... 30 \n",
"... ... ... ... \n",
"1986-12-31 19:00:00+01:00 99400 ... 22000 \n",
"1986-12-31 20:00:00+01:00 99400 ... 22000 \n",
"1986-12-31 21:00:00+01:00 99500 ... 22000 \n",
"1986-12-31 22:00:00+01:00 99600 ... 22000 \n",
"1986-12-31 23:00:00+01:00 99800 ... 1320 \n",
"\n",
" present_weather_observation present_weather_codes \\\n",
"1983-01-01 00:00:00+01:00 0 999999599 \n",
"1983-01-01 01:00:00+01:00 0 999999599 \n",
"1983-01-01 02:00:00+01:00 0 999999599 \n",
"1983-01-01 03:00:00+01:00 0 999999599 \n",
"1983-01-01 04:00:00+01:00 0 999999599 \n",
"... ... ... \n",
"1986-12-31 19:00:00+01:00 9 999999999 \n",
"1986-12-31 20:00:00+01:00 9 999999999 \n",
"1986-12-31 21:00:00+01:00 9 999999999 \n",
"1986-12-31 22:00:00+01:00 9 999999999 \n",
"1986-12-31 23:00:00+01:00 9 999999999 \n",
"\n",
" precipitable_water aerosol_optical_depth \\\n",
"1983-01-01 00:00:00+01:00 0 0.204 \n",
"1983-01-01 01:00:00+01:00 0 0.204 \n",
"1983-01-01 02:00:00+01:00 0 0.204 \n",
"1983-01-01 03:00:00+01:00 0 0.204 \n",
"1983-01-01 04:00:00+01:00 0 0.204 \n",
"... ... ... \n",
"1986-12-31 19:00:00+01:00 0 0.117 \n",
"1986-12-31 20:00:00+01:00 0 0.117 \n",
"1986-12-31 21:00:00+01:00 0 0.117 \n",
"1986-12-31 22:00:00+01:00 0 0.117 \n",
"1986-12-31 23:00:00+01:00 0 0.117 \n",
"\n",
" snow_depth days_since_last_snowfall albedo \\\n",
"1983-01-01 00:00:00+01:00 0 88 0.0 \n",
"1983-01-01 01:00:00+01:00 0 88 0.0 \n",
"1983-01-01 02:00:00+01:00 0 88 0.0 \n",
"1983-01-01 03:00:00+01:00 0 88 0.0 \n",
"1983-01-01 04:00:00+01:00 0 88 0.0 \n",
"... ... ... ... \n",
"1986-12-31 19:00:00+01:00 2 88 0.0 \n",
"1986-12-31 20:00:00+01:00 2 88 0.0 \n",
"1986-12-31 21:00:00+01:00 2 88 0.0 \n",
"1986-12-31 22:00:00+01:00 2 88 0.0 \n",
"1986-12-31 23:00:00+01:00 2 88 0.0 \n",
"\n",
" liquid_precipitation_depth \\\n",
"1983-01-01 00:00:00+01:00 0.0 \n",
"1983-01-01 01:00:00+01:00 0.0 \n",
"1983-01-01 02:00:00+01:00 0.0 \n",
"1983-01-01 03:00:00+01:00 0.0 \n",
"1983-01-01 04:00:00+01:00 0.0 \n",
"... ... \n",
"1986-12-31 19:00:00+01:00 0.0 \n",
"1986-12-31 20:00:00+01:00 0.0 \n",
"1986-12-31 21:00:00+01:00 0.0 \n",
"1986-12-31 22:00:00+01:00 0.0 \n",
"1986-12-31 23:00:00+01:00 0.0 \n",
"\n",
" liquid_precipitation_quantity \n",
"1983-01-01 00:00:00+01:00 0.0 \n",
"1983-01-01 01:00:00+01:00 0.0 \n",
"1983-01-01 02:00:00+01:00 0.0 \n",
"1983-01-01 03:00:00+01:00 0.0 \n",
"1983-01-01 04:00:00+01:00 0.0 \n",
"... ... \n",
"1986-12-31 19:00:00+01:00 0.0 \n",
"1986-12-31 20:00:00+01:00 0.0 \n",
"1986-12-31 21:00:00+01:00 0.0 \n",
"1986-12-31 22:00:00+01:00 0.0 \n",
"1986-12-31 23:00:00+01:00 0.0 \n",
"\n",
"[8760 rows x 35 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[data, meta] = read_epw(filename, coerce_year=None)\n",
"data"
]
},
{
"cell_type": "markdown",
"id": "f50f9eaf-f289-47eb-a261-0971da20b75c",
"metadata": {},
"source": [
"#### Weather data is from different years\n",
"\n",
"Data for each month may be from different years."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "c4d4d404-1752-4f7d-90b3-41c1bcdb767c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Month-Year \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 01-1983 \n",
" \n",
" \n",
" 1 \n",
" 02-1985 \n",
" \n",
" \n",
" 2 \n",
" 03-1998 \n",
" \n",
" \n",
" 3 \n",
" 04-1995 \n",
" \n",
" \n",
" 4 \n",
" 05-1986 \n",
" \n",
" \n",
" 5 \n",
" 06-1993 \n",
" \n",
" \n",
" 6 \n",
" 07-1982 \n",
" \n",
" \n",
" 7 \n",
" 08-1993 \n",
" \n",
" \n",
" 8 \n",
" 09-1988 \n",
" \n",
" \n",
" 9 \n",
" 10-1999 \n",
" \n",
" \n",
" 10 \n",
" 11-1991 \n",
" \n",
" \n",
" 11 \n",
" 12-1986 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Month-Year\n",
"0 01-1983\n",
"1 02-1985\n",
"2 03-1998\n",
"3 04-1995\n",
"4 05-1986\n",
"5 06-1993\n",
"6 07-1982\n",
"7 08-1993\n",
"8 09-1988\n",
"9 10-1999\n",
"10 11-1991\n",
"11 12-1986"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Extract the month and year from the DataFrame index with the format 'MM-YYYY'\n",
"month_year = data.index.strftime('%m-%Y')\n",
"\n",
"# Create a set of unique month-year combinations\n",
"unique_month_years = sorted(set(month_year))\n",
"\n",
"# Create a DataFrame from the unique month-year combinations\n",
"pd.DataFrame(unique_month_years, columns=['Month-Year'])"
]
},
{
"cell_type": "markdown",
"id": "5f9530da-b33d-4ea1-b453-a2a6369c671b",
"metadata": {
"tags": []
},
"source": [
"From the dataset, select:\n",
"\n",
"|EPWData field | Description | Unit|\n",
"|:------------ | ------------------------------------ | --- |\n",
"|`temp_air` |Dry bulb air temperature at timestamp |°C |\n",
"|`dir_n_rad` |Direct normal radiation received during 1 h prior to timestamp |Wh/m²|\n",
"|`dif_h_rad` |Diffuse horizontal radiation received during 1 h prior to timestamp |Wh/m²|\n",
"\n",
"*Note*: For the description of `.EPW` file, see [pvlib.iotools.epw](https://wholmgren-pvlib-python-new.readthedocs.io/en/stable/_modules/pvlib/iotools/epw.html).\n",
"\n",
"Since in the dataset the values for each month are from different years, we will replace all year with the same year, e.g. `2000`."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "9ed90e02-a7d0-4561-b903-4135af81a428",
"metadata": {},
"outputs": [],
"source": [
"# select columns of interest\n",
"weather_data = data[[\"temp_air\", \"dir_n_rad\", \"dif_h_rad\"]]\n",
"\n",
"# replace year of the index with 2000\n",
"weather_data.index = weather_data.index.map(\n",
" lambda t: t.replace(year=2000))"
]
},
{
"cell_type": "markdown",
"id": "900d410b-83a8-43f9-a478-a60d578b6ef5",
"metadata": {},
"source": [
"#### Start and end time\n",
"\n",
"Select a period for:\n",
"- air temperature, °C,\n",
"- normal solar radiation, W/m², \n",
"- diffuse solar radiation received during 60 minutes prior to timestamp, W/m². "
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "27b24a18-40f7-43bb-966e-a2da5f5df720",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" temp_air \n",
" dir_n_rad \n",
" dif_h_rad \n",
" \n",
" \n",
" \n",
" \n",
" 2000-06-29 00:00:00+01:00 \n",
" 16.7 \n",
" 0 \n",
" 0 \n",
" \n",
" \n",
" 2000-06-29 01:00:00+01:00 \n",
" 17.0 \n",
" 0 \n",
" 0 \n",
" \n",
" \n",
" 2000-06-29 02:00:00+01:00 \n",
" 16.0 \n",
" 0 \n",
" 0 \n",
" \n",
" \n",
" 2000-06-29 03:00:00+01:00 \n",
" 15.9 \n",
" 0 \n",
" 0 \n",
" \n",
" \n",
" 2000-06-29 04:00:00+01:00 \n",
" 16.0 \n",
" 0 \n",
" 0 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" temp_air dir_n_rad dif_h_rad\n",
"2000-06-29 00:00:00+01:00 16.7 0 0\n",
"2000-06-29 01:00:00+01:00 17.0 0 0\n",
"2000-06-29 02:00:00+01:00 16.0 0 0\n",
"2000-06-29 03:00:00+01:00 15.9 0 0\n",
"2000-06-29 04:00:00+01:00 16.0 0 0"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Define start and end dates\n",
"start_date = '2000-06-29'\n",
"end_date = '2000-07-02'\n",
"\n",
"# Filter the data based on the start and end dates\n",
"weather_data = weather_data.loc[start_date:end_date]\n",
"del data\n",
"weather_data.head()"
]
},
{
"cell_type": "markdown",
"id": "bac497d4-a704-4576-be7a-51b542e9c2a7",
"metadata": {},
"source": [
"#### Plot outdoor air temperature"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "5e19a553-2944-4028-8949-7ed87ce44d22",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"weather_data['temp_air'].plot()\n",
"plt.xlabel(\"Time\")\n",
"plt.ylabel(\"Dry-bulb air temperature, θ / °C\")\n",
"plt.legend([])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "319a18a8-aa83-46f2-96b7-741378fbfa11",
"metadata": {
"tags": []
},
"source": [
"> Figure 1. Hourly dry bulb air temperature at timestamp."
]
},
{
"cell_type": "markdown",
"id": "23813984-1d56-4310-b7ee-14d2b4389856",
"metadata": {},
"source": [
"#### Plot solar radiation: normal direct and horizontal diffuse"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "eddb8ebc-2686-434e-862f-08af01e1488c",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"weather_data[['dir_n_rad', 'dif_h_rad']].plot()\n",
"plt.xlabel(\"Time\")\n",
"plt.ylabel(\"Solar radiation, Φ / (W/m²)\")\n",
"plt.legend(['$Φ_{direct}$', '$Φ_{diffuse}$'])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "7b2d35e9-b9e8-471f-a266-ae4d2a78c47a",
"metadata": {},
"source": [
"> Figure 2. Hourly-mean direct normal and difuse horizontal solar radiation."
]
},
{
"cell_type": "markdown",
"id": "87599632-7359-498e-9959-01e54e28cc5d",
"metadata": {},
"source": [
"### Solar radiation on a tilted surface\n",
"\n",
"#### Orientation of the tilted wall\n",
"\n",
"For a tilted wall and knowing the albedo of the surface which is in front of it, the diffuse and reflected radiation incident on the wall can be calculated from weather data for each hour.\n",
"\n",
"Let's consider a wall at latitude $\\phi$ with the orientation given by its slope angle, $\\beta$, and azimuth angle, $\\gamma$."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "3edf4731-ecc9-47b3-b555-724e1425686f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"slope 90\n",
"azimuth 0\n",
"latitude 45\n",
"dtype: int64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"surface_orientation = {'slope': 90, # 90° is vertical; > 90° downward\n",
" 'azimuth': 0, # 0° South, positive westward\n",
" 'latitude': 45} # °, North Pole 90° positive\n",
"pd.Series(surface_orientation)"
]
},
{
"cell_type": "markdown",
"id": "c10b0e88-9768-43f9-aec2-33bcee4ceae0",
"metadata": {
"tags": []
},
"source": [
"\n",
">Figure 3. Orientation of a surface: \n",
">- $\\beta$: slope angle: $\\beta = 90°$ is vertical; $\\beta > 90°$ is downward facing.\n",
">- $\\gamma$: azimuth angle: 0° South, positive westward, negative eastward. \n",
">- $\\theta$: incidence angle: angle between the solar beam on the surface and the normal to the surface.\n",
">\n",
">N, S, E, W: North, South, East and West, respectively. $\\vec{n}$ is the vector normal to the surface. ∟ represents right angles."
]
},
{
"cell_type": "markdown",
"id": "b0000e17-7a82-4635-bfbc-09bef8c4bda1",
"metadata": {},
"source": [
"Let's consider that the [albedo](https://en.m.wikipedia.org/wiki/Albedo) of the surface in front of the wall is:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "b26e5170-179a-41f0-9860-879452584669",
"metadata": {},
"outputs": [],
"source": [
"albedo = 0.2"
]
},
{
"cell_type": "markdown",
"id": "add018c8-7742-4160-846f-3edf338344c0",
"metadata": {},
"source": [
"#### Plot the solar radiation"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "08fbc6ba-14b0-4c3c-a2f7-35474a59165e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"rad_surf = sol_rad_tilt_surf(\n",
" weather_data, surface_orientation, albedo)\n",
"\n",
"rad_surf.plot()\n",
"plt.xlabel(\"Time\")\n",
"plt.ylabel(\"Solar radiation, Φ / (W/m²)\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "1ac8001d-c735-49f8-ac63-7e81d74ae931",
"metadata": {},
"source": [
">Figure 4. Hourly-mean direct, diffuse and reflected radiation on a tilted surface. "
]
},
{
"cell_type": "markdown",
"id": "02b5e59f-1a59-4f57-85a3-4a0e4ad4ff89",
"metadata": {
"tags": []
},
"source": [
"## Calculation of solar radiation on a tilted surface from weather data\n",
"\n",
"Let’s consider a tilted surface having another surface (e.g., ground) in front of it. Given the weather data, the surface orientation, and the albedo of the ground in front of the surface, find the direct, diffuse and reflected solar radiation for this surface. The algoritm is implemented in the function `sol_rad_tilt_surf` of the `dm4bem.py` module."
]
},
{
"cell_type": "markdown",
"id": "c9d85b51-573c-46bc-8abd-f1ad769813e7",
"metadata": {
"tags": []
},
"source": [
"### Surface orientation\n",
"\n",
"The orientation of the surface is given by the following angles:\n",
"- $\\beta$ slope: slope or tilt angle from 0 to 180 degrees\n",
" - β = 0° - horizontal, upward facing;\n",
" - β = 90°- vertical;\n",
" - β < 90°- upward facing;\n",
" - β > 90°- downward facing;\n",
" - 180° - horizontal, downward facing.\n",
"- $\\gamma$ azimuth: surface azimuth in degrees, $-180 ^{\\circ} \\leq \\gamma \\leq 180 ^{\\circ}$; 0-south; westward: positive; eastward: negatif;\n",
"- $\\phi$ latitude: local latitude in degree $-90 ^{\\circ} \\leq \\phi \\leq 90 ^{\\circ}$; northward: positive, southward: negative."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "9efc07e9-03fb-44d7-92da-03c6c5a8797d",
"metadata": {},
"outputs": [],
"source": [
"β = surface_orientation['slope']\n",
"γ = surface_orientation['azimuth']\n",
"ϕ = surface_orientation['latitude']\n",
"\n",
"# Transform degrees in radians\n",
"β = β * np.pi / 180\n",
"γ = γ * np.pi / 180\n",
"ϕ = ϕ * np.pi / 180\n",
"\n",
"n = weather_data.index.dayofyear"
]
},
{
"cell_type": "markdown",
"id": "27cdc80e-65dd-4311-b36b-8b451aa4ace2",
"metadata": {
"tags": []
},
"source": [
"**Total solar radiation** is the amount of radiation received on a surface during the number of minutes preceding the time indicated:\n",
"\n",
"$$ G_{sr} = G_{dir} + G_{dif} + G_r$$\n",
"\n",
"where:\n",
"\n",
"- $G_{dir}$ **[direct normal](https://en.m.wikipedia.org/wiki/Direct_insolation)** or **beam radiation**: amount of solar radiation received directly from the solar disk on a surface perpendicular to the sun’s rays, during the number of minutes preceding the time indicated, W/m².\n",
"\n",
"- $G_{dif}$ **[diffuse radiation](https://en.m.wikipedia.org/wiki/Diffuse_sky_radiation)**: amount of solar radiation received after scattering by the atmosphere, W/m². Note: it does not include the diffuse infrared radiation emitted by the atmosphere.\n",
"\n",
"- $G_r$ **[total solar radiation coming by reflection](https://en.m.wikipedia.org/wiki/Albedo)** from the surface in front of the wall (usually, ground), W/m²."
]
},
{
"cell_type": "markdown",
"id": "0d3709c3-8f84-4b24-92d8-457d3ecbe972",
"metadata": {
"tags": []
},
"source": [
"### Direct radiation\n",
"\n",
"The direct radiation on the surface, $G_{dir}$, depends on the *direct normal (or beam) radiation*, $G_n$, and the *incidence angle*, $\\theta$, between the solar beam and the normal to the wall [2] (§11.2.1).\n",
"\n",
"In order to calculate the *incidence angle*, $\\theta$, we need:\n",
"\n",
"- $\\phi$ *[latitude](https://en.m.wikipedia.org/wiki/Latitude)*, the angle between the position and the Equator, ranging from 0° at the Equator to 90° at the North Pole and -90° at the South Pole. $-90 ^{\\circ} \\leq \\phi \\leq 90 ^{\\circ}$\n",
"\n",
"- $\\beta$ *slope*, the angle between the plane of the surface and the horizontal. $0 \\le \\beta \\le 180 ^{\\circ}$; $\\beta \\le 90 ^{\\circ}$: the surface is upward facing.\n",
"\n",
"- $\\gamma$ *[azimuth](https://en.m.wikipedia.org/wiki/Azimuth)*, the angle between the projection on a horizontal plane of the normal to the surface and the local meridian; south is zero, east negative, and west positive. $-180 ^{\\circ} \\leq \\gamma \\leq 180 ^{\\circ}$.\n",
"\n",
"- $\\delta$ *[declination angle](https://en.m.wikipedia.org/wiki/Declination)*, the angle between the sun at noon (i.e., when the sun is on the local meridian) and the plane of the equator, north positive [1](eq. 1.6.1a), [2](§11.2.1.1, eq. (78)):\n",
"$$ \\delta = 23.45 \\sin \\left( 360 \\frac{284 + n}{365} \\right)$$"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "2be3bb50-7853-4ac2-a2c8-11780f5fee30",
"metadata": {},
"outputs": [],
"source": [
"declination_angle = 23.45 * np.sin(360 * (284 + n) / 365 * np.pi / 180)\n",
"δ = declination_angle * np.pi / 180"
]
},
{
"cell_type": "markdown",
"id": "22e87fe0-ea7d-46f8-99cd-bb166fdc3927",
"metadata": {
"tags": []
},
"source": [
"- $\\omega$ *[solar hour angle](https://en.m.wikipedia.org/wiki/Hour_angle#Solar_hour_angle)*, the angle between the sun and the local meridian due to rotation of the earth around its axis at 15° per hour [1]:\n",
"\n",
"$$ \\omega = 15\\left ( hour + \\frac{minute}{60} - 12 \\right )$$\n",
"\n",
"where *hour* and *minute* is the [solar time](https://en.m.wikipedia.org/wiki/Solar_time#Mean_solar_time).\n",
"\n",
"$-180 ^{\\circ} \\leq \\omega \\leq 180 ^{\\circ}$. $\\omega < 0$ in the morning, $\\omega = 0$ at noon, and $\\omega > 0$ in the afternoon. Hour angle is used with the declination to give the direction of a point on the celestial sphere."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "163fe70e-7487-495a-b180-8c5d425d2da6",
"metadata": {},
"outputs": [],
"source": [
"hour = weather_data.index.hour\n",
"minute = weather_data.index.minute + 60\n",
"hour_angle = 15 * ((hour + minute / 60) - 12) # deg\n",
"ω = hour_angle * np.pi / 180 # rad"
]
},
{
"cell_type": "markdown",
"id": "c56602de-08c5-4457-abdf-6c01b4372fae",
"metadata": {
"tags": []
},
"source": [
"The **[incidence angle](https://en.m.wikipedia.org/wiki/Angle_of_incidence_(optics)**, $\\theta$, is the angle between the solar beam on the surface and the normal to the surface [1](eq. 1.6.2), [2] (eq. 78):\n",
"\n",
"$$\\theta = \\arccos (\\sin \\delta \\sin \\phi \\cos \\beta - \\sin \\delta \\cos \\phi \\sin \\beta \\cos \\gamma + \\cos \\delta \\cos \\phi \\cos \\beta \\cos \\omega + \\cos \\delta \\sin \\phi \\sin \\beta \\cos \\gamma \\cos \\omega + \\cos \\delta \\sin \\beta \\sin \\gamma \\sin \\omega)$$\n",
"\n",
"If $\\beta \\le 90^\\circ$, then the sun is behind the surface. Therefore, if $\\theta > \\pi / 2$, then $\\theta = \\pi / 2$."
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "691caccd-98b8-484d-9d70-5088ac23a391",
"metadata": {},
"outputs": [],
"source": [
"theta = np.sin(δ) * np.sin(ϕ) * np.cos(β) \\\n",
" - np.sin(δ) * np.cos(ϕ) * np.sin(β) * np.cos(γ) \\\n",
" + np.cos(δ) * np.cos(ϕ) * np.cos(β) * np.cos(ω) \\\n",
" + np.cos(δ) * np.sin(ϕ) * np.sin(β) * np.cos(γ) * np.cos(ω) \\\n",
" + np.cos(δ) * np.sin(β) * np.sin(γ) * np.sin(ω)\n",
"\n",
"theta = np.array(np.arccos(theta))\n",
"theta = np.minimum(theta, np.pi / 2)"
]
},
{
"cell_type": "markdown",
"id": "335c4084-dadd-4449-9f9d-764bef586b08",
"metadata": {
"tags": []
},
"source": [
"The **direct radiation**, $G_{dir}$ on the surface is:\n",
"\n",
"$$G_{dir} = G_{dir,n} \\cos \\theta$$\n",
"\n",
"where *direct normal radiation* or *beam radiation*, $G_n$, is the amount of solar radiation (in W/m²) received directly from the solar disk on the surface perpendicular to the sun’s rays, during the number of minutes preceding the time indicated. It is given by weather data."
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "b8d70796-bad0-465a-bdbf-7f0d1e52a0fb",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"dir_rad = weather_data[\"dir_n_rad\"] * np.cos(theta)\n",
"dir_rad[dir_rad < 0] = 0"
]
},
{
"cell_type": "markdown",
"id": "39d85cd9-9bcb-466c-9c3b-660f50335195",
"metadata": {
"tags": []
},
"source": [
"### Diffuse Radiation\n",
"\n",
"The diffuse radiation on the wall is a function on its slope, $\\beta$, and \n",
"the isotropic diffuse solar radiation, $G_{dif,h}$, [[2](https://pdfslide.fr/documents/rt2005-methode-de-calcul-th-ce.html)](§1.2.1.2, eq. 79, p. 31):\n",
"\n",
"$$ G_{dif} = G_{dif,h} \\frac{1 + \\cos \\beta}{2}$$"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "dc1433f1-9ab8-4bfe-aa4d-57e831c4b0bb",
"metadata": {},
"outputs": [],
"source": [
"dif_rad = weather_data[\"dif_h_rad\"] * (1 + np.cos(β)) / 2"
]
},
{
"cell_type": "markdown",
"id": "0ad26b98-c46c-4f0a-aa99-a556aad73a56",
"metadata": {
"tags": []
},
"source": [
"### Solar radiation reflected by the ground\n",
"\n",
"Considering the radiation reflected by the ground as isotropic, the reflected radiation that gets onto the wall is a function of its slope, albedo and total horizontal radiation [[2](§11.2.1.3)].\n",
"\n",
"The normal horizontal radiation is [2] (eq. 80):\n",
"\n",
"$$ G_{dir,h} = G_{dn} \\sin \\gamma$$"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "fa0ba0c1-387f-4420-85e4-31d1da66e173",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"gamma = np.cos(δ) * np.cos(ϕ) * np.cos(ω) \\\n",
" + np.sin(δ) * np.sin(ϕ)\n",
"\n",
"gamma = np.array(np.arcsin(gamma))\n",
"gamma[gamma < 1e-5] = 1e-5\n",
"\n",
"dir_h_rad = weather_data[\"dir_n_rad\"] * np.sin(gamma)"
]
},
{
"cell_type": "markdown",
"id": "7bdf8aef-d950-44fd-881e-1efce3f98a47",
"metadata": {
"tags": []
},
"source": [
"The total radiation received by reflection is:\n",
"\n",
"$$G_r = (G_{dir,h} + G_{dif,h}) \\, \\rho \\, \\frac{1 - \\cos \\beta}{2}$$\n",
"\n",
"where $\\rho$ is the [albedo](https://en.m.wikipedia.org/wiki/Albedo) (or the reflection coefficient) of the surface."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "f243bb80-8570-4007-bfe8-1d4594bbf129",
"metadata": {},
"outputs": [],
"source": [
"ref_rad = (dir_h_rad + weather_data[\"dif_h_rad\"]) * albedo \\\n",
" * (1 - np.cos(β) / 2)"
]
},
{
"cell_type": "markdown",
"id": "ae400472-1031-49cf-85e9-e45a71afe069",
"metadata": {
"tags": []
},
"source": [
"### Definitions\n",
"\n",
"#### Radiation and time\n",
"$G_{dir,n}$ **Direct normal** or **beam radiation**. Amount of solar radiation in Wh/m² received directly from the solar disk on a surface perpendicular to the sun’s rays, during the number of minutes preceding the time indicated.\n",
"\n",
"$G_{dif,h}$ **Diffuse horizontal radiation**. Amount of solar radiation in Wh/m² received after scattering by the atmosphere. This definition distinguishes the diffuse solar radiation from infrared radiation emitted by the atmosphere.\n",
"\n",
"**Total Solar Radiation**. Total amount of direct and diffuse solar radiation in Wh/m² received on a surface during the number of minutes preceding the time indicated.\n",
"\n",
"**Global radiation.** Total solar radiation given on a horizontal surface.\n",
"\n",
"**Solar Time.** Time based on the apparent position of the sun in the sky with noon the time when the sun crosses the observer meridian. \n",
"\n",
"#### Definitions for angles (in degrees)\n",
"\n",
"$\\phi$ **Latitude.** Angle between the position and the Equator, ranging from 0° at the Equator to 90° at the North Pole and -90° at the South Pole. $-90 ^{\\circ} \\leq \\phi \\leq 90 ^{\\circ}$\n",
"\n",
"$\\beta$ **Slope.** Angle between the plane of the surface and the horizontal. $0 \\le \\beta \\le 180 ^{\\circ}$. $\\beta < 90^{\\circ}$ means that the surface is upward facing.\n",
"\n",
"$\\gamma$ **Azimuth.** Angle between the projection on a horizontal plane of the normal to the surface and the local meridian; south is zero, east negative, and west positive. $-180 ^{\\circ} \\leq \\gamma \\leq 180^{\\circ}$.\n",
"\n",
"$\\delta$ **Declination.** Angle between the sun at noon (i.e., when the sun is on the local meridian) and the plane of the equator, north positive [1, eq. 1.6.1a):\n",
"\n",
"$$ \\delta = 23.45 \\sin \\left( 360 \\frac{284 + n}{365} \\right)$$\n",
"\n",
"where $n$ is the day of the year. $-23.45 ^{\\circ} \\leq \\delta \\leq 23.45 ^{\\circ}$. Declination is used with hour angle to give the direction of a point on the celestial sphere.\n",
"\n",
"$\\omega$ **Hour angle.** Angle between the sun and the local meridian due to rotation of the earth around its axis at 15° per hour [1]:\n",
"\n",
"$$ \\omega = 15\\left ( h + \\frac{min}{60} - 12 \\right )$$\n",
"\n",
"where *h* and *min* is the solar time in hours and in minutes, respectively. The hour angle is\n",
"$$-180 ^{\\circ} \\leq \\omega \\leq 180 ^{\\circ}$$\n",
"\n",
"with $\\omega < 0$ in the morning, $\\omega = 0$ at noon, and $\\omega > 0$ in the afternoon. Hour angle is used with the declination to give the direction of a point on the celestial sphere.\n",
"\n",
"$\\theta$ **Incidence.** Angle between the solar beam on the surface and the normal to the surface [1, eq. 1.6.2]:\n",
"\n",
"$$\\theta = \\arccos (\\sin \\delta \\sin \\phi \\cos \\beta - \\sin \\delta \\cos \\phi \\sin \\beta \\cos \\gamma + \\cos \\delta \\cos \\phi \\cos \\beta \\cos \\omega + \\cos \\delta \\sin \\phi \\sin \\beta \\cos \\gamma \\cos \\omega + \\cos \\delta \\sin \\beta \\sin \\gamma \\sin \\omega)$$\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "9b3a7d18-8134-4c03-b5fe-ee624567e94d",
"metadata": {
"tags": []
},
"source": [
"## References\n",
"\n",
"1. [Duffie, J.A., Beckman, W. A., Blair, N. (2020)](https://www.eng.uc.edu/~beaucag/Classes/SolarPowerForAfrica/Solar%20Engineering%20of%20Thermal%20Processes,%20Photovoltaics%20and%20Wind.pdf) Solar Engineering of Thermal Processes, 5th ed. John Wiley & Sons, Inc. ISBN 9781119540281\n",
"\n",
"2. [Réglementation Thermique 2005. Méthode de calcul Th-CE.](https://pdfslide.fr/documents/rt2005-methode-de-calcul-th-ce.html) Annexe à l’arrêté du 19 juillet 2006\n",
"\n",
"3. [US Department of Energy (2022)]((https://energyplus.net/assets/nrel_custom/pdfs/pdfs_v22.1.0/EngineeringReference.pdf)) EnergyPlus™ Engineering Reference, version 22.1.0, © 1996-2022\n",
"\n",
"4. [BIPM (2019)](https://www.bipm.org/documents/20126/41483022/SI-Brochure-9-EN.pdf/2d2b50bf-f2b4-9661-f402-5f9d66e4b507?version=1.11&t=1671101192839&download=true) The International System of Units (SI), 9th edition, licence CC-BY-3.0\n",
"\n",
"5. [Gőbel, E., Mills, I., Wallard, A. (2006)](https://www.bipm.org/documents/20126/41483022/SI-Brochure-9-concise-EN.pdf/2fda4656-e236-0fcb-3867-36ca74eea4e3). A concise summary of the International System of Units, the SI\n",
"\n",
"6. [Thomson, A., Taylor, B. N. (2008)](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication811e2008.pdf). Guide for the use of the international System of units (NIST Special Publication 811․ 2008 Edition). National Institute of Standards and Technology, US Government Printing Office."
]
},
{
"cell_type": "markdown",
"id": "a429f1a3-a1d7-48c7-b028-9caf6c6f2f0f",
"metadata": {},
"source": [
"# [Thermal circuit and state-space representation for a thermal circuit with capacities in every node: simple wall](02SimpleWall.ipynb)\n",
"\n",
"# [Thermal circuit and state-space representation for a thermal circuit with capacities in some nodes: cubic building](03CubicBuilding.ipynb)\n",
"\n",
"# [Thermal circuits assembling](04AssemblingCircuits.ipynb)\n",
"\n",
"# [Switch between models: heating & cooling and free-running](05SwitchModels.ipynb)\n",
"\n",
"# [Control input: heating & cooling and free-running](06Control_Input.ipynb)\n",
"\n",
"# [Radiation coupled with convection](07Coupled_rad_convection.ipynb)\n",
"\n",
"# [Sensible thermal load in steady-state](08Thermal_load.ipynb)\n",
"\n",
"# [Air flow by ventilation](09Air_flow_ventilation.ipynb)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "317fbaad-89fb-4652-b0d4-58a7f452b408",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
},
"toc-autonumbering": true
},
"nbformat": 4,
"nbformat_minor": 5
}