{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Downtime categories" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# configure plot styles\n", "plt.style.use(\"seaborn-colorblind\")\n", "plt.rcParams[\"font.family\"] = \"Source Sans Pro\"\n", "plt.rcParams[\"figure.dpi\"] = 96\n", "plt.rcParams[\"axes.grid\"] = False\n", "plt.rcParams[\"figure.titleweight\"] = \"semibold\"\n", "plt.rcParams[\"axes.titleweight\"] = \"semibold\"\n", "plt.rcParams[\"figure.titlesize\"] = \"13\"\n", "plt.rcParams[\"axes.titlesize\"] = \"12\"\n", "plt.rcParams[\"axes.labelsize\"] = \"10\"" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "data_cat = pd.read_csv(\"data/processed/downtime_categories.csv\")\n", "data_ts = pd.read_csv(\n", " \"data/processed/downtime_timeseries.csv\",\n", " lineterminator=\"\\n\",\n", " parse_dates=[\"timestamp_start\", \"timestamp_end\"],\n", ")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "data_ts[\"period\"] = data_ts[\"timestamp_end\"] - data_ts[\"timestamp_start\"]\n", "data_ts[\"period\"] = data_ts[\"period\"].dt.total_seconds() / (60 * 60)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "data = pd.DataFrame(data_ts.groupby([\"TurbineCategory_id\"]).count()[\"id\"])\n", "data.rename(columns={\"id\": \"frequency\"}, inplace=True)\n", "data[\"Category\"] = data.index" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "data[\"period\"] = data_ts.groupby([\"TurbineCategory_id\"]).sum()[\"period\"]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "data[\"frequency/t/y\"] = data[\"frequency\"] / (25 * 2.5)\n", "data[\"period/t/y\"] = data[\"period\"] / (25 * 2.5)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "data_cat = data_cat[data_cat[\"Type\"] == \"Turbine\"]\n", "data_cat = data_cat.drop(columns=[\"Type\"])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "data = pd.concat([data, data_cat], axis=1)\n", "data.fillna(0, inplace=True)\n", "data.sort_values(by=\"frequency\", inplace=True)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | frequency | \n", "Category | \n", "period | \n", "frequency/t/y | \n", "period/t/y | \n", "Category | \n", "Name | \n", "
---|---|---|---|---|---|---|---|
17 | \n", "0.0 | \n", "0.0 | \n", "0.000000 | \n", "0.000 | \n", "0.000000 | \n", "17 | \n", "Retrofit | \n", "
0 | \n", "0.0 | \n", "0.0 | \n", "0.000000 | \n", "0.000 | \n", "0.000000 | \n", "0 | \n", "Unknown | \n", "
14 | \n", "0.0 | \n", "0.0 | \n", "0.000000 | \n", "0.000 | \n", "0.000000 | \n", "14 | \n", "Noise Constraints | \n", "
21 | \n", "1.0 | \n", "21.0 | \n", "3.560278 | \n", "0.016 | \n", "0.056964 | \n", "21 | \n", "Delayed Startup | \n", "
4 | \n", "9.0 | \n", "4.0 | \n", "5.441111 | \n", "0.144 | \n", "0.087058 | \n", "4 | \n", "Main Shaft | \n", "
12 | \n", "11.0 | \n", "12.0 | \n", "0.245278 | \n", "0.176 | \n", "0.003924 | \n", "12 | \n", "Unlogged manual stop | \n", "
19 | \n", "58.0 | \n", "19.0 | \n", "542.960833 | \n", "0.928 | \n", "8.687373 | \n", "19 | \n", "Hub | \n", "
16 | \n", "214.0 | \n", "16.0 | \n", "408.461667 | \n", "3.424 | \n", "6.535387 | \n", "16 | \n", "Tower | \n", "
9 | \n", "227.0 | \n", "9.0 | \n", "493.191667 | \n", "3.632 | \n", "7.891067 | \n", "9 | \n", "Hydraulics | \n", "
3 | \n", "256.0 | \n", "3.0 | \n", "596.369167 | \n", "4.096 | \n", "9.541907 | \n", "3 | \n", "Rotor Brake | \n", "
22 | \n", "329.0 | \n", "22.0 | \n", "810.376389 | \n", "5.264 | \n", "12.966022 | \n", "22 | \n", "Other | \n", "
2 | \n", "359.0 | \n", "2.0 | \n", "1030.276667 | \n", "5.744 | \n", "16.484427 | \n", "2 | \n", "Anemometry | \n", "
18 | \n", "478.0 | \n", "18.0 | \n", "178.107778 | \n", "7.648 | \n", "2.849724 | \n", "18 | \n", "Cable Unwind | \n", "
13 | \n", "553.0 | \n", "13.0 | \n", "9833.588056 | \n", "8.848 | \n", "157.337409 | \n", "13 | \n", "Customer Stop | \n", "
7 | \n", "614.0 | \n", "7.0 | \n", "980.310833 | \n", "9.824 | \n", "15.684973 | \n", "7 | \n", "Yaw System | \n", "
20 | \n", "686.0 | \n", "20.0 | \n", "5978.126389 | \n", "10.976 | \n", "95.650022 | \n", "20 | \n", "Rotor Blades | \n", "
6 | \n", "866.0 | \n", "6.0 | \n", "5249.156667 | \n", "13.856 | \n", "83.986507 | \n", "6 | \n", "Generator | \n", "
5 | \n", "1122.0 | \n", "5.0 | \n", "12545.892222 | \n", "17.952 | \n", "200.734276 | \n", "5 | \n", "Gearbox | \n", "
15 | \n", "1968.0 | \n", "15.0 | \n", "1561.361944 | \n", "31.488 | \n", "24.981791 | \n", "15 | \n", "Scheduled Maintenance | \n", "
8 | \n", "2042.0 | \n", "8.0 | \n", "8063.895000 | \n", "32.672 | \n", "129.022320 | \n", "8 | \n", "Electrical Controls | \n", "
10 | \n", "3182.0 | \n", "10.0 | \n", "8457.707500 | \n", "50.912 | \n", "135.323320 | \n", "10 | \n", "Electrical System | \n", "
1 | \n", "3560.0 | \n", "1.0 | \n", "8635.941111 | \n", "56.960 | \n", "138.175058 | \n", "1 | \n", "OK | \n", "
11 | \n", "5790.0 | \n", "11.0 | \n", "20375.991944 | \n", "92.640 | \n", "326.015871 | \n", "11 | \n", "Pitch Control | \n", "