{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "b10e5c25",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.5479121 -0.12224312 0.71719584 0.39473606 -0.8116453 0.9512447\n",
" 0.5222794 0.57212861 -0.74377273 -0.09922812 -0.25840395 0.85352998\n",
" 0.28773024 0.64552323 -0.1131716 -0.54552256 0.10916957 -0.87236549\n",
" 0.65526234 0.2633288 0.51617548 -0.29094806 0.94139605 0.78624224\n",
" 0.55676699 -0.61072258 -0.06655799 -0.91239247 -0.69142102 0.36609791\n",
" 0.48952431 0.93501946 -0.34834928 -0.25908059 -0.06088838 -0.62105728\n",
" -0.74015699 -0.04859015 -0.5461813 0.33962799 -0.12569616 0.66535639\n",
" 0.4005302 -0.37526672 0.6645196 0.60952871 -0.22504324 -0.42334379\n",
" 0.36499101 -0.72049503 -0.6001836 -0.98527546 0.57384876 0.32970171\n",
" 0.41033076 0.56145806 -0.08216845 0.13748239 -0.720406 -0.77093985\n",
" 0.33680592 -0.05780759 0.13047221 0.52999771 0.26943664 0.1071588\n",
" 0.11841432 -0.3920998 -0.93836433 -0.12656522 -0.57083065 -0.18294271\n",
" 0.70680615 -0.53212103 -0.88339452 -0.43723222 -0.41281248 0.32383303\n",
" 0.1140643 0.56779642 0.32862708 -0.18722628 0.62804077 -0.66605416\n",
" -0.95457585 -0.81990428 0.4447187 -0.07624554 -0.67745644 0.00208955\n",
" -0.69537579 0.39264075 -0.10768745 -0.23795755 -0.39697582 0.26056519\n",
" -0.27637478 -0.82470016 -0.7639882 0.92379533 0.81716138 0.39941427\n",
" -0.46826008 0.93835275 0.55750181 0.43378038 -0.101277 -0.45551688\n",
" -0.80721808 0.80520479 -0.08844742 -0.59527327 -0.38808675 0.15843914\n",
" -0.64645443 0.71322857 0.51703906 0.43892591 -0.13581392 0.25461768\n",
" 0.16819594 0.2996932 -0.83111136 -0.1683852 -0.91677165 -0.01201836\n",
" -0.34027758 -0.71095162 -0.79319406 0.17528914 -0.65881406 0.85024024\n",
" 0.16212228 -0.30626039 0.18183098 -0.95439226 0.91711843 -0.03539313\n",
" 0.56547045 -0.83454 -0.02668334 -0.01858601 0.87565291 0.1434561\n",
" -0.0530212 -0.46604867 -0.33686201 0.0413448 -0.12217708 -0.95677584\n",
" 0.65258385 0.79232154 -0.71950182 0.10807229 -0.78284852 0.34448019\n",
" -0.43753243 0.31884527 0.45398923 0.53729498 -0.78451811 0.83202369\n",
" -0.53957202 -0.92517489 0.10970494 -0.25815543 0.65957949 0.61650294\n",
" -0.36572221 0.90579879 -0.41816432 0.03011426 -0.48806982 0.87208714\n",
" -0.67078436 -0.91017876 -0.12980588 0.98475113 0.78335453 0.49721604\n",
" 0.78158498 0.78689328 0.03771672 -0.3681419 0.54402486 0.32332253\n",
" -0.25268454 -0.81106666 0.49357922 -0.47507897 0.8736263 -0.51805885\n",
" -0.75448414 0.66222534 -0.69343137 -0.64146338 0.19876558 0.74912408\n",
" -0.60713067 -0.37935265 0.55480968 0.94365285 0.00148237 -0.71220499\n",
" -0.97212742 -0.54068794 -0.73635556 0.35531735 -0.75633499 0.01265986\n",
" 0.38852487 0.16223322 -0.6004487 0.60824905 0.43081426 0.47796801\n",
" -0.7378845 -0.75249239 0.8551251 -0.20484361 -0.39810262 -0.02283191\n",
" 0.32572843 0.91124651 -0.42710755 0.84961686 -0.95028102 0.11039608\n",
" 0.26795022 -0.78820519 -0.71932081 -0.16177136 0.93246382 0.19208511\n",
" 0.86604644 0.60872183 -0.0652368 0.5695269 -0.96432643 -0.78171201\n",
" 0.65885723 0.59363418 -0.53471852 0.06153918 0.21203164 0.73547791\n",
" 0.20621431 -0.17485686 -0.25163191 -0.14823583 0.30386205 0.73498126\n",
" -0.09220624 -0.50432087 -0.52667527 0.49202856 0.63313753 -0.78944384\n",
" -0.86688229 0.18886733 -0.70765351 0.64932838 -0.37933065 -0.71225613\n",
" 0.84194094 -0.66893655 -0.43055984 -0.69277321 -0.76901987 -0.95770397\n",
" -0.88920918 -0.65071706 -0.89323613 0.18228763 0.36142905 -0.21273909\n",
" -0.36401781 0.00905247 0.75000988 0.70226325 -0.91304988 -0.63700318\n",
" -0.52651026 -0.50122485 0.1424653 -0.16747515 -0.90149176 -0.25277172\n",
" 0.0475059 -0.79665619 0.66691711 -0.89607627 0.84968374 -0.80177372\n",
" 0.6871499 0.80530629 0.95914136 0.60405176 0.55895508]\n",
"[ 0.28496655 0.55799271 -0.73089558 0.07213607 0.02844574 0.71514429\n",
" -0.07440127 -0.22982101 0.27912654 -0.46707336 -0.72046318 -0.04424545\n",
" -0.16622126 -0.53486012 -0.26497638 -0.2672151 -0.34500887 -0.24107184\n",
" 0.37148669 -0.40624705 0.89771585 0.83269604 -0.03817914 -0.34327759\n",
" 0.07086958 0.69712098 0.30517468 0.60878366 0.06544455 0.26583526\n",
" -0.42368877 0.46978632 -0.59519081 0.38959626 0.72143814 -0.73579433\n",
" 0.22875948 -0.8098085 0.45143126 -0.83101356 0.87187965 -0.72518414\n",
" 0.91776049 0.60176835 0.18736401 0.56524821 0.59022968 0.89205413\n",
" -0.49323329 0.18015179 -0.8099016 0.2323314 -0.65741739 0.12990122\n",
" 0.14486103 -0.06802969 0.04526355 0.52784678 0.59848943 -0.01569357\n",
" 0.19918688 0.86247247 -0.76053282 -0.76579287 -0.82458198 0.31572657\n",
" -0.1627834 0.54864283 0.34246283 -0.33272448 0.79673309 0.52506429\n",
" -0.45893012 -0.27161596 -0.37112004 -0.6847767 -0.70443325 0.87225493\n",
" -0.12419193 -0.23336035 0.45937142 0.10598613 0.87227997 0.56060299\n",
" -0.04126087 -0.24728105 0.97326309 0.43552047 0.90238932 -0.76304285\n",
" 0.70106736 0.27414777 -0.75615664 0.176516 0.37219273 -0.97539463\n",
" -0.09136408 0.65079902 -0.40928195 -0.08290384 -0.11537175 -0.39614522\n",
" 0.83688379 0.56258807 -0.77882318 0.99406932 0.75840005 -0.43218312\n",
" 0.67379316 -0.78716094 0.99820946 0.33136947 0.30025003 -0.81911855\n",
" 0.7940668 -0.94200099 -0.51834388 -0.71395625 0.55353588 -0.60359155\n",
" 0.82127645 0.31253808 -0.92767458 -0.98914033 -0.89668417 0.21185036\n",
" 0.60296362 -0.52289436 0.69881769 -0.88553612 0.60192771 0.85559086\n",
" 0.5442168 0.39624157 0.67596044 -0.9196974 -0.59643578 -0.75015264\n",
" 0.00906198 0.49037626 0.26002369 0.7022622 -0.68957402 0.46924218\n",
" -0.61391702 -0.4584825 0.41980939 0.96040957 0.22308721 -0.89099937\n",
" 0.23261794 -0.9152989 0.76829142 0.41915657 -0.65374431 -0.81655799\n",
" -0.63293354 0.96005436 -0.08287872 0.5681619 0.27281668 0.1448263\n",
" -0.70973949 0.89204891 -0.39731473 0.15603443 0.39955189 0.29846631\n",
" 0.88118882 -0.70312202 0.01670548 -0.19193122 -0.05166254 -0.76156495\n",
" -0.73181078 -0.44384891 -0.39059079 -0.14419357 0.22197509 0.26925823\n",
" -0.17637821 -0.18243378 -0.56474295 0.1766125 -0.36591818 -0.92788033\n",
" -0.16319991 -0.05173465 -0.54881426 0.14491587 0.1315438 0.40400436\n",
" 0.29589696 0.30486611 -0.3675717 0.57486444 0.09828877 -0.13716361\n",
" 0.25202496 -0.27868533 0.02547849 0.47341138 0.77280577 0.84211439\n",
" 0.00726585 0.04055023 0.59974082 -0.37109862 0.67476472 -0.01171671\n",
" -0.76828655 -0.85588171 0.68398642 -0.88886417 -0.43877713 -0.33173992\n",
" -0.65401111 -0.37221326 0.48538513 -0.97063431 0.65434685 0.71309605\n",
" -0.25547685 -0.6927742 0.20168082 -0.76065489 -0.27016128 0.91685836\n",
" 0.99092895 0.54420978 -0.37807698 0.3753301 0.41081273 -0.22431661\n",
" 0.28177727 -0.97854471 -0.58188468 0.05017661 -0.67249739 -0.66818626\n",
" 0.67260858 0.97826601 0.11193886 0.67813946 0.98064333 -0.71680822\n",
" -0.10350877 -0.21485457 -0.83990143 0.51066035 -0.13244195 -0.06134613\n",
" -0.69865405 -0.6381467 0.81420724 -0.91070182 -0.53429543 -0.41588134\n",
" -0.01960492 0.17289035 -0.01342005 -0.83176933 -0.51266509 0.68717677\n",
" 0.2751774 0.2982981 0.34040651 0.52580604 -0.88378304 -0.26678323\n",
" 0.07905487 -0.32308703 0.68895775 -0.03485498 0.53725518 0.70403103\n",
" 0.00958297 0.81910449 0.17424788 0.7005486 -0.31881841 -0.00236608\n",
" 0.06282208 -0.79004057 -0.20289499 0.83467535 0.26166448 -0.64498684\n",
" -0.32228873 -0.61679398 -0.95035374 0.85492092 -0.10358534 -0.38492986\n",
" 0.19695438 -0.98537109 -0.44395579 0.40606693 0.26753955]\n",
" Counter Rollout CounterPlusRollout Timestamp\n",
"0 37.270658 -59.474345 -22.203688 2025-01-01 00:00:00\n",
"1 43.561734 -54.184658 -10.622924 2025-01-01 00:00:01\n",
"2 42.158150 -43.826926 -1.668776 2025-01-01 00:00:02\n",
"3 50.392926 -57.394165 -7.001239 2025-01-01 00:00:03\n",
"4 54.925249 -56.055140 -1.129892 2025-01-01 00:00:04\n"
]
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"# Set random seed for reproducibility\n",
"rng = np.random.default_rng(42)\n",
"\n",
"# Generate random walks starting at 0\n",
"counter = np.zeros(300)\n",
"rollout = np.zeros(300)\n",
"\n",
"# Generate random steps between -1 and 1\n",
"counter_steps = rng.uniform(-1, 1, 299)\n",
"rollout_steps = rng.uniform(-1, 1, 299)\n",
"\n",
"print(counter_steps)\n",
"print(rollout_steps)\n",
"\n",
"# Calculate cumulative sum and scale to -100 to 100 range\n",
"for i in range(1, 300):\n",
" counter[i] = counter[i-1] + counter_steps[i-1]\n",
" rollout[i] = rollout[i-1] + rollout_steps[i-1]\n",
"\n",
"# normalize values between -100 and 100, lowest value is -100, highest value is 100\n",
"counter = (counter - min(counter)) / (max(counter) - min(counter)) * 200 - 100\n",
"rollout = (rollout - min(rollout)) / (max(rollout) - min(rollout)) * 200 - 100\n",
"\n",
"# Create DataFrame\n",
"df = pd.DataFrame({\n",
" 'Counter': counter,\n",
" 'Rollout': rollout,\n",
" 'CounterPlusRollout': counter + rollout\n",
"})\n",
"\n",
"# add a timestamp column\n",
"df['Timestamp'] = pd.date_range(start='2025-01-01', periods=300, freq='1s')\n",
"\n",
"# Save to CSV\n",
"df.to_csv('random_walks.csv', index=False)\n",
"\n",
"# Display first few rows\n",
"print(df.head())\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "c61be7ab",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.5479121 -0.12224312 0.71719584 0.39473606 -0.8116453 0.9512447\n",
" 0.5222794 0.57212861 -0.74377273 -0.09922812 -0.25840395 0.85352998\n",
" 0.28773024 0.64552323 -0.1131716 -0.54552256 0.10916957 -0.87236549\n",
" 0.65526234 0.2633288 0.51617548 -0.29094806 0.94139605 0.78624224\n",
" 0.55676699 -0.61072258 -0.06655799 -0.91239247 -0.69142102 0.36609791\n",
" 0.48952431 0.93501946 -0.34834928 -0.25908059 -0.06088838 -0.62105728\n",
" -0.74015699 -0.04859015 -0.5461813 0.33962799 -0.12569616 0.66535639\n",
" 0.4005302 -0.37526672 0.6645196 0.60952871 -0.22504324 -0.42334379\n",
" 0.36499101]\n",
"[-0.72049503 -0.6001836 -0.98527546 0.57384876 0.32970171 0.41033076\n",
" 0.56145806 -0.08216845 0.13748239 -0.720406 -0.77093985 0.33680592\n",
" -0.05780759 0.13047221 0.52999771 0.26943664 0.1071588 0.11841432\n",
" -0.3920998 -0.93836433 -0.12656522 -0.57083065 -0.18294271 0.70680615\n",
" -0.53212103 -0.88339452 -0.43723222 -0.41281248 0.32383303 0.1140643\n",
" 0.56779642 0.32862708 -0.18722628 0.62804077 -0.66605416 -0.95457585\n",
" -0.81990428 0.4447187 -0.07624554 -0.67745644 0.00208955 -0.69537579\n",
" 0.39264075 -0.10768745 -0.23795755 -0.39697582 0.26056519 -0.27637478\n",
" -0.82470016]\n",
" Counter Rollout Square Timestamp\n",
"0 -100.000000 100.000000 -37.646304 2025-01-01 00:00:00\n",
"1 -79.942159 79.589040 -72.994086 2025-01-01 00:00:05\n",
"2 -84.417207 62.586392 -30.252436 2025-01-01 00:00:10\n",
"3 -58.162265 34.674447 7.555532 2025-01-01 00:00:15\n",
"4 -43.711857 50.931053 26.035410 2025-01-01 00:00:20\n"
]
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"# Set random seed for reproducibility\n",
"rng = np.random.default_rng(42)\n",
"\n",
"size = 50\n",
"\n",
"# Generate random walks starting at 0\n",
"counter = np.zeros(size)\n",
"rollout = np.zeros(size)\n",
"square = np.zeros(size)\n",
"\n",
"# Generate random steps between -1 and 1\n",
"counter_steps = rng.uniform(-1, 1, size-1)\n",
"rollout_steps = rng.uniform(-1, 1, size-1)\n",
"square_steps = rng.uniform(-1, 1, size-1)\n",
"\n",
"print(counter_steps)\n",
"print(rollout_steps)\n",
"\n",
"# Calculate cumulative sum and scale to -100 to 100 range\n",
"for i in range(1, size):\n",
" counter[i] = counter[i-1] + counter_steps[i-1]\n",
" rollout[i] = rollout[i-1] + rollout_steps[i-1]\n",
" square[i] = square[i-1] + square_steps[i-1]\n",
"\n",
"# normalize values between -100 and 100, lowest value is -100, highest value is 100\n",
"counter = (counter - min(counter)) / (max(counter) - min(counter)) * 200 - 100\n",
"rollout = (rollout - min(rollout)) / (max(rollout) - min(rollout)) * 200 - 100\n",
"square = (square - min(square)) / (max(square) - min(square)) * 200 - 100\n",
"\n",
"# Create DataFrame\n",
"df = pd.DataFrame({\n",
" 'Counter': counter,\n",
" 'Rollout': rollout,\n",
" 'Square': square\n",
"})\n",
"\n",
"# add a timestamp column\n",
"df['Timestamp'] = pd.date_range(start='2025-01-01', periods=size, freq='5s')\n",
"\n",
"# Save to CSV\n",
"df.to_csv('random_walks_demo.csv', index=False)\n",
"\n",
"# Display first few rows\n",
"print(df.head())\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e7c8eeb1",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" a | \n",
" b | \n",
"
\n",
" \n",
" | timestamp | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2025-01-01 | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" | 2025-01-02 | \n",
" 2 | \n",
" 5 | \n",
"
\n",
" \n",
" | 2025-01-03 | \n",
" 3 | \n",
" 6 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" a b\n",
"timestamp \n",
"2025-01-01 1 4\n",
"2025-01-02 2 5\n",
"2025-01-03 3 6"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"True\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" a | \n",
" b | \n",
"
\n",
" \n",
" | timestamp | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2025-01-03 | \n",
" 3 | \n",
" 6 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" a b\n",
"timestamp \n",
"2025-01-03 3 6"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"3\n",
"1\n"
]
}
],
"source": [
"from pandas import DataFrame\n",
"\n",
"a = DataFrame({\n",
" \"a\": {\"2025-01-01\": 1, \"2025-01-02\": 2, \"2025-01-03\": 3},\n",
" \"b\": {\"2025-01-01\": 4, \"2025-01-02\": 5, \"2025-01-03\": 6},\n",
"})\n",
"\n",
"a.index.name = \"timestamp\"\n",
"\n",
"display(a)\n",
"\n",
"print(\"a\" in a.columns)\n",
"\n",
"b = a.tail(1)\n",
"\n",
"display(b)\n",
"\n",
"print(len(a))\n",
"print(len(b))\n",
"print(b.size)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f3374174",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"All elements in index are of the same type\n"
]
}
],
"source": [
"from pandas import DataFrame\n",
"\n",
"data = DataFrame({\n",
" \"a\": {\"2025-01-01\": 1, \"2025-01-02\": 2, \"2025-01-03\": 3},\n",
" \"b\": {\"2025-01-01\": 4, \"2025-01-02\": 5, \"2025-01-03\": 6},\n",
"})\n",
"\n",
"index = data.index\n",
"\n",
"# Get type of first element of index\n",
"index_type = type(index[0])\n",
"\n",
"print(index_type)\n",
"\n",
"# Check if all in index are of the same type\n",
"if all(isinstance(i, index_type) for i in index):\n",
" print(\"All elements in index are of the same type\")\n",
"else:\n",
" print(\"Elements in index are of different types\")\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "40e72c60",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 6,
"id": "1fbb3788",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"test\n"
]
}
],
"source": [
"from unittest.mock import MagicMock\n",
"from asyncua.ua.uaerrors import BadAlreadyExists\n",
"\n",
"mock1 = MagicMock(\n",
" side_effect = Exception(\"test\")\n",
")\n",
"\n",
"mock2 = MagicMock(\n",
" side_effect = BadAlreadyExists(\"test\")\n",
")\n",
"\n",
"try:\n",
" mock1()\n",
"except ValueError as e:\n",
" try:\n",
" mock2()\n",
" except BadAlreadyExists as e:\n",
" print(e)\n",
"except Exception as e:\n",
" print(e)\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "771ab4ee",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" a | \n",
" b | \n",
" target | \n",
" prediction | \n",
" timestamp | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 1 | \n",
" 4 | \n",
" 7 | \n",
" 1 | \n",
" 2025-01-01 | \n",
"
\n",
" \n",
" | 1 | \n",
" 2 | \n",
" 5 | \n",
" 8 | \n",
" 2 | \n",
" 2025-01-02 | \n",
"
\n",
" \n",
" | 2 | \n",
" 3 | \n",
" 6 | \n",
" 9 | \n",
" 3 | \n",
" 2025-01-03 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" a b target prediction timestamp\n",
"0 1 4 7 1 2025-01-01\n",
"1 2 5 8 2 2025-01-02\n",
"2 3 6 9 3 2025-01-03"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from pandas import DataFrame, merge\n",
"\n",
"retrain_dataset = DataFrame({\n",
" 'a': {'2025-01-01': 1, '2025-01-02': 2, '2025-01-03': 3},\n",
" 'b': {'2025-01-01': 4, '2025-01-02': 5, '2025-01-03': 6},\n",
" 'c': {'2025-01-01': 7, '2025-01-02': 8, '2025-01-03': 9},\n",
"})\n",
"\n",
"prediction_data = DataFrame({\n",
" 'prediction': {'1': 1, '2': 2, '3': 3},\n",
"})\n",
"\n",
"prediction_data.index = retrain_dataset.index\n",
"\n",
"prediction_data = merge(\n",
" retrain_dataset, prediction_data, left_index=True, right_index=True, how='left')\n",
"\n",
"prediction_data.rename(columns={'c': 'target'}, inplace=True)\n",
"\n",
"prediction_data['timestamp'] = prediction_data.index\n",
"\n",
"prediction_data.reset_index(drop=True, inplace=True)\n",
"\n",
"display(prediction_data)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "486b95b3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" a | \n",
" b | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2025-01-01 | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" | 2025-01-02 | \n",
" 2 | \n",
" 5 | \n",
"
\n",
" \n",
" | 2025-01-03 | \n",
" 3 | \n",
" 6 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" a b\n",
"2025-01-01 1 4\n",
"2025-01-02 2 5\n",
"2025-01-03 3 6"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"{'index': ['2025-01-01', '2025-01-02', '2025-01-03'],\n",
" 'columns': ['a', 'b'],\n",
" 'data': [[1, 4], [2, 5], [3, 6]]}"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 0 | \n",
" 1 | \n",
" 2 | \n",
"
\n",
" \n",
" \n",
" \n",
" | index | \n",
" 2025-01-01 | \n",
" 2025-01-02 | \n",
" 2025-01-03 | \n",
"
\n",
" \n",
" | columns | \n",
" a | \n",
" b | \n",
" None | \n",
"
\n",
" \n",
" | data | \n",
" [1, 4] | \n",
" [2, 5] | \n",
" [3, 6] | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0 1 2\n",
"index 2025-01-01 2025-01-02 2025-01-03\n",
"columns a b None\n",
"data [1, 4] [2, 5] [3, 6]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"3"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from pandas import DataFrame\n",
"\n",
"data = DataFrame()\n",
"\n",
"display(data.to_dict(orient='records'))\n",
"\n",
"data = DataFrame({\n",
" \"a\": {\"2025-01-01\": 1, \"2025-01-02\": 2, \"2025-01-03\": 3},\n",
" \"b\": {\"2025-01-01\": 4, \"2025-01-02\": 5, \"2025-01-03\": 6},\n",
"})\n",
"\n",
"display(data)\n",
"\n",
"data_list = data.to_dict('split')\n",
"\n",
"display(data_list)\n",
"\n",
"data_rec = DataFrame.from_dict(data_list, orient='index')\n",
"\n",
"display(data_rec)\n",
"\n",
"data.shape[0]"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "d67d551f",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import shutil\n",
"import mlflow\n",
"from mlflow.tracking import MlflowClient\n",
"from rich.console import Console\n",
"import sys\n",
"\n",
"if \"src\" not in sys.path:\n",
" sys.path.insert(0, \"src\")\n",
"\n",
"console = Console()\n",
"\n",
"os.environ[\"MLFLOW_TRACKING_URI\"] = \"http://localhost:35785/\"\n",
"os.environ[\"MLFLOW_TRACKING_USERNAME\"] = \"aignosi\"\n",
"os.environ[\"MLFLOW_TRACKING_PASSWORD\"] = \"1L0FP50j3ncp123\"\n",
"\n",
"client = MlflowClient()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "98bdd6af",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" CI-J3J01S1 | \n",
" CI-J3P01T1A | \n",
" CI-J3P03S1 | \n",
" CI-W3A05F1 | \n",
" CI-W3A50A1 | \n",
" CI-W3A50A2 | \n",
" CI-W3A50A3 | \n",
" CI-W3A50P1 | \n",
" CI-W3A50T1 | \n",
" CI-W3A55P1 | \n",
" ... | \n",
" CI-W3W01G1 | \n",
" CI-W3W01P1 | \n",
" CI-W3W01P2 | \n",
" CI-W3W03I1 | \n",
" CI-W3W03S1 | \n",
" CI-W3_C3S | \n",
" CI-W3_CAO | \n",
" CI-W3_MA | \n",
" CI-W3_MS | \n",
" CI-W3_PL | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 91.99121 | \n",
" 139.699982 | \n",
" 100.442688 | \n",
" 281.293549 | \n",
" 0.135894 | \n",
" 2.580241 | \n",
" 366.93277 | \n",
" -0.200209 | \n",
" 405.9825 | \n",
" -18.968868 | \n",
" ... | \n",
" 818.09340 | \n",
" -4.743839 | \n",
" 0.521077 | \n",
" 63.926727 | \n",
" 1796.58582 | \n",
" 62.16332 | \n",
" 63.70447 | \n",
" 1.12104 | \n",
" 2.50506 | \n",
" 1020 | \n",
"
\n",
" \n",
" | 1 | \n",
" 91.99121 | \n",
" 139.699982 | \n",
" 100.442688 | \n",
" 281.293549 | \n",
" 0.135894 | \n",
" 2.580241 | \n",
" 366.93277 | \n",
" -0.200209 | \n",
" 405.9825 | \n",
" -18.968868 | \n",
" ... | \n",
" 818.09340 | \n",
" -4.935149 | \n",
" 0.521077 | \n",
" 63.926727 | \n",
" 1796.58582 | \n",
" 62.16332 | \n",
" 63.70447 | \n",
" 1.12104 | \n",
" 2.50506 | \n",
" 1020 | \n",
"
\n",
" \n",
" | 2 | \n",
" 91.99121 | \n",
" 139.699982 | \n",
" 100.442688 | \n",
" 281.819700 | \n",
" 0.135894 | \n",
" 2.580241 | \n",
" 366.93277 | \n",
" -0.200209 | \n",
" 405.9825 | \n",
" -18.968868 | \n",
" ... | \n",
" 770.03894 | \n",
" -4.935149 | \n",
" 0.580711 | \n",
" 63.926727 | \n",
" 1796.58582 | \n",
" 62.16332 | \n",
" 63.70447 | \n",
" 1.12104 | \n",
" 2.50506 | \n",
" 1020 | \n",
"
\n",
" \n",
"
\n",
"
3 rows × 39 columns
\n",
"
"
],
"text/plain": [
" CI-J3J01S1 CI-J3P01T1A CI-J3P03S1 CI-W3A05F1 CI-W3A50A1 CI-W3A50A2 \\\n",
"0 91.99121 139.699982 100.442688 281.293549 0.135894 2.580241 \n",
"1 91.99121 139.699982 100.442688 281.293549 0.135894 2.580241 \n",
"2 91.99121 139.699982 100.442688 281.819700 0.135894 2.580241 \n",
"\n",
" CI-W3A50A3 CI-W3A50P1 CI-W3A50T1 CI-W3A55P1 ... CI-W3W01G1 \\\n",
"0 366.93277 -0.200209 405.9825 -18.968868 ... 818.09340 \n",
"1 366.93277 -0.200209 405.9825 -18.968868 ... 818.09340 \n",
"2 366.93277 -0.200209 405.9825 -18.968868 ... 770.03894 \n",
"\n",
" CI-W3W01P1 CI-W3W01P2 CI-W3W03I1 CI-W3W03S1 CI-W3_C3S CI-W3_CAO \\\n",
"0 -4.743839 0.521077 63.926727 1796.58582 62.16332 63.70447 \n",
"1 -4.935149 0.521077 63.926727 1796.58582 62.16332 63.70447 \n",
"2 -4.935149 0.580711 63.926727 1796.58582 62.16332 63.70447 \n",
"\n",
" CI-W3_MA CI-W3_MS CI-W3_PL \n",
"0 1.12104 2.50506 1020 \n",
"1 1.12104 2.50506 1020 \n",
"2 1.12104 2.50506 1020 \n",
"\n",
"[3 rows x 39 columns]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" CI-J3J01S1 | \n",
" CI-J3P01T1A | \n",
" CI-J3P03S1 | \n",
" CI-W3A05F1 | \n",
" CI-W3A50A1 | \n",
" CI-W3A50A2 | \n",
" CI-W3A50A3 | \n",
" CI-W3A50P1 | \n",
" CI-W3A50T1 | \n",
" CI-W3A55P1 | \n",
" ... | \n",
" CI-W3W01P1 | \n",
" CI-W3W01P2 | \n",
" CI-W3W03I1 | \n",
" CI-W3W03S1 | \n",
" CI-W3_C3S | \n",
" CI-W3_CAO | \n",
" CI-W3_MA | \n",
" CI-W3_MS | \n",
" CI-W3_PL | \n",
" timestamp | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 91.99121 | \n",
" 139.699982 | \n",
" 100.442688 | \n",
" 281.293549 | \n",
" 0.135894 | \n",
" 2.580241 | \n",
" 366.93277 | \n",
" -0.200209 | \n",
" 405.9825 | \n",
" -18.968868 | \n",
" ... | \n",
" -4.743839 | \n",
" 0.521077 | \n",
" 63.926727 | \n",
" 1796.58582 | \n",
" 62.16332 | \n",
" 63.70447 | \n",
" 1.12104 | \n",
" 2.50506 | \n",
" 1020 | \n",
" 2026-01-14 19:52:14 | \n",
"
\n",
" \n",
" | 1 | \n",
" 91.99121 | \n",
" 139.699982 | \n",
" 100.442688 | \n",
" 281.293549 | \n",
" 0.135894 | \n",
" 2.580241 | \n",
" 366.93277 | \n",
" -0.200209 | \n",
" 405.9825 | \n",
" -18.968868 | \n",
" ... | \n",
" -4.935149 | \n",
" 0.521077 | \n",
" 63.926727 | \n",
" 1796.58582 | \n",
" 62.16332 | \n",
" 63.70447 | \n",
" 1.12104 | \n",
" 2.50506 | \n",
" 1020 | \n",
" 2026-01-14 19:52:17 | \n",
"
\n",
" \n",
" | 2 | \n",
" 91.99121 | \n",
" 139.699982 | \n",
" 100.442688 | \n",
" 281.819700 | \n",
" 0.135894 | \n",
" 2.580241 | \n",
" 366.93277 | \n",
" -0.200209 | \n",
" 405.9825 | \n",
" -18.968868 | \n",
" ... | \n",
" -4.935149 | \n",
" 0.580711 | \n",
" 63.926727 | \n",
" 1796.58582 | \n",
" 62.16332 | \n",
" 63.70447 | \n",
" 1.12104 | \n",
" 2.50506 | \n",
" 1020 | \n",
" 2026-01-14 19:52:20 | \n",
"
\n",
" \n",
"
\n",
"
3 rows × 40 columns
\n",
"
"
],
"text/plain": [
" CI-J3J01S1 CI-J3P01T1A CI-J3P03S1 CI-W3A05F1 CI-W3A50A1 CI-W3A50A2 \\\n",
"0 91.99121 139.699982 100.442688 281.293549 0.135894 2.580241 \n",
"1 91.99121 139.699982 100.442688 281.293549 0.135894 2.580241 \n",
"2 91.99121 139.699982 100.442688 281.819700 0.135894 2.580241 \n",
"\n",
" CI-W3A50A3 CI-W3A50P1 CI-W3A50T1 CI-W3A55P1 ... CI-W3W01P1 \\\n",
"0 366.93277 -0.200209 405.9825 -18.968868 ... -4.743839 \n",
"1 366.93277 -0.200209 405.9825 -18.968868 ... -4.935149 \n",
"2 366.93277 -0.200209 405.9825 -18.968868 ... -4.935149 \n",
"\n",
" CI-W3W01P2 CI-W3W03I1 CI-W3W03S1 CI-W3_C3S CI-W3_CAO CI-W3_MA \\\n",
"0 0.521077 63.926727 1796.58582 62.16332 63.70447 1.12104 \n",
"1 0.521077 63.926727 1796.58582 62.16332 63.70447 1.12104 \n",
"2 0.580711 63.926727 1796.58582 62.16332 63.70447 1.12104 \n",
"\n",
" CI-W3_MS CI-W3_PL timestamp \n",
"0 2.50506 1020 2026-01-14 19:52:14 \n",
"1 2.50506 1020 2026-01-14 19:52:17 \n",
"2 2.50506 1020 2026-01-14 19:52:20 \n",
"\n",
"[3 rows x 40 columns]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from pandas import DataFrame, read_json\n",
"\n",
"# Load from data file (json)\n",
"data = read_json('data.json')\n",
"\n",
"column_order = [\n",
" 'CI-J3J01S1', 'CI-J3P01T1A', 'CI-J3P03S1', 'CI-W3A05F1',\n",
" 'CI-W3A50A1', 'CI-W3A50A2', 'CI-W3A50A3', 'CI-W3A50P1', 'CI-W3A50T1',\n",
" 'CI-W3A55P1', 'CI-W3A55T1', 'CI-W3A65_Cl', 'CI-W3A65_SO3', 'CI-W3A71P1',\n",
" 'CI-W3A71P2', 'CI-W3A71P3', 'CI-W3E01F1', 'CI-W3K01S1', 'CI-W3K01T1',\n",
" 'CI-W3K01T2', 'CI-W3K01T4', 'CI-W3K14P1', 'CI-W3P17S1', 'CI-W3V04P1',\n",
" 'CI-W3V04P3', 'CI-W3V21F1', 'CI-W3V21P1', 'CI-W3V30F1', 'CI-W3V33P1',\n",
" 'CI-W3W01G1', 'CI-W3W01P1', 'CI-W3W01P2', 'CI-W3W03I1', 'CI-W3W03S1',\n",
" 'CI-W3_C3S', 'CI-W3_CAO', 'CI-W3_MA', 'CI-W3_MS', 'CI-W3_PL']\n",
"\n",
"ordered_data = data[column_order]\n",
"\n",
"display(ordered_data.head(3))\n",
"display(data.head(3))\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "d7e73c30",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/grezewave/Documents/projects/sientia/sientia-dataops-laborious_temporal/venv/lib/python3.11/site-packages/mlflow/store/artifact/utils/models.py:32: FutureWarning: ``mlflow.tracking.client.MlflowClient.get_latest_versions`` is deprecated since 2.9.0. Model registry stages will be removed in a future major release. To learn more about the deprecation of model registry stages, see our migration guide here: https://mlflow.org/docs/2.10.1/model-registry.html#migrating-from-stages\n",
" latest = client.get_latest_versions(name, None if stage is None else [stage])\n",
"/home/grezewave/Documents/projects/sientia/sientia-dataops-laborious_temporal/venv/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
" from .autonotebook import tqdm as notebook_tqdm\n",
"Downloading artifacts: 0%| | 0/20 [00:00, ?it/s]2026/01/14 17:31:16 INFO mlflow.store.artifact.artifact_repo: The progress bar can be disabled by setting the environment variable MLFLOW_ENABLE_ARTIFACTS_PROGRESS_BAR to false\n",
"Downloading artifacts: 100%|██████████| 20/20 [00:05<00:00, 3.49it/s] \n",
"2026/01/14 17:31:23 WARNING mlflow.utils.requirements_utils: Detected one or more mismatches between the model's dependencies and the current Python environment:\n",
" - pandas (current: 2.2.2, required: pandas==2.3.3)\n",
" - scikit-learn (current: 1.4.2, required: scikit-learn==1.8.0)\n",
" - scipy (current: 1.13.0, required: scipy==1.16.3)\n",
"To fix the mismatches, call `mlflow.pyfunc.get_model_dependencies(model_uri)` to fetch the model's environment and install dependencies using the resulting environment file.\n",
"/tmp/tmp7i9wovag/code/utils/models/xgboost_model.py:235: UserWarning: [17:31:29] WARNING: /workspace/src/gbm/gbtree.cc:377: Changing updater from `grow_gpu_hist` to `grow_quantile_histmaker`.\n",
" return pickle.load(f)\n",
"/tmp/tmp7i9wovag/code/utils/models/xgboost_model.py:235: UserWarning: [17:31:29] WARNING: /workspace/src/context.cc:53: No visible GPU is found, setting device to CPU.\n",
" return pickle.load(f)\n",
"/tmp/tmp7i9wovag/code/utils/models/xgboost_model.py:235: UserWarning: [17:31:29] WARNING: /workspace/src/context.cc:207: Device is changed from GPU to CPU as we couldn't find any available GPU on the system.\n",
" return pickle.load(f)\n"
]
},
{
"data": {
"text/html": [
"[17:31:29] Model loaded from context pyfunc_wrappers.py:36\n",
"\n"
],
"text/plain": [
"\u001b[2;36m[17:31:29]\u001b[0m\u001b[2;36m \u001b[0m\u001b[32mModel loaded from context\u001b[0m \u001b]8;id=70872;file:///tmp/tmp7i9wovag/code/utils/mlflow/pyfunc_wrappers.py\u001b\\\u001b[2mpyfunc_wrappers.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=188021;file:///tmp/tmp7i9wovag/code/utils/mlflow/pyfunc_wrappers.py#36\u001b\\\u001b[2m36\u001b[0m\u001b]8;;\u001b\\\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import mlflow\n",
"\n",
"model_name = \"vcm-o2-vanilla-ice\"\n",
"\n",
"model = mlflow.pyfunc.load_model(f'models:/{model_name}/production')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "4e5bae06",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" CI-W3W01A2 | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 6.094787 | \n",
"
\n",
" \n",
" | 1 | \n",
" 5.987316 | \n",
"
\n",
" \n",
" | 2 | \n",
" 5.787229 | \n",
"
\n",
" \n",
" | 3 | \n",
" 5.780445 | \n",
"
\n",
" \n",
" | 4 | \n",
" 6.448903 | \n",
"
\n",
" \n",
" | 5 | \n",
" 5.631461 | \n",
"
\n",
" \n",
" | 6 | \n",
" 5.726437 | \n",
"
\n",
" \n",
" | 7 | \n",
" 5.669214 | \n",
"
\n",
" \n",
" | 8 | \n",
" 5.909435 | \n",
"
\n",
" \n",
" | 9 | \n",
" 5.845652 | \n",
"
\n",
" \n",
" | 10 | \n",
" 5.875139 | \n",
"
\n",
" \n",
" | 11 | \n",
" 6.048102 | \n",
"
\n",
" \n",
" | 12 | \n",
" 5.918375 | \n",
"
\n",
" \n",
" | 13 | \n",
" 5.859076 | \n",
"
\n",
" \n",
" | 14 | \n",
" 5.841918 | \n",
"
\n",
" \n",
" | 15 | \n",
" 6.265776 | \n",
"
\n",
" \n",
" | 16 | \n",
" 6.311982 | \n",
"
\n",
" \n",
" | 17 | \n",
" 6.792706 | \n",
"
\n",
" \n",
" | 18 | \n",
" 6.873636 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" CI-W3W01A2\n",
"0 6.094787\n",
"1 5.987316\n",
"2 5.787229\n",
"3 5.780445\n",
"4 6.448903\n",
"5 5.631461\n",
"6 5.726437\n",
"7 5.669214\n",
"8 5.909435\n",
"9 5.845652\n",
"10 5.875139\n",
"11 6.048102\n",
"12 5.918375\n",
"13 5.859076\n",
"14 5.841918\n",
"15 6.265776\n",
"16 6.311982\n",
"17 6.792706\n",
"18 6.873636"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.predict(ordered_data)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "cd1bfaa0",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/grezewave/Documents/projects/sientia/sientia-dataops-laborious_temporal/venv/lib/python3.11/site-packages/mlflow/store/artifact/utils/models.py:32: FutureWarning: ``mlflow.tracking.client.MlflowClient.get_latest_versions`` is deprecated since 2.9.0. Model registry stages will be removed in a future major release. To learn more about the deprecation of model registry stages, see our migration guide here: https://mlflow.org/docs/2.10.1/model-registry.html#migrating-from-stages\n",
" latest = client.get_latest_versions(name, None if stage is None else [stage])\n",
"Downloading artifacts: 0%| | 0/20 [00:00, ?it/s]2026/01/14 17:17:04 INFO mlflow.store.artifact.artifact_repo: The progress bar can be disabled by setting the environment variable MLFLOW_ENABLE_ARTIFACTS_PROGRESS_BAR to false\n",
"Downloading artifacts: 100%|██████████| 20/20 [00:00<00:00, 28.20it/s] "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"/home/grezewave/Documents/projects/sientia/sientia-dataops-laborious_temporal/backup-model/\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"# Download pkl file from mlflow\n",
"model_uri = f'models:/{model_name}/production'\n",
"model_path = mlflow.artifacts.download_artifacts(model_uri, dst_path='./backup-model')\n",
"\n",
"print(model_path)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "0ef9c913",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"b'\\xfd7zXZ\\x00\\x00\\x04\\xe6\\xd6'\n"
]
}
],
"source": [
"file_path = f'{model_path}/artifacts/xgboost_model.pkl'\n",
"\n",
"# Verificar os primeiros bytes do arquivo\n",
"with open(file_path, 'rb') as f:\n",
" first_bytes = f.read(10)\n",
" print(first_bytes)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "8ae302f3",
"metadata": {},
"outputs": [],
"source": [
"from pandas import DataFrame, to_datetime\n",
"from sientia_do.temporal.activities.postgres import Postgres\n",
"from unittest.mock import MagicMock, AsyncMock\n",
"\n",
"postgres = Postgres(\n",
" host=\"localhost\",\n",
" port=5432,\n",
" dbname=\"sientia\",\n",
" user=\"sientia\",\n",
" password=\"sientia\",\n",
" min_connections=1,\n",
" max_connections=10,\n",
" logger=MagicMock(),\n",
" notification_handler=MagicMock(),\n",
" metrics_controller=AsyncMock()\n",
")\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "51dd2dbf",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/grezewave/Documents/projects/sientia/sientia-dataops-laborious_temporal/venv/lib/python3.11/site-packages/sientia_do/observability/sientia_monitoring.py:80: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited\n",
" self.metrics_controller.start()\n",
"RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" timestamp | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 2026-01-20 19:41:23+00:00 | \n",
"
\n",
" \n",
" | 1 | \n",
" 2026-01-20 19:41:23+00:00 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" timestamp\n",
"0 2026-01-20 19:41:23+00:00\n",
"1 2026-01-20 19:41:23+00:00"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/grezewave/Documents/projects/sientia/sientia-dataops-laborious_temporal/venv/lib/python3.11/site-packages/sientia_do/observability/sientia_monitoring.py:80: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited\n",
" self.metrics_controller.start()\n",
"RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" prediction | \n",
" value | \n",
" timestamp | \n",
"
\n",
" \n",
" \n",
" \n",
" | 119 | \n",
" 268.944458 | \n",
" 571.016700 | \n",
" 2026-01-21 11:39:58+00:00 | \n",
"
\n",
" \n",
" | 118 | \n",
" 279.995941 | \n",
" 564.591431 | \n",
" 2026-01-21 11:40:30+00:00 | \n",
"
\n",
" \n",
" | 117 | \n",
" 267.828278 | \n",
" 560.116800 | \n",
" 2026-01-21 11:40:58+00:00 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" prediction value timestamp\n",
"119 268.944458 571.016700 2026-01-21 11:39:58+00:00\n",
"118 279.995941 564.591431 2026-01-21 11:40:30+00:00\n",
"117 267.828278 560.116800 2026-01-21 11:40:58+00:00"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/grezewave/Documents/projects/sientia/sientia-dataops-laborious_temporal/venv/lib/python3.11/site-packages/sientia_do/observability/sientia_monitoring.py:80: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited\n",
" self.metrics_controller.start()\n",
"RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" timestamp | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 2026-01-20 19:41:23+00:00 | \n",
"
\n",
" \n",
" | 1 | \n",
" 2026-01-20 19:41:23+00:00 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" timestamp\n",
"0 2026-01-20 19:41:23+00:00\n",
"1 2026-01-20 19:41:23+00:00"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/grezewave/Documents/projects/sientia/sientia-dataops-laborious_temporal/venv/lib/python3.11/site-packages/sientia_do/observability/sientia_monitoring.py:80: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited\n",
" self.metrics_controller.start()\n",
"RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" prediction | \n",
" value | \n",
" timestamp | \n",
"
\n",
" \n",
" \n",
" \n",
" | 119 | \n",
" 9.413348 | \n",
" 2.803987 | \n",
" 2026-01-21 11:40:00+00:00 | \n",
"
\n",
" \n",
" | 118 | \n",
" 9.514597 | \n",
" 2.803987 | \n",
" 2026-01-21 11:40:28+00:00 | \n",
"
\n",
" \n",
" | 117 | \n",
" 9.216792 | \n",
" 2.803987 | \n",
" 2026-01-21 11:41:00+00:00 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" prediction value timestamp\n",
"119 9.413348 2.803987 2026-01-21 11:40:00+00:00\n",
"118 9.514597 2.803987 2026-01-21 11:40:28+00:00\n",
"117 9.216792 2.803987 2026-01-21 11:41:00+00:00"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"period_hours = 1\n",
"\n",
"samples = 2*60*period_hours\n",
"retrain_samples = 2*period_hours\n",
"\n",
"query_nox = f\"\"\"\n",
"select p.prediction, ld.value, p.\"timestamp\" from sientia_data.predictions p\n",
"join sientia_data.laborious_data ld on p.\"timestamp\" = ld.\"timestamp\"\n",
"where p.model_id = '4' and variable='CI-W3W01A3' order by p.created_at desc limit {samples};\n",
"\"\"\"\n",
"\n",
"retrain_query = f\"\"\"\n",
"select \"timestamp\" from sientia_data.log_retrain lr where model_id = '4' order by lr.\"timestamp\" desc limit {retrain_samples};\n",
"\"\"\"\n",
"\n",
"retrain_data_nox = DataFrame(await postgres.load_custom_query(\n",
" {\n",
" \"query\": retrain_query,\n",
" \"metadata\": {},\n",
" }\n",
"))\n",
"\n",
"retrain_data_nox['timestamp'] = to_datetime(retrain_data_nox['timestamp'])\n",
"\n",
"display(retrain_data_nox)\n",
"\n",
"data_nox = DataFrame(await postgres.load_custom_query(\n",
" {\n",
" \"query\": query_nox,\n",
" \"metadata\": {},\n",
" \"datetime_columns\": [\"timestamp\"],\n",
" }\n",
"))\n",
"\n",
"data_nox.drop_duplicates(subset=['timestamp'], inplace=True, keep='first')\n",
"data_nox.sort_values(by='timestamp', inplace=True)\n",
"data_nox['timestamp'] = to_datetime(data_nox['timestamp'])\n",
"\n",
"display(data_nox.head(3))\n",
"\n",
"query_o2 = f\"\"\"\n",
"select p.prediction, ld.value, p.\"timestamp\" from sientia_data.predictions p\n",
"join sientia_data.laborious_data ld on p.\"timestamp\" = ld.\"timestamp\"\n",
"where p.model_id = '5' and variable='CI-W3W01A2'\n",
"and p.\"timestamp\" >= NOW() - INTERVAL {period_hours} HOUR\n",
"order by p.created_at;\n",
"\"\"\"\n",
"\n",
"retrain_query_o2 = f\"\"\"\n",
"select \"timestamp\" from sientia_data.log_retrain lr where model_id = '5' order by lr.\"timestamp\" desc limit {retrain_samples};\n",
"\"\"\"\n",
"\n",
"retrain_data_o2 = DataFrame(await postgres.load_custom_query(\n",
" {\n",
" \"query\": retrain_query_o2,\n",
" \"metadata\": {},\n",
" }\n",
"))\n",
"\n",
"retrain_data_o2['timestamp'] = to_datetime(retrain_data_o2['timestamp'])\n",
"\n",
"display(retrain_data_o2)\n",
"\n",
"data_o2 = DataFrame(await postgres.load_custom_query(\n",
" {\n",
" \"query\": query_o2,\n",
" \"metadata\": {},\n",
" \"datetime_columns\": [\"timestamp\"],\n",
" }\n",
"))\n",
"\n",
"data_o2.drop_duplicates(subset=['timestamp'], inplace=True, keep='first')\n",
"data_o2.sort_values(by='timestamp', inplace=True)\n",
"data_o2['timestamp'] = to_datetime(data_o2['timestamp'])\n",
"\n",
"display(data_o2.head(3))\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "7b82e5a7",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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a9cuE98FAAAAMDAMiDBlGIZqGxz9/mUYhte1vvjiiwoNDdWaNWv04IMP6vTTT9eUKVO0fv16vfPOOyoqKtIll1zi3r+mpkZLly7V+vXr9f7778tut+tb3/qWnE5nbx7CHmtsbNT69eu1fv16xpoDAAAgIATcRXs7crSxSWN/8W6/v+72e+cpMtS7Qzxq1Cg99NBDkqT77rtPU6ZM0QMPPODe/vzzzyszM1P5+fnKzs7WRRdd5PH4559/XikpKdq+fbvGjx/f8zcBAAAAoEMDojNlJdOmTXPf3rx5s1asWKHo6Gj31+jRoyXJvZRvx44dWrBggUaMGKHY2FgNGzZMkrRv375+rx0AAAAYSAZEZyoiJEjb751nyut6Kyoqyn27urpa5513nn71q1+122/QoEGSpPPOO09Dhw7Vs88+q4yMDDmdTo0fP57hFQAAAEAfGxBhymazeb3czh9MnTpVf//73zVs2DAFB7ev//Dhw8rLy9Ozzz6rmTNnSpI++uij/i4TAAAAGJC8XuZ34MABXX755UpKSlJERIQmTJig9evXu7cbhqFf/OIXGjRokCIiIjR37lzt2LHD4znKysp02WWXKTY2VvHx8brmmmtUXV3d83cTYBYtWqSysjItWLBA69at065du/Tuu+/q6quvVlNTkxISEpSUlKRnnnlGO3fu1AcffKClS5eaXTYAAAAwIHgVpo4cOaJTTz1VISEhevvtt7V9+3b9+te/VkJCgnufhx56SI8//rh+//vf69NPP1VUVJTmzZunuro69z6XXXaZtm3bpvfee09vvPGGPvzwQ1133XW9964CREZGhtasWaOmpiadeeaZmjBhgpYsWaL4+HjZ7XbZ7Xa9+uqr2rBhg8aPH6+bb75ZDz/8sNllAwAAAAOCzfBifvftt9+uNWvWaPXq1R1uNwxDGRkZuuWWW/TjH/9YklRRUaG0tDQtX75c3/nOd/Tll19q7NixWrdunaZPny7Jda2kc845R/v371dGRsZx66isrFRcXJwqKioUGxvrsa2urk579uzR8OHDFR4e3t23hj7W2NioL774QpI0ceJEhYSE+PQ8/PoCAACgra6yQV/zqjP173//W9OnT9e3v/1tpaamasqUKXr22Wfd2/fs2aPCwkLNnTvXfV9cXJxOPvlkrV27VpK0du1axcfHu4OUJM2dO1d2u12ffvpph69bX1+vyspKjy9YS0hIiKZNm6Zp06b5HKQAAAAAf+JVmNq9e7eefvppjRo1Su+++66uv/563XjjjXrxxRclSYWFhZKktLQ0j8elpaW5txUWFio1NdVje3BwsBITE937HGvZsmWKi4tzf2VmZnpTNgAAAAD0Oq/ClNPp1NSpU/XAAw9oypQpuu666/T9739fv//97/uqPknSHXfcoYqKCvdXQUFBn74eAAAAAByPV2Fq0KBBGjt2rMd9Y8aMcV8gNj09XZJUVFTksU9RUZF7W3p6uoqLiz22OxwOlZWVufc5VlhYmGJjYz2+YC2NjY3asGGDNmzYoMbGRrPLAQAAAHrMqzB16qmnKi8vz+O+/Px8DR06VJI0fPhwpaen6/3333dvr6ys1Keffqrc3FxJUm5ursrLy7Vhwwb3Ph988IGcTqdOPvlkn98I/J9hGPJi3gkAAAAsorS6Xh98VaTtBwfWbAOvrmR7880365RTTtEDDzygSy65RJ999pmeeeYZPfPMM5JcF8ddsmSJ7rvvPo0aNUrDhw/Xz3/+c2VkZOiCCy6Q5OpknXXWWe7lgY2NjVq8eLG+853vdGuSHwAAAADzNDic+vJQpTbuO6KNBeXauK9c+8pqJUmRoUH67GdzFR3mVcywLK/e5YknnqjXX39dd9xxh+69914NHz5cjz32mC677DL3Pj/5yU9UU1Oj6667TuXl5TrttNP0zjvveIyxfumll7R48WJ985vflN1u10UXXaTHH3+8994VAAAAgF5xsPyoNu4rd4enLQcq1OBwdrhvbUOTSqrqB0yY8uo6U/6C60xZT2NjozZv3ixJmjRpEteZAgAA8ENHG5q09WCFKzjtc3WdCivr2u0XFxGiKVnxmpKZoClZ8ZqUGa/5j6/W/iNH9Y8bTtHUrIR+q9nM60wNjMgIAAAAwINhGPr6cK02FrQGpy8PVcrh9Oy1BNltGjMoRlMyEzQ5M15TsuI1PDlKNpvNY7/4yBDtP3JUFbUDZ9gYYWqAGjZsmJYsWaIlS5ZIcp3v9vrrr7vPbfNFbzwHAAAA+kZlXaM2F5Rr077y5nOdjuhIB8EnNSZMU7NcHacpWQmaMDhOEaFBx33+hMhQSdLXh2t6vXZ/RZiCJOnQoUNKSOheO/buu+/WP//5T23atMnn5wAAAEDfaXIa2llcrY37jujz5iV7O0uqdewJPqHBdo3PiNWUrAR3gBoUF96u69Qd04cmavWOUv3qnTxNH5ao8YPjeund+C/ClIU1NDQoNDS0V56rs2t89dZzhISEaPr06T1+DQAAALR3uLpem5on620sOKLNBRWqrne02y8zMcJ9ntOUrASNGRSjsODjd52644Y5J2j912VavaNU31u+Tv9cdKoy4iN65bn9lVfXmULfmj17thYvXqzFixcrLi5OycnJ+vnPf+6+NtOwYcP0y1/+UldeeaViY2N13XXXSZI++ugjzZw5UxEREcrMzNSNN96omprW9mpxcbHOO+88RUREaPjw4XrppZfavbbNZtM///lP98/79+/XggULlJiYqKioKE2fPl2ffvqpli9frnvuuUebN2+WzWaTzWbT8uXLO3yOLVu26PTTT1dERISSkpJ03XXXqbq62r39qquu0gUXXKBHHnlEgwYNUlJSkhYtWsRFfQEAALrQ4HDqi/3levHjvVry6kbNeniFpt33P13z4no9sWKn1uw8rOp6hyJDg5Q7Ikk3zD5Bz145Xet+Nlerf3K6Hl8wRVefOlyTM+N7LUhJUkiQXU9eNlU5aTEqrqrX1S+sU2VdYH+uGxidKcOQGmv7/3VDIiUvW6QvvviirrnmGn322Wdav369rrvuOmVlZen73/++JOmRRx7RL37xC911112SpF27dumss87Sfffdp+eff14lJSXuQPbCCy9IcoWWgwcPasWKFQoJCdGNN96o4uLiTmuorq7WrFmzNHjwYP373/9Wenq6Pv/8czmdTl166aXaunWr3nnnHf3vf/+TJMXFtW/h1tTUaN68ecrNzdW6detUXFysa6+9VosXL3aHL0lasWKFBg0apBUrVmjnzp269NJLNXnyZPf7BQAAGOgOVbQZTb7PNZq8voPR5CNTozUl09VxmpIVr+y0GAXZvV+u1xOx4SF6/uoTdcGTa5RXVKVFL32u5686USFBgdnDGRhhqrFWesCECwL/9KAUGuXVQzIzM/Xoo4/KZrMpJydHW7Zs0aOPPuoOF6effrpuueUW9/7XXnutLrvsMvcgiVGjRunxxx/XrFmz9PTTT2vfvn16++239dlnn+nEE0+UJD333HMaM2ZMpzW8/PLLKikp0bp165SYmChJGjlypHt7dHS0goODu1zW9/LLL6uurk5/+tOfFBUVJYfDoSVLlujmm2/W/fff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949ct69bJWVMbs0GFRWKjY3tu1o74PM5U01NTXr11VdVU1Oj3NxcbdiwQY2NjZo7d657n9GjRysrK0tr17pOFFu7dq0mTJjg/lAtSfPmzVNlZaW7u9WR+vp6VVZWeny5JWf7+hYAAAAAmOnXo6VlQ6SGmu7t39TYenvv6r6pyQteh6ktW7YoOjpaYWFh+uEPf6jXX39dY8eOVWFhoUJDQxUfH++xf1pamgoLCyVJhYWFHkGqZXvLts4sW7ZMcXFx7q/MzMzWjYbT27cAE4SGhiolJUUpKSnd7kACAAAgwNWVu74Xf9W9/Z1tZi38907p4ZFSwfpeL6u7vA5TOTk52rRpkz799FNdf/31WrhwobZv394XtbndcccdqqiocH8VFLS9SJf5J57h+OLj41VcXKzi4uJ2gRsAAAADUNuzjRpru/cY5zGD62pKpH9d33s1eSnY2weEhoZq5MiRkqRp06Zp3bp1+u1vf6tLL71UDQ0NKi8v9/iwXFRUpPT0dElSenq6PvvsM4/na5n217JPR8LCwhQWFtbxRmeTt28BAAAAgNk8wtTR7j2m7TI/92PreqceH/T4OlNOp1P19fWaNm2aQkJC9P7777u35eXlad++fcrNzZUk5ebmasuWLSouLnbv89577yk2NlZjx471rQCDMAUAAABYTtvTdRzdDFPODsKUPah36vGBV52pO+64Q2effbaysrJUVVWll19+WStXrtS7776ruLg4XXPNNVq6dKkSExMVGxurH/3oR8rNzdWMGTMkSWeeeabGjh2rK664Qg899JAKCwt15513atGiRZ13no4n721p7PmSPUQKCmn+HiwFhbbedm9rvr9lPzvXLO4vTPMDAACAh7ZhqtudqQ6uT2sz7zO9V2GquLhYV155pQ4dOqS4uDhNnDhR7777rs444wxJ0qOPPiq73a6LLrpI9fX1mjdvnp566in344OCgvTGG2/o+uuvV25urqKiorRw4ULde++9vr+D6iLp/33Lt8fa7J0EreBOgtmx244JcJ2Ftrbb2j7W47lCO3iO5vuPfc1jt9lsvh8/AAAAwAzehKmSPKm+2tqdqeeee67L7eHh4XryySf15JNPdrrP0KFD9dZbb3nzsseXOtZ1MlpTY5vvja7k2tTgun3syWqS6xewqd71ZWX2zoJcZ6Gws9DWVSjsLER2M3webjPOvrpY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tHXrVi+PzvEF4vFbuXKlFixYoBUrVmjt2rXKzMzUmWeeqQMHDnh5dI7PzONXX1+vlJQU3XnnnZo0aVK3nrepqUnz589XQ0ODPv74Y7344otavny5fvGLX7j38eXXxVeBePw+/PBDnXHGGXrrrbe0YcMGzZkzR+edd542btzY7fq7KxCPX4vy8nJdeeWV+uY3v9ntur0VqMfvkksu0fvvv6/nnntOeXl5euWVV5STk9Pt+r0RiMewPz/HWO34tfje976nSy+9tMNtlZWVOvPMMzV06FBt2LBBDz/8sO6++24988wzXr1GdwTi8evO55xuMQaIk046yVi0aJH756amJiMjI8NYtmxZu31XrFhhSDKOHDni02vdcMMNxpw5c9w//+QnPzHGjRvnsc+ll15qzJs3r1vPt3DhQuP8889vd//DDz9sjBgxwuO+xx9/3Bg8eLD3RXeDlY9hi3POOce4+uqr3T9fcsklxvz58z32Ofnkk40f/OAHPlTdtUA8fsdyOBxGTEyM8eKLL3pXcDeYefzamjVrlnHTTTcd9zneeustw263G4WFhe77nn76aSM2Ntaor683DKP3fl26IxCPX0fGjh1r3HPPPV7XfDyBfPwuvfRS48477zTuuusuY9KkST7VfDyBePzefvttIy4uzjh8+LBPdXorEI9hf36Osdrxa6uzP5tPPfWUkZCQ4PFn+rbbbjNycnK8ev7uCMTj15Hjfc7pyIDoTDU0NGjDhg0eHR673a65c+dq7dq1vf56FRUVSkxMdP+8du3adt2lefPm9fi1c3NzVVBQoLfeekuGYaioqEh/+9vfdM455/ToeTsSKMewv35tjhWox+9YtbW1amxs7HIfX5h9/Hyxdu1aTZgwQWlpae775s2bp8rKSm3bts29z0D4/eeL7hy/YzmdTlVVVfH7T90/fi+88IJ2796tu+66q0ev15VAPX7//ve/NX36dD300EMaPHiwsrOz9eMf/1hHjx7t0Wt3JFCPYX99jrHi8euOtWvX6hvf+IZCQ0Pd982bN095eXk6cuRIr71OoB6/3nrt4D6qxa+UlpaqqanJ4w+0JKWlpemrr77q1df6+OOP9Ze//EVvvvmm+77CwsIOX7uyslJHjx5VRESET6916qmn6qWXXtKll16quro6ORwOnXfeeXryySd79B46EgjH8K9//avWrVunP/zhD8d93sLCwh6+C0+BevyOddtttykjI6PTpam+Mvv4+aKzY96yrat9evp3w7EC9fgd65FHHlF1dbUuueSSHr32sQL1+O3YsUO33367Vq9ereDgvvs4EKjHb/fu3froo48UHh6u119/XaWlpbrhhht0+PBhvfDCCz16/WMF6jHsr88xVjx+3VFYWKjhw4d73Nf2GCckJPTK6wTq8TtWdz7ndGRAdKZ6y9lnn63o6GhFR0dr3Lhx7bZv3bpV559/vu666y6deeaZfV7P9u3bddNNN+kXv/iFNmzYoHfeeUd79+7VD3/4wz5/bV+ZdQxXrFihq6++Ws8++2yHr2sV/nz8HnzwQb366qt6/fXXFR4e3muv3Zv87c+w1fjz8Xv55Zd1zz336K9//atSU1P79bW7y5+OX1NTk7773e/qnnvuUXZ2dp++Vm/xp+MnuTqhNptNL730kk466SSdc845+s1vfqMXX3yxT7pTvcHfjqHVPsf42/GzGn8+fj35nDggOlPJyckKCgpSUVGRx/1FRUVKT0/v9vP88Y9/dP8FGRIS4rFt+/bt+uY3v6nrrrtOd955p8e29PT0Dl87Nja2R//zvGzZMp166qm69dZbJUkTJ05UVFSUZs6cqfvuu0+DBg3y+bmPZeVjuGrVKp133nl69NFHdeWVV3breb15T90RqMevxSOPPKIHH3xQ//vf/zRx4sRuv5/uMvv4+SI9Pb3dpKOW+ltq7qu/G44VqMevxauvvqprr71Wr732Wq93RaXAPH5VVVVav369Nm7cqMWLF0tyhQPDMBQcHKz//ve/Ov3003tchxSYx0+SBg0apMGDBysuLs69z5gxY2QYhvbv369Ro0b1uI4WgXoM++tzjBWPX3d09m9Iy7beEqjHr0V3Pud0ZUB0pkJDQzVt2jS9//777vucTqfef/995ebmdvt5Bg8erJEjR2rkyJEaOnSo+/5t27Zpzpw5Wrhwoe6///52j8vNzfV4bUl67733vHrtjtTW1spu9/wlDAoKkiQZhtGj5z6WVY/hypUrNX/+fP3qV7/Sdddd12vP661APX6S9NBDD+mXv/yl3nnnHU2fPr3b78UbZh8/X+Tm5mrLli0ek47ee+89xcbGauzYse59BsLvP1905/hJ0iuvvKKrr75ar7zyiubPn98rr32sQDx+sbGx2rJlizZt2uT++uEPf6ic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ta0jxo4di88//xxxcXGdrn6nVCphsVjs2l9GRgYWL16MBx54AEBbWOvJIEhERERENJD0iwUoampqALTd09OR5uZmmEwmm4+BYNmyZaisrMTChQtx/Phx5OfnY8+ePViyZIkYoOLi4nD06FEUFRWhvLz8lh2jhIQEfPHFF8jOzsapU6fw0EMPscNERERERNRFTg9TVqsVK1euxJQpU5CYmNjhNuvXr0dAQID4cf2Kde5s0KBByMjIgMViwYwZMzBq1CisXLkSgYGB4qWGzz33HGQyGUaMGAGVSnXL+5/eeOMNBAUFYfLkyZg7dy5mzpyJsWPH9sl7USgUGD9+PMaPH3/TZYNERERERK5IIjj5oT9PPfUUvv32Wxw8eBBRUVEdbtPc3Izm5mbxc5PJhOjoaNTU1MDf399m26amJhQWFiI+Ph6enp69Onfqe/z+EhEREdH1TCYTAgICOswGvc2pS6MvX74c//znP7F///5OgxQAeHh4wMPDow9nRkREREREdGtOCVOCIOCXv/wldu3ahbS0NMTHxztjGkRERERERF3mlDC1bNkyfPTRR/jHP/4BPz8/lJWVAQACAgLg5eXljCkRERERERE5xCkLULz77ruoqamBTqdDRESE+PHxxx87YzpEREREREQOc9plfkRERERERK7M6Uuj9xY+P8k98ftKRERERP2FU1fz6w1KpRJSqRRXrlyBSqWCUqmERCJx9rSomwRBQEtLC4xGI6RSKZRKpbOnREREREQDnNuFKalUivj4eJSWluLKlSvOng71MG9vb8TExIgPLSYiIiIicha3C1NAW3cqJiYGZrMZFovF2dOhHiKTySCXy9lpJCIiIqJ+wS3DFABIJBIoFAooFApnT4WIiIiIiNwQr5UiIiIiIiLqAoYpIiIiIiKiLmCYIiIiIiIi6gKXvGfq2kN/TSaTk2dCRERERETOdC0TXMsIfcklw1RtbS0AIDo62skzISIiIiKi/qC2thYBAQF9ekyJ4IwI101WqxVXrlyBn59fv14m22QyITo6GpcuXYK/v7+zp+NyWL/uYw27h/XrHtave1i/7mH9uo817B7Wr3scqZ8gCKitrcWgQYP6/FmkLtmZkkqliIqKcvY07Obv788fom5g/bqPNewe1q97WL/uYf26h/XrPtawe1i/7rG3fn3dkbqGC1AQERERERF1AcMUERER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WLNmjaBQKIScnJxuVutm7li/DRs2CEqlUvjss89stqmtre1mtW7mzPoJgiD+/I0bN0546KGHhKysLOHs2bOd7tdsNguJiYnCjBkzhOzsbGH37t2CSqUSXnrpJXGbrv7b0BXuWL/t27cLcrlc2LRpk82xq6uru1Gpjrlj/W7Um6v5uWP9amtrhaioKOGnP/2pcPbsWSE9PV1ISEgQli5d2o1Kdc4da9iX5zGuVj9BEIS8vDwhKytLePLJJwWNRiPu49rqfdXV1UJYWJjwyCOPCGfOnBF27twpeHt7C++99143KtUxd6yfPec59hgwYUoQBOGdd94RYmJiBKVSKUycOFE4cuSIzfiaNWsEADd9bNmypdN9dvY1sbGxNtvt27dPGDNmjKBUKoXBgwffcp/XxMbGdrjv623cuFEYMWKE4OXlJURERAgPP/ywUFJSYm9JHOZKNVy0aFGH+01NTbXZ7pNPPhE0Go2gVCqFkSNHCl9//bUDFXGMu9Wvs7+ja9ascawwdnJm/ezZ5kZFRUXCfffdJ3h5eQmhoaHCs88+K7S2ttps05V/G7rK3eqXmpra4X4XLVrkYGXs427162guvRWmBME963f+/Hlh+vTpgpeXlxAVFSU888wzQkNDgyNlcYg71rAvz2NcrX6d/RtXWFgobnPq1CnhrrvuEjw8PITIyEhhw4YNDlbFfu5WP3vPE29H0j5BIiIiIiIicsCAuGeKiIiIiIiopzFMERERERERdQHDFBERERERURcwTBEREREREXUBwxQREREREVEXMEwRERERERF1AcMUERERERFRFzBMERERERERdQHDFBERERERURcwTBEREREREXUBwxQREREREVEXMEwRERERERF1wf8H32Xqu+gtrR4AAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"plt.figure(figsize=(10, 10))\n",
"plt.subplot(2, 1, 1)\n",
"plt.plot(data_nox['timestamp'], data_nox['value'])\n",
"plt.plot(data_nox['timestamp'], data_nox['prediction'])\n",
"plt.vlines(\n",
" x=retrain_data_nox['timestamp'],\n",
" ymin=plt.ylim()[0],\n",
" ymax=plt.ylim()[1],\n",
" colors='k',\n",
" linestyles='--'\n",
")\n",
"\n",
"\n",
"plt.legend(['real', 'prediction', 'retrain'])\n",
"plt.title('NOx')\n",
"plt.xlim(\n",
" data_nox['timestamp'].min(),\n",
" data_nox['timestamp'].max()\n",
")\n",
"\n",
"plt.subplot(2, 1, 2)\n",
"plt.plot(data_o2['timestamp'], data_o2['value'])\n",
"plt.plot(data_o2['timestamp'], data_o2['prediction'])\n",
"plt.vlines(\n",
" x=retrain_data_o2['timestamp'],\n",
" ymin=plt.ylim()[0],\n",
" ymax=plt.ylim()[1],\n",
" colors='k',\n",
" linestyles='--'\n",
")\n",
"\n",
"plt.xlim(\n",
" data_o2['timestamp'].min(),\n",
" data_o2['timestamp'].max()\n",
")\n",
"\n",
"plt.legend(['real', 'prediction', 'retrain'])\n",
"plt.title('O2')\n",
"plt.show()\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "6bbb8cf7",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/grezewave/Documents/projects/sientia/sientia-dataops-laborious_temporal/venv/lib/python3.11/site-packages/sientia_do/observability/sientia_monitoring.py:80: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited\n",
" self.metrics_controller.start()\n",
"RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" prediction | \n",
" value | \n",
" timestamp | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 323.665222 | \n",
" 340.985718 | \n",
" 2026-01-21 18:24:58+0000 | \n",
"
\n",
" \n",
" | 1 | \n",
" 304.399719 | \n",
" 326.263947 | \n",
" 2026-01-21 18:25:28+0000 | \n",
"
\n",
" \n",
" | 2 | \n",
" 312.659271 | \n",
" 342.866333 | \n",
" 2026-01-21 18:25:58+0000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" prediction value timestamp\n",
"0 323.665222 340.985718 2026-01-21 18:24:58+0000\n",
"1 304.399719 326.263947 2026-01-21 18:25:28+0000\n",
"2 312.659271 342.866333 2026-01-21 18:25:58+0000"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from pandas import DataFrame, to_datetime\n",
"\n",
"period_hours = 1\n",
"\n",
"samples = 2*60*period_hours\n",
"retrain_samples = 2*period_hours\n",
"\n",
"query_nox = f\"\"\"\n",
"select p.prediction, ld.value, p.\"timestamp\" from sientia_data.predictions p\n",
"join sientia_data.laborious_data ld on p.\"timestamp\" = ld.\"timestamp\"\n",
"where p.model_id = '4' and variable='CI-W3W01A3'\n",
"and ld.model_id = '4' and p.\"timestamp\" >= NOW() - INTERVAL '{period_hours} HOUR'\n",
"order by p.created_at;\n",
"\"\"\"\n",
"\n",
"data_nox = DataFrame(await postgres.load_custom_query(\n",
" {\n",
" \"query\": query_nox,\n",
" \"metadata\": {},\n",
" \"datetime_columns\": [\"timestamp\"],\n",
" }\n",
"))\n",
"\n",
"display(data_nox.head(3))\n",
"\n",
"data_nox.sort_values(by='timestamp', inplace=True)\n",
"\n",
"data_nox.drop_duplicates(subset=['timestamp'], inplace=True, keep='first')\n",
"\n",
"data_nox['timestamp'] = to_datetime(data_nox['timestamp'])\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "46340afd",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAz8AAANECAYAAACesJFBAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAziFJREFUeJzs3Xd4VGXexvHvTCqpECCEFkjoARJawFgAu4iKiooIBBDr6tpWV3l13bViXdva6SBiQcCGWAELHQKhd0IPENJJm5n3j0OiKC2Q5Jlyf65rrjkkk5k77pLJzXnO87O5XC4XIiIiIiIiXs5uOoCIiIiIiEhNUPkRERERERGfoPIjIiIiIiI+QeVHRERERER8gsqPiIiIiIj4BJUfERERERHxCSo/IiIiIiLiE1R+RERERETEJ6j8iIiIiIiIT1D5ERERERERn6DyIyIiRo0fPx6bzUZwcDC7du36y+d79+5Nhw4djvpYaWkpr7/+OsnJyYSHhxMWFkZycjKvv/46paWlNRVdREQ8jMqPiIi4heLiYp577rmTPq6goICLL76Ye++9l5iYGJ577jlefPFFGjVqxL333svFF19MQUFBDSQWERFPo/IjIiJuoVOnTrz//vvs3r37hI974IEHmDt3Lm+88QZffPEFd911F3feeSczZ87kf//7H3PnzuXBBx+sodQiIuJJVH5ERMQt/N///R8Oh+OEZ3927tzJmDFjuOCCC7j77rv/8vm77rqL888/n9GjR7Nz504Axo0bh81mY+zYsUc99tlnn8Vms/H1119X7TciIiJuS+VHRETcQlxcHKmpqSc8+zNr1iwcDgepqanHfZ7U1FTKysr45ptvABg+fDhXXHEFDzzwADt27AAgPT2dJ554ghEjRnD55ZdX/TcjIiJuSeVHRETcxqOPPkpZWRnPP//8MT+/Zs0aAJKSko77HOWfW7t2bcXH3n//ffz8/BgxYgQlJSUMHTqUmJgY/vvf/1ZhehERcXcqPyIi4jbi4+MZMmQI7733Hnv27PnL5/Py8gAIDw8/7nOUfy43N7fiYzExMbz55pt89913nHfeeaSlpTF27FgiIiKq+DsQERF3pvIjIiJu5bHHHqOsrOyY1/6UF5vyEnQsxytIN954I3379mXRokXceuutXHjhhVWYWkREPIHKj4iIuJX4+HgGDx58zLM/7dq1A2DlypXH/fryzyUkJBz18YMHD7JkyRLAWj7ndDqrMraIiHgAlR8REXE75Wd//nztT58+ffDz82PSpEnH/dqJEyfi7+/PZZdddtTH77rrLvLy8hg1ahS//PILr776anVEFxERN6byIyIibqdFixYMHjyYd999l71791Z8vGnTpgwfPpzvv/+et99++y9f98477/Djjz8yYsQImjRpUvHxTz/9lI8++ojnnnuORx55hBtvvJHHHnuMDRs21Mj3IyIi7sHmcrlcpkOIiIjvGj9+PMOHD2fx4sV069at4uObNm2ibdu2OBwO2rdvz6pVqwDIz8+nT58+/PLLL1x11VUVZ3hmz57NzJkz6dWrF1999RWhoaEAZGZm0r59ezp27MgPP/yAzWbj4MGDtG/fnvj4eH755Rfsdv1boIiIL9BPexERcUstW7Zk8ODBf/l4WFgYP/zwA6+88gq7du3ioYce4sEHH2THjh28+uqrfPfddxXFB+DOO++kuLi4YtgpQN26dXnvvfeYP38+L730Uo19TyIiYpbO/IiIiIiIiE/QmR8REREREfEJKj8iIiIiIuITVH5ERERERMQnqPyIiIiIiIhPUPkRERERERGfoPIjIiIiIiI+wd90gNPhdDrZvXs34eHhFTMbRERERETE97hcLvLy8mjUqNHJh1a7KuGtt95ydezY0RUeHu4KDw93nXXWWa6vv/7a5XK5XFu3bnUBx7x9/PHHFc+xfft21+WXX+6qVauWq379+q4HH3zQVVpaWpkYrh07dhz3tXTTTTfddNNNN910000337vt2LHjpD2iUmd+mjRpwnPPPUerVq1wuVxMmDCBfv36sXz5ctq2bcuePXuOevx7773Hiy++SJ8+fQBwOBz07duXmJgYfvvtN/bs2UNqaioBAQE8++yzp5wjPDwcgB07dhAREVGZb0FERERERLxIbm4uTZs2regIJ2JzuVyuM3mxqKgoXnzxRUaMGPGXz3Xu3JkuXbowZswYAGbNmsUVV1zB7t27adCgAQDvvPMODz/8MPv37ycwMPCUXjM3N5fIyEhycnJUfkREREREfFhlusFpb3jgcDiYOnUqBQUFpKSk/OXzS5cuJS0t7ahSNH/+fDp27FhRfAAuvfRScnNzWb169elGEREREREROalKb3iQnp5OSkoKRUVFhIWFMX36dBISEv7yuDFjxtCuXTvO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EqxcLmf1t6p14dcfYPaYinmeAz/DR0Pg3Sud54mqCf1fgeFzoP7ZFfOcIiIiInJSKn4keEXXgAGvAS5Y8Tasm15+584/Al8/DS91hPXTwRUCnW53VnE7+zpw67+eiIiISGXTOzAJbk16QNc/O+3po+Hg9rKfc+Pn8EonmPc4FByGRt3gtoVw8VNQJa7s5xcRERGRUlHxI3LhA1D/HDhyAKaOAE9h6c6zdxNMvBo+GAz7t0C1ejBwPNwww1lkQURERESsUvEjEhLmLH8dXhW2fgsLnyvZ4/Ny4KtH4ZXO8OOX4A6Drv8Ho5ZD26vs7SMkIiIiIsdR8SMCEN/E2WsHYP6TsG3pHz/GGFj7Cbx0Lix81lk5rumFcMdi6PUIRFSt2MwiIiIiUiIqfkS8kgdD22vAFMKU4XDk4KmP3bMB/ns5TLoBMndAXEMYNBGunwo1m1daZBEREREpPhU/Isfq9yxUb+wsUT3jL87VnWMdyYTZf3f27ElfAKGR0GMMjFwKZ12qIW4iIiIiPkzFj8ixImOcRQrcobBmCqx637nf44FVH8DY9rD4JfAUwJmXwsgl0ONvEFbFbm4RERER+UOhtgOI+JyEDnDB/c4iBrPucebuLH4Zti1xvh7fFC5+Gpr3tJtTREREREpExY/IyXT9P9g0D7YshI+HOveFRcP590DnOyA0wmo8ERERESk5DXsTORl3CAx4HaJqOJ+3GQijlkG3v6jwEREREfFTuvIjciox9eG2b53NT2ufZTuNiIiIiJSRih+R04mp53yIiIiIiN/TsDcREREREQkKKn5ERERERCQoqPgREREREZGgoOJHRERERESCgoofEREREREJCip+REREREQkKKj4ERERERGRoKDiR0REREREgoKKHxERERERCQoqfkREREREJCio+BERERERkaCg4kdERERERIKCih8REREREQkKKn5ERERERCQoqPgREREREZGgoOJHRERERESCgoofEREREREJCip+REREREQkKKj4ERERERGRoKDiR0REREREgoKKHxERERERCQoqfkREREREJCio+BERERERkaCg4kdERERERIKCih8REREREQkKKn5ERERERCQoqPgREREREZGgoOJHRERERESCgoofEREREREJCip+REREREQkKKj4ERERERGRoBBqO0BpGGMAyMzMtJxERERERERs8tYE3hrhdPyy+MnKygIgMTHRchIREREREfEFWVlZxMbGnvYYlylOieRjPB4PO3fupFq1arhcrlMel5mZSWJiItu2bSMmJqYSE/o39VvJqc9KR/1Wcuqz0lG/lZz6rHTUbyWnPisd9dtvjDFkZWVRv3593O7Tz+rxyys/brebhISEYh8fExMT9C+K0lC/lZz6rHTUbyWnPisd9VvJqc9KR/1Wcuqz0lG/Of7oio+XFjwQEREREZGgoOJHRERERESCQkAXPxERETz00ENERETYjuJX1G8lpz4rHfVbyanPSkf9VnLqs9JRv5Wc+qx01G+l45cLHoiIiIiIiJRUQF/5ERERERER8VLxIyIiIiIiQUHFj4iIiIiIBAUVPyIiIiIiEhQqtfhZsGABl112GfXr18flcvHpp58e9/Xs7GxGjRpFQkICVapUoVWrVowbN+6055w/fz79+/enXr16REdH065dOyZOnHjcMW+//TYul+u4j8jIyD/M+/PPP9OvXz+ioqKoXbs299xzDwUFBSc8/znnnENERATNmjXj7bffLlZfFJe/9dmdd95J+/btiYiIoF27did8fcuWLSec1+Vy8d133/3huUvCn/pt79699O3bl/r16xMREUFiYiKjRo0iMzPzhOfXa+1Ee/fuJSEhAZfLxYEDB4577pO91jIyMop97uKw1W8ABw4cYOTIkdSrV4+IiAhatGjBrFmzTnvuffv2cd111xETE0NcXBzDhw8nOzv7uGNWr17NeeedR2RkJImJiTz99NPF64xi8rc+e/zxx+nSpQtRUVHExcWd9JiTvdY+/PDD0563pPyt3y6//HIaNmxIZGQk9erVY8iQIezcufO4Y/RaO7nc3FzatWuHy+Vi1apVRfcH+u/QHj16nPT769ev32nPHczv10rbZ77yfs2G0Mp8spycHJKTk7npppsYMGDACV+/6667mDt3Lu+99x6NGzfmyy+/5I477qB+/fpcfvnlJz3nokWLSEpK4r777qNOnTrMmDGDoUOHEhsby6WXXlp0XExMDBs3biz63OVynTZrYWEh/fr1o27duixatIhdu3YxdOhQwsLCeOKJJwBIT0+nX79+3HbbbUycOJGvvvqKm2++mXr16tGnT5/SdNEJ/KnPvG666SaWLFnC6tWrT3nM//73P1q3bl30eY0aNYp17uLyp35zu93079+fxx57jFq1avHTTz8xcuRI9u3bx/vvvw/otXY6w4cPJykpiR07dpz06xs3bjxu5+vatWsX+9zFYavf8vLy6NWrF7Vr12by5Mk0aNCArVu3nvLNudd1113Hrl27mDNnDvn5+dx4442MGDGi6LWWmZlJ79696dmzJ+PGjSMtLY2bbrqJuLg4RowYUbbOOsrf+iwvL4+rr76alJQUxo8ff8rj3nrrLfr27Vv0+R+dt6T8rd8uuOAC7r//furVq8eOHTu4++67ueqqq1i0aBGg19rp3HvvvdSvX5/U1NSTfj1Qf4dOnTqVvLy8osfs3buX5ORkrr766lNmDfb3a6XpMy9feL9mhbEEMJ988slx97Vu3do8+uijx913zjnnmL///e8lOvcll1xibrzxxqLP33rrLRMbG1uic8yaNcu43W6TkZFRdN+rr75qYmJiTG5urjHGmHvvvde0bt36uMcNGjTI9OnTp0TPVVy+3mfHeuihh0xycvIJ96enpxvArFy5stTnLil/6jevF154wSQkJBR9rtfayb3yyivm/PPPN1999ZUBzP79+4u+Nm/evBPuq2iV2W+vvvqqadKkicnLyyv2OdatW2cAs2zZsqL7Pv/8c+NyucyOHTuMMU6fVq9evejnnDHG3HfffaZly5Ylyltcvt5nxzrda/Vk30dF8qd+85o2bZpxuVxF59Fr7eRmzZplzjzzTLN27doTfl8G+u/Q33v++edNtWrVTHZ29imPCfb3a79XnD47li+9X6ssPjXnp0uXLkyfPp0dO3ZgjGHevHn88MMP9O7du+iYG264gR49epz2PAcPHiQ+Pv64+7Kzs2nUqBGJiYn079+ftWvXHvf1hx9+mMaNGxd9vnjxYtq2bUudOnWK7uvTpw+ZmZlFj128eDE9e/Y87jx9+vRh8eLFJfm2y8SX+qwkLr/8cmrXrk23bt2YPn16qc5RFr7cbzt37mTq1Kmcf/75RffptXZin61bt45HH32U//73v7jdp/5R1q5dO+rVq0evXr349ttvi/fNlqOK6rfp06eTkpLCyJEjqVOnDm3atOGJJ56gsLCw6BjvkEKvxYsXExcXR4cOHYru69mzJ263myVLlhQd0717d8LDw4uO6dOnDxs3bmT//v2l7oeS8KU+K4mRI0dSs2ZNOnbsyIQJEzCVvI2eL/fbvn37mDhxIl26dCEsLAzQa+1kfbZ7925uueUW3n33XaKiok75fIH8O/RY48ePZ/DgwURHRxfdp/drZe+zkrD9WqsIPlX8jB07llatWpGQkEB4eDh9+/bl5Zdfpnv37kXH1KtXj4YNG57yHB9//DHLli3jxhtvLLqvZcuWTJgwgWnTpvHee+/h8Xjo0qUL27dvLzqmZs2aNG3atOjzjIyM4/4jAUWfe+cMnOqYzMxMDh8+XIoeKDlf6rPiqFq1Ks8++yyTJk1i5syZdOvWjSuuuKLS/0P5Yr9de+21REVF0aBBA2JiYnjzzTeLvqbX2vF9lpuby7XXXsszzzxzyuerV68e48aNY8qUKUyZMoXExER69OjB999/X5ZuKLGK6rfNmzczefJkCgsLmTVrFg8++CDPPvssjz32WNExsbGxtGzZsujzjIyME4b9hYaGEh8f/4c/17xfqwy+1GfF9eijj/Lxxx8zZ84cBg4cyB133MHYsWNLfJ6y8MV+u++++4iOjqZGjRr8/PPPTJs2rehreq0d32fGGG644QZuu+224/5AcaxA/x16rKVLl7JmzRpuvvnm4+7X+7Wy91lx+MprrULYueB08kuCzzzzjGnRooWZPn26SU1NNWPHjjVVq1Y1c+bMKdY5586da6Kiosw777xz2uPy8vJM06ZNzQMPPHDKY2655RbTu3fv4+7LyckxgJk1a5YxxpjmzZubJ5544rhjZs6caQBz6NChYmUuCV/vs2Od6jLqyQwZMsR069atWMeWhr/0265du8z69evNtGnTTKtWrcztt99e9DW91o73l7/8xQwaNKjo8+IOcevevbu5/vrri5W3NCqz35o3b24SExNNQUFB0X3PPvusqVu37inP9fjjj5sWLVqccH+tWrXMK6+8YowxplevXmbEiBHHfd07/GbdunXFylwSvt5nxyrJEM0HH3zwuKGr5c1f+u2XX34xGzduNF9++aXp2rWrueSSS4zH4zHG6LX2ey+88ILp2rVr0WOKO+woUH+HjhgxwrRt2/YPz6X3a78pbp8dy5fer1UWnyl+Dh06ZMLCwsyMGTOOO2748OHFGpM5f/58Ex0dbV577bViPf9VV11lBg8efMqvP/jggye8GDZv3mwA8/333xtjjDnvvPPMn//85+OOmTBhgomJiSlWhpLy9T47Vkn+M7300kvFfvNRGv7Ub14LFy40gNm5c6cxRq+130tOTjZut9uEhISYkJAQ43a7DWBCQkLMP/7xj1M+7u677zadO3cuVobSqMx+6969u7nooouOu2/WrFkGOG4OxbHGjx9v4uLijrsvPz/fhISEmKlTpxpjnF9u/fv3P+6YuXPnGsDs27fvDzOXlK/32bFKUvzMmDHDAObIkSPFOr6k/KnfvLZt22YAs2jRImOMXmu/179//+N+roWEhBT9XBs6dOgpcwTi79Ds7GwTExNj/vOf//zh+fR+zVGSPjuWL71fqyw+M+wtPz+f/Pz8E8buh4SE4PF4TvvY+fPn069fP/71r38Va4WYwsJC0tLSqFev3imPSUlJIS0tjT179hTdN2fOHGJiYmjVqlXRMV999dVxj5szZw4pKSl/mKE8+FqfldaqVasq5Lyn4g/95s2Rm5sL6LX2e1OmTCE1NZVVq1axatWqoiGCCxcuZOTIkad8XCC91rp27cpPP/103Hl++OEH6tWrd9wcimOlpKRw4MABVqxYUXTf3Llz8Xg8dOrUqeiYBQsWkJ+fX3TMnDlzaNmyJdWrV//jb7qMfK3PSmvVqlVUr16diIiIcj3vqfhDv53s55pea7958cUXj/u55l0W+6OPPuLxxx8/ZZZA+rnmNWnSJHJzc7n++uv/MI/erzlK0melVdmvtQpTmZVWVlaWWblypVm5cqUBzHPPPWdWrlxptm7daowx5vzzzzetW7c28+bNM5s3bzZvvfWWiYyMLBqOYYwxf/vb38yQIUOKPvdeBhwzZozZtWtX0cfevXuLjnnkkUfM7NmzzaZNm8yKFSvM4MGDTWRkpFm7dm3RMWPHjjUXXnhh0ecFBQWmTZs2pnfv3mbVqlXmiy++MLVq1TJjxowpOmbz5s0mKirK3HPPPWb9+vXm5ZdfNiEhIeaLL74Iyj4zxpgff/zRrFy50tx6662mRYsWRdm9f+l6++23zfvvv2/Wr19v1q9fbx5//HHjdrvNhAkTyq3P/K3fZs6caSZMmGDS0tJMenq6mTFjhjnrrLNM165di47Ra+3E19qxTjbs7fnnnzeffvqp+fHHH01aWpr585//bNxut/nf//5XHt1VxFa//fzzz6ZatWpm1KhRZuPGjWbGjBmmdu3a5rHHHis6ZurUqSesnNW3b19z9tlnmyVLlphvvvnGNG/e3Fx77bVFXz9w4ICpU6eOGTJkiFmzZo358MMPTVRUVLGv2gVin23dutWsXLnSPPLII6Zq1apF2bOysowxxkyfPt288cYbJi0tzfz444/mlVdeMVFRUae9Chno/fbdd9+ZsWPHmpUrV5otW7aYr776ynTp0sU0bdq06GqYXmsnvtaOdbJhb4H+O9SrW7duxw1tPpber5W9z4zxnfdrNlRq8eN9g/L7j2HDhhljnDkPN9xwg6lfv76JjIw0LVu2NM8++2zR+GBjjBk2bJg5//zzj/v8ZOc89pj/+7//Mw0bNjTh4eGmTp065pJLLim6FOr10EMPmUaNGh1335YtW8zFF19sqlSpYmrWrGn++te/mvz8/BO+p3bt2pnw8HDTpEkT89Zbb5VHVx13fn/qs/PPP/+k505PTzfGOP+ZzjrrLBMVFWViYmJMx44dzaRJk8qzy4wx/tVvc+fONSkpKSY2NtZERkaa5s2bm/vuu++E+St6rTX6w+zH9tm//vUv07RpUxMZGWni4+NNjx49zNy5c8vSRad97sruN2OMWbRokenUqZOJiIgwTZo0MY8//vhxcwzeeust8/u/ce3du9dce+21pmrVqiYmJsbceOONRW/ivVJTU023bt1MRESEadCggXnqqafKp7OO8rc+O9W5582bZ4xxlgtv166dqVq1qomOjjbJyclm3LhxprCwMGj7bfXq1eaCCy4w8fHxJiIiwjRu3NjcdtttZvv27cedV6+1U78NO1XxE8i/Q40xZsOGDQYwX3755Umz6f1a+fSZr7xfs8FlTCWvxSkiIiIiImKBz8z5ERERERERqUgqfkREREREJCio+BERERERkaCg4kdERERERIKCih8REREREQkKKn5ERERERCQoqPgREREREZGgoOJHRERERESCgoofEREREREJCip+REREREQkKKj4ERERERGRoKDiR0REREREgsL/A7xJQAtCE0fFAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"plt.figure(figsize=(10, 10))\n",
"\n",
"plt.plot(data_nox['timestamp'], data_nox['value'])\n",
"plt.plot(data_nox['timestamp'], data_nox['prediction'])\n",
"# plt.vlines(\n",
"# x=retrain_data_nox['timestamp'],\n",
"# ymin=plt.ylim()[0],\n",
"# ymax=plt.ylim()[1],\n",
"# colors='k',\n",
"# linestyles='--'\n",
"# )\n",
"\n",
"\n",
"plt.legend(['real', 'prediction'])#, 'retrain'])\n",
"plt.title('NOx')\n",
"plt.xlim(\n",
" data_nox['timestamp'].min(),\n",
" data_nox['timestamp'].max()\n",
")\n",
"\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "venv",
"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.11.14"
}
},
"nbformat": 4,
"nbformat_minor": 5
}