{
"cells": [
{
"cell_type": "markdown",
"id": "8a9a401f-249d-4d37-a683-54ceae92633a",
"metadata": {},
"source": [
"# Example: XGBoost power loss\n",
"This examples shows you how to load the trained XGBoost model and use it."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "55779114-97d2-4177-8f45-db2ce83a7b06",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"from pathlib import Path\n",
"\n",
"project_root = Path.cwd().parents[1]\n",
"os.chdir(project_root) # now cwd is .../pvcracks\n",
"\n",
"from pvcracks.powerloss.powerloss_functions import load_xgb_models, predict_power_and_voc\n",
"import numpy as np\n",
"import pandas as pd"
]
},
{
"cell_type": "markdown",
"id": "de8fafe6-97cb-4592-b82f-c72ea5610765",
"metadata": {},
"source": [
"#### Calculate delta Pmpp from fitted IV cell curves"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "1eabaced-7f7a-46f8-9b2d-5ede0ad29ea6",
"metadata": {},
"outputs": [],
"source": [
"Cell9Master = pd.read_csv('docs/data/ELdata_module_209_VAE_analysis.csv', index_col=0)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "706be8d2-9062-4d65-a66d-b01da5c86b0a",
"metadata": {},
"outputs": [],
"source": [
"# grab each Module’s Init‐stage Pmp\n",
"init = (\n",
" Cell9Master[Cell9Master['Deg']=='Init']\n",
" .set_index('Module')['Pmp']\n",
" # init is now a Series: index=Module, value=Pmp_at_Init\n",
")\n",
"\n",
"# Calcuate differenc in %\n",
"Cell9Master['deltaPmp'] = 100*(Cell9Master['Pmp'] - Cell9Master['Module'].map(init))/Cell9Master['Module'].map(init)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "a3801f9c-54e5-4b52-9500-cecaea2fa609",
"metadata": {},
"outputs": [],
"source": [
"#Filter out specific cells we know have cracks\n",
"cracked = [\n",
" ('209_A2','Deg1'),\n",
" ('209_A1','Deg1'),\n",
" ('209_A3','Deg2'),\n",
" ('209_A1','Deg2'),\n",
" ('209_C3','Deg2'),\n",
" ('209_B2','Deg2'),\n",
" ('209_B3','Deg2'),\n",
"]\n",
"\n",
"# 2) build a boolean mask which is True only for those pairs\n",
"mask = Cell9Master[['Module','Deg']].apply(tuple,axis=1).isin(cracked)\n",
"\n",
"# 3) slice to keep only the cracked cells\n",
"Cell9Degs = Cell9Master[mask].copy()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "e9b461f1-a797-4399-b4b6-ca452a68eb76",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ELPath | \n",
" Module | \n",
" Deg | \n",
" Rs | \n",
" Rsh | \n",
" I | \n",
" Is | \n",
" N | \n",
" Pmp | \n",
" Vmp | \n",
" Imp | \n",
" lat_vec | \n",
" klabel | \n",
" deltaPmp | \n",
"
\n",
" \n",
" \n",
" \n",
" | 11 | \n",
" /docs/data/EL/209_A2/Deg1/209_A2_0005_2021_04_... | \n",
" 209_A2 | \n",
" Deg1 | \n",
" 0.008996 | \n",
" 1295.750000 | \n",
" 8.228613 | \n",
" 9.005018e-08 | \n",
" 1.317542 | \n",
" 3.534448 | \n",
" 0.465455 | \n",
" 7.593540 | \n",
" [ 5.0129116e-02 1.5392177e+00 1.2010708e+00 ... | \n",
" 4 | \n",
" -0.254354 | \n",
"
\n",
" \n",
" | 12 | \n",
" /docs/data/EL/209_A1/Deg1/209_A1_0005_2021_04_... | \n",
" 209_A1 | \n",
" Deg1 | \n",
" 0.010386 | \n",
" 1.000000 | \n",
" 8.184377 | \n",
" 1.006196e-05 | \n",
" 1.778587 | \n",
" 3.051399 | \n",
" 0.446061 | \n",
" 6.840773 | \n",
" [ 0.1527828 0.6933546 0.61783403 -1.311733... | \n",
" 1 | \n",
" -13.414670 | \n",
"
\n",
" \n",
" | 18 | \n",
" /docs/data/EL/209_A3/Deg2/209_A3_0005_2021_04_... | \n",
" 209_A3 | \n",
" Deg2 | \n",
" 0.008634 | \n",
" 8.986411 | \n",
" 8.233849 | \n",
" 6.987570e-06 | \n",
" 1.730266 | \n",
" 3.349300 | \n",
" 0.458990 | \n",
" 7.297111 | \n",
" [ 1.6261781e+00 -1.3577162e-01 3.6160046e-01 ... | \n",
" 4 | \n",
" -6.030860 | \n",
"
\n",
" \n",
" | 21 | \n",
" /docs/data/EL/209_A1/Deg2/209_A1_0005_2021_04_... | \n",
" 209_A1 | \n",
" Deg2 | \n",
" 0.012567 | \n",
" 0.835178 | \n",
" 7.588188 | \n",
" 3.762260e-05 | \n",
" 1.997049 | \n",
" 2.678277 | \n",
" 0.433131 | \n",
" 6.183523 | \n",
" [-1.2965436 0.14127842 0.39876893 -0.320378... | \n",
" 1 | \n",
" -24.002233 | \n",
"
\n",
" \n",
" | 23 | \n",
" /docs/data/EL/209_C3/Deg2/209_C3_0005_2021_04_... | \n",
" 209_C3 | \n",
" Deg2 | \n",
" 0.009595 | \n",
" 88.786965 | \n",
" 8.160221 | \n",
" 1.795159e-06 | \n",
" 1.573030 | \n",
" 3.347141 | \n",
" 0.452525 | \n",
" 7.396585 | \n",
" [-4.2912847e-01 2.1230426e+00 8.3105731e-01 ... | \n",
" 3 | \n",
" -3.268041 | \n",
"
\n",
" \n",
" | 25 | \n",
" /docs/data/EL/209_B2/Deg2/209_B2_0005_2021_04_... | \n",
" 209_B2 | \n",
" Deg2 | \n",
" 0.009456 | \n",
" 529.959186 | \n",
" 8.231207 | \n",
" 3.558481e-06 | \n",
" 1.644547 | \n",
" 3.346776 | \n",
" 0.452525 | \n",
" 7.395777 | \n",
" [-0.2521562 0.70483327 1.0419804 -1.359632... | \n",
" 1 | \n",
" -4.311519 | \n",
"
\n",
" \n",
" | 26 | \n",
" /docs/data/EL/209_B3/Deg2/209_B3_0005_2021_04_... | \n",
" 209_B3 | \n",
" Deg2 | \n",
" 0.010031 | \n",
" 97.047204 | \n",
" 8.309195 | \n",
" 1.610765e-06 | \n",
" 1.567835 | \n",
" 3.399534 | \n",
" 0.452525 | \n",
" 7.512363 | \n",
" [-1.8619239 1.6475563 1.0302961 -1.493011... | \n",
" 1 | \n",
" -4.495282 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ELPath Module Deg Rs \\\n",
"11 /docs/data/EL/209_A2/Deg1/209_A2_0005_2021_04_... 209_A2 Deg1 0.008996 \n",
"12 /docs/data/EL/209_A1/Deg1/209_A1_0005_2021_04_... 209_A1 Deg1 0.010386 \n",
"18 /docs/data/EL/209_A3/Deg2/209_A3_0005_2021_04_... 209_A3 Deg2 0.008634 \n",
"21 /docs/data/EL/209_A1/Deg2/209_A1_0005_2021_04_... 209_A1 Deg2 0.012567 \n",
"23 /docs/data/EL/209_C3/Deg2/209_C3_0005_2021_04_... 209_C3 Deg2 0.009595 \n",
"25 /docs/data/EL/209_B2/Deg2/209_B2_0005_2021_04_... 209_B2 Deg2 0.009456 \n",
"26 /docs/data/EL/209_B3/Deg2/209_B3_0005_2021_04_... 209_B3 Deg2 0.010031 \n",
"\n",
" Rsh I Is N Pmp Vmp \\\n",
"11 1295.750000 8.228613 9.005018e-08 1.317542 3.534448 0.465455 \n",
"12 1.000000 8.184377 1.006196e-05 1.778587 3.051399 0.446061 \n",
"18 8.986411 8.233849 6.987570e-06 1.730266 3.349300 0.458990 \n",
"21 0.835178 7.588188 3.762260e-05 1.997049 2.678277 0.433131 \n",
"23 88.786965 8.160221 1.795159e-06 1.573030 3.347141 0.452525 \n",
"25 529.959186 8.231207 3.558481e-06 1.644547 3.346776 0.452525 \n",
"26 97.047204 8.309195 1.610765e-06 1.567835 3.399534 0.452525 \n",
"\n",
" Imp lat_vec klabel \\\n",
"11 7.593540 [ 5.0129116e-02 1.5392177e+00 1.2010708e+00 ... 4 \n",
"12 6.840773 [ 0.1527828 0.6933546 0.61783403 -1.311733... 1 \n",
"18 7.297111 [ 1.6261781e+00 -1.3577162e-01 3.6160046e-01 ... 4 \n",
"21 6.183523 [-1.2965436 0.14127842 0.39876893 -0.320378... 1 \n",
"23 7.396585 [-4.2912847e-01 2.1230426e+00 8.3105731e-01 ... 3 \n",
"25 7.395777 [-0.2521562 0.70483327 1.0419804 -1.359632... 1 \n",
"26 7.512363 [-1.8619239 1.6475563 1.0302961 -1.493011... 1 \n",
"\n",
" deltaPmp \n",
"11 -0.254354 \n",
"12 -13.414670 \n",
"18 -6.030860 \n",
"21 -24.002233 \n",
"23 -3.268041 \n",
"25 -4.311519 \n",
"26 -4.495282 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Cell9Degs"
]
},
{
"cell_type": "markdown",
"id": "e21ad36a-be80-4600-8dfb-91af1020ace3",
"metadata": {},
"source": [
"### Load latent vectors:\n",
"We show in the EL variational autoencoder (VAE) example \"Rapid EL processing\" how to obtain these."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "590452b3-66ed-45b1-ad15-696f2c05272b",
"metadata": {},
"outputs": [],
"source": [
"#reformat latent vectors to np.array[np.array[],...]\n",
"def parse_whitespace_vec(s):\n",
" # strip off the brackets, then split on any whitespace (incl newlines),\n",
" # then convert each token to float\n",
" nums = s.strip('[]').split()\n",
" return [float(x) for x in nums]\n",
"\n",
"# apply parsing\n",
"parsed = Cell9Degs['lat_vec'].apply(parse_whitespace_vec)\n",
"\n",
"# 2) stack into a numpy array of dtype object\n",
"lat_vectors = np.array(parsed.tolist(), dtype=object)"
]
},
{
"cell_type": "markdown",
"id": "64395082-51a5-46a2-8ffd-1137c6710920",
"metadata": {},
"source": [
"### Load xgboost models:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "2a8372f9-f391-4c64-9390-45de124637db",
"metadata": {},
"outputs": [],
"source": [
"pmpp_model, voc_model = load_xgb_models(\n",
" pmpp_model_path=\"pvcracks/powerloss/xgb_model_pmpp_diff_percent_3CH.pkl\",\n",
" voc_model_path=\"pvcracks/powerloss/xgb_model_Voc_diff_percent_3CH.pkl\"\n",
" )"
]
},
{
"cell_type": "markdown",
"id": "203588d6-5b69-470b-9b5e-5435f02b70a9",
"metadata": {},
"source": [
"### Predict delta Pmpp in %"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "234d718d-3e67-485d-a604-deb32bebe735",
"metadata": {},
"outputs": [],
"source": [
"df_predictions = predict_power_and_voc(lat_vectors, pmpp_model, voc_model)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "5cdc9265-8bc3-4bde-a419-bcf418e29a72",
"metadata": {},
"outputs": [],
"source": [
"#power loss predictions added to cell info dataframe\n",
"Cell9Degs.loc[:, 'power_loss_%'] = df_predictions['power_loss_%'].values"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "71dfcc53-fab7-4a02-b1f2-5c77b35d8c06",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Module | \n",
" Deg | \n",
" deltaPmp | \n",
" power_loss_% | \n",
"
\n",
" \n",
" \n",
" \n",
" | 11 | \n",
" 209_A2 | \n",
" Deg1 | \n",
" -0.254354 | \n",
" -13.171658 | \n",
"
\n",
" \n",
" | 12 | \n",
" 209_A1 | \n",
" Deg1 | \n",
" -13.414670 | \n",
" -12.675356 | \n",
"
\n",
" \n",
" | 18 | \n",
" 209_A3 | \n",
" Deg2 | \n",
" -6.030860 | \n",
" -15.003642 | \n",
"
\n",
" \n",
" | 21 | \n",
" 209_A1 | \n",
" Deg2 | \n",
" -24.002233 | \n",
" -10.363716 | \n",
"
\n",
" \n",
" | 23 | \n",
" 209_C3 | \n",
" Deg2 | \n",
" -3.268041 | \n",
" -7.291249 | \n",
"
\n",
" \n",
" | 25 | \n",
" 209_B2 | \n",
" Deg2 | \n",
" -4.311519 | \n",
" -18.673622 | \n",
"
\n",
" \n",
" | 26 | \n",
" 209_B3 | \n",
" Deg2 | \n",
" -4.495282 | \n",
" -15.299884 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Module Deg deltaPmp power_loss_%\n",
"11 209_A2 Deg1 -0.254354 -13.171658\n",
"12 209_A1 Deg1 -13.414670 -12.675356\n",
"18 209_A3 Deg2 -6.030860 -15.003642\n",
"21 209_A1 Deg2 -24.002233 -10.363716\n",
"23 209_C3 Deg2 -3.268041 -7.291249\n",
"25 209_B2 Deg2 -4.311519 -18.673622\n",
"26 209_B3 Deg2 -4.495282 -15.299884"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Cell9Degs[['Module', 'Deg', 'deltaPmp', 'power_loss_%']]"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "63225a04-7ca9-4441-9dd2-2c14f65bda15",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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XsXJyYnNmzdTr149k/sdiZcrLi5O6iEDkHrIGKQeMgaph4whreohIiICf39/7t+/j7u7e6rHmj043NnZmUuXLlGuXDmuXr2aZExT8eLFM33SBI9vourm5oaTkxPOzs64ubnJF8OK4uLipB4yAKmHjEHqIWOQesgY0roezBmiY/bg8PHjx9OmTRv8/PyoXr06o0ePfqHghBBCCCEyG7NbnD766CMaNGjAf//9R8GCBfHw8EjHsIQQQgghMh6L7lWXI0cOcuTIkV6xCCGEEEJkaGYlTl27dmXIkCH4+/s/89jly5cTHx/PRx999MLBWVt8fDz//vsvixYtIjY21trhvLISEhI4efIkV69exdbW1trhYG9vT1BQEBUrVswSS3AIIYQwn1mJU86cOSlRogRVq1alSZMmlC9fHj8/PxwdHbl37x6nT59mz549LFu2jNy5c/P999+nd9yp+u677/j6668JCQmhePHiTJs2jWrVqll0jhs3bjBu3DguX75M/vz5nznKXqQfpRSxsbGcP38+Q6ytFR0dzerVq3FwcGDo0KGULl3a2iEJIYR4ScxKnEaPHk2vXr2YN28es2fPTnKzRldXV+rUqcPcuXOpV69eugRqruXLl9OnTx++++47Xn/9debMmcNbb73F6dOnyZs3r9nnGT16NG5ubkyePJmyZctmiJaOV5XBYOD27dt4e3s/e2Gyl+T27dt89913jB49mu+++45cuXJZOyQhhBAvgdl/hby9vRk8eDDHjx/n7t27HDlyhL/++otz585x7949fv31V6snTQBTpkyhY8eOdOrUiaJFizJt2jT8/f2ZNWuWRee5d+8eAwcOxN/fP0O0coiMxdvbm88//xydTsfu3butHY4QQoiXxKLB4Yk8PDwy5Ky62NhYDh8+zOeff25SXq9ePfbu3Zvsc2JiYoiJiTFuR0REANqCn3nz5iU0NBSlFAaDIf0CF6lKXKM1o9WDvb09JUqU4Pjx47zzzjvWDifdxcXFmfwrrEPqIWOQesgY0qoeLHn+cyVOGVVoaCgJCQlJuk1y5crFzZs3k33O+PHjGTlyZJJyGxsbQkNDAbhz507aBysslhHrQafTcfr0aTZs2GDtUF6aLVu2WDsEgdRDRiH1kDG8aD1ERUWZfWyWSpwSPd21ppRKsbtt8ODB9OvXz7iduOx6tmzZyJkzJ3fu3CFn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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#Compare IV fit results vs XGboost\n",
"import matplotlib.pyplot as plt\n",
"\n",
"x = Cell9Degs['deltaPmp']\n",
"y = Cell9Degs['power_loss_%']\n",
"\n",
"# compute correlation\n",
"r = x.corr(y)\n",
"\n",
"plt.figure(figsize=(6,4))\n",
"plt.scatter(x, y, alpha=0.7)\n",
"mn = min(x.min(), y.min())\n",
"mx = max(x.max(), y.max())\n",
"plt.plot([mn,mx], [mn,mx], 'r--', label='y = x')\n",
"plt.text(x.min()-0.9, 0, f\"Pearson r = {r:.3f}\", fontsize=10, verticalalignment='top',\n",
" bbox=dict(boxstyle='round', facecolor='white', alpha=0.7))\n",
"plt.xlabel('Cell delta Pmp from IV curves (%)')\n",
"plt.ylabel('Power Loss from latent vectors and XGboost (%)')\n",
"plt.title('IV curve delta Pmpp vs. XGboost power loss %')\n",
"plt.legend()\n",
"plt.grid(True)\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "2b1ed891-f875-4623-9db1-71008736dab6",
"metadata": {},
"source": [
"The current results show a low pearson score (<0.3). This is due to our limited amount of EL/IV pairs that we could use to train the XGboost model, 77 pairs. In the powerloss subpackage there is a jupyter notebook going through the steps how the xgboost model is trained. This could be done with more data when made avaialable."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "pyhpc_torcha3",
"language": "python",
"name": "pyhpc_torcha3"
},
"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.13.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}