battery-anomaly-detection/notebooks/eda.ipynb

2830 lines
1.7 MiB
Plaintext
Raw Normal View History

2023-08-28 18:24:41 +09:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Initial Data Exploration"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import polars as pl\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from io import StringIO\n",
"import math"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"df = pl.read_csv('output.csv')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['',\n",
" 'time',\n",
" 'AVG_PACK_SOC',\n",
" 'AvgSOC',\n",
" 'AvgSOH',\n",
" 'BATT_PACK_1_DISCONN',\n",
" 'BATT_PACK_1_FAULT',\n",
" 'BATT_PACK_1_WARN',\n",
" 'BATT_PACK_2_DISCONN',\n",
" 'BATT_PACK_2_FAULT',\n",
" 'BATT_PACK_2_WARN',\n",
" 'BATT_PACK_3_DISCONN',\n",
" 'BATT_PACK_3_FAULT',\n",
" 'BATT_PACK_3_WARN',\n",
" 'BATT_PACK_4_DISCONN',\n",
" 'BATT_PACK_4_FAULT',\n",
" 'BATT_PACK_4_WARN',\n",
" 'BATT_PACK_5_DISCONN',\n",
" 'BATT_PACK_5_FAULT',\n",
" 'BATT_PACK_5_WARN',\n",
" 'BATT_PACK_6_DISCONN',\n",
" 'BATT_PACK_6_FAULT',\n",
" 'BATT_PACK_6_WARN',\n",
" 'BATT_PACK_7_DISCONN',\n",
" 'BATT_PACK_7_FAULT',\n",
" 'BATT_PACK_7_WARN',\n",
" 'BATT_ROOM_TEMP',\n",
" 'Current',\n",
" 'MAX_CELL_TEMP',\n",
" 'MAX_CELL_VOL',\n",
" 'MAX_PACK_SOC',\n",
" 'MAX_UNCONN_PACK_VOL',\n",
" 'MIN_CELL_TEMP',\n",
" 'MIN_CELL_VOL',\n",
" 'MIN_PACK_SOC',\n",
" 'MIN_UNCONN_PACK_VOL',\n",
" 'NUMBER_OF_PACKS_CONN',\n",
" 'NUMBER_OF_PACKS_FAULTED',\n",
" 'PACK1_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK1_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK1_CRIDATA_BATT_VOL',\n",
" 'PACK1_CRIDATA_BUS_VOL',\n",
" 'PACK1_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK1_CRIDATA_CURR',\n",
" 'PACK1_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK1_CRIDATA_SOC',\n",
" 'PACK1_CRIDATA_SOH',\n",
" 'PACK2_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK2_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK2_CRIDATA_BATT_VOL',\n",
" 'PACK2_CRIDATA_BUS_VOL',\n",
" 'PACK2_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK2_CRIDATA_CURR',\n",
" 'PACK2_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK2_CRIDATA_SOC',\n",
" 'PACK2_CRIDATA_SOH',\n",
" 'PACK3_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK3_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK3_CRIDATA_BATT_VOL',\n",
" 'PACK3_CRIDATA_BUS_VOL',\n",
" 'PACK3_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK3_CRIDATA_CURR',\n",
" 'PACK3_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK3_CRIDATA_SOC',\n",
" 'PACK3_CRIDATA_SOH',\n",
" 'PACK4_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK4_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK4_CRIDATA_BATT_VOL',\n",
" 'PACK4_CRIDATA_BUS_VOL',\n",
" 'PACK4_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK4_CRIDATA_CURR',\n",
" 'PACK4_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK4_CRIDATA_SOC',\n",
" 'PACK4_CRIDATA_SOH',\n",
" 'PACK5_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK5_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK5_CRIDATA_BATT_VOL',\n",
" 'PACK5_CRIDATA_BUS_VOL',\n",
" 'PACK5_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK5_CRIDATA_CURR',\n",
" 'PACK5_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK5_CRIDATA_SOC',\n",
" 'PACK5_CRIDATA_SOH',\n",
" 'PACK6_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK6_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK6_CRIDATA_BATT_VOL',\n",
" 'PACK6_CRIDATA_BUS_VOL',\n",
" 'PACK6_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK6_CRIDATA_CURR',\n",
" 'PACK6_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK6_CRIDATA_SOC',\n",
" 'PACK6_CRIDATA_SOH',\n",
" 'PACK7_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK7_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK7_CRIDATA_BATT_VOL',\n",
" 'PACK7_CRIDATA_BUS_VOL',\n",
" 'PACK7_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK7_CRIDATA_CURR',\n",
" 'PACK7_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK7_CRIDATA_SOC',\n",
" 'PACK7_CRIDATA_SOH',\n",
" 'PACK_1_STATUS',\n",
" 'PACK_2_STATUS',\n",
" 'PACK_3_STATUS',\n",
" 'PACK_4_STATUS',\n",
" 'PACK_5_STATUS',\n",
" 'PACK_6_STATUS',\n",
" 'PACK_7_STATUS',\n",
" 'RunningState',\n",
" 'Voltage',\n",
" 'valuestreamname']"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.columns"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"s = df['PACK1_CRIDATA_BATT_VOL']\n",
"s1 = s.cast(pl.Float32)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fb2b99838b0>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(range(len(s1)), s1, marker='o', s=10)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 's1' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[24], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m plt\u001b[39m.\u001b[39mscatter(s1\u001b[39m.\u001b[39mfill_null(strategy\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mbackward\u001b[39m\u001b[39m'\u001b[39m))\n",
"\u001b[0;31mNameError\u001b[0m: name 's1' is not defined"
]
}
],
"source": [
"plt.scatter(s1.fill_null(strategy='backward'))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"size = len(s1)\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [],
"source": [
"start_index = 0\n",
"# end_index = math.floor(size/2)\n",
"end_index = 60000"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7feea4e44910>]"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(s1.fill_null(strategy='forward')[100:end_index])"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7feea49b2680>]"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"plt.plot(s1.fill_null(strategy='zero')[57700:57720])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Analysis: The voltage drops from 800 to 0 in a very short span of time. I doubt that it is due to the battery discharge, since it quickly resumes to its normal voltage"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What is the time?"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2022-10-19T05:19:00Z\n",
"2022-10-19T05:20:00Z\n",
"2022-10-19T05:21:00Z\n"
]
}
],
"source": [
"print(df['time'][57700])\n",
"print(df['time'][57701])\n",
"print(df['time'][57702])"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"40"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.columns.index('PACK1_CRIDATA_BATT_VOL')"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['',\n",
" 'time',\n",
" 'AVG_PACK_SOC',\n",
" 'AvgSOC',\n",
" 'AvgSOH',\n",
" 'BATT_PACK_1_DISCONN',\n",
" 'BATT_PACK_1_FAULT',\n",
" 'BATT_PACK_1_WARN',\n",
" 'BATT_PACK_2_DISCONN',\n",
" 'BATT_PACK_2_FAULT',\n",
" 'BATT_PACK_2_WARN',\n",
" 'BATT_PACK_3_DISCONN',\n",
" 'BATT_PACK_3_FAULT',\n",
" 'BATT_PACK_3_WARN',\n",
" 'BATT_PACK_4_DISCONN',\n",
" 'BATT_PACK_4_FAULT',\n",
" 'BATT_PACK_4_WARN',\n",
" 'BATT_PACK_5_DISCONN',\n",
" 'BATT_PACK_5_FAULT',\n",
" 'BATT_PACK_5_WARN',\n",
" 'BATT_PACK_6_DISCONN',\n",
" 'BATT_PACK_6_FAULT',\n",
" 'BATT_PACK_6_WARN',\n",
" 'BATT_PACK_7_DISCONN',\n",
" 'BATT_PACK_7_FAULT',\n",
" 'BATT_PACK_7_WARN',\n",
" 'BATT_ROOM_TEMP',\n",
" 'Current',\n",
" 'MAX_CELL_TEMP',\n",
" 'MAX_CELL_VOL',\n",
" 'MAX_PACK_SOC',\n",
" 'MAX_UNCONN_PACK_VOL',\n",
" 'MIN_CELL_TEMP',\n",
" 'MIN_CELL_VOL',\n",
" 'MIN_PACK_SOC',\n",
" 'MIN_UNCONN_PACK_VOL',\n",
" 'NUMBER_OF_PACKS_CONN',\n",
" 'NUMBER_OF_PACKS_FAULTED',\n",
" 'PACK1_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK1_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK1_CRIDATA_BATT_VOL',\n",
" 'PACK1_CRIDATA_BUS_VOL',\n",
" 'PACK1_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK1_CRIDATA_CURR',\n",
" 'PACK1_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK1_CRIDATA_SOC',\n",
" 'PACK1_CRIDATA_SOH',\n",
" 'PACK2_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK2_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK2_CRIDATA_BATT_VOL',\n",
" 'PACK2_CRIDATA_BUS_VOL',\n",
" 'PACK2_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK2_CRIDATA_CURR',\n",
" 'PACK2_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK2_CRIDATA_SOC',\n",
" 'PACK2_CRIDATA_SOH',\n",
" 'PACK3_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK3_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK3_CRIDATA_BATT_VOL',\n",
" 'PACK3_CRIDATA_BUS_VOL',\n",
" 'PACK3_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK3_CRIDATA_CURR',\n",
" 'PACK3_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK3_CRIDATA_SOC',\n",
" 'PACK3_CRIDATA_SOH',\n",
" 'PACK4_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK4_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK4_CRIDATA_BATT_VOL',\n",
" 'PACK4_CRIDATA_BUS_VOL',\n",
" 'PACK4_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK4_CRIDATA_CURR',\n",
" 'PACK4_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK4_CRIDATA_SOC',\n",
" 'PACK4_CRIDATA_SOH',\n",
" 'PACK5_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK5_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK5_CRIDATA_BATT_VOL',\n",
" 'PACK5_CRIDATA_BUS_VOL',\n",
" 'PACK5_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK5_CRIDATA_CURR',\n",
" 'PACK5_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK5_CRIDATA_SOC',\n",
" 'PACK5_CRIDATA_SOH',\n",
" 'PACK6_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK6_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK6_CRIDATA_BATT_VOL',\n",
" 'PACK6_CRIDATA_BUS_VOL',\n",
" 'PACK6_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK6_CRIDATA_CURR',\n",
" 'PACK6_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK6_CRIDATA_SOC',\n",
" 'PACK6_CRIDATA_SOH',\n",
" 'PACK7_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK7_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK7_CRIDATA_BATT_VOL',\n",
" 'PACK7_CRIDATA_BUS_VOL',\n",
" 'PACK7_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK7_CRIDATA_CURR',\n",
" 'PACK7_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK7_CRIDATA_SOC',\n",
" 'PACK7_CRIDATA_SOH',\n",
" 'PACK_1_STATUS',\n",
" 'PACK_2_STATUS',\n",
" 'PACK_3_STATUS',\n",
" 'PACK_4_STATUS',\n",
" 'PACK_5_STATUS',\n",
" 'PACK_6_STATUS',\n",
" 'PACK_7_STATUS',\n",
" 'RunningState',\n",
" 'Voltage',\n",
" 'valuestreamname']"
]
},
"execution_count": 82,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.columns"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['PACK1_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK1_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK1_CRIDATA_BATT_VOL',\n",
" 'PACK1_CRIDATA_BUS_VOL',\n",
" 'PACK1_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK1_CRIDATA_CURR',\n",
" 'PACK1_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK1_CRIDATA_SOC',\n",
" 'PACK1_CRIDATA_SOH']"
]
},
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.columns[38:47]"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<bound method DataFrame.melt of shape: (3, 9)\n",
"┌───────────┬───────────┬───────────┬───────────┬───┬───────────┬───────────┬───────────┬──────────┐\n",
"│ PACK1_CRI ┆ PACK1_CRI ┆ PACK1_CRI ┆ PACK1_CRI ┆ … ┆ PACK1_CRI ┆ PACK1_CRI ┆ PACK1_CRI ┆ PACK1_CR │\n",
"│ DATA_AVG_ ┆ DATA_AVG_ ┆ DATA_BATT ┆ DATA_BUS_ ┆ ┆ DATA_CURR ┆ DATA_DISC ┆ DATA_SOC ┆ IDATA_SO │\n",
"│ CELL_TEMP ┆ CELL_VOL ┆ _VOL ┆ VOL ┆ ┆ --- ┆ HARGE_CUR ┆ --- ┆ H │\n",
"│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ str ┆ R_LIM… ┆ str ┆ --- │\n",
"│ str ┆ str ┆ str ┆ str ┆ ┆ ┆ --- ┆ ┆ str │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ str ┆ ┆ │\n",
"╞═══════════╪═══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪══════════╡\n",
"│ 26.0 ┆ 3961.0 ┆ 904.0 ┆ 0.0 ┆ … ┆ 0.0 ┆ 471.0 ┆ 80.0 ┆ 100.0 │\n",
"│ 0.0 ┆ 0.0 ┆ 0.0 ┆ 0.0 ┆ … ┆ 0.0 ┆ 0.0 ┆ 0.0 ┆ 0.0 │\n",
"│ 26.0 ┆ 3961.0 ┆ 904.0 ┆ 0.0 ┆ … ┆ 0.0 ┆ 471.0 ┆ 80.0 ┆ 100.0 │\n",
"└───────────┴───────────┴───────────┴───────────┴───┴───────────┴───────────┴───────────┴──────────┘>"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[57712:57715, 38:47].melt"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<bound method DataFrame.melt of shape: (3, 3)\n",
"┌─────────────────────┬───────────────────┬──────────────────┐\n",
"│ BATT_PACK_1_DISCONN ┆ BATT_PACK_1_FAULT ┆ BATT_PACK_1_WARN │\n",
"│ --- ┆ --- ┆ --- │\n",
"│ str ┆ str ┆ str │\n",
"╞═════════════════════╪═══════════════════╪══════════════════╡\n",
"│ True ┆ False ┆ False │\n",
"│ null ┆ null ┆ null │\n",
"│ True ┆ False ┆ False │\n",
"└─────────────────────┴───────────────────┴──────────────────┘>"
]
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[57712:57715, 5:8].melt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Turns out it was just a missing data row"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><style>\n",
".dataframe > thead > tr > th,\n",
".dataframe > tbody > tr > td {\n",
" text-align: right;\n",
"}\n",
"</style>\n",
"<small>shape: (3, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>BATT_PACK_1_DISCONN</th><th>counts</th></tr><tr><td>str</td><td>u32</td></tr></thead><tbody><tr><td>&quot;False&quot;</td><td>150260</td></tr><tr><td>&quot;True&quot;</td><td>51769</td></tr><tr><td>null</td><td>71932</td></tr></tbody></table></div>"
],
"text/plain": [
"shape: (3, 2)\n",
"┌─────────────────────┬────────┐\n",
"│ BATT_PACK_1_DISCONN ┆ counts │\n",
"│ --- ┆ --- │\n",
"│ str ┆ u32 │\n",
"╞═════════════════════╪════════╡\n",
"│ False ┆ 150260 │\n",
"│ True ┆ 51769 │\n",
"│ null ┆ 71932 │\n",
"└─────────────────────┴────────┘"
]
},
"execution_count": 88,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['BATT_PACK_1_DISCONN'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A strategy we can employ is to try to convert all 0 values in voltage to their neighbor values (interpolate)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Finding anomalies"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><style>\n",
".dataframe > thead > tr > th,\n",
".dataframe > tbody > tr > td {\n",
" text-align: right;\n",
"}\n",
"</style>\n",
"<small>shape: (5, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>PACK_1_STATUS</th><th>counts</th></tr><tr><td>str</td><td>u32</td></tr></thead><tbody><tr><td>null</td><td>66165</td></tr><tr><td>&quot;1.0&quot;</td><td>56</td></tr><tr><td>&quot;274.0&quot;</td><td>1</td></tr><tr><td>&quot;100.0&quot;</td><td>1</td></tr><tr><td>&quot;0.0&quot;</td><td>207738</td></tr></tbody></table></div>"
],
"text/plain": [
"shape: (5, 2)\n",
"┌───────────────┬────────┐\n",
"│ PACK_1_STATUS ┆ counts │\n",
"│ --- ┆ --- │\n",
"│ str ┆ u32 │\n",
"╞═══════════════╪════════╡\n",
"│ null ┆ 66165 │\n",
"│ 1.0 ┆ 56 │\n",
"│ 274.0 ┆ 1 │\n",
"│ 100.0 ┆ 1 │\n",
"│ 0.0 ┆ 207738 │\n",
"└───────────────┴────────┘"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['PACK_1_STATUS'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><style>\n",
".dataframe > thead > tr > th,\n",
".dataframe > tbody > tr > td {\n",
" text-align: right;\n",
"}\n",
"</style>\n",
"<small>shape: (3, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>BATT_PACK_1_DISCONN</th><th>counts</th></tr><tr><td>str</td><td>u32</td></tr></thead><tbody><tr><td>&quot;False&quot;</td><td>150260</td></tr><tr><td>null</td><td>71932</td></tr><tr><td>&quot;True&quot;</td><td>51769</td></tr></tbody></table></div>"
],
"text/plain": [
"shape: (3, 2)\n",
"┌─────────────────────┬────────┐\n",
"│ BATT_PACK_1_DISCONN ┆ counts │\n",
"│ --- ┆ --- │\n",
"│ str ┆ u32 │\n",
"╞═════════════════════╪════════╡\n",
"│ False ┆ 150260 │\n",
"│ null ┆ 71932 │\n",
"│ True ┆ 51769 │\n",
"└─────────────────────┴────────┘"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['BATT_PACK_1_DISCONN'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><style>\n",
".dataframe > thead > tr > th,\n",
".dataframe > tbody > tr > td {\n",
" text-align: right;\n",
"}\n",
"</style>\n",
"<small>shape: (3, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>BATT_PACK_1_FAULT</th><th>counts</th></tr><tr><td>str</td><td>u32</td></tr></thead><tbody><tr><td>&quot;False&quot;</td><td>137042</td></tr><tr><td>null</td><td>136820</td></tr><tr><td>&quot;True&quot;</td><td>99</td></tr></tbody></table></div>"
],
"text/plain": [
"shape: (3, 2)\n",
"┌───────────────────┬────────┐\n",
"│ BATT_PACK_1_FAULT ┆ counts │\n",
"│ --- ┆ --- │\n",
"│ str ┆ u32 │\n",
"╞═══════════════════╪════════╡\n",
"│ False ┆ 137042 │\n",
"│ null ┆ 136820 │\n",
"│ True ┆ 99 │\n",
"└───────────────────┴────────┘"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['BATT_PACK_1_FAULT'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><style>\n",
".dataframe > thead > tr > th,\n",
".dataframe > tbody > tr > td {\n",
" text-align: right;\n",
"}\n",
"</style>\n",
"<small>shape: (3, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>BATT_PACK_1_WARN</th><th>counts</th></tr><tr><td>str</td><td>u32</td></tr></thead><tbody><tr><td>&quot;True&quot;</td><td>148</td></tr><tr><td>null</td><td>131051</td></tr><tr><td>&quot;False&quot;</td><td>142762</td></tr></tbody></table></div>"
],
"text/plain": [
"shape: (3, 2)\n",
"┌──────────────────┬────────┐\n",
"│ BATT_PACK_1_WARN ┆ counts │\n",
"│ --- ┆ --- │\n",
"│ str ┆ u32 │\n",
"╞══════════════════╪════════╡\n",
"│ True ┆ 148 │\n",
"│ null ┆ 131051 │\n",
"│ False ┆ 142762 │\n",
"└──────────────────┴────────┘"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['BATT_PACK_1_WARN'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAY2CAYAAAC5dc9gAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADdJUlEQVR4nOzdeZxVdf0/8PewDYvMyCIMuIFWKqIpKJuBO6KipZW4UfY1lG9ZmVqKK9qCWdmupamUC9I3pSyQxFJcgBQVVzRTENQZUIQZkB3u7w9+jFxmuzPMhxmH5/PxuI/H3HM/53OWe+59z+ucc8/Jy2QymQAAAADqXbOGngEAAABoqoRuAAAASEToBgAAgESEbgAAAEhE6AYAAIBEhG4AAABIROgGAACARIRuAAAASEToBgAAgESEbmgkxo4dG3l5eeXPe/ToEeecc07DzdDHwE033RTjx49P0ndeXl6MHTs2Sd8A0JiNHz8+8vLyYv78+Q09K9AktGjoGQAqN2nSpCgoKGjo2WjUbrrppujcubOdEwBQj0488cSYOXNmdOvWraFnBZoEoRsaqYMPPrihZwEAaAJWrlwZbdu2zbn9LrvsErvsskvCOYIdi9PLoQFMnjw5DjrooMjPz4+ePXvGT37ykwpttj69fOPGjfH9738/9tlnn2jTpk3svPPOceCBB8YvfvGLrPFeffXVOOOMM6Jr166Rn58fe+yxR3zpS1+KNWvWlLd56aWX4rOf/Wx06NAhWrduHQcddFD84Q9/yOrn0Ucfjby8vJgwYUJcccUV0b179ygoKIhjjjkmXnvttay2RxxxRPTu3TuefvrpGDx4cLRt2zb22muvuP7662Pjxo1ZbcvKyuKSSy6Jnj17RqtWrWLXXXeNCy+8MD788MOsdhs3boxf/epXcdBBB5Uv74ABA+KBBx4oXz8vv/xyTJ8+PfLy8iIvLy969OhR6+mUlZXFqFGjolOnTrHTTjvFsGHD4j//+U8V7xwAbJuXX3458vLy4v/+7//Khz3zzDORl5cX+++/f1bbk08+Ofr27RsRERMnToyhQ4dGt27dok2bNrHffvvFZZddVqGunXPOObHTTjvFiy++GEOHDo327dvH0UcfHRGbfjp1wQUXxJ133hn77bdftG3bNj796U/H3//+96w+Kju9vDa1/uWXX46hQ4dG27ZtY5dddomvf/3rMXny5MjLy4tHH310W1chfOw40g3b2T//+c/47Gc/GwMHDox77703NmzYEDfccEMsWrSo2vFuuOGGGDt2bFx55ZUxZMiQWLduXbz66quxbNmy8jbPP/98fOYzn4nOnTvHddddF5/85CejuLg4HnjggVi7dm3k5+fHa6+9FoMGDYouXbrEL3/5y+jUqVPcddddcc4558SiRYviu9/9btZ0L7/88jjssMPi97//fZSVlcWll14aJ510UsydOzeaN29e3q6kpCTOOuusuPjii+Oaa66JSZMmxZgxY6J79+7xpS99KSI27Wk//PDD4+23347LL788DjzwwHj55Zfj6quvjhdffDEefvjh8t+1n3POOXHXXXfFueeeG9ddd120atUqnn322fJ/ACZNmhRf+MIXorCwMG666aaIiMjPz6/VdDKZTHzuc5+LGTNmxNVXXx2HHnpoPPnkk3H88cdv03sMAFXZf//9o1u3bvHwww/HF7/4xYiIePjhh6NNmzbxyiuvxLvvvhvdu3eP9evXx/Tp02P06NEREfH666/HCSecEBdeeGG0a9cuXn311fjRj34UTz31VPzrX//KmsbatWvj5JNPjvPPPz8uu+yyWL9+fflrkydPjqeffjquu+662GmnneKGG26IU045JV577bXYa6+9qp33XGp9cXFxHH744dGuXbu4+eabo0uXLjFhwoS44IIL6nM1wsdLBtiu+vfvn+nevXtm1apV5cPKysoyHTt2zGz5kdxzzz0zX/7yl8ufDx8+PHPQQQdV2/dRRx2V2XnnnTOLFy+uss3pp5+eyc/PzyxYsCBr+PHHH59p27ZtZtmyZZlMJpN55JFHMhGROeGEE7La/elPf8pERGbmzJnlww4//PBMRGT+/e9/Z7Xt1atX5rjjjit/Pm7cuEyzZs0yTz/9dFa7P//5z5mIyEyZMiWTyWQyjz32WCYiMldccUW1y7v//vtnDj/88ArDc53Ogw8+mImIzC9+8Yusdj/4wQ8yEZG55pprqp0+ANTF2Wefndlrr73Knx9zzDGZUaNGZTp06JD5wx/+kMlkMpknn3wyExGZhx56qML4GzduzKxbty4zffr0TERknn/++fLXvvzlL2ciInP77bdXGC8iMl27ds2UlZWVDyspKck0a9YsM27cuPJhd9xxRyYiMvPmzSsflmut/853vpPJy8vLvPzyy1ntjjvuuExEZB555JEa1g40PU4vh+3oww8/jKeffjpOPfXUaN26dfnw9u3bx0knnVTtuP369Yvnn38+vva1r8U//vGPKCsry3p95cqVMX369DjttNOq/R3Wv/71rzj66KNj9913zxp+zjnnxMqVK2PmzJlZw08++eSs5wceeGBERLz11ltZw4uKiqJfv34V2m7Z7u9//3v07t07DjrooFi/fn3547jjjss65ezBBx+MiIivf/3rVS5HdXKdziOPPBIREWeddVbW+GeeeWadpgsAuTj66KPjzTffjHnz5sXq1avjiSeeiGHDhsWRRx4Z06ZNi4hNR7/z8/PjM5/5TEREvPnmm3HmmWdGUVFRNG/ePFq2bBmHH354RETMnTu3wjQ+//nPVzrtI488Mtq3b1/+vGvXrtGlS5cKdb0yudT66dOnR+/evaNXr15Z7c4444wa+4emyunlsB0tXbo0Nm7cGEVFRRVeq2zYlsaMGRPt2rWLu+66K377299G8+bNY8iQIfGjH/0oDjnkkFi6dGls2LAhdtttt2r7WbJkSaVXI+3evXv561vq1KlT1vPNp3CvWrWq2nab227ZbtGiRfHf//43WrZsWem8vf/++xER8d5770Xz5s1rXCdVyXU6S5YsiRYtWlSY97pOFwByccwxx0TEpmDds2fPWLduXRx11FGxaNGi+N73vlf+2mGHHRZt2rSJFStWxODBg6N169bx/e9/Pz71qU9F27ZtY+HChXHqqadWqMlt27at8g4oudTrquQy7pIlS6Jnz54V2nXt2rXG/qGpErphO+rQoUPk5eVFSUlJhdcqG7alFi1axEUXXRQXXXRRLFu2LB5++OG4/PLL47jjjouFCxdGx44do3nz5vH2229X20+nTp2iuLi4wvB33303IiI6d+5ciyWqnc6dO0ebNm3i9ttvr/L1iE1XTd2wYUOUlJTU6XYluU6nU6dOsX79+liyZEnWPxI1vRcAsC122223+NSnPhUPP/xw9OjRIw455JDYeeed4+ijj46vfe1r8e9//ztmzZoV1157bURsOkvt3XffjUcffbT86HZEZF3XZUubr4/SEDp16lTpdWrUVnZkTi+H7ahdu3bRr1+/uP/++2P16tXlw5cvXx5/+9vfcu5n5513ji984Qvx9a9/PT744IOYP39+tGnTJg4//PD4v//7v/IjuZU5+uijy4v3lv74xz9G27ZtY8CAAbVfsBwNHz483njjjejUqVMccsghFR6brz6++UJmN998c7X9VbVnPtfpHHnkkRERcffdd2eNf88992zjkgJA9Y455pj417/+FdOmTYtjjz02IiI+9alPxR577BFXX311rFu3rvyI+OYQvflss81+97vfbd+ZzsHhhx8eL730UrzyyitZw++9994GmiNoeI50w3b2ve99L4YNGxbHHntsXHzxxbFhw4b40Y9+FO3atYsPPvigyvFOOumk6N27dxxyyCGxyy67xFtvvRU///nPY88994xPfvKTERFx4403xmc+85no379/XHbZZfGJT3wiFi1aFA888ED87ne/i/bt28c111wTf//73+PII4+Mq6++Ojp27Bh33313TJ48OW644YYoLCxMtuwXXnhh3HfffTFkyJD49re/HQceeGBs3LgxFixYEA899FBcfPHF0b9//xg
"text/plain": [
"<Figure size 1000x1600 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"def convert_values(values):\n",
" numerical_values = []\n",
" for value in values:\n",
" if value == 'False':\n",
" numerical_values.append(0)\n",
" elif value == 'True':\n",
" numerical_values.append(1)\n",
" else:\n",
" numerical_values.append(-1)\n",
" return numerical_values\n",
"\n",
"\n",
"numerical_values1 = convert_values(df['BATT_PACK_1_DISCONN'])\n",
"numerical_values2 = convert_values(df['BATT_PACK_1_WARN'])\n",
"numerical_values3 = convert_values(df['BATT_PACK_1_FAULT'])\n",
"numerical_values4 = df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32).fill_null(strategy='backward')\n",
"\n",
"fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(10,10))\n",
"axs[0,0].scatter(range(len(numerical_values1)), numerical_values1)\n",
"axs[0,0].set_title(\"disconnected\")\n",
"axs[0,1].scatter(range(len(numerical_values2)), numerical_values2)\n",
"axs[0,1].set_title(\"warning\")\n",
"axs[1,0].scatter(range(len(numerical_values3)), numerical_values3)\n",
"axs[1,0].set_title(\"fault\")\n",
"axs[1,1].scatter(range(len(numerical_values4)), numerical_values4)\n",
"axs[1,1].set_title(\"voltage\")\n",
"\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(800.0, 1000.0)"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA08AAAUBCAYAAABUvLo8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADltklEQVR4nOzde3gV1bk/8G8ISQgxhEBIQiAbAwJJA4VE8YK0gCJp6g2hB1BrrbVWD9SWipRQ66mXIijHWxFrz3l62v5UFFsuvViKgEpNoSaSQBHCHdnhEhJkk4QQkpDs3x90b7OzZ2bPZM9tzXw/z8OjWZnszKysWTNr1jvvivH7/X4QERERERGRoh5W7wAREREREZEIOHgiIiIiIiJSgYMnIiIiIiIiFTh4IiIiIiIiUoGDJyIiIiIiIhU4eCIiIiIiIlKBgyciIiIiIiIVOHgiIiIiIiJSgYMnIiIiIiIiFTh4IiIiIiIiUkHXwdPf//533HrrrcjKykJMTAzWrVsX8n2/348nnngCWVlZSExMxKRJk7B79+6QbVpaWvDwww8jLS0NSUlJuO2223Ds2LGQbXw+H+655x6kpKQgJSUF99xzD86ePavnoRAREREREYXQdfDU1NSEMWPG4JVXXpH8/nPPPYcXXngBr7zyCsrLy5GZmYmbbroJjY2NwW3mzZuHtWvX4u2330ZpaSnOnTuHW265Be3t7cFt7rrrLuzYsQN/+9vf8Le//Q07duzAPffco+ehEBERERERhYjx+/1+Qz44JgZr167FtGnTAFyadcrKysK8efOwcOFCAJdmmTIyMvDss8/iwQcfRH19PQYMGIDXX38ds2bNAgCcOHEC2dnZ+Otf/4qioiJUVVXhS1/6Ev75z3/immuuAQD885//xHXXXYe9e/di5MiRRhwOERERERG5XE+zftGRI0dQU1ODqVOnBssSEhIwceJEbN26FQ8++CC2b9+Otra2kG2ysrIwatQobN26FUVFRdi2bRtSUlKCAycAuPbaa5GSkoKtW7dKDp5aWlrQ0tIS/LqjowNnzpxB//79ERMTY9ARExERERGR3fn9fjQ2NiIrKws9eigH5pk2eKqpqQEAZGRkhJRnZGTg6NGjwW3i4+ORmpoatk3g52tqapCenh72+enp6cFtulqyZAmefPLJqI+BiIiIiIicqbq6GoMHD1bcxrTBU0DXmR6/3x9x9qfrNlLbK33OokWL8MgjjwS/rq+vh8fjQXV1Nfr06aNl94mIiIiIyEEaGhqQnZ2N5OTkiNuaNnjKzMwEcGnmaODAgcHy2tra4GxUZmYmWltb4fP5QmafamtrMX78+OA2p06dCvv8urq6sFmtgISEBCQkJISV9+nTh4MnIiIiIiJS9TqPaes85eTkIDMzExs3bgyWtba2YsuWLcGB0ZVXXom4uLiQbU6ePIlPP/00uM11112H+vp6lJWVBbf5+OOPUV9fH9yGiIiIiIhIb7rOPJ07dw4HDx4Mfn3kyBHs2LED/fr1g8fjwbx58/DMM89g+PDhGD58OJ555hn07t0bd911FwAgJSUF999/P+bPn4/+/fujX79+ePTRRzF69GhMmTIFAJCXl4evfe1reOCBB/CrX/0KAPC9730Pt9xyCzPtERERERGRYXQdPH3yySeYPHly8OvAe0b33nsvfvvb3+LHP/4xmpubMWfOHPh8PlxzzTV47733QuILX3zxRfTs2RMzZ85Ec3MzbrzxRvz2t79FbGxscJs333wTP/jBD4JZ+W677TbZtaWIiIiIiIj0YNg6T3bW0NCAlJQU1NfX850nIiIiIiIX0zI2MO2dJyIiIiIiIpFx8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKpg+eGpsbMS8efMwZMgQJCYmYvz48SgvLw9+PyYmRvLfsmXLgttMmjQp7PuzZ882+1CIiIiIiMhFepr9C7/73e/i008/xeuvv46srCy88cYbmDJlCvbs2YNBgwbh5MmTIduvX78e999/P2bMmBFS/sADD+Cpp54Kfp2YmGjK/hMRERERkTuZOnhqbm7G6tWr8cc//hFf/epXAQBPPPEE1q1bh1/+8pf4+c9/jszMzJCf+eMf/4jJkydj6NChIeW9e/cO25aIiIiIiMgopobtXbx4Ee3t7ejVq1dIeWJiIkpLS8O2P3XqFN59913cf//9Yd978803kZaWhvz8fDz66KNobGyU/b0tLS1oaGgI+UdERERERKSFqTNPycnJuO666/D0008jLy8PGRkZeOutt/Dxxx9j+PDhYdv/7ne/Q3JyMqZPnx5SfvfddyMnJweZmZn49NNPsWjRIuzcuRMbN26U/L1LlizBk08+acgxERERERGRO8T4/X6/mb/w0KFD+M53voO///3viI2NRWFhIUaMGIGKigrs2bMnZNvc3FzcdNNNWL58ueJnbt++HVdddRW2b9+OwsLCsO+3tLSgpaUl+HVDQwOys7NRX1+PPn366HNgREREREQknIaGBqSkpKgaG5iebW/YsGHYsmULzp07h+rqapSVlaGtrQ05OTkh23300UfYt28fvvvd70b8zMLCQsTFxeHAgQOS309ISECfPn1C/hEREREREWlh2TpPSUlJGDhwIHw+HzZs2IDbb7895Pu//vWvceWVV2LMmDERP2v37t1oa2vDwIEDjdpdIiIiIiJyOdNTlW/YsAF+vx8jR47EwYMHsWDBAowcORL33XdfcJuGhgb8/ve/x/PPPx/284cOHcKbb76Jr3/960hLS8OePXswf/58FBQU4PrrrzfzUIiIiIiIyEVMHzzV19dj0aJFOHbsGPr164cZM2Zg8eLFiIuLC27z9ttvw+/348477wz7+fj4eGzevBkvv/wyzp07h+zsbNx888342c9+htjYWDMPhYiIiIiIXMT0hBF2oOWlMCIiIiIici5bJ4wgIiIiIiISEQdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERERERKQCB09EREREREQqcPBERERERESkAgdPREREREREKnDwREREREREpAIHT0RERERERCpw8ERERER
"text/plain": [
"<Figure size 1000x1600 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"start = 125000\n",
"\n",
"fig, axs = plt.subplots(nrows=2, ncols=1, figsize=(10,16))\n",
"\n",
"numerical_values1 = df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32).fill_null(strategy='mean')[start:start+100000]\n",
"numerical_values2 = convert_values(df['BATT_PACK_1_FAULT'])\n",
"axs[0].scatter(range(len(numerical_values1)), numerical_values1, s=10)\n",
"axs[1].scatter(range(len(numerical_values2)), numerical_values2, s=10)\n",
"axs[0].set_ylim(800,1000)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## charge discharge"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fb3381abf10>]"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAGdCAYAAADnrPLBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA1LElEQVR4nO3de3hTVaL38V96C6W0FSg0FAoUrOJYvBUHQbDcUUF0OCPexiPvoAcGQTvgMCIzA3JGqqjIOzAyo4eDKCK+c5Q5nuONMirKgIoFFFAE5FaktYIlLVDa0u73D2hsem+TNFnJ9/M8eZ5mZ2VnZXUn+5e119rbZlmWJQAAAEOF+bsCAAAAniDMAAAAoxFmAACA0QgzAADAaIQZAABgNMIMAAAwGmEGAAAYjTADAACMFuHvCrSGyspKHT16VLGxsbLZbP6uDgAAaALLslRcXKykpCSFhdXf/xISYebo0aNKTk72dzUAAEAL5Obmqlu3bvU+HhJhJjY2VtK5xoiLi/NzbQAAQFMUFRUpOTnZtR+vT0iEmapDS3FxcYQZAAAM09gQEQYAAwAAoxFmAACA0QgzAADAaIQZAABgNMIMAAAwGmEGAAAYjTADAACMRpgBAABGI8wAAACjEWYAAIDRCDMAAMBohBkAAGC0kLjQJIJP2dlKXf7oOpWUV+hXQ3rr/qEXqp2dzRkAQhE9MzDSrP/6XCXlFZKkZR98o7e+yPNzjQAA/kKYgZE27z/udv9U2Vk/1QQA4G+EGQAAYDTCDAAAMBphBgAAGI0wAwAAjEaYAQAARiPMAAAAoxFmAACA0QgzAADAaIQZGMmyGr4PAAgdhBkYiewCAKhCmAEAAEYjzAAAAKMRZgAAgNEIMwAAwGiEGQAAYDTCDAAAMBphBgAAGI0wAwAAjEaYgZFqnQHYP9UAAAQAwgwMRXwBAJxDmAEAAEYjzAAAAKMRZgAAgNEIMwAAwGiEGQAAYDTCDAAAMBphBgAAGM2nYebs2bP63e9+p5SUFEVHR6tXr16aP3++KisrXWUsy9K8efOUlJSk6OhoDRkyRLt27XJbT2lpqaZPn66EhATFxMRo3LhxOnLkiC+rDgAADOHTMPPEE0/oL3/5i5YuXaqvvvpKCxcu1JNPPqklS5a4yixcuFCLFi3S0qVLtWXLFjkcDo0cOVLFxcWuMpmZmVq7dq3WrFmjjRs36uTJkxo7dqwqKip8WX0YxKp5SmAAQMiI8OXKN2/erJtvvlljxoyRJPXs2VOvvPKKPvvsM0nndkCLFy/WnDlzNH78eEnSypUrlZiYqNWrV2vy5MlyOp1avny5XnrpJY0YMUKStGrVKiUnJ2v9+vUaPXq0L98CAhTZBQBQxac9M4MGDdI//vEP7dmzR5L0+eefa+PGjbrxxhslSQcOHFB+fr5GjRrleo7dbldGRoY2bdokScrJyVF5eblbmaSkJKWlpbnK1FRaWqqioiK3G4ILWQYAUMWnPTO//e1v5XQ61adPH4WHh6uiokKPPfaY7rjjDklSfn6+JCkxMdHteYmJiTp06JCrTFRUlNq3b1+rTNXza8rKytKjjz7q7bcDAAACkE97Zl599VWtWrVKq1ev1tatW7Vy5Uo99dRTWrlypVs5m83mdt+yrFrLamqozOzZs+V0Ol233Nxcz94IAAAIWD7tmfnNb36jhx9+WLfffrskqW/fvjp06JCysrJ0zz33yOFwSDrX+9KlSxfX8woKCly9NQ6HQ2VlZSosLHTrnSkoKNDAgQPrfF273S673e6rtwUAAAKIT3tmTp8+rbAw95cIDw93Tc1OSUmRw+FQdna26/GysjJt2LDBFVTS09MVGRnpViYvL087d+6sN8wAAIDQ4dOemZtuukmPPfaYunfvrksvvVTbtm3TokWL9Mtf/lLSucNLmZmZWrBggVJTU5WamqoFCxaobdu2uvPOOyVJ8fHxmjRpkmbOnKmOHTuqQ4cOeuihh9S3b1/X7CYAABC6fBpmlixZot///veaOnWqCgoKlJSUpMmTJ+sPf/iDq8ysWbNUUlKiqVOnqrCwUP3799e6desUGxvrKvPMM88oIiJCEyZMUElJiYYPH64XXnhB4eHhvqw+AAAwgM0KgbONFRUVKT4+Xk6nU3Fxcf6uDrzgqn/P1g+nylz3fzfmEt07uJcfawQA8Lam7r+5NhMAADAaYQZGCoEORQBAExFmYCSiDACgCmEGAAAYjTADAACMRpgBAABGI8wAAACjEWYAAIDRCDMAAMBohBkEBU47AwChizADAACMRpiBkeiJAQBUIczASFzOAABQhTADAACMRpgBAABGI8wAAACjEWYAAIDRCDMAAMBohBkAAGA0wgyCgiWmagNAqCLMAAAAoxFmYCT6YQAAVQgzMBNpBgBwHmEGAAAYjTADAACMRpgBAABGI8wAAACjEWYAAIDRCDMAAMBohBkEBYup2gAQsggzAADAaIQZGImOGABAFcIMjGRxXAkAcB5hBgAAGI0wAwAAjEaYAQAARiPMAAAAoxFmAACA0QgzAADAaIQZBAUmagNA6CLMAAAAoxFmAACA0QgzMBKHlQAAVQgzMBJXMwAAVCHMAAAAoxFmAACA0QgzAADAaIQZAABgNMIMAAAwGmEGQYHZTQAQuggzAADAaIQZAABgNMIMjGRxDmAAwHk+DzPffvutfvGLX6hjx45q27atrrjiCuXk5LgetyxL8+bNU1JSkqKjozVkyBDt2rXLbR2lpaWaPn26EhISFBMTo3HjxunIkSO+rjoCGGNkAABVfBpmCgsLde211yoyMlJvv/22vvzySz399NO64IILXGUWLlyoRYsWaenSpdqyZYscDodGjhyp4uJiV5nMzEytXbtWa9as0caNG3Xy5EmNHTtWFRUVvqw+AAAwQIQvV/7EE08oOTlZK1ascC3r2bOn62/LsrR48WLNmTNH48ePlyStXLlSiYmJWr16tSZPniyn06nly5frpZde0ogRIyRJq1atUnJystavX6/Ro0f78i0AAIAA59OemTfeeEP9+vXTrbfeqs6dO+vKK6/U888/73r8wIEDys/P16hRo1zL7Ha7MjIytGnTJklSTk6OysvL3cokJSUpLS3NVaam0tJSFRUVud0AAEBw8mmY2b9/v5YtW6bU1FS9++67mjJlih544AG9+OKLkqT8/HxJUmJiotvzEhMTXY/l5+crKipK7du3r7dMTVlZWYqPj3fdkpOTvf3WAABAgPBpmKmsrNRVV12lBQsW6Morr9TkyZN13333admyZW7lbDab233Lsmotq6mhMrNnz5bT6XTdcnNzPXsjAAAgYPk0zHTp0kU/+clP3JZdcsklOnz4sCTJ4XBIUq0eloKCAldvjcPhUFlZmQoLC+stU5PdbldcXJzbDcGNqdoAELp8GmauvfZaff31127L9uzZox49ekiSUlJS5HA4lJ2d7Xq8rKxMGzZs0MCBAyVJ6enpioyMdCuTl5ennTt3usoAAIDQ5dPZTL/+9a81cOBALViwQBMmTNCnn36q5557Ts8995ykc4eXMjMztWDBAqWmpio1NVULFixQ27Ztdeedd0qS4uPjNWnSJM2cOVMdO3ZUhw4d9NBDD6lv376u2U0AACB0+TTMXH311Vq7dq1mz56t+fPnKyUlRYsXL9Zdd93lKjNr1iyVlJRo6tSpKiwsVP/+/bVu3TrFxsa6yjzzzDOKiIjQhAkTVFJSouHDh+uFF15QeHi4L6uPAMZBJQBAFZtlBf+5VIuKihQfHy+n08n4mSBx0Zy3VVZR6bo/6/qLNXXIhX6sEQDA25q6/+baTAAAwGiEGQAAYDTCDAAAMBphBgAAGI0wAwAAjEaYQVAI/jl5AID6EGYAAIDRCDMAAMBohBkYiQtLAgCqEGZgJMbIAACqEGYAAIDRCDMAAMBohBkAAGA0wgwAADAaYQYAABiNMAMAAIxGmAEAAEYjzAAAAKMRZmAkzpkHAKhCmIGRLE4BDAA4jzADAACMRpgBAABGI8wAAACjEWYAAIDRCDMAAMBohBkEBWY3AUDoIswAAACjEWYAAIDRCDMAAMBohBkYiRE
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(df['PACK1_CRIDATA_CURR'].cast(pl.Float32).fill_null(0))"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'voltage')"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAz8AAAKoCAYAAABZQUEMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABp3UlEQVR4nO3de1zUVeL/8fdwG9BgvJAgCoptqSvmBe3iWma6mJfu+9OszKzdzcy8lam53dwMq83aWi+7reluptKu2rc2u2AZ5UqpCKZpWXkBFSINB7yECJ/fH8WsIwPMMAPD8Hk9H495POTM+Xw+5wOHy9tzPudYDMMwBAAAAABNXJC/GwAAAAAADYHwAwAAAMAUCD8AAAAATIHwAwAAAMAUCD8AAAAATIHwAwAAAMAUCD8AAAAATIHwAwAAAMAUCD8AAAAATIHwAwDwm7S0NHXr1k0RERGyWCzKycnx+TWuuuoqXXXVVY6PT548qccff1wfffSRz68FAGjcCD8AAL/4/vvvNWbMGF1wwQV69913lZmZqYsuuqjer3vy5Ek98cQThB8AMKEQfzcAAGBOe/bsUVlZmW6//XYNGDDA380BAJgAIz8AgAZ35513qn///pKkUaNGyWKx6KqrrtLWrVt1yy23qGPHjoqIiFDHjh01evRoHThwwOn4xx9/XBaLpcp5ly1bJovFov3797u87v79+3X++edLkp544glZLBZZLBbdeeedPr0/AEDjxMgPAKDBPfLII7rkkkt033336amnntLAgQMVFRWlXbt2qXPnzrrlllvUqlUr5efna9GiRerbt6927dql6Ohor67btm1bvfvuu7rmmmt0991367e//a0kOQIRAKBpI/wAABrcBRdcoF/+8peSpAsvvFCXXXaZJOmXv/ylfvOb3zjqlZeXa8SIEYqJidGKFSs0adIkr65rtVqVnJwsSWrfvr3jugAAc2DaGwCg0Th+/LhmzJihX/ziFwoJCVFISIjOO+88nThxQrt37/Z38wAAAY6RHwBAo3Hrrbfqgw8+0COPPKK+ffsqKipKFotFw4YN06lTp/zdPABAgCP8AAAaBbvdrv/85z967LHHNHPmTEd5aWmpfvjhB6e64eHhjvesVquj/MiRIw3TWABAQGLaGwCgUbBYLDIMwynMSNLf//53lZeXO5V17NhRkvT55587lb/11lu1Xqfy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
"text/plain": [
"<Figure size 1000x800 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"start = 115000\n",
"end = start + 10000\n",
"\n",
"fig, axs = plt.subplots(nrows=2, ncols=1, figsize=(10,8))\n",
"\n",
"numerical_values0 = convert_values(df['BATT_PACK_1_FAULT'][start:end])\n",
"numerical_values1 = df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"axs[0].scatter(range(len(numerical_values0)), numerical_values0, s=10)\n",
"axs[0].set_title(\"fault\")\n",
"axs[1].scatter(range(len(numerical_values2)), numerical_values2, s=10)\n",
"axs[1].set_title(\"voltage\")\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'voltage')"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"start = 50000\n",
"end = start + 100000\n",
"plt.figure(figsize=(8, 6))\n",
"numerical_values = df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"plt.scatter(range(len(numerical_values)), numerical_values, s=10)\n",
"plt.title(\"voltage\")"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'voltage')"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"start = 189000\n",
"end = start + 1000\n",
"plt.figure(figsize=(8, 6))\n",
"numerical_values = df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"plt.scatter(range(len(numerical_values)), numerical_values, s=10)\n",
"plt.title(\"voltage\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'temperature')"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAz8AAAZECAYAAADMiL7mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADTyklEQVR4nOzdeXxTVcL/8W+6pQXbQCm0FEopDoNokaUIgiCiWAYBB3V+4DKijM5jRxQRF7YZF1yKOjqOPoLjqPC41xnAB7UqdVREqbIVRMCVJQVaECxpBSzQ3t8fSB5C09I0SdP0fN6vV14vcnLuuSfp6fLlnHuuzbIsSwAAAADQzEWEugMAAAAA0BgIPwAAAACMQPgBAAAAYATCDwAAAAAjEH4AAAAAGIHwAwAAAMAIhB8AAAAARiD8AAAAADAC4QcAAACAEQg/AICQycvL0xlnnKG4uDjZbDatXbs24Oc477zzdN5557mfHzhwQPfcc48++uijgJ8LANC0EX4AACHxww8/6Oqrr9app56qd999V4WFhfr1r38d9PMeOHBA9957L+EHAAwUFeoOAADM9M033+jw4cP6/e9/ryFDhoS6OwAAAzDzAwBodNdee60GDRokSRo3bpxsNpvOO+88rVq1Spdffrk6d+6suLg4de7cWVdccYW2bdvmcfw999wjm81Wo9358+fLZrNp69atXs+7detWtW3bVpJ07733ymazyWaz6dprrw3o+wMANE3M/AAAGt1f/vIX9evXTxMnTtSDDz6ooUOHKiEhQRs3blS3bt10+eWXKzExUSUlJZo7d67OOussbdy4UUlJSX6dt3379nr33Xf1m9/8Rtddd52uv/56SXIHIgBA80b4AQA0ulNPPVWnn366JKlr1646++yzJUmnn366fve737nrVVVVadSoUUpOTtYrr7yiSZMm+XVeu92urKwsSVLHjh3d5wUAmIFlbwCAJuOnn37S1KlT9atf/UpRUVGKiorSKaecov3792vTpk2h7h4AIMwx8wMAaDKuvPJK/ec//9Ff/vIXnXXWWUpISJDNZtNFF12kgwcPhrp7AIAwR/gBADQJLpdLb731lu6++25NmzbNXV5ZWakff/zRo25sbKz7Nbvd7i7fs2dP43QWABCWWPYGAGgSbDabLMvyCDOS9Oyzz6qqqsqjrHPnzpKkL774wqP8zTffPOl5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
"text/plain": [
"<Figure size 1000x2000 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"end = start + 10000\n",
"\n",
"fig, axs = plt.subplots(nrows=4, ncols=1, figsize=(10,20))\n",
"\n",
"numerical_values0 = convert_values(df['BATT_PACK_1_FAULT'][start:end])\n",
"numerical_values1 = convert_values(df['BATT_PACK_1_DISCONN'][start:end])\n",
"numerical_values2 = df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values3 = df['PACK1_CRIDATA_AVG_CELL_TEMP'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"axs[0].scatter(range(len(numerical_values0)), numerical_values0, s=10)\n",
"axs[0].set_title(\"fault\")\n",
"axs[1].scatter(range(len(numerical_values1)), numerical_values1, s=10)\n",
"axs[1].set_title(\"disconnect\")\n",
"axs[2].scatter(range(len(numerical_values2)), numerical_values2, s=10)\n",
"axs[2].set_title(\"voltage\")\n",
"axs[3].scatter(range(len(numerical_values3)), numerical_values3, s=10)\n",
"axs[3].set_title(\"temperature\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'temperature')"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAz8AAAZECAYAAADMiL7mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADTyklEQVR4nOzdeXxTVcL/8W+6pQXbQCm0FEopDoNokaUIgiCiWAYBB3V+4DKijM5jRxQRF7YZF1yKOjqOPoLjqPC41xnAB7UqdVREqbIVRMCVJQVaECxpBSzQ3t8fSB5C09I0SdP0fN6vV14vcnLuuSfp6fLlnHuuzbIsSwAAAADQzEWEugMAAAAA0BgIPwAAAACMQPgBAAAAYATCDwAAAAAjEH4AAAAAGIHwAwAAAMAIhB8AAAAARiD8AAAAADAC4QcAAACAEQg/AICQycvL0xlnnKG4uDjZbDatXbs24Oc477zzdN5557mfHzhwQPfcc48++uijgJ8LANC0EX4AACHxww8/6Oqrr9app56qd999V4WFhfr1r38d9PMeOHBA9957L+EHAAwUFeoOAADM9M033+jw4cP6/e9/ryFDhoS6OwAAAzDzAwBodNdee60GDRokSRo3bpxsNpvOO+88rVq1Spdffrk6d+6suLg4de7cWVdccYW2bdvmcfw999wjm81Wo9358+fLZrNp69atXs+7detWtW3bVpJ07733ymazyWaz6dprrw3o+wMANE3M/AAAGt1f/vIX9evXTxMnTtSDDz6ooUOHKiEhQRs3blS3bt10+eWXKzExUSUlJZo7d67OOussbdy4UUlJSX6dt3379nr33Xf1m9/8Rtddd52uv/56SXIHIgBA80b4AQA0ulNPPVWnn366JKlr1646++yzJUmnn366fve737nrVVVVadSoUUpOTtYrr7yiSZMm+XVeu92urKwsSVLHjh3d5wUAmIFlbwCAJuOnn37S1KlT9atf/UpRUVGKiorSKaecov3792vTpk2h7h4AIMwx8wMAaDKuvPJK/ec//9Ff/vIXnXXWWUpISJDNZtNFF12kgwcPhrp7AIAwR/gBADQJLpdLb731lu6++25NmzbNXV5ZWakff/zRo25sbKz7Nbvd7i7fs2dP43QWABCWWPYGAGgSbDabLMvyCDOS9Oyzz6qqqsqjrHPnzpKkL774wqP8zTffPOl5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
"text/plain": [
"<Figure size 1000x2000 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"start = 115000\n",
"end = start + 10000\n",
"\n",
"fig, axs = plt.subplots(nrows=4, ncols=1, figsize=(10,20))\n",
"\n",
"numerical_values0 = convert_values(df['BATT_PACK_1_FAULT'][start:end])\n",
"numerical_values1 = convert_values(df['BATT_PACK_1_DISCONN'][start:end])\n",
"numerical_values2 = df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values3 = df['PACK1_CRIDATA_AVG_CELL_TEMP'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"axs[0].scatter(range(len(numerical_values0)), numerical_values0, s=10)\n",
"axs[0].set_title(\"fault\")\n",
"axs[1].scatter(range(len(numerical_values1)), numerical_values1, s=10)\n",
"axs[1].set_title(\"disconnect\")\n",
"axs[2].scatter(range(len(numerical_values2)), numerical_values2, s=10)\n",
"axs[2].set_title(\"voltage\")\n",
"axs[3].scatter(range(len(numerical_values3)), numerical_values3, s=10)\n",
"axs[3].set_title(\"temperature\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## temperature?"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fb2b58497e0>]"
]
},
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"plt.plot(df['PACK1_CRIDATA_AVG_CELL_TEMP'].cast(pl.Float32).fill_null(strategy='mean'))"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(800.0, 1000.0)"
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAAUBCAYAAAC2YKFFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACFMUlEQVR4nOzde5RVdeH//9fIZUQ+cBImGCZHxM/XvIGlWAr5TUtDU6KL37xgk5Yf0swLeUmxLLMUtW9285NWn35ZSuH6rKKsjKRSigUIomPivT6kmIxYDWcgaUDYvz/anm8jeAFnROTxWOus5dnnvfd5b3zL8rn2OfvUFUVRBAAAgGy3pScAAADwSiGQAAAASgIJAACgJJAAAABKAgkAAKAkkAAAAEoCCQAAoCSQAAAASgIJAACgJJAAAABKmxxIv/3tb/Oud70rTU1Nqaury49//OMurxdFkYsvvjhNTU3p169fDjnkkNx7771dxnR2duaMM85IQ0ND+vfvnwkTJuSxxx7rMqa9vT0tLS2pVCqpVCppaWnJihUrNvkEAQAAXqxNDqS///3vecMb3pCrr756o69feeWVueqqq3L11Vdn4cKFaWxszDve8Y6sXLmyNmby5MmZMWNGpk+fnjlz5mTVqlUZP3581q1bVxszceLEtLa2ZubMmZk5c2ZaW1vT0tKyGacIAADw4tQVRVFs9s51dZkxY0be8573JPnn1aOmpqZMnjw5559/fpJ/Xi0aOnRorrjiipxyyimpVqt57Wtfm+uvvz7HHntskuTxxx9Pc3Nzbr755hx++OG5//77s9dee2X+/Pk54IADkiTz58/PmDFj8sADD2T33Xd/iacNAACwod7debAlS5akra0t48aNq22rr6/PwQcfnLlz5+aUU07JokWLsnbt2i5jmpqaMnLkyMydOzeHH3545s2bl0qlUoujJDnwwANTqVQyd+7cjQZSZ2dnOjs7a8/Xr1+fv/3tbxk8eHDq6uq68zQBAICtSFEUWblyZZqamrLdds//IbpuDaS2trYkydChQ7tsHzp0aB555JHamL59+2bHHXfcYMwz+7e1tWXIkCEbHH/IkCG1Mc82derUfPazn33J5wAAALw6LV26NDvttNPzjunWQHrGs6/YFEXxgldxnj1mY+Of7zhTpkzJ2WefXXterVaz8847Z+nSpRk4cOCmTB8AAHgV6ejoSHNzcwYMGPCCY7s1kBobG5P88wrQsGHDatuXL19eu6rU2NiYNWvWpL29vctVpOXLl2fs2LG1MU888cQGx3/yySc3uDr1jPr6+tTX12+wfeDAgQIJAAB4UV+96dbfQRoxYkQaGxsza9as2rY1a9Zk9uzZtfgZPXp0+vTp02XMsmXLsnjx4tqYMWPGpFqtZsGCBbUxt99+e6rVam0MAABAd9vkK0irVq3KH/7wh9rzJUuWpLW1NYMGDcrOO++cyZMn57LLLstuu+2W3XbbLZdddll22GGHTJw4MUlSqVRy8skn55xzzsngwYMzaNCgnHvuuRk1alQOO+ywJMmee+6ZI444IpMmTco3vvGNJMlHPvKRjB8/3h3sAACAHrPJgXTHHXfkbW97W+35M9/7OfHEE3PdddflE5/4RFavXp3TTjst7e3tOeCAA3LLLbd0+bzfl770pfTu3TvHHHNMVq9enUMPPTTXXXddevXqVRszbdq0nHnmmbW73U2YMOE5f3sJAACgO7yk30F6Jevo6EilUkm1WvUdJAAA2IZtSht063eQAAAAtmYCCQAAoCSQAAAASgIJAACgJJAAAABKAgkAAKAkkAAAAEoCCQAAoCSQAAAASgIJAACgJJAAAABKAgkAAKAkkAAAAEoCCQAAoCSQAAAASgIJAACgJJAAAABKAgkAAKAkkAAAAEoCCQAAoCSQAAAASgIJAACgJJAAAABKAgkAAKAkkAAAAEoCCQAAoCSQAAAASgIJAACgJJAAAABKAgkAAKAkkAAAAEoCCQAAoCSQAAAASgIJAACg1COBtHLlykyePDnDhw9Pv379Mnbs2CxcuLD2el1d3UYfX/jCF2pjDjnkkA1eP+6443piugAAAEmS3j1x0P/4j//I4sWLc/3116epqSk33HBDDjvssNx333153etel2XLlnUZ/4tf/CInn3xyjj766C7bJ02alEsuuaT2vF+/fj0xXQAAgCQ9EEirV6/OD3/4w/zkJz/JW9/61iTJxRdfnB//+Me55ppr8vnPfz6NjY1d9vnJT36St73tbdl11127bN9hhx02GAsAANBTuv0jdk8//XTWrVuX7bffvsv2fv36Zc6cORuMf+KJJ/Lzn/88J5988gavTZs2LQ0NDdl7771z7rnnZuXKld09XQAAgJpuv4I0YMCAjBkzJp/73Oey5557ZujQofnBD36Q22+/PbvtttsG47/73e9mwIABed/73tdl+wknnJARI0aksbExixcvzpQpU3L33Xdn1qxZG33fzs7OdHZ21p53dHR074kBAACvenVFURTdfdA//vGP+fCHP5zf/va36dWrV/bbb7+8/vWvz5133pn77ruvy9g99tgj73jHO/K1r33teY+5aNGi7L///lm0aFH222+/DV6/+OKL89nPfnaD7dVqNQMHDnxpJwQAAGy1Ojo6UqlUXlQb9Mhd7P793/89s2fPzqpVq7J06dIsWLAga9euzYgRI7qM+93vfpcHH3ww//Ef//GCx9xvv/3Sp0+fPPzwwxt9fcqUKalWq7XH0qVLu+VcAACAbUeP3MXuGf3790///v3T3t6eX/7yl7nyyiu7vP7tb387o0ePzhve8IYXPNa9996btWvXZtiwYRt9vb6+PvX19d0ybwAAYNvUI4H0y1/+MkVRZPfdd88f/vCHnHfeedl9993zoQ99qDamo6Mj//3f/50vfvGLG+z/xz/+MdOmTcuRRx6ZhoaG3HfffTnnnHOy77775i1veUtPTBkAAKBnAqlarWbKlCl57LHHMmjQoBx99NG59NJL06dPn9qY6dOnpyiKHH/88Rvs37dv3/z617/OV77ylaxatSrNzc056qij8pnPfCa9evXqiSkDAAD0zE0aXgk25YtYAADAq9cWv0kDAADA1kggAQAAlAQSAABASSABAACUBBIAAEBJIAEAAJQEEgAAQEkgAQAAlAQSAABASSABAACUBBIAAEBJIAEAAJQEEgAAQEkgAQAAlAQSAABASSABAACUBBIAAEBJIAEAAJQEEgAAQEkgAQAAlAQSAABASSABAACUBBIAAEBJIAEAAJQEEgAAQEkgAQAAlAQSAABASSABAACUBBIAAEBJIAEAAJQEEgAAQEkgAQAAlAQSAABASSABAACUBBIAAECpRwJp5cqVmTx5coYPH55+/fpl7NixWbhwYe31k046KXV1dV0eBx54YJdjdHZ25owzzkhDQ0P69++fCRMm5LHHHuuJ6QIAACTpoUD6j//4j8yaNSvXX3997rnnnowbNy6HHXZY/vznP9fGHHHEEVm2bFntcfPNN3c5xuTJkzNjxoxMnz49c+bMyapVqzJ+/PisW7euJ6YMAACQuqIoiu484OrVqzNgwID85Cc/yVFHHVXb/sY3vjHjx4/P5z//+Zx00klZsWJFfvzjH2/0GNVqNa997Wtz/fXX59hjj02SPP7442lubs7NN9+cww8//AXn0dHRkUqlkmq1moEDB3bLuQEAAFufTWmDbr+C9PTTT2fdunXZfvvtu2zv169f5syZU3t+2223ZciQIXn961+fSZMmZfny5bXXFi1alLVr12bcuHG1bU1NTRk5cmTmzp270fft7OxMR0dHlwcAAMCm6PZAGjBgQMaMGZPPfe5zefzxx7Nu3brccMMNuf3227Ns2bIkyTvf+c5MmzYtv/nNb/LFL34xCxcuzNvf/vZ0dnYmSdra2tK3b9/suOOOXY49dOjQtLW1bfR9p06dmkqlUns0Nzd396kBAACvcj3yHaTrr78+RVHkda97Xerr6/PVr341EydOTK9evZIkxx57bI466qiMHDky73rXu/KLX/wiDz30UH7+858/73GLokhdXd1GX5syZUq
"text/plain": [
"<Figure size 1000x1600 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"start = 50000 + 7500\n",
"end = start + 1000\n",
"\n",
"fig, axs = plt.subplots(nrows=3, ncols=1, figsize=(10,16))\n",
"\n",
"numerical_values1 = df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32).fill_null(strategy='mean')[start:end]\n",
"numerical_values2 = convert_values(df['BATT_PACK_1_FAULT'])[start:end]\n",
"numerical_values3 = df['PACK1_CRIDATA_AVG_CELL_TEMP'].cast(pl.Float32).fill_null(strategy='mean')[start:end]\n",
"axs[0].scatter(range(len(numerical_values1)), numerical_values1, s=10)\n",
"axs[1].scatter(range(len(numerical_values2)), numerical_values2, s=10)\n",
"axs[2].scatter(range(len(numerical_values3)), numerical_values3, s=10)\n",
"axs[0].set_ylim(800,1000)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## SOH and SOC"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fb2b5a8e8c0>"
]
},
"execution_count": 84,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"series = df['PACK1_CRIDATA_SOC'].cast(pl.Float32).fill_null(strategy='mean')\n",
"plt.scatter(range(len(series)), series, s=10)"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fb2aec98ac0>"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"series = df['PACK1_CRIDATA_SOH'].cast(pl.Float32).fill_null(strategy='mean')\n",
"plt.scatter(range(len(series)), series, s=10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We need to remove outlier data points (e.g. 4000)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## find discharge zones"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The idea is to have 2 moving average windows, and then find if the moving window ahead is lower than the moving window before."
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {},
"outputs": [],
"source": [
"window_size = 10\n",
"series = df['PACK1_CRIDATA_SOC'].cast(pl.Float32).fill_null(strategy='mean')\n",
"moving_avg = series.rolling_mean(window_size=window_size)"
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"shape: (9, 2)\n",
"┌────────────┬───────────┐\n",
"│ statistic ┆ value │\n",
"│ --- ┆ --- │\n",
"│ str ┆ f64 │\n",
"╞════════════╪═══════════╡\n",
"│ count ┆ 273961.0 │\n",
"│ null_count ┆ 9.0 │\n",
"│ mean ┆ 80.893529 │\n",
"│ std ┆ 13.902372 │\n",
"│ min ┆ 0.0 │\n",
"│ 25% ┆ 80.893616 │\n",
"│ 50% ┆ 85.0 │\n",
"│ 75% ┆ 85.0 │\n",
"│ max ┆ 88.0 │\n",
"└────────────┴───────────┘\n",
"shape: (9, 2)\n",
"┌────────────┬───────────┐\n",
"│ statistic ┆ value │\n",
"│ --- ┆ --- │\n",
"│ str ┆ f64 │\n",
"╞════════════╪═══════════╡\n",
"│ count ┆ 273961.0 │\n",
"│ null_count ┆ 0.0 │\n",
"│ mean ┆ 80.893613 │\n",
"│ std ┆ 13.989593 │\n",
"│ min ┆ -0.299927 │\n",
"│ 25% ┆ 80.893616 │\n",
"│ 50% ┆ 85.0 │\n",
"│ 75% ┆ 85.0 │\n",
"│ max ┆ 100.0 │\n",
"└────────────┴───────────┘\n"
]
}
],
"source": [
"print(moving_avg.describe())\n",
"\n",
"print(series.describe())"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fb2ac34ead0>"
]
},
"execution_count": 122,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(range(len(moving_avg)),moving_avg, s=10)"
]
},
{
"cell_type": "code",
"execution_count": 134,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fb2ac872440>"
]
},
"execution_count": 134,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"subset = moving_avg[54500:55000]\n",
"plt.scatter(range(len(subset)),subset, s=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see that we get artifacts of the moving averages because the data is not clean"
]
},
{
"cell_type": "code",
"execution_count": 137,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(800.0, 1000.0)"
]
},
"execution_count": 137,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1000x1600 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"start = 54500\n",
"end = start + 5000\n",
"\n",
"fig, axs = plt.subplots(nrows=4, ncols=1, figsize=(10,16))\n",
"numerical_values1 = df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32).fill_null(strategy='mean')[start:end]\n",
"numerical_values2 = convert_values(df['BATT_PACK_1_FAULT'])[start:end]\n",
"numerical_values3 = df['PACK1_CRIDATA_AVG_CELL_TEMP'].cast(pl.Float32).fill_null(strategy='mean')[start:end]\n",
"numerical_values4 = df['PACK1_CRIDATA_SOC'].cast(pl.Float32).fill_null(strategy='mean')[start:end]\n",
"axs[0].scatter(range(len(numerical_values1)), numerical_values1, s=10)\n",
"axs[1].scatter(range(len(numerical_values2)), numerical_values2, s=10)\n",
"axs[2].scatter(range(len(numerical_values3)), numerical_values3, s=10)\n",
"axs[3].scatter(range(len(numerical_values4)), numerical_values4, s=10)\n",
"axs[0].set_ylim(800,1000)"
]
},
{
"cell_type": "code",
"execution_count": 138,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fb2ac7adb40>"
]
},
"execution_count": 138,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABfSElEQVR4nO3de3hU5bk3/u/kfCAZCJATSSC6UaEBBQQE5VCVQ0W0td1FUdRfrRtL0aK2KrpbU/tuENoir7XaXdp6LMX9q1Lx1SpYFesLCoLISamtHIIQIhCSACERWO8fYZLMZJ7Jc6/DzDOT7+e6cimTe615Zq01M3fWs+57+SzLskBERERkkKRYD4CIiIgoFBMUIiIiMg4TFCIiIjIOExQiIiIyDhMUIiIiMg4TFCIiIjIOExQiIiIyDhMUIiIiMk5KrAdgx+nTp7Fv3z7k5OTA5/PFejhERESkwbIsNDQ0oLi4GElJkc+RxGWCsm/fPpSWlsZ6GERERGRDVVUVSkpKIsbEZYKSk5MDoOUF5ubmxng0REREpKO+vh6lpaWt3+ORxGWCEpjWyc3NZYJCREQUZ3Quz+BFskRERGQcJihERERkHCYoREREZBwmKERERGQcJihERERkHCYoREREZBwmKERERGQcJihERERknLhs1EaJ59RpC+t2HkZNwwnk52RgRHkekpN4nyUioq5KfAblnXfewdSpU1FcXAyfz4e//OUvQb+3LAuVlZUoLi5GZmYmxo8fj23btgXFNDU14fbbb0evXr2QnZ2Nq666Cnv37nX0Qih+vbZ1Py5Z8CauW/IefrBsE65b8h4uWfAmXtu6P9ZDIyKiGBEnKMeOHcP555+Pxx57LOzvFy5ciEWLFuGxxx7D+vXrUVhYiAkTJqChoaE1Zs6cOVi+fDmWLVuGd999F0ePHsWVV16JU6dO2X8lFJde27of33tuI/bXnQh6vLruBL733EYmKUREXZTPsizL9sI+H5YvX46vf/3rAFrOnhQXF2POnDm49957AbScLSkoKMCCBQswc+ZM1NXVoXfv3nj22Wcxbdo0AG13J3711VcxadKkTp+3vr4efr8fdXV1vBdPHDt12sIlC97skJwE+AAU+jPw7r2XcrqHiCgBSL6/Xb1IdufOnaiursbEiRNbH0tPT8e4ceOwZs0aAMCGDRvw5ZdfBsUUFxejoqKiNSZUU1MT6uvrg34o/q3beViZnACABWB/3Qms23k4eoMiIiIjuJqgVFdXAwAKCgqCHi8oKGj9XXV1NdLS0tCjRw9lTKj58+fD7/e3/pSWlro5bIqRmgZ1cmInjoiIEocnZcaht1G2LKvTWytHipk7dy7q6upaf6qqqlwbK8VOfk6Gq3FERJQ4XE1QCgsLAaDDmZCamprWsyqFhYVobm5GbW2tMiZUeno6cnNzg34o/o0oz0ORPwOq1NUHoMjfUnJMRERdi6sJSnl5OQoLC7Fq1arWx5qbm7F69WqMHj0aADBs2DCkpqYGxezfvx9bt25tjaGuITnJhwenDgSADklK4N8PTh3IC2SJiLogcaO2o0eP4p///Gfrv3fu3IlNmzYhLy8PZWVlmDNnDubNm4f+/fujf//+mDdvHrKysjB9+nQAgN/vxy233IK7774bPXv2RF5eHn74wx9i0KBBuPzyy917ZRQXJlcU4YkbhuKnL28PumC20J+BB6cOxOSKohiOjoiIYkWcoHzwwQf46le/2vrvu+66CwBw00034amnnsI999yDxsZGzJo1C7W1tRg5ciRWrlyJnJyc1mUeeeQRpKSk4Nvf/jYaGxtx2WWX4amnnkJycrILL4nizeSKIkwYWMhOskRE1MpRH5RYYR8UIiKi+BOzPihEREREbmCCQkRERMZhgkJERETGYYJCRERExmGCQkRERMZhgkJERETGYYJCRERExmGCQkRERMZhgkJERETGYYJCRERExmGCQkRERMZhgkJERETGYYJCRERExmGCQkRERMZhgkJERETGYYJCRERExmGCQkRERMZhgkJERETGYYJCRERExmGCQkRERMZhgkJERETGYYJCRERExmGCQkRERMZhgkJERETGYYJCRERExmGCQkRERMZhgkJERETGYYJCRERExmGCQkRERMZJifUAiIgoOvrd90qHx3Y9PCUGIyHqHM+gEBF1AeGSk0iPE8UaExQiogTXWRLCJIVMxASFiCiB6SYfTFLINExQiIiIyDhMUIiIiMg4rOKhhKVzyjqWFQyRxheLcT311g5Uvv7P1n/3AFDb7vfZycCaBybCn5UqWu/bmw/g5qUfuDPIOHM2gO9NHYgfvrw91kPRwmkeM9w1vhR3TB4MAHht/ee47YVNMR3Poqu+gmtG94v68/osy7Ki/qwO1dfXw+/3o66uDrm5ubEeDhlI8kEbi2TAtORJsr369szE6h9d6vp6ichsbnwmSb6/OcVDCUf6pRjtL1HTLlqUPs/uQ40Y9/M3XV8vEZkt2u9pJiiUUOy+gUxNBrwe11Nv7bC13O5Djag7/qXy929vPmB3SERksBfX7Irac/EaFIqZNzdV4zvLNgQ9dnEh8Mc5se1s2VlSMLoAWHqneoxuJxX97nvF0alVr5Kc7zy1Di/Mujjs77rqNSdEie6uFduidj0Kz6BQTPS775UOyQkA/N/q2E0N9LvvFa3nXnMg+l05TTwztK/uhGfrJiJigkJRp/OlGQ/XL4SO0esxmzY9VOzP8HT9RNS1MUGhqHpzU7V27PWL4ydJieY1LGcbkuBt2HPE8+cgoq6LCQpFVbhpHZX/q5/LtMpKjf4hHe2zPadi8JxERNHGBIUSSuOXp2M9hKhhkkJEiYwJChntna01ovjMGJxBiaVYJymxfn4iSlxd69OcYu7eCf1E8Tc+t170JXjTJWXCEcU/JglElIiYoFBUFffsbms53S/hYyfi7s4NrgjdPv/72gtiMxAiSmjRvAUHExSKql7d0m0vqzPdU+LPtL3+eNc+SXGynZ08b7h/E1FiiPZ9y5igUHQ5OMFx43PrO1+9z/76E0FrctA1TyQRkUdicVNVtrqnqDp4rMnT9X9+pNHT9ceDfve9ErMpHjtnTzr74Bs1/2/Yb2jX2sDYz577Ck7ZSArPLczB63PG4icvbcUza3fbGsONo/rioasrOjw+4/fv4++fHhSta9fDU2wtFzqGC366Ekca1fdqCud/X3sBrr6gT4fHX9r0OX6wbJPt5duTHp/tj003xzFp8TvYUd0gGouOQX1y8fLtYzo8rnt8qY6lWOEZFIqq/Bxvu4/2zcvSivvxlAGejiPWdD5I3ebV1I6pHWvbf3llpyfbWkdZj5YpSd3jNhzVsv16ytYZeD3S5cKNIT8nTbwO1WeD7meG158tbo4jsN/dNrjEH/Zx3ePLyXHoBZ5BaYdz5+Zzax9NG16Gn73ysSvrIvv75aqvdP5h/ui1Q3Hxwjdtrd8roWd9XrztEly+eLV4PZVTW/5a/dawUtvH47Th4SvX7r9iIJ59b4/WOtq/njsvP1d7uYDpI/sG/ftX1w7DpEff0V4+yQcM69sj7O8uKO2utQ7dOLvcHMe8bwzGqo/fcDagMO6ZFP4PL93PO9WxFCs8g3IGk5Ou5fn1e2Iyp6prwoD8WA8hKh6dcVmnMZUvb43CSDr34ykDsOvhKWGPm6ff22lrnXcs2wgA+MXKT2yP6/n14ZOJzLRkTBgY+TiaMDC/w+t55I0d4jFsqjoS9O9bnlknWv60BWzYXRv2d0vf15v60omTvOdDY597T28cOnGPvvkP7XFI/M8HVWEfVx0jduOihQkKmJx0RbsPHwcQmwu/dOypbTR2bNG2p9aM64oCx0w4uw6pfxdJ4I7QdpcHIo/LDjtjqWkIvkbo8DHZ9Sfh1hGg+/p043TeV+Fi1u86pLV+nTgn+9vOc7u9DaOlyycoTE66pvYXjJmYCBTltpQJmzi2aOuTG72S6UgilbDn59ibLS/MbblWo7i7/esnVONqbD6FVdsjl+av2l6DxuZTQY+VdZdfH5GXFXzNiT9T/tWSmxp+G+q2DpC0GIj0vlL9LlMxPjtxJTa2sY6
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"series = df['PACK1_CRIDATA_SOC'].cast(pl.Float32).fill_null(strategy='mean')\n",
"plt.scatter(range(len(series)), series)"
]
},
{
"cell_type": "code",
"execution_count": 143,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fb2abbdf640>"
]
},
"execution_count": 143,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# reset df\n",
"series = df['PACK1_CRIDATA_SOC'].cast(pl.Float32).fill_null(-10)\n"
]
},
{
"cell_type": "code",
"execution_count": 147,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fb2ac59bd30>"
]
},
"execution_count": 147,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABK1ElEQVR4nO3df3hU1Z0/8HeAEAOdDImQhIEEg6WCDYWAgCDbQC2hLNpa2BV/1Ee7+/SrAraxLv74sl15dEsAK/W7RWT12aV2uyh9FnG7j7WAFWNdYEn5ofzSKgQSgTT8CEnkR4Jwv3+wM52ZzL33nLnnzj335v16njyPnLlz75kzZ2Y+ns8952QZhmGAiIiISCM9vK4AERERUTIGKERERKQdBihERESkHQYoREREpB0GKERERKQdBihERESkHQYoREREpB0GKERERKSdXl5XIB2XL1/GsWPHEAqFkJWV5XV1iIiISIBhGGhvb0ckEkGPHtZjJL4MUI4dO4aSkhKvq0FERERpaGxsxODBgy2P8WWAEgqFAFx5gXl5eR7XhoiIiES0tbWhpKQk9jtuxZcBSjStk5eXxwCFiIjIZ0Ruz+BNskRERKQdBihERESkHQYoREREpB0GKERERKQdBihERESkHQYoREREpB0GKERERKQdBihERESkHQYoREREpB3pAOXdd9/FrbfeikgkgqysLLz++usJjxuGgUWLFiESiSA3NxdTpkzBvn37Eo7p6OjAQw89hP79+6Nv37745je/iU8//dTRCyEiIqLgkA5Qzp49i1GjRmHFihUpH1+2bBmWL1+OFStWoK6uDsXFxZg2bRra29tjx1RXV2P9+vV49dVX8d577+Gzzz7DLbfcgkuXLqX/Ssj3djW04LWdn2JXQ4vXVSEiIo9lGYZhpP3krCysX78et912G4AroyeRSATV1dV47LHHAFwZLSkqKsLSpUtx//33o7W1FQMGDMC//du/Yc6cOQD+vDvxb37zG0yfPt32um1tbQiHw2htbeVePAGx5M0DWFV7KPbvByqH4vEZIzysERERqSbz+630HpT6+no0NTWhqqoqVpaTk4PKykps2bIFALBjxw5cvHgx4ZhIJILy8vLYMck6OjrQ1taW8EfBsauhJSE4AYBVtYc4kkJE1I0pDVCampoAAEVFRQnlRUVFsceamprQu3dv5Ofnmx6TrKam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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# start = 50000\n",
"# end = start + 10000\n",
"start = 0\n",
"end = len(df)\n",
"window = series[start:end]\n",
"plt.scatter(range(len(window)), window, s=10)"
]
},
{
"cell_type": "code",
"execution_count": 153,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fb2abf70a60>"
]
},
"execution_count": 153,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"start = 70400\n",
"end = start + 500\n",
"window = series[start:end]\n",
"plt.scatter(range(len(window)), window, s=10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Good news is that the data makes sense. It discharges in about 40 minutes, then charges back up in the same amount of time"
]
},
{
"cell_type": "code",
"execution_count": 155,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fb2abe4d300>"
]
},
"execution_count": 155,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAk50lEQVR4nO3df3TU1Z3/8deQhCHByQjEzDCSYPBkCxp/YLCswDG4QqiNdq091QKibfeclQJKxBWI1hXdNQG6Us8WgcLpobbWQnuE1q5Qia2N2lBJCVEMFqsEEpE0UuNM+GEC5H7/sHy+DgmQgflxJ3k+zvn8Mfdz5zPvz03IvLifz51xGWOMAAAALNIv0QUAAACcioACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALBOaqILOBednZ368MMP5fF45HK5El0OAADoAWOM2traFAgE1K/fmedIkjKgfPjhh8rJyUl0GQAA4Bw0NTVp2LBhZ+yTlAHF4/FI+uwEMzMzE1wNAADoiVAopJycHOd9/EySMqCcvKyTmZlJQAEAIMn05PYMbpIFAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANaJOKC8+uqruuWWWxQIBORyufSrX/0qbL8xRosWLVIgEFB6eromTpyo+vr6sD7t7e269957lZWVpYEDB+orX/mKPvjgg/M6EQAA0HtEHFAOHz6sq666SsuXL+92/9KlS7Vs2TItX75cNTU18vv9mjx5stra2pw+paWl2rhxo9atW6fXX39dhw4d0s0336wTJ06c+5kAAJLSjsZWbaj9QDsaWxNdCiziMsaYc36yy6WNGzfq1ltvlfTZ7EkgEFBpaakWLFgg6bPZEp/PpyVLluiee+5RMBjURRddpJ/+9Ke64447JP3/byfetGmTpkyZctbXDYVC8nq9CgaDfBcPACSxxZvf0aqqPc7jmUUjtPCmUQmsCLEUyft3VO9BaWhoUHNzs4qLi502t9utoqIiVVdXS5K2b9+uY8eOhfUJBAIqKChw+pyqvb1doVAobAMAJLcdja1h4USSVlXtYSYFkqIcUJqbmyVJPp8vrN3n8zn7mpub1b9/fw0aNOi0fU5VUVEhr9frbDk5OdEsGwCQAA0HD0fUjr4lJqt4Tv0aZWPMWb9a+Ux9ysrKFAwGna2pqSlqtQIAEiMva2BE7ehbohpQ/H6/JHWZCWlpaXFmVfx+vzo6OtTa2nraPqdyu93KzMwM2wAAyW107iDNLBoR1vadohEanTvoNM9AXxLVgJKXlye/36/KykqnraOjQ1VVVRo3bpwkqbCwUGlpaWF9Dhw4oLffftvpAwDoGxbeNEobZ43Tstuv0sZZ47SAG2TxD6mRPuHQoUN67733nMcNDQ2qq6vT4MGDlZubq9LSUpWXlys/P1/5+fkqLy9XRkaGpk2bJknyer36t3/7Nz3wwAMaMmSIBg8erP/4j//QFVdcoUmTJkXvzAAASWF07iBmTdBFxAHlz3/+s2644Qbn8bx58yRJd999t3784x9r/vz5Onr0qGbNmqXW1laNHTtWW7ZskcfjcZ7z/e9/X6mpqbr99tt19OhR3Xjjjfrxj3+slJSUKJwSAABIduf1OSiJwuegAACQfBL2OSgAAADRQEABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHVSE10AAPQl33vpL3r6lfdPu3/v4pI4VgPYixkUAIiTa5+oPGM4kaRLFr4Yp2oAuxFQACAOvvfSX/RRW0eP+hJSAAIKAMRF7b7WRJcAJBUCCgDEwTXDByW6BCCpEFAAIA4mjfL1uO/sGy6NYSVAcmAVDwDEQcPBwz3uy+WgvukLD29S+wkjSfJluvXGQ5MSXFFiMYMCAHGQlzWwx33f/+hQDCuBjS5Z+KITTiTpb6H2Pn+zNAEFACzT0tah9TWNiS4DcfKFhzeddt/Y8pfjWIlduMQDAHEQySUeSXqz6RPdcW1ujKpBouxobNVXV1T3uP/BtvYYVmM3AgoAxEEkl3gk6aqcC2NTCBJm8eZ3tKpqT0TPyfK4Y1SN/bjEAwAJ9E/Z3QeXxo+PxLkSxNKOxtaIw4mkPn2jLAEFAOLgdJd4Ok23zazk6WUivcQnSSmuGBSSRAgoABAlD/yiTpOe/IMe+EVdl32nu8Rzuks5fLBb7xLpJT6pb1/ekWIQUI4fP67vfve7ysvLU3p6ukaMGKHHH39cnZ2dTh9jjBYtWqRAIKD09HRNnDhR9fX10S4FAOJm1COb9Xztfr330WE9X7tfox7ZHLZ/dO4gXZ3jDWu7OserJ2+/utvjPThlZKxKRQKMzo08cPblyztSDALKkiVLtGrVKi1fvlzvvPOOli5dqu9973v6wQ9+4PRZunSpli1bpuXLl6umpkZ+v1+TJ09WW1tbtMsBgJh74Bd1OnqsM6zt6LHOsJmUHY2tqmsKhvWpawrqthV/7PaY31q7Lep1InHyH+r5Z5r4Mt3au7gkhtUkB5cx5jRXQM/NzTffLJ/Ppx/96EdO29e+9jVlZGTopz/9qYwxCgQCKi0t1YIFCyRJ7e3t8vl8WrJkie65556zvkYoFJLX61UwGFRmZmY0yweAiE168g9676PI7zGQJM+AFLV9eiLKFSUnl6QNs8ap4eBh5WUNPKdZh5N2NLZG5Tg99a212/TK7o+cxyf/99/ZffcwfSmMRPL+HfUZlAkTJuh3v/ud3n33XUnSm2++qddff11f/vKXJUkNDQ1qbm5WcXGx8xy3262ioiJVV/d8bTgA2OJ8lgTnZ3uiV0iSM5K+uqJa837xpr66olqLN79zTsdZvPmdqBynpy4tezEsnEifBZOehJM07gQ9ragPzYIFCzR16lSNHDlSaWlpGj16tEpLSzV16lRJUnNzsyTJ5wv/4iyfz+fsO1V7e7tCoVDYBgC2ON19JD1R2/hJ1OrobVZV7dGOxshWM3W3nPdcjtNT31q7TSfO4zrEvxfxxZCnE/WAsn79ej377LN67rnnVFtbq2eeeUb/8z//o2eeeSasn8sVvn7KGNOl7aSKigp5vV5ny8nJiXbZAAALRbo893T9z2WZb0/Ufxg8e6czYDn56UU9oDz44INauHChvvGNb+iKK67QjBkzdP/996uiokKS5Pf7JanLbElLS0uXWZWTysrKFAwGna2pqSnaZQPAeWGmPjYiXZ57uv7nssy3Jy4PeM/e6QxYTn56Uf83deTIEfXrF37YlJQUZ5lxXl6e/H6/Kisrnf0dHR2qqqrSuHHjuj2m2+1WZmZm2AYANtlzjjc69qUbJCP1naIREd/gOjp3kGYWjTjv4/TU2m998Zw/UC3b05/l5GcQ9e/iueWWW/TEE08oNzdXl19+uXbs2KFly5bp29/+tqTPLu2UlpaqvLxc+fn5ys/PV3l5uTIyMjRt2rRolwMAcbN3cYlGLHyxRzdHprik9ytKnOdd9shmHTnWk2f2XtFaxbPwplGacrk/bqt43q8oOesqntR+0vHP/Xhn33Ap4eQsor7MuK2tTY888og2btyolpYWBQIBTZ06Vf/5n/+p/v37S/rsfpPHHntMP/zhD9Xa2qqxY8fq6aefVkFBQY9eg2XGAAAkn0jev6MeUOKBgAIAQPJJ6OegAAAAnC8CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAA
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"start = 50000\n",
"end = start + 10000\n",
"window = series[start:end]\n",
"plt.scatter(range(len(window)), window, s=10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## strategy\n",
"\n",
"We are going to identify periods of discharge/charge, then try to interpolate missing data in those intervals\n",
"\n",
"Large periods of missing data usually correspond to idle times"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"window_size = 10\n",
"# moving_avg = (df['PACK1_CRIDATA_SOC'].cast(pl.Float32)\n",
"# .fill_null(-10)\n",
"# .rolling_mean(window_size=window_size)\n",
"# .fill_null(-10))\n",
"moving_avg = df['PACK1_CRIDATA_SOC'].cast(pl.Float32).fill_null(-10)\n",
"\n",
"# moving_std = (df['PACK1_CRIDATA_SOC'].cast(pl.Float32)\n",
"# .fill_null(-10)\n",
"# .rolling_std(window_size=window_size)\n",
"# .fill_null(10))\n",
"\n",
"downward_segments = []\n",
"threshold_long = 10\n",
"threshold_short = 0.1\n",
"# smoothness = 3.0\n",
"segment_start = None\n",
"\n",
"\n",
"for i in range(len(df)):\n",
" if ((moving_avg[i] - moving_avg[i - 1] > threshold_short) and \n",
" (moving_avg[i] - moving_avg[i - 1] < threshold_long)):\n",
" # activate flag upon first contact\n",
" if segment_start is None:\n",
" segment_start = i - window_size + 1\n",
" # at end of downward movement, reset flag\n",
" elif segment_start is not None:\n",
" segment_end = i\n",
" downward_segments.append((segment_start, segment_end))\n",
" segment_start = None\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"# reset df\n",
"series = df['PACK1_CRIDATA_SOC'].cast(pl.Float32).fill_null(-10)\n"
]
},
{
"cell_type": "code",
"execution_count": 255,
"metadata": {},
"outputs": [],
"source": [
"time = range(len(df))\n",
"for start, end in downward_segments:\n",
" plt.fill_betweenx(series, start, end, color='green', alpha=0.3)\n",
"plt.xlim(0, len(df))\n",
"plt.scatter(range(len(series)), series)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f6dbf4bc970>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"start_time = 70000 + 400; end_time = start_time + 500\n",
"sampled_segments = [(segment_start, segment_end) for segment_start, segment_end in downward_segments if ((segment_start > start_time) and (segment_end < end_time))]\n",
"for start, end in sampled_segments:\n",
" plt.fill_betweenx(series[start_time:end_time], start, end, color='green', alpha=0.3)\n",
"# plt.xlim(0, len(df[start:end]))\n",
"plt.scatter(range(start_time,end_time), series[start_time:end_time])"
]
},
{
"cell_type": "code",
"execution_count": 195,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 195,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sampled_segments"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# What are faults associated with?"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import polars as pl\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from io import StringIO\n",
"import math\n",
"df = pl.read_csv('output.csv')"
]
},
{
"cell_type": "code",
"execution_count": 209,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['',\n",
" 'time',\n",
" 'AVG_PACK_SOC',\n",
" 'AvgSOC',\n",
" 'AvgSOH',\n",
" 'BATT_PACK_1_DISCONN',\n",
" 'BATT_PACK_1_FAULT',\n",
" 'BATT_PACK_1_WARN',\n",
" 'BATT_PACK_2_DISCONN',\n",
" 'BATT_PACK_2_FAULT',\n",
" 'BATT_PACK_2_WARN',\n",
" 'BATT_PACK_3_DISCONN',\n",
" 'BATT_PACK_3_FAULT',\n",
" 'BATT_PACK_3_WARN',\n",
" 'BATT_PACK_4_DISCONN',\n",
" 'BATT_PACK_4_FAULT',\n",
" 'BATT_PACK_4_WARN',\n",
" 'BATT_PACK_5_DISCONN',\n",
" 'BATT_PACK_5_FAULT',\n",
" 'BATT_PACK_5_WARN',\n",
" 'BATT_PACK_6_DISCONN',\n",
" 'BATT_PACK_6_FAULT',\n",
" 'BATT_PACK_6_WARN',\n",
" 'BATT_PACK_7_DISCONN',\n",
" 'BATT_PACK_7_FAULT',\n",
" 'BATT_PACK_7_WARN',\n",
" 'BATT_ROOM_TEMP',\n",
" 'Current',\n",
" 'MAX_CELL_TEMP',\n",
" 'MAX_CELL_VOL',\n",
" 'MAX_PACK_SOC',\n",
" 'MAX_UNCONN_PACK_VOL',\n",
" 'MIN_CELL_TEMP',\n",
" 'MIN_CELL_VOL',\n",
" 'MIN_PACK_SOC',\n",
" 'MIN_UNCONN_PACK_VOL',\n",
" 'NUMBER_OF_PACKS_CONN',\n",
" 'NUMBER_OF_PACKS_FAULTED',\n",
" 'PACK1_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK1_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK1_CRIDATA_BATT_VOL',\n",
" 'PACK1_CRIDATA_BUS_VOL',\n",
" 'PACK1_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK1_CRIDATA_CURR',\n",
" 'PACK1_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK1_CRIDATA_SOC',\n",
" 'PACK1_CRIDATA_SOH',\n",
" 'PACK2_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK2_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK2_CRIDATA_BATT_VOL',\n",
" 'PACK2_CRIDATA_BUS_VOL',\n",
" 'PACK2_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK2_CRIDATA_CURR',\n",
" 'PACK2_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK2_CRIDATA_SOC',\n",
" 'PACK2_CRIDATA_SOH',\n",
" 'PACK3_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK3_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK3_CRIDATA_BATT_VOL',\n",
" 'PACK3_CRIDATA_BUS_VOL',\n",
" 'PACK3_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK3_CRIDATA_CURR',\n",
" 'PACK3_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK3_CRIDATA_SOC',\n",
" 'PACK3_CRIDATA_SOH',\n",
" 'PACK4_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK4_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK4_CRIDATA_BATT_VOL',\n",
" 'PACK4_CRIDATA_BUS_VOL',\n",
" 'PACK4_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK4_CRIDATA_CURR',\n",
" 'PACK4_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK4_CRIDATA_SOC',\n",
" 'PACK4_CRIDATA_SOH',\n",
" 'PACK5_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK5_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK5_CRIDATA_BATT_VOL',\n",
" 'PACK5_CRIDATA_BUS_VOL',\n",
" 'PACK5_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK5_CRIDATA_CURR',\n",
" 'PACK5_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK5_CRIDATA_SOC',\n",
" 'PACK5_CRIDATA_SOH',\n",
" 'PACK6_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK6_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK6_CRIDATA_BATT_VOL',\n",
" 'PACK6_CRIDATA_BUS_VOL',\n",
" 'PACK6_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK6_CRIDATA_CURR',\n",
" 'PACK6_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK6_CRIDATA_SOC',\n",
" 'PACK6_CRIDATA_SOH',\n",
" 'PACK7_CRIDATA_AVG_CELL_TEMP',\n",
" 'PACK7_CRIDATA_AVG_CELL_VOL',\n",
" 'PACK7_CRIDATA_BATT_VOL',\n",
" 'PACK7_CRIDATA_BUS_VOL',\n",
" 'PACK7_CRIDATA_CHARGE_CURR_LIMIT',\n",
" 'PACK7_CRIDATA_CURR',\n",
" 'PACK7_CRIDATA_DISCHARGE_CURR_LIMIT',\n",
" 'PACK7_CRIDATA_SOC',\n",
" 'PACK7_CRIDATA_SOH',\n",
" 'PACK_1_STATUS',\n",
" 'PACK_2_STATUS',\n",
" 'PACK_3_STATUS',\n",
" 'PACK_4_STATUS',\n",
" 'PACK_5_STATUS',\n",
" 'PACK_6_STATUS',\n",
" 'PACK_7_STATUS',\n",
" 'RunningState',\n",
" 'Voltage',\n",
" 'valuestreamname']"
]
},
"execution_count": 209,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.columns"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def convert_values(values):\n",
" numerical_values = []\n",
" for value in values:\n",
" if value == 'False':\n",
" numerical_values.append(0)\n",
" elif value == 'True':\n",
" numerical_values.append(1)\n",
" else:\n",
" # numerical_values.append(np.nan)\n",
" numerical_values.append(-1)\n",
" return numerical_values\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fe32e9c24d0>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fault = convert_values(df['BATT_PACK_1_FAULT'])\n",
"plt.scatter(range(len(fault)), fault)"
]
},
{
"cell_type": "code",
"execution_count": 189,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f6d74a9b010>]"
]
},
"execution_count": 189,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(df['Voltage'].cast(pl.Float32))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see that faults are constrained to between 50000 and 150000"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## overview"
]
},
{
"cell_type": "code",
"execution_count": 176,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'batt room temp')"
]
},
"execution_count": 176,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1000x3000 with 10 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# start = 115000\n",
"# end = 140000\n",
"start = 0\n",
"end = len(df)\n",
"#\n",
"\n",
"num_rows = 10\n",
"fig, axs = plt.subplots(nrows=num_rows, ncols=1, figsize=(10,3 * num_rows))\n",
"\n",
"numerical_values0 = convert_values(df['BATT_PACK_1_FAULT'][start:end])\n",
"numerical_values1 = df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values2 = df['PACK1_CRIDATA_AVG_CELL_VOL'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values3 = df['PACK1_CRIDATA_AVG_CELL_TEMP'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values4 = df['PACK1_CRIDATA_BUS_VOL'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values5 = df['PACK1_CRIDATA_CHARGE_CURR_LIMIT'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values6 = df['PACK1_CRIDATA_CURR'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values7 = df['PACK1_CRIDATA_DISCHARGE_CURR_LIMIT'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values8 = df['PACK1_CRIDATA_SOC'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values9 = df['BATT_ROOM_TEMP'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"axs[0].scatter(range(len(numerical_values0)), numerical_values0, s=10)\n",
"axs[0].set_title(\"fault\")\n",
"axs[1].scatter(range(len(numerical_values1)), numerical_values1, s=10)\n",
"axs[1].set_title(\"voltage\")\n",
"axs[1].set_ylim(600,1000)\n",
"\n",
"axs[2].scatter(range(len(numerical_values2)), numerical_values2, s=10)\n",
"axs[2].set_title(\"avg cell vol\")\n",
"\n",
"axs[3].scatter(range(len(numerical_values3)), numerical_values3, s=10)\n",
"axs[3].set_title(\"avg cell temp\")\n",
"axs[3].set_ylim(-20, 100)\n",
"\n",
"axs[4].scatter(range(len(numerical_values4)), numerical_values4, s=10)\n",
"axs[4].set_title(\"bus vol\")\n",
"\n",
"axs[5].scatter(range(len(numerical_values5)), numerical_values5, s=10)\n",
"axs[5].set_title(\"charge curr limit\")\n",
"\n",
"axs[6].scatter(range(len(numerical_values6)), numerical_values6, s=10)\n",
"axs[6].set_title(\"curr\")\n",
"\n",
"axs[7].scatter(range(len(numerical_values7)), numerical_values7, s=10)\n",
"axs[7].set_title(\"discharge curr limit\")\n",
"\n",
"axs[8].scatter(range(len(numerical_values8)), numerical_values8, s=10)\n",
"axs[8].set_title(\"soc\")\n",
"\n",
"axs[9].scatter(range(len(numerical_values9)), numerical_values9, s=10)\n",
"axs[9].set_title(\"batt room temp\")\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 155,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'batt room temp')"
]
},
"execution_count": 155,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1000x2100 with 7 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"start = 115000\n",
"end = 140000\n",
"# start = 0\n",
"# end = len(df)\n",
"\n",
"num_rows = 7\n",
"fig, axs = plt.subplots(nrows=num_rows, ncols=1, figsize=(10,3 * num_rows))\n",
"\n",
"numerical_values0 = convert_values(df['BATT_PACK_1_FAULT'][start:end])\n",
"numerical_values1 = convert_values(df['BATT_PACK_1_WARN'][start:end])\n",
"numerical_values2 = df['Current'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values3 = df['PACK1_CRIDATA_AVG_CELL_TEMP'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values6 = df['PACK1_CRIDATA_CURR'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values8 = df['PACK1_CRIDATA_SOC'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"numerical_values9 = df['BATT_ROOM_TEMP'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"axs[0].scatter(range(len(numerical_values0)), numerical_values0, s=10)\n",
"axs[0].set_title(\"fault\")\n",
"\n",
"axs[1].scatter(range(len(numerical_values1)), numerical_values1, s=10)\n",
"axs[1].set_title(\"warn\")\n",
"\n",
"axs[2].scatter(range(len(numerical_values2)), numerical_values2, s=10)\n",
"axs[2].set_title(\"current\")\n",
"axs[2].set_ylim(-20, 30)\n",
"\n",
"axs[3].scatter(range(len(numerical_values3)), numerical_values3, s=10)\n",
"axs[3].set_title(\"avg cell temp\")\n",
"axs[3].set_ylim(0, 30)\n",
"\n",
"axs[4].scatter(range(len(numerical_values6)), numerical_values6, s=10)\n",
"axs[4].set_title(\"pack 1 curr\")\n",
"axs[4].set_ylim(-5, 5)\n",
"\n",
"axs[5].scatter(range(len(numerical_values8)), numerical_values8, s=10)\n",
"axs[5].set_title(\"soc\")\n",
"\n",
"axs[6].scatter(range(len(numerical_values9)), numerical_values9, s=10)\n",
"axs[6].set_title(\"batt room temp\")\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><style>\n",
".dataframe > thead > tr > th,\n",
".dataframe > tbody > tr > td {\n",
" text-align: right;\n",
"}\n",
"</style>\n",
"<small>shape: (9, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>statistic</th><th>value</th></tr><tr><td>str</td><td>f64</td></tr></thead><tbody><tr><td>&quot;count&quot;</td><td>1000.0</td></tr><tr><td>&quot;null_count&quot;</td><td>0.0</td></tr><tr><td>&quot;mean&quot;</td><td>0.190974</td></tr><tr><td>&quot;std&quot;</td><td>0.914956</td></tr><tr><td>&quot;min&quot;</td><td>-1.19995</td></tr><tr><td>&quot;25%&quot;</td><td>-0.699951</td></tr><tr><td>&quot;50%&quot;</td><td>0.0</td></tr><tr><td>&quot;75%&quot;</td><td>1.09998</td></tr><tr><td>&quot;max&quot;</td><td>2.09998</td></tr></tbody></table></div>"
],
"text/plain": [
"shape: (9, 2)\n",
"┌────────────┬───────────┐\n",
"│ statistic ┆ value │\n",
"│ --- ┆ --- │\n",
"│ str ┆ f64 │\n",
"╞════════════╪═══════════╡\n",
"│ count ┆ 1000.0 │\n",
"│ null_count ┆ 0.0 │\n",
"│ mean ┆ 0.190974 │\n",
"│ std ┆ 0.914956 │\n",
"│ min ┆ -1.19995 │\n",
"│ 25% ┆ -0.699951 │\n",
"│ 50% ┆ 0.0 │\n",
"│ 75% ┆ 1.09998 │\n",
"│ max ┆ 2.09998 │\n",
"└────────────┴───────────┘"
]
},
"execution_count": 105,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start = 50000 + 70000 + 3000 \n",
"end = start + 1000\n",
"\n",
"df['PACK1_CRIDATA_CURR'].cast(pl.Float32)[start:end].describe()"
]
},
{
"cell_type": "code",
"execution_count": 129,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><style>\n",
".dataframe > thead > tr > th,\n",
".dataframe > tbody > tr > td {\n",
" text-align: right;\n",
"}\n",
"</style>\n",
"<small>shape: (3, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>statistic</th><th>value</th></tr><tr><td>str</td><td>i64</td></tr></thead><tbody><tr><td>&quot;count&quot;</td><td>273961</td></tr><tr><td>&quot;null_count&quot;</td><td>6346</td></tr><tr><td>&quot;sum&quot;</td><td>158353</td></tr></tbody></table></div>"
],
"text/plain": [
"shape: (3, 2)\n",
"┌────────────┬────────┐\n",
"│ statistic ┆ value │\n",
"│ --- ┆ --- │\n",
"│ str ┆ i64 │\n",
"╞════════════╪════════╡\n",
"│ count ┆ 273961 │\n",
"│ null_count ┆ 6346 │\n",
"│ sum ┆ 158353 │\n",
"└────────────┴────────┘"
]
},
"execution_count": 129,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# df.columns.index('PACK1_CRIDATA_BATT_VOL')\n",
"# df.columns.index('PACK1_CRIDATA_CURR')\n",
"df['RunningState'].describe()"
]
},
{
"cell_type": "code",
"execution_count": 127,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'warn 2')"
]
},
"execution_count": 127,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA08AAAPcCAYAAACZzID3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACJb0lEQVR4nOzde1zUdd7//+cIMqjBpJIgiYhtJUYnBzU8rKmFp2zpiJWYHfzGlimyBzXbNLeNavfqcrs8dbC6ujKjVmutZV1xM9KkTAIzdau9JCGFCLMZPAQK798f/pyrCdQPCXwGedxvt89tv/Oe92c+r/fMOy6f3/fM++MwxhgBAAAAAE6qnd0FAAAAAEBrQHgCAAAAAAsITwAAAABgAeEJAAAAACwgPAEAAACABYQnAAAAALCA8AQAAAAAFhCeAAAAAMACwhMAAAAAWEB4AgAErOzsbF100UXq0KGDHA6HioqKmuU6V155pa688krf40OHDmnevHl69913Lb/GggULdP311ysuLk4Oh8Pv9QAAZwbCEwAgIH3zzTdKS0vTeeedpzVr1ig/P18XXHBBi1z70KFDevjhhxsVnpYuXardu3drxIgROuecc5qvOACAbYLtLgAAgIZ8/vnnOnLkiCZOnKhhw4bZXc4p7dixQ+3aHfv/k0xISLC5GgBAc2DlCQAQcCZPnqwhQ4ZIklJTU/2+BrdlyxZNmDBBvXr1UocOHdSrVy/dcsst2r17t99rzJs3Tw6Ho95rv/jii3I4HPryyy8bvPaXX37pWzl6+OGH5XA45HA4NHny5JPWfDw4AQDOXKw8AQACzu9+9zsNGDBA9913nx599FENHz5c4eHhko6FmwsvvFATJkxQly5dVFZWpiVLlqh///7asWOHIiIiTuva3bt315o1azR69GjddddduvvuuyWJr+IBAAhPAIDAc95556lv376SpPPPP19XXHGF77kbb7xRN954o+9xbW2trrnmGkVGRuqVV17RtGnTTuvaTqdTbrdbktSjRw+/awMA2ja+YwAAaFUOHDigmTNn6mc/+5mCg4MVHByss846SwcPHtTOnTvtLg8AcAZj5QkA0Krceuut+uc//6nf/e536t+/v8LDw+VwODR27FgdPnzY7vIAAGcwwhMAoNXweDx6++23NXfuXM2aNcvXXl1drW+//davb2hoqO85p9Ppa6+s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
"text/plain": [
"<Figure size 1000x1200 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"start = 50000 + 70000 + 3000\n",
"end = start + 1000\n",
"\n",
"num_rows = 4\n",
"fig, axs = plt.subplots(nrows=num_rows, ncols=1, figsize=(10,3 * num_rows))\n",
"\n",
"numerical_values0 = convert_values(df['BATT_PACK_1_FAULT'][start:end])\n",
"numerical_values1 = convert_values(df['BATT_PACK_1_WARN'][start:end])\n",
"\n",
"numerical_values2 = convert_values(df['BATT_PACK_7_FAULT'][start:end])\n",
"numerical_values3 = convert_values(df['BATT_PACK_7_WARN'][start:end])\n",
"\n",
"axs[0].scatter(range(len(numerical_values0)), numerical_values0, s=10)\n",
"axs[0].set_title(\"fault 1\")\n",
"\n",
"axs[1].scatter(range(len(numerical_values1)), numerical_values1, s=10)\n",
"axs[1].set_title(\"warn 1\")\n",
"\n",
"axs[2].scatter(range(len(numerical_values2)), numerical_values2, s=10)\n",
"axs[2].set_title(\"fault 2\")\n",
"\n",
"axs[3].scatter(range(len(numerical_values3)), numerical_values3, s=10)\n",
"axs[3].set_title(\"warn 2\")"
]
},
{
"cell_type": "code",
"execution_count": 138,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f6d7ae55ae0>"
]
},
"execution_count": 138,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(df['PACK1_CRIDATA_CURR'].cast(pl.Float64).fill_null(0))\n",
"plt.scatter(range(len(numerical_values0)), numerical_values0, color=\"r\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 214,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'voltage')"
]
},
"execution_count": 214,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAz8AAAIOCAYAAACWBLP/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABCLUlEQVR4nO3de3RU1d3/8c+QyyRgMhgiCYEQgiKgKEJQJICAShQBRW1FULmoLVEuBloukacKqARQ0UcpUBWhightBYqWIqlKEMEKMSgFllQJJEBiHhAz4dIAyf794WJ+HXOBZHLf79da54/ZZ59zvt+415RPz8wZhzHGCAAAAAAauEa1XQAAAAAA1ATCDwAAAAArEH4AAAAAWIHwAwAAAMAKhB8AAAAAViD8AAAAALAC4QcAAACAFQg/AAAAAKxA+AEAAABgBcIPAKDWrFq1SldffbWCg4PlcDi0c+fOKr9G37591bdvX8/rU6dOacaMGdq0aVOVXwsAULcRfgAAteL//u//9NBDD+nyyy/Xhg0btG3bNl155ZXVft1Tp05p5syZhB8AsJB/bRcAALDTvn37dPbsWT344IPq06dPbZcDALAAd34AADVu1KhR6tWrlyRp6NChcjgc6tu3r3bs2KH7779fbdq0UXBwsNq0aaNhw4bp4MGDXsfPmDFDDoejxHmXLVsmh8OhAwcOlHrdAwcO6LLLLpMkzZw5Uw6HQw6HQ6NGjarS/gAAdRN3fgAANe53v/udbrjhBo0dO1azZ89Wv379FBoaqj179qh9+/a6//77FRYWppycHC1atEjXX3+99uzZo/DwcJ+u26JFC23YsEG33367HnnkET366KOS5AlEAICGjfADAKhxl19+ua666ipJUrt27XTjjTdKkq666ir94he/8MwrKirSoEGDFBERoRUrVmjChAk+XdfpdCouLk6S1KpVK891AQB24GNvAIA648SJE5o6daquuOIK+fv7y9/fX5dccolOnjypvXv31nZ5AIB6jjs/AIA6Y/jw4froo4/0u9/9Ttdff71CQ0PlcDh0xx136PTp07VdHgCgniP8AADqhPz8fH3wwQd6+umnNW3aNM94YWGhfvjhB6+5QUFBnn1Op9MzfvTo0ZopFgBQL/GxNwBAneBwOGSM8QozkvTGG2+oqKjIa6xNmzaSpK+//tpr/P3337/gdc6fnztJ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
"text/plain": [
"<Figure size 1000x600 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"stepper = 0\n",
"start = 116300 + stepper\n",
"end = start + 100 + stepper\n",
"# start = 0\n",
"# end = len(df)\n",
"#\n",
"\n",
"num_rows = 2\n",
"fig, axs = plt.subplots(nrows=num_rows, ncols=1, figsize=(10,3 * num_rows))\n",
"\n",
"numerical_values0 = convert_values(df['BATT_PACK_1_FAULT'][start:end])\n",
"numerical_values1 = df['PACK1_CRIDATA_SOH'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"axs[0].scatter(range(len(numerical_values0)), numerical_values0, s=10)\n",
"axs[0].set_title(\"fault\")\n",
"axs[1].scatter(range(len(numerical_values1)), numerical_values1, s=10)\n",
"axs[1].set_title(\"voltage\")\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# identify train and test regions"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import polars as pl\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from io import StringIO\n",
"import math\n",
"df = pl.read_csv('output.csv')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def convert_values(values):\n",
" numerical_values = []\n",
" for value in values:\n",
" if value == 'False':\n",
" numerical_values.append(0)\n",
" elif value == 'True':\n",
" numerical_values.append(1)\n",
" else:\n",
" # numerical_values.append(np.nan)\n",
" numerical_values.append(-1)\n",
" return numerical_values\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fe32e9c24d0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fault = convert_values(df['BATT_PACK_1_FAULT'])\n",
"plt.scatter(range(len(fault)), fault)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fe3301f9f30>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"start = 170000\n",
"end = len(df)\n",
"window = fault[start:end]\n",
"plt.scatter(range(len(window)), window)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'batt room temp')"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1000x3000 with 10 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# start = 115000\n",
"# end = 140000\n",
"start = 170000\n",
"end = len(df)\n",
"#\n",
"\n",
"num_rows = 10\n",
"fig, axs = plt.subplots(nrows=num_rows, ncols=1, figsize=(10,3 * num_rows))\n",
"\n",
"numerical_values0 = convert_values(df['BATT_PACK_1_FAULT'][start:end])\n",
"numerical_values1 = df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32).fill_null(strategy=\"mean\")[start:end]\n",
"numerical_values2 = df['PACK1_CRIDATA_AVG_CELL_VOL'].cast(pl.Float32).fill_null(strategy=\"mean\")[start:end]\n",
"numerical_values3 = df['PACK1_CRIDATA_AVG_CELL_TEMP'].cast(pl.Float32).fill_null(strategy=\"mean\")[start:end]\n",
"numerical_values4 = df['PACK1_CRIDATA_BUS_VOL'].cast(pl.Float32).fill_null(strategy=\"mean\")[start:end]\n",
"numerical_values5 = df['PACK1_CRIDATA_CHARGE_CURR_LIMIT'].cast(pl.Float32).fill_null(strategy=\"mean\")[start:end]\n",
"numerical_values6 = df['PACK1_CRIDATA_CURR'].cast(pl.Float32).fill_null(strategy=\"mean\")[start:end]\n",
"numerical_values7 = df['PACK1_CRIDATA_DISCHARGE_CURR_LIMIT'].cast(pl.Float32).fill_null(strategy=\"mean\")[start:end]\n",
"numerical_values8 = df['PACK1_CRIDATA_SOC'].cast(pl.Float32).fill_null(strategy=\"mean\")[start:end]\n",
"numerical_values9 = df['BATT_ROOM_TEMP'].cast(pl.Float32).fill_null(strategy=\"mean\")[start:end]\n",
"axs[0].scatter(range(len(numerical_values0)), numerical_values0, s=10)\n",
"axs[0].set_title(\"fault\")\n",
"axs[1].scatter(range(len(numerical_values1)), numerical_values1, s=10)\n",
"axs[1].set_title(\"voltage\")\n",
"axs[1].set_ylim(600,1000)\n",
"\n",
"axs[2].scatter(range(len(numerical_values2)), numerical_values2, s=10)\n",
"axs[2].set_title(\"avg cell vol\")\n",
"\n",
"axs[3].scatter(range(len(numerical_values3)), numerical_values3, s=10)\n",
"axs[3].set_title(\"avg cell temp\")\n",
"axs[3].set_ylim(-20, 100)\n",
"\n",
"axs[4].scatter(range(len(numerical_values4)), numerical_values4, s=10)\n",
"axs[4].set_title(\"bus vol\")\n",
"\n",
"axs[5].scatter(range(len(numerical_values5)), numerical_values5, s=10)\n",
"axs[5].set_title(\"charge curr limit\")\n",
"\n",
"axs[6].scatter(range(len(numerical_values6)), numerical_values6, s=10)\n",
"axs[6].set_title(\"curr\")\n",
"\n",
"axs[7].scatter(range(len(numerical_values7)), numerical_values7, s=10)\n",
"axs[7].set_title(\"discharge curr limit\")\n",
"\n",
"axs[8].scatter(range(len(numerical_values8)), numerical_values8, s=10)\n",
"axs[8].set_title(\"soc\")\n",
"\n",
"axs[9].scatter(range(len(numerical_values9)), numerical_values9, s=10)\n",
"axs[9].set_title(\"batt room temp\")\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we can reasonably assume that the data in this interval is without anomalies\n",
"\n",
"The issue lies in removing the \"0\" data"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'temp with zeros')"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1000x1200 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# start = 170000\n",
"# end = len(df)\n",
"start = 0\n",
"\n",
"end = len(df)\n",
"\n",
"num_rows = 4\n",
"\n",
"fig, axs = plt.subplots(nrows=num_rows, ncols=1, figsize=(10,3 * num_rows))\n",
"\n",
"\n",
"numerical_values0 = convert_values((df['BATT_PACK_1_FAULT']\n",
" .filter(df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32) != 0))\n",
" [start:end])\n",
"numerical_values1 = (df['PACK1_CRIDATA_BATT_VOL']\n",
" .cast(pl.Float32)\n",
" .fill_null(strategy=\"mean\")\n",
" .filter(df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32) != 0))[start:end]\n",
"\n",
"numerical_values2 = (df['PACK1_CRIDATA_AVG_CELL_TEMP']\n",
" .cast(pl.Float32)\n",
" .fill_null(strategy=\"mean\")\n",
" .filter(df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32) != 0))[start:end]\n",
"\n",
"\n",
"numerical_values3 = df['PACK1_CRIDATA_AVG_CELL_TEMP'].cast(pl.Float32).fill_null(-100)[start:end]\n",
"\n",
"axs[0].scatter(range(len(numerical_values0)), numerical_values0, s=10)\n",
"axs[0].set_title(\"fault\")\n",
"\n",
"axs[1].scatter(range(len(numerical_values1)), numerical_values1, s=10)\n",
"axs[1].set_title(\"voltage\")\n",
"\n",
"axs[2].scatter(range(len(numerical_values2)), numerical_values2, s=10)\n",
"axs[2].set_title(\"temp\")\n",
"\n",
"axs[3].scatter(range(len(numerical_values3)), numerical_values3, s=10)\n",
"axs[3].set_title(\"temp with zeros\")\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fe3243fa860>"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"numerical_values1 = (df['PACK1_CRIDATA_BATT_VOL']\n",
" .cast(pl.Float32)\n",
" .fill_null(strategy=\"mean\")\n",
" .filter(df['PACK1_CRIDATA_BATT_VOL'].cast(pl.Float32) != 0))\n",
"\n",
"plt.scatter(range(len(numerical_values1)), numerical_values1, s=10)\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fe32601c5e0>"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"numerical_values1 = (df['PACK1_CRIDATA_BATT_VOL']\n",
" .cast(pl.Float32)\n",
" .fill_null(0))\n",
" \n",
"\n",
"plt.scatter(range(len(numerical_values1)), numerical_values1, s=10)\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'batt room temp')"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1000x3000 with 10 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# start = 115000\n",
"# end = 140000\n",
"start = 0\n",
"end = len(df)\n",
"#\n",
"\n",
"num_rows = 10\n",
"fig, axs = plt.subplots(nrows=num_rows, ncols=1, figsize=(10,3 * num_rows))\n",
"\n",
"filter_condition = (df['PACK1_CRIDATA_BATT_VOL']\n",
" .cast(pl.Float32) != 0)\n",
"\n",
"numerical_values0 = convert_values(df['BATT_PACK_1_FAULT']\n",
" .filter(filter_condition)[start:end])\n",
"numerical_values1 = (df['PACK1_CRIDATA_BATT_VOL']\n",
" .filter(filter_condition)\n",
" .cast(pl.Float32)\n",
" .fill_null(strategy=\"mean\"))[start:end]\n",
"numerical_values2 = (df['PACK1_CRIDATA_AVG_CELL_VOL']\n",
" .filter(filter_condition)\n",
" .cast(pl.Float32)\n",
" .fill_null(strategy=\"mean\"))[start:end]\n",
"numerical_values3 = (df['PACK1_CRIDATA_AVG_CELL_TEMP']\n",
" .filter(filter_condition)\n",
" .cast(pl.Float32)\n",
" .fill_null(strategy=\"mean\"))[start:end]\n",
"numerical_values4 = (df['PACK1_CRIDATA_BUS_VOL'].cast(pl.Float32).fill_null(strategy=\"mean\"))[start:end]\n",
"numerical_values5 = (df['PACK1_CRIDATA_CHARGE_CURR_LIMIT'].cast(pl.Float32).fill_null(strategy=\"mean\"))[start:end]\n",
"numerical_values6 = (df['PACK1_CRIDATA_CURR'].cast(pl.Float32).fill_null(strategy=\"mean\"))[start:end]\n",
"numerical_values7 = (df['PACK1_CRIDATA_DISCHARGE_CURR_LIMIT'].cast(pl.Float32).fill_null(strategy=\"mean\"))[start:end]\n",
"numerical_values8 = (df['PACK1_CRIDATA_SOC'].cast(pl.Float32).fill_null(strategy=\"mean\"))[start:end]\n",
"numerical_values9 = (df['BATT_ROOM_TEMP'].cast(pl.Float32).fill_null(strategy=\"mean\"))[start:end]\n",
"axs[0].scatter(range(len(numerical_values0)), numerical_values0, s=10)\n",
"axs[0].set_title(\"fault\")\n",
"axs[1].scatter(range(len(numerical_values1)), numerical_values1, s=10)\n",
"axs[1].set_title(\"voltage\")\n",
"\n",
"axs[2].scatter(range(len(numerical_values2)), numerical_values2, s=10)\n",
"axs[2].set_title(\"avg cell vol\")\n",
"\n",
"axs[3].scatter(range(len(numerical_values3)), numerical_values3, s=10)\n",
"axs[3].set_title(\"avg cell temp\")\n",
"\n",
"axs[4].scatter(range(len(numerical_values4)), numerical_values4, s=10)\n",
"axs[4].set_title(\"bus vol\")\n",
"\n",
"axs[5].scatter(range(len(numerical_values5)), numerical_values5, s=10)\n",
"axs[5].set_title(\"charge curr limit\")\n",
"\n",
"axs[6].scatter(range(len(numerical_values6)), numerical_values6, s=10)\n",
"axs[6].set_title(\"curr\")\n",
"\n",
"axs[7].scatter(range(len(numerical_values7)), numerical_values7, s=10)\n",
"axs[7].set_title(\"discharge curr limit\")\n",
"\n",
"axs[8].scatter(range(len(numerical_values8)), numerical_values8, s=10)\n",
"axs[8].set_title(\"soc\")\n",
"\n",
"axs[9].scatter(range(len(numerical_values9)), numerical_values9, s=10)\n",
"axs[9].set_title(\"batt room temp\")\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.10.12"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}