diff --git a/MeasurementEvaluator.ipynb b/MeasurementEvaluator.ipynb index 797c09f..8ec2bb2 100644 --- a/MeasurementEvaluator.ipynb +++ b/MeasurementEvaluator.ipynb @@ -2,21 +2,9 @@ "cells": [ { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, - "outputs": [ - { - "output_type": "error", - "ename": "ModuleNotFoundError", - "evalue": "No module named 'pandas'", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mglob\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mpathlib\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mPath\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mpandas\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mplotly\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgraph_objects\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mgo\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mplotly\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexpress\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mpx\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'pandas'" - ] - } - ], + "outputs": [], "source": [ "import os\n", "import time\n", @@ -33,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -59,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -87,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -123,22 +111,22 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ - "def cleanDataIQR(data):\n", + "def cleanDataIQR(data, factor):\n", " Q1=data.quantile(0.25)\n", " Q3=data.quantile(0.75)\n", " IQR=Q3-Q1\n", - " lowqe_bound=Q1 - 10 * IQR\n", - " upper_bound=Q3 + 10 * IQR\n", + " lowqe_bound=Q1 - factor * IQR\n", + " upper_bound=Q3 + factor * IQR\n", " return data[~((data < lowqe_bound) |(data > upper_bound))]" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -171,7 +159,7 @@ "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
AVG[W] L1Min[W] L1Max[W] L1AVG[W] L2Min[W] L2Max[W] L2AVG[W] L3Min[W] L3Max[W] L3
Time
14.10.20 00:00:010.0760.0090.148-0.117-0.1960.0370.052-0.0750.207
14.10.20 00:00:020.1000.0210.178-0.068-0.2090.0070.030-0.1320.176
14.10.20 00:00:030.0900.0020.1860.457-0.2222.7820.027-0.1300.182
14.10.20 00:00:040.073-0.0180.131-0.085-0.1690.0190.055-0.0660.186
14.10.20 00:00:050.1060.0290.169-0.100-0.2230.0270.005-0.1390.176
\n
" }, "metadata": {}, - "execution_count": 5 + "execution_count": 6 } ], "source": [ @@ -194,7 +182,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -253,7 +241,7 @@ "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
AVG[W] L1Min[W] L1Max[W] L1AVG[W] L2Min[W] L2Max[W] L2AVG[W] L3Min[W] L3Max[W] L3CPU% L1...KB Transmitted L2KB Received L2KB Read L2KB Write L2CPU% L3MEM Used L3KB Transmitted L3KB Received L3KB Read L3KB Write L3
Time
14.10.20 00:00:010.0760.0090.148-0.117-0.1960.0370.052-0.0750.2070.0...0.00.00.00.00.00.00.00.00.00.0
14.10.20 00:00:020.1000.0210.178-0.068-0.2090.0070.030-0.1320.1760.0...0.00.00.00.00.00.00.00.00.00.0
14.10.20 00:00:030.0900.0020.1860.457-0.2222.7820.027-0.1300.1820.0...0.00.00.00.00.00.00.00.00.00.0
14.10.20 00:00:040.073-0.0180.131-0.085-0.1690.0190.055-0.0660.1860.0...0.00.00.00.00.00.00.00.00.00.0
14.10.20 00:00:050.1060.0290.169-0.100-0.2230.0270.005-0.1390.1760.0...0.00.00.00.00.00.00.00.00.00.0
\n

5 rows × 27 columns

\n
" }, "metadata": {}, - "execution_count": 6 + "execution_count": 7 } ], "source": [ @@ -280,7 +268,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -306,7 +294,7 @@ "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
AVG[W] L1Min[W] L1Max[W] L1AVG[W] L2Min[W] L2Max[W] L2AVG[W] L3Min[W] L3Max[W] L3
Time
15.10.20 00:00:019.1577.87813.2656.5156.0046.9637.2106.9397.701
15.10.20 00:00:028.8197.42412.1046.6435.9868.1299.1637.19913.603
15.10.20 00:00:038.2387.4948.6606.1995.3046.5957.5017.0578.369
15.10.20 00:00:048.2697.5548.9166.5226.1756.8117.2216.7287.801
15.10.20 00:00:058.3787.8088.8526.4506.2226.8007.2296.9827.485
\n
" }, "metadata": {}, - "execution_count": 7 + "execution_count": 8 } ], "source": [ @@ -328,7 +316,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -387,7 +375,7 @@ "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
AVG[W] L1Min[W] L1Max[W] L1AVG[W] L2Min[W] L2Max[W] L2AVG[W] L3Min[W] L3Max[W] L3CPU% L1...KB Transmitted L2KB Received L2KB Read L2KB Write L2CPU% L3MEM Used L3KB Transmitted L3KB Received L3KB Read L3KB Write L3
Time
15.10.20 00:00:019.1577.87813.2656.5156.0046.9637.2106.9397.7010.0...0.00.00.00.00.00.00.00.00.00.0
15.10.20 00:00:028.8197.42412.1046.6435.9868.1299.1637.19913.6030.0...0.00.00.00.00.00.00.00.00.00.0
15.10.20 00:00:038.2387.4948.6606.1995.3046.5957.5017.0578.3690.0...0.00.00.00.00.00.00.00.00.00.0
15.10.20 00:00:048.2697.5548.9166.5226.1756.8117.2216.7287.8010.0...0.00.00.00.00.00.00.00.00.00.0
15.10.20 00:00:058.3787.8088.8526.4506.2226.8007.2296.9827.4850.0...0.00.00.00.00.00.00.00.00.00.0
\n

5 rows × 27 columns

\n
" }, "metadata": {}, - "execution_count": 8 + "execution_count": 9 } ], "source": [ @@ -414,7 +402,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -473,7 +461,7 @@ "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
AVG[W] L1Min[W] L1Max[W] L1AVG[W] L2Min[W] L2Max[W] L2AVG[W] L3Min[W] L3Max[W] L3CPU% L1...KB Transmitted L2KB Received L2KB Read L2KB Write L2CPU% L3MEM Used L3KB Transmitted L3KB Received L3KB Read L3KB Write L3
Time
14.10.20 00:00:010.0760.0090.148-0.117-0.1960.0370.052-0.0750.2070.0...0.00.00.00.00.00.00.00.00.00.0
14.10.20 00:00:020.1000.0210.178-0.068-0.2090.0070.030-0.1320.1760.0...0.00.00.00.00.00.00.00.00.00.0
14.10.20 00:00:030.0900.0020.1860.457-0.2222.7820.027-0.1300.1820.0...0.00.00.00.00.00.00.00.00.00.0
14.10.20 00:00:040.073-0.0180.131-0.085-0.1690.0190.055-0.0660.1860.0...0.00.00.00.00.00.00.00.00.00.0
14.10.20 00:00:050.1060.0290.169-0.100-0.2230.0270.005-0.1390.1760.0...0.00.00.00.00.00.00.00.00.00.0
\n

5 rows × 27 columns

\n
" }, "metadata": {}, - "execution_count": 9 + "execution_count": 10 } ], "source": [ @@ -487,7 +475,20 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "#plotBoxplotFigure(result, [\"KB Received L1\", \"KB Received L2\", \"KB Received L3\"], \"Network before cleaning\", \"Network Boxplot.png\")\n", + "#result[\"KB Received L1\"] = result.loc[stats.zscore(result[\"KB Received L1\"]) <= 3][\"KB Received L1\"]\n", + "#result[\"KB Received L2\"] = result.loc[stats.zscore(result[\"KB Received L2\"]) <= 3][\"KB Received L2\"]\n", + "#result[\"KB Received L3\"] = result.loc[stats.zscore(result[\"KB Received L3\"]) <= 3][\"KB Received L3\"]\n", + "#plotBoxplotFigure(result, [\"KB Received L1\", \"KB Received L2\", \"KB Received L3\"], \"Network before cleaning\", \"Network Boxplot cleaned.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, "metadata": { "tags": [] }, @@ -499,15 +500,15 @@ "111111111 Windows\n", "Baseline Windows\n", "Baseline\n", - "121110101 ActivityPub\n", - "112110101 ActivityPub\n", - "211110101 ActivityPub\n", - "111110101 ActivityPub\n", - "111010101 ActivityPub\n", - "111210101 ActivityPub\n", - "110110101 ActivityPub\n", - "011110101 ActivityPub\n", - "101110101 ActivityPub\n", + "110111111 ActivityPub\n", + "101111111 ActivityPub\n", + "211111111 ActivityPub\n", + "011111111 ActivityPub\n", + "111211111 ActivityPub\n", + "111111111 ActivityPub\n", + "121111111 ActivityPub\n", + "112111111 ActivityPub\n", + "111011111 ActivityPub\n", "211111111 Matrix\n", "121111111 Matrix\n", "111111011 Matrix\n", @@ -556,41 +557,41 @@ "Min[W] L3 5.669529e+00\n", "dtype: float64\n", "min\n", - "AVG[W] L1 5.857771e+00\n", - "Min[W] L1 5.741483e+00\n", - "Max[W] L1 5.994246e+00\n", - "AVG[W] L2 3.889144e+00\n", - "Min[W] L2 3.698576e+00\n", - "Max[W] L2 4.119449e+00\n", - "AVG[W] L3 6.164653e+00\n", - "Min[W] L3 5.650754e+00\n", - "Max[W] L3 7.187424e+00\n", - "CPU% L1 5.932203e-02\n", - "MEM Used L1 4.503744e+06\n", - "KB Transmitted L1 0.000000e+00\n", + "AVG[W] L1 5.997093e+00\n", + "Min[W] L1 5.811203e+00\n", + "Max[W] L1 6.292356e+00\n", + "AVG[W] L2 4.037085e+00\n", + "Min[W] L2 3.727415e+00\n", + "Max[W] L2 4.554542e+00\n", + "AVG[W] L3 5.826669e+00\n", + "Min[W] L3 5.622593e+00\n", + "Max[W] L3 6.123331e+00\n", + "CPU% L1 4.322034e-01\n", + "MEM Used L1 4.288508e+06\n", + "KB Transmitted L1 5.677966e-01\n", "KB Received L1 0.000000e+00\n", "KB Read L1 0.000000e+00\n", - "KB Write L1 1.220339e+01\n", - "CPU% L2 5.932203e-02\n", - "MEM Used L2 4.335635e+06\n", - "KB Transmitted L2 1.694915e-02\n", + "KB Write L1 6.166102e+01\n", + "CPU% L2 3.135593e-01\n", + "MEM Used L2 4.091692e+06\n", + "KB Transmitted L2 6.694915e-01\n", "KB Received L2 0.000000e+00\n", "KB Read L2 0.000000e+00\n", - "KB Write L2 1.664407e+01\n", - "CPU% L3 3.127119e+00\n", - "MEM Used L3 4.310587e+06\n", - "KB Transmitted L3 9.661017e-01\n", - "KB Received L3 8.728814e-01\n", + "KB Write L2 5.467797e+01\n", + "CPU% L3 3.983051e-01\n", + "MEM Used L3 4.013788e+06\n", + "KB Transmitted L3 1.864407e-01\n", + "KB Received L3 1.016949e-01\n", "KB Read L3 0.000000e+00\n", - "KB Write L3 6.154237e+02\n", - "Energy L1 5.857771e+00\n", - "Energy L2 3.889144e+00\n", - "Energy L3 1.257979e+01\n", - "Iteration 1.800000e+01\n", - "Energy total 6.425539e+00\n", - "Actions Send 1.150000e+02\n", + "KB Write L3 3.966949e+01\n", + "Energy L1 5.997093e+00\n", + "Energy L2 4.037085e+00\n", + "Energy L3 6.159462e+00\n", + "Iteration 1.100000e+01\n", + "Energy total 2.924719e-01\n", + "Actions Send 1.200000e+01\n", "dtype: float64\n", - "6.704910347268386\n", + "2.924719339609503\n", "max\n", "AVG[W] L1 6.501847e+00\n", "Min[W] L1 6.013449e+00\n", @@ -610,7 +611,7 @@ "CPU% L2 1.957627e+00\n", "MEM Used L2 4.403195e+06\n", "KB Transmitted L2 5.525424e+00\n", - "KB Received L2 3.675214e+00\n", + "KB Received L2 3.646552e+00\n", "KB Read L2 0.000000e+00\n", "KB Write L2 4.514915e+02\n", "CPU% L3 3.084746e+00\n", @@ -619,14 +620,14 @@ "KB Received L3 3.686441e+00\n", "KB Read L3 0.000000e+00\n", "KB Write L3 4.467458e+02\n", - "Energy L1 8.728277e+01\n", - "Energy L2 3.171558e+01\n", - "Energy L3 3.329450e+01\n", + "Energy L1 4.247116e+01\n", + "Energy L2 1.663821e+01\n", + "Energy L3 1.826516e+01\n", "Iteration 2.600000e+01\n", - "Energy total 1.363917e+02\n", + "Energy total 6.147336e+01\n", "Actions Send 1.090000e+02\n", "dtype: float64\n", - "150.1559780437906\n" + "67.67709118463543\n" ] } ], @@ -653,18 +654,18 @@ " end_measurement_string = time.strftime('%d.%m.%y %H:%M:%S', time.localtime(int(csv_data[\"End\"][len(csv_data[\"End\"]) - 1])))\n", " measurement_data = result.loc[start_measurement_string:end_measurement_string]\n", "\n", - " plotBoxplotFigure(measurement_data, [\"AVG[W] L1\", \"AVG[W] L2\", \"AVG[W] L3\"], measurement_name + \" Energy before cleaning\", \"plots/Energy/\" + measurement_name + \" Boxplot.png\")\n", - " measurement_data[\"AVG[W] L1\"] = cleanDataIQR(measurement_data[\"AVG[W] L1\"])\n", - " measurement_data[\"AVG[W] L2\"] = cleanDataIQR(measurement_data[\"AVG[W] L2\"])\n", - " measurement_data[\"AVG[W] L3\"] = cleanDataIQR(measurement_data[\"AVG[W] L3\"])\n", - " plotBoxplotFigure(measurement_data, [\"AVG[W] L1\", \"AVG[W] L2\", \"AVG[W] L3\"], measurement_name + \" Energy after cleaning\", \"plots/Energy/\" + measurement_name + \" Boxplot cleaned.png\")\n", + " plotBoxplotFigure(measurement_data, [\"AVG[W] L1\", \"AVG[W] L2\", \"AVG[W] L3\"], measurement_name + \" Energy before cleaning\", \"plots/Energy/\" + measurement_name.replace(\" \", \"_\") + \"_Boxplot.png\")\n", + " measurement_data[\"AVG[W] L1\"] = cleanDataIQR(measurement_data[\"AVG[W] L1\"], 10)\n", + " measurement_data[\"AVG[W] L2\"] = cleanDataIQR(measurement_data[\"AVG[W] L2\"], 10)\n", + " measurement_data[\"AVG[W] L3\"] = cleanDataIQR(measurement_data[\"AVG[W] L3\"], 10)\n", + " plotBoxplotFigure(measurement_data, [\"AVG[W] L1\", \"AVG[W] L2\", \"AVG[W] L3\"], measurement_name + \" Energy after cleaning\", \"plots/Energy/\" + measurement_name.replace(\" \", \"_\") + \"_Boxplot_cleaned.png\")\n", " \n", - " plotBoxplotFigure(measurement_data, [\"KB Received L1\", \"KB Received L2\", \"KB Received L3\"], measurement_name + \" Network before cleaning\", \"plots/Network/received/\" + measurement_name + \" Boxplot.png\")\n", + " plotBoxplotFigure(measurement_data, [\"KB Received L1\", \"KB Received L2\", \"KB Received L3\"], measurement_name + \" Network before cleaning\", \"plots/Network/received/\" + measurement_name.replace(\" \", \"_\") + \"_Boxplot.png\")\n", " if \"Baseline\" not in measurement_name and \"Windows\" not in measurement_name:\n", - " measurement_data[\"KB Received L1\"] = measurement_data.loc[stats.zscore(measurement_data[\"KB Received L1\"]) <= 3][\"KB Received L1\"]\n", - " measurement_data[\"KB Received L2\"] = measurement_data.loc[stats.zscore(measurement_data[\"KB Received L2\"]) <= 3][\"KB Received L2\"]\n", - " measurement_data[\"KB Received L3\"] = measurement_data.loc[stats.zscore(measurement_data[\"KB Received L3\"]) <= 3][\"KB Received L3\"]\n", - " plotBoxplotFigure(measurement_data, [\"KB Received L1\", \"KB Received L2\", \"KB Received L3\"], measurement_name + \" Network after cleaning\", \"plots/Network/received/\" + measurement_name + \" Boxplot cleaned.png\")\n", + " measurement_data[\"KB Received L1\"] = measurement_data.loc[stats.zscore(measurement_data[\"KB Received L1\"]) <= 1.5][\"KB Received L1\"]\n", + " measurement_data[\"KB Received L2\"] = measurement_data.loc[stats.zscore(measurement_data[\"KB Received L2\"]) <= 1.5][\"KB Received L2\"]\n", + " measurement_data[\"KB Received L3\"] = measurement_data.loc[stats.zscore(measurement_data[\"KB Received L3\"]) <= 1.5][\"KB Received L3\"]\n", + " plotBoxplotFigure(measurement_data, [\"KB Received L1\", \"KB Received L2\", \"KB Received L3\"], measurement_name + \" Network after cleaning\", \"plots/Network/received/\" + measurement_name.replace(\" \", \"_\") + \"_Boxplot_cleaned.png\")\n", "\n", " measurement_results = pd.DataFrame()\n", " iteration_count = 0\n", @@ -674,18 +675,18 @@ " end_string = time.strftime('%d.%m.%y %H:%M:%S', time.localtime(int(measurement_row[2]) - 1))\n", " iteration_data = measurement_data.loc[start_string:end_string]\n", "\n", - " plotFigure(iteration_data, [\"AVG[W] L1\",\"AVG[W] L2\",\"AVG[W] L3\"], \"Energy (W)\", \"Energy \" + title, \"plots/Energy/\" + title + \".png\")\n", - " plotFigure(iteration_data, [\"CPU% L1\",\"CPU% L2\",\"CPU% L3\"], \"Workload (%)\", \"CPU \" + title, \"plots/CPU/\" + title + \".png\")\n", - " plotFigure(iteration_data, [\"MEM Used L1\",\"MEM Used L2\",\"MEM Used L3\"], \"Usage (MByte)\", \"Memory \" + title, \"plots/MEM/\" + title + \".png\")\n", - " plotFigure(iteration_data, [\"KB Transmitted L1\",\"KB Transmitted L2\",\"KB Transmitted L3\"], \"Transmitted (KB)\", \"Network Send \" + title, \"plots/Network/transmitted/\" + title + \" transmitted.png\")\n", - " plotFigure(iteration_data, [\"KB Received L1\",\"KB Received L2\",\"KB Received L3\"], \"Received (KB)\", \"Network Received \" + title, \"plots/Network/received/\" + title + \" received.png\")\n", - " plotFigure(iteration_data, [\"KB Read L1\",\"KB Read L2\",\"KB Read L3\"], \"Read (KB)\", \"Disc Read \" + title, \"plots/Disc/\" + title + \" read.png\")\n", - " plotFigure(iteration_data, [\"KB Write L1\",\"KB Write L2\",\"KB Write L3\"], \"Write (KB)\", \"Disc Write \" + title, \"plots/Disc/\" + title + \" write.png\")\n", + " plotFigure(iteration_data, [\"AVG[W] L1\",\"AVG[W] L2\",\"AVG[W] L3\"], \"Energy (W)\", \"Energy \" + title, \"plots/Energy/\" + title.replace(\" \", \"_\") + \".png\")\n", + " plotFigure(iteration_data, [\"CPU% L1\",\"CPU% L2\",\"CPU% L3\"], \"Workload (%)\", \"CPU \" + title, \"plots/CPU/\" + title.replace(\" \", \"_\") + \".png\")\n", + " plotFigure(iteration_data, [\"MEM Used L1\",\"MEM Used L2\",\"MEM Used L3\"], \"Usage (MByte)\", \"Memory \" + title, \"plots/MEM/\" + title.replace(\" \", \"_\") + \".png\")\n", + " plotFigure(iteration_data, [\"KB Transmitted L1\",\"KB Transmitted L2\",\"KB Transmitted L3\"], \"Transmitted (KB)\", \"Network Send \" + title, \"plots/Network/transmitted/\" + title.replace(\" \", \"_\") + \".png\")\n", + " plotFigure(iteration_data, [\"KB Received L1\",\"KB Received L2\",\"KB Received L3\"], \"Received (KB)\", \"Network Received \" + title, \"plots/Network/received/\" + title.replace(\" \", \"_\") + \".png\")\n", + " plotFigure(iteration_data, [\"KB Read L1\",\"KB Read L2\",\"KB Read L3\"], \"Read (KB)\", \"Disc Read \" + title, \"plots/Disc/\" + title.replace(\" \", \"_\") + \"_read.png\")\n", + " plotFigure(iteration_data, [\"KB Write L1\",\"KB Write L2\",\"KB Write L3\"], \"Write (KB)\", \"Disc Write \" + title, \"plots/Disc/\" + title.replace(\" \", \"_\") + \"_write.png\")\n", " iteration = iteration_data.mean()\n", "\n", - " iteration[\"Energy L1\"] = iteration[\"AVG[W] L1\"] + (((iteration[\"KB Received L1\"] / 1000000) / 0.025634766) * 52 * 3600) + ((iteration[\"KB Received L1\"] / 1000000) * 0.052 * 0.25 * 3600000)\n", - " iteration[\"Energy L2\"] = iteration[\"AVG[W] L2\"] + (((iteration[\"KB Received L2\"] / 1000000) / 0.025634766) * 52 * 3600) + ((iteration[\"KB Received L2\"] / 1000000) * 0.052 * 0.25 * 3600000)\n", - " iteration[\"Energy L3\"] = iteration[\"AVG[W] L3\"] + (((iteration[\"KB Received L3\"] / 1000000) / 0.025634766) * 52 * 3600) + ((iteration[\"KB Received L3\"] / 1000000) * 0.052 * 0.25 * 3600000)\n", + " iteration[\"Energy L1\"] = iteration[\"AVG[W] L1\"] + (((iteration.fillna(0)[\"KB Received L1\"] / 1000000) / 0.058034665178572) * 52 * 3600) + ((iteration.fillna(0)[\"KB Received L1\"] / 1000000) * 0.052 * 0.25 * 3600000)\n", + " iteration[\"Energy L2\"] = iteration[\"AVG[W] L2\"] + (((iteration.fillna(0)[\"KB Received L2\"] / 1000000) / 0.058034665178572) * 52 * 3600) + ((iteration.fillna(0)[\"KB Received L2\"] / 1000000) * 0.052 * 0.25 * 3600000)\n", + " iteration[\"Energy L3\"] = iteration[\"AVG[W] L3\"] + (((iteration.fillna(0)[\"KB Received L3\"] / 1000000) / 0.058034665178572) * 52 * 3600) + ((iteration.fillna(0)[\"KB Received L3\"] / 1000000) * 0.052 * 0.25 * 3600000)\n", "\n", " iteration['Iteration'] = int(measurement_row[0])\n", " measurement_results = measurement_results.append(iteration, ignore_index=True)\n", @@ -705,22 +706,22 @@ " iteration_data = iteration_data.reset_index()\n", " del iteration_data[\"Time\"]\n", " if measurement_avg is None:\n", - " measurement_avg = iteration_data\n", + " measurement_avg = iteration_data.fillna(0)\n", " else:\n", " measurement_avg = measurement_avg + iteration_data.fillna(0)\n", " iteration_count = iteration_count + 1\n", " measurement_avg = measurement_avg / iteration_count\n", - " plotFigure(measurement_avg, [\"AVG[W] L1\",\"AVG[W] L2\",\"AVG[W] L3\"], \"Energy (W)\", \"Energy \" + measurement_name, \"plots/Energy/\" + measurement_name + \".png\")\n", - " plotFigure(measurement_avg, [\"CPU% L1\",\"CPU% L2\",\"CPU% L3\"], \"Workload (%)\", \"CPU \" + measurement_name, \"plots/CPU/\" + measurement_name + \".png\")\n", - " plotFigure(measurement_avg, [\"MEM Used L1\",\"MEM Used L2\",\"MEM Used L3\"], \"Usage (MByte)\", \"Memory \" + measurement_name, \"plots/MEM/\" + measurement_name + \".png\")\n", - " plotFigure(measurement_avg, [\"KB Transmitted L1\",\"KB Transmitted L2\",\"KB Transmitted L3\"], \"Transmitted (KB)\", \"Network Send \" + measurement_name, \"plots/Network/transmitted/\" + measurement_name + \" transmitted.png\")\n", - " plotFigure(measurement_avg, [\"KB Received L1\",\"KB Received L2\",\"KB Received L3\"], \"Received (KB)\", \"Network Received \" + measurement_name, \"plots/Network/received/\" + measurement_name + \" received.png\")\n", - " plotFigure(measurement_avg, [\"KB Read L1\",\"KB Read L2\",\"KB Read L3\"], \"Read (KB)\", \"Disc Read \" + measurement_name, \"plots/Disc/\" + measurement_name + \" read.png\")\n", - " plotFigure(measurement_avg, [\"KB Write L1\",\"KB Write L2\",\"KB Write L3\"], \"Write (KB)\", \"Disc Write \" + measurement_name, \"plots/Disc/\" + measurement_name + \" write.png\")\n", + " plotFigure(measurement_avg, [\"AVG[W] L1\",\"AVG[W] L2\",\"AVG[W] L3\"], \"Energy (W)\", \"Energy \" + measurement_name, \"plots/Energy/\" + measurement_name.replace(\" \", \"_\") + \".png\")\n", + " plotFigure(measurement_avg, [\"CPU% L1\",\"CPU% L2\",\"CPU% L3\"], \"Workload (%)\", \"CPU \" + measurement_name, \"plots/CPU/\" + measurement_name.replace(\" \", \"_\") + \".png\")\n", + " plotFigure(measurement_avg, [\"MEM Used L1\",\"MEM Used L2\",\"MEM Used L3\"], \"Usage (MByte)\", \"Memory \" + measurement_name, \"plots/MEM/\" + measurement_name.replace(\" \", \"_\") + \".png\")\n", + " plotFigure(measurement_avg, [\"KB Transmitted L1\",\"KB Transmitted L2\",\"KB Transmitted L3\"], \"Transmitted (KB)\", \"Network Send \" + measurement_name, \"plots/Network/transmitted/\" + measurement_name.replace(\" \", \"_\") + \".png\")\n", + " plotFigure(measurement_avg, [\"KB Received L1\",\"KB Received L2\",\"KB Received L3\"], \"Received (KB)\", \"Network Received \" + measurement_name, \"plots/Network/received/\" + measurement_name.replace(\" \", \"_\") + \".png\")\n", + " plotFigure(measurement_avg, [\"KB Read L1\",\"KB Read L2\",\"KB Read L3\"], \"Read (KB)\", \"Disc Read \" + measurement_name, \"plots/Disc/\" + measurement_name.replace(\" \", \"_\") + \"_read.png\")\n", + " plotFigure(measurement_avg, [\"KB Write L1\",\"KB Write L2\",\"KB Write L3\"], \"Write (KB)\", \"Disc Write \" + measurement_name, \"plots/Disc/\" + measurement_name.replace(\" \", \"_\") + \"_write.png\")\n", " csv_data = csv_data.merge(measurement_results)\n", " csv_data_mean = csv_data.mean()\n", " csv_data = csv_data.append(csv_data_mean, ignore_index=True)\n", - " csv_data.to_csv(measurement_file.name)\n", + " csv_data.to_csv(\"output/\" + measurement_file.name)\n", " if \"Windows\" not in measurement_name:\n", " if \"Baseline\" in measurement_name:\n", " baseline = csv_data_mean\n", @@ -752,12 +753,12 @@ " summary[\"MEM Used total\"] = summary[\"MEM Used L1 without Baseline\"] + summary[\"MEM Used L2 without Baseline\"] + summary[\"MEM Used L3 without Baseline\"]\n", " summary[\"KB Received total\"] = summary[\"KB Received L1 without Baseline\"] + summary[\"KB Received L2 without Baseline\"] + summary[\"KB Received L3 without Baseline\"]\n", " summary[\"KB Write total\"] = summary[\"KB Write L1 without Baseline\"] + summary[\"KB Write L2 without Baseline\"] + summary[\"KB Write L3 without Baseline\"]\n", - "summary.to_csv(\"summary.csv\")" + "summary.to_csv(\"output/summary.csv\")" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -766,19 +767,19 @@ "fig = go.Figure()\n", "\n", "fig.add_trace(go.Scatterpolar(\n", - " r=[0.3313,0.3313,0.3313,0.3313,0.3313,0.3313,0.3313,0.3313,0.3313],\n", + " r=[0.3192,0.3192,0.3192,0.3192,0.3192,0.3192,0.3192,0.3192,0.3192],\n", " theta=categories,\n", " fill='toself',\n", " name='Average'\n", "))\n", "fig.add_trace(go.Scatterpolar(\n", - " r=[0.3478,0.3651,0.3333,0.3738,0.3313,0.3313,0.3313,0.3313,0.3313],\n", + " r=[0.3301,0.2590,0.3331,0.3718,0.3192,0.3192,0.3192,0.3192,0.3192],\n", " theta=categories,\n", " fill='toself',\n", " name='Worst'\n", "))\n", "fig.add_trace(go.Scatterpolar(\n", - " r=[0.2806,0.2578,0.0110,0.3291,0.3313,0.3310,0.2790,0.2782,0.3313],\n", + " r=[0.2815,0.3753,0.0225,0.3264,0.3192,0.3194,0.2819,0.2720,0.3192],\n", " theta=categories,\n", " fill='toself',\n", " name='Best'\n", @@ -800,12 +801,12 @@ " showlegend=True\n", ")\n", "\n", - "fig.write_image(\"Radar Matrix.png\")" + "fig.write_image(\"plots/Radar Matrix.png\")" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -814,19 +815,19 @@ "fig = go.Figure()\n", "\n", "fig.add_trace(go.Scatterpolar(\n", - " r=[0.2926,0.2926,0.2926,0.2926,0.2926,0.2926,0.2926,0.2926,0.2926],\n", + " r=[0.2479,0.2479,0.2479,0.2479,0.2479,0.2479,0.2479,0.2479,0.2479],\n", " theta=categories,\n", " fill='toself',\n", " name='Average'\n", "))\n", "fig.add_trace(go.Scatterpolar(\n", - " r=[0.2708,0.3015,0.9479,0.3451,0.2926,0.2926,0.2926,0.2926,0.2926],\n", + " r=[0.2770,0.2556,0.9052,0.1882,0.2479,0.2479,0.2479,0.2479,0.2479],\n", " theta=categories,\n", " fill='toself',\n", " name='Worst'\n", "))\n", "fig.add_trace(go.Scatterpolar(\n", - " r=[0.2930,0.2199,0.0013,0.2269,0.2926,0.2926,0.2926,0.2926,0.2926],\n", + " r=[0.2187,0.0513,0.0030,0.3072,0.2479,0.2479,0.2479,0.2479,0.2479],\n", " theta=categories,\n", " fill='toself',\n", " name='Best'\n", @@ -848,12 +849,12 @@ " showlegend=True\n", ")\n", "\n", - "fig.write_image(\"Radar ActivityPub.png\")" + "fig.write_image(\"plots/Radar ActivityPub.png\")" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -885,7 +886,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6-final" + "version": "3.7.5-final" } }, "nbformat": 4, diff --git a/MeasurementFiles/ActivityPub/1602788743 111110101 Measurement ActivityPub.csv b/MeasurementFiles/ActivityPub/1602788743 111111111 Measurement ActivityPub.csv similarity index 100% rename from MeasurementFiles/ActivityPub/1602788743 111110101 Measurement ActivityPub.csv rename to MeasurementFiles/ActivityPub/1602788743 111111111 Measurement ActivityPub.csv diff --git a/MeasurementFiles/ActivityPub/1602792388 011110101 Measurement ActivityPub.csv b/MeasurementFiles/ActivityPub/1602792388 011111111 Measurement ActivityPub.csv similarity index 100% rename from MeasurementFiles/ActivityPub/1602792388 011110101 Measurement ActivityPub.csv rename to MeasurementFiles/ActivityPub/1602792388 011111111 Measurement ActivityPub.csv diff --git a/MeasurementFiles/ActivityPub/1602796034 211110101 Measurement ActivityPub.csv b/MeasurementFiles/ActivityPub/1602796034 211111111 Measurement ActivityPub.csv similarity index 100% rename from MeasurementFiles/ActivityPub/1602796034 211110101 Measurement ActivityPub.csv rename to MeasurementFiles/ActivityPub/1602796034 211111111 Measurement ActivityPub.csv diff --git a/MeasurementFiles/ActivityPub/1602799678 101110101 Measurement ActivityPub.csv b/MeasurementFiles/ActivityPub/1602799678 101111111 Measurement ActivityPub.csv similarity index 100% rename from MeasurementFiles/ActivityPub/1602799678 101110101 Measurement ActivityPub.csv rename to MeasurementFiles/ActivityPub/1602799678 101111111 Measurement ActivityPub.csv diff --git a/MeasurementFiles/ActivityPub/1602803341 121110101 Measurement ActivityPub.csv b/MeasurementFiles/ActivityPub/1602803341 121111111 Measurement ActivityPub.csv similarity index 100% rename from MeasurementFiles/ActivityPub/1602803341 121110101 Measurement ActivityPub.csv rename to MeasurementFiles/ActivityPub/1602803341 121111111 Measurement ActivityPub.csv diff --git a/MeasurementFiles/ActivityPub/1602806971 110110101 Measurement ActivityPub.csv b/MeasurementFiles/ActivityPub/1602806971 110111111 Measurement ActivityPub.csv similarity index 100% rename from MeasurementFiles/ActivityPub/1602806971 110110101 Measurement ActivityPub.csv rename to MeasurementFiles/ActivityPub/1602806971 110111111 Measurement ActivityPub.csv diff --git a/MeasurementFiles/ActivityPub/1602810616 112110101 Measurement ActivityPub.csv b/MeasurementFiles/ActivityPub/1602810616 112111111 Measurement ActivityPub.csv similarity index 100% rename from MeasurementFiles/ActivityPub/1602810616 112110101 Measurement ActivityPub.csv rename to MeasurementFiles/ActivityPub/1602810616 112111111 Measurement ActivityPub.csv diff --git a/MeasurementFiles/ActivityPub/1602814266 111010101 Measurement ActivityPub.csv b/MeasurementFiles/ActivityPub/1602814266 111011111 Measurement ActivityPub.csv similarity index 100% rename from MeasurementFiles/ActivityPub/1602814266 111010101 Measurement ActivityPub.csv rename to MeasurementFiles/ActivityPub/1602814266 111011111 Measurement ActivityPub.csv diff --git a/MeasurementFiles/ActivityPub/1602817908 111210101 Measurement ActivityPub.csv b/MeasurementFiles/ActivityPub/1602817908 111211111 Measurement ActivityPub.csv similarity index 100% rename from MeasurementFiles/ActivityPub/1602817908 111210101 Measurement ActivityPub.csv rename to MeasurementFiles/ActivityPub/1602817908 111211111 Measurement ActivityPub.csv diff --git a/Radar ActivityPub.png b/Radar ActivityPub.png new file mode 100644 index 0000000..62d5ea8 Binary files /dev/null and b/Radar ActivityPub.png differ diff --git a/Radar Matrix.png b/Radar Matrix.png new file mode 100644 index 0000000..a4d53eb Binary files /dev/null and b/Radar Matrix.png differ diff --git a/Spikes b/Spikes deleted file mode 100644 index 2f9080f..0000000 --- a/Spikes +++ /dev/null @@ -1,39 +0,0 @@ -Spikes: -011110101 ActivityPub 4 -011111111 Matrix 1 -011111111 Matrix 7 -110110101 ActivityPub 13 -110110101 ActivityPub 29 -110110101 ActivityPub 30 -111010101 ActivityPub 28 -111110101 ActivityPub 1 -111110111 Matrix 4 -111110111 Matrix 22 -111110111 Matrix 23 -111110111 Matrix 28 -111111011 Matrix 13 -111111011 Matrix 16 -111111011 Matrix 23 -111111101 Matrix 5 -111111101 Matrix 8 -111111101 Matrix 26 -111210101 ActivityPub 5 -112110101 ActivityPub 7 -112110101 ActivityPub 30 -121110101 ActivityPub 16 -121111111 Matrix 12 -211110101 ActivityPub 27 -Baseline 6 - -Raus: -011111111 Matrix 2 -011111111 Matrix 3 -111111011 Matrix 30 -111111101 Matrix 1 -111210101 ActivityPub 25 -111210101 ActivityPub 26 -111210101 ActivityPub 27 -121110101 ActivityPub 10 -121110101 ActivityPub 11 -121110101 ActivityPub 12 -121110101 ActivityPub 13 \ No newline at end of file diff --git a/summary.csv b/summary.csv new file mode 100644 index 0000000..96073ed --- /dev/null +++ b/summary.csv @@ -0,0 +1,22 @@ +,AVG[W] L1,AVG[W] L2,AVG[W] L3,Actions Send,CPU% L1,CPU% L2,CPU% L3,Energy L1,Energy L2,Energy L3,KB Received L1,KB Received L2,KB Received L3,KB Write L1,KB Write L2,KB Write L3,MEM Used L1,MEM Used L2,MEM Used L3,Measurement,AVG[W] L1 without Baseline,AVG[W] L2 without Baseline,AVG[W] L3 without Baseline,CPU% L1 without Baseline,CPU% L2 without Baseline,CPU% L3 without Baseline,Energy L1 without Baseline,Energy L2 without Baseline,Energy L3 without Baseline,KB Received L1 without Baseline,KB Received L2 without Baseline,KB Received L3 without Baseline,KB Write L1 without Baseline,KB Write L2 without Baseline,KB Write L3 without Baseline,MEM Used L1 without Baseline,MEM Used L2 without Baseline,MEM Used L3 without Baseline,Energy total,Energy Efficiency,Energy Efficiency normalized,CPU% total,MEM Used total,KB Received total,KB Write total +0,7.808914276401562,6.286390808344198,7.261747763341277,757.6923076923077,23.409387222946545,11.657757496740551,19.58833116036505,76.76200014617676,26.53339329856112,56.070228795363,21.070730117340286,6.1870925684485005,14.914928292046937,2817.023142112125,1281.5837679269885,1315.1082138200784,4440015.048239895,4252831.544980444,4160338.2451108214,121110101 ActivityPub,1.8579636737759415,2.1542189447992177,1.4437023353395677,23.358582494275417,11.63659242054058,19.540902019217068,70.81104954355114,22.40122143501614,50.25218336736129,21.070730117340286,6.1870925684485005,14.914928292046937,2813.2292950817873,1276.1843661323724,1309.5672367512848,364660.91204846883,361689.4704041728,338097.97053455,143.46445434592857,22.72127398778158,0.30452405913835734,54.53607693403306,1064448.3529871916,42.172750977835726,5398.9808979654445 +1,6.489535099506286,4.68131444574323,6.1959403954802275,110.0,3.6415254237288144,1.9183615819209037,3.081073446327683,38.34146264995015,16.35839386029627,20.253281331152895,9.733333333333333,3.5682897407590577,4.29565164904148,431.261581920904,438.4511299435028,438.2454802259888,4554120.656497177,4384645.333333332,4359633.8271186445,112110101 ActivityPub,0.5385844968806657,0.5491425821982503,0.37789496747851814,3.590720695057685,1.8971965057209321,3.0336443051796986,32.390512047324535,12.226221996751292,14.435235903151185,9.733333333333333,3.5682897407590577,4.29565164904148,427.4677348905665,433.05172814888664,432.7045031571952,478766.5203057504,493503.25875706086,537393.5525423731,59.05196994722701,64.42033085152038,0.9481388916402161,8.521561505958315,1509663.3316051844,17.59727472313387,1293.2239661966482 +2,6.499537517504467,4.648689082041624,6.135075411656768,113.73333333333333,3.108474576271186,1.6107344632768361,2.4175141242937843,18.557714408843857,8.066865839318057,9.266790281607319,3.6847457627118643,1.0445287406275132,0.9569915254237288,448.028813559322,206.21271186440674,216.13559322033902,4264589.376271186,4077322.110734463,3988751.0564971743,211110101 ActivityPub,0.5485869148788467,0.5165172184966442,0.3170299836550585,3.0576698476000566,1.5895693870768646,2.3700849831457997,12.606763806218236,3.934693975773077,3.44874485360561,3.6847457627118643,1.0445287406275132,0.9569915254237288,444.23496652898444,200.8133100697906,210.5946161515454,189235.2400797601,186180.03615819197,166510.7819209029,19.990202635596923,21.09165577026639,0.2793712970618585,7.017324217822721,541926.058158855,5.686266028763106,855.6428927503205 +3,6.467503954802259,4.5982720628712155,6.1015745762711875,113.76666666666667,3.0036723163841805,1.5610169491525425,2.3872881355932205,16.741259533004627,8.729510582550562,11.681630353360507,3.1394611038678826,1.2624266310999215,1.7051571780385335,440.9898305084746,198.85762711864407,204.78192090395478,4154723.262146892,3968123.528813559,3887950.482485875,111110101 ActivityPub,0.516553352176639,0.4661001993262355,0.28352914826947817,2.952867587713051,1.539851872952571,2.339858994445236,10.790308930379005,4.597338719005582,5.863584925358798,3.1394611038678826,1.2624266310999215,1.7051571780385335,437.19598347813707,193.45822532402792,199.24094383516118,79369.12595546572,76981.45423728786,65710.2079096036,21.251232574743383,22.415598379453908,0.2998060302367301,6.832578455110858,222060.78810235718,6.107044913006337,829.8951526373261 +4,6.461813559322033,4.571790677966102,6.1071092733294385,113.46666666666667,2.9985875706214697,1.6214689265536721,2.4610169491525427,17.301158146316233,13.248427315662473,9.706898745681315,3.312294171616206,2.651412429378531,1.1000260756192959,447.1581920903954,207.01214689265535,232.98305084745763,4606779.806779662,4445579.781920904,4409869.790960452,111010101 ActivityPub,0.5108629566964131,0.43961881442112194,0.2890638453277292,2.9477828419503402,1.6003038503537006,2.413587808004558,11.350207543690612,9.116255452117493,3.8888533176796054,3.312294171616206,2.651412429378531,1.1000260756192959,443.3643450600579,201.6127450980392,227.44207377866402,531425.6705882358,554437.7073446331,587629.5163841802,24.35531631348771,25.75767882742531,0.3513902316434376,6.961674500308599,1673492.894317049,7.063732676614032,872.4191639367612 +5,6.39544979101947,4.481787507846829,6.055677137154539,114.81481481481481,2.65819209039548,1.3069679849340867,2.0740740740740744,15.103516819263643,9.581453272711915,8.514372396053787,2.6610169491525424,1.558359276668907,0.7513297423539815,371.44632768361583,168.38794726930323,173.29692404268678,4656199.339610796,4500007.605775267,4458191.7526679225,111210101 ActivityPub,0.4444991883938494,0.3496156443018492,0.23763170915282927,2.6073873617243506,1.2858029087341152,2.02664493292609,9.152566216638022,5.449281409166935,2.6963269680520776,2.6610169491525424,1.558359276668907,0.7513297423539815,367.6524806532783,162.98854547468707,167.75594697389317,580845.2034193701,608865.5311989957,635951.4780916511,17.298174593857034,18.0793824787409,0.2328775891511427,5.919835203384556,1825662.2127100169,4.97070596817543,698.3969731018585 +6,5.877473111868473,3.9409222946544986,6.174872598870056,115.73333333333333,0.09435028248587572,0.0649717514124294,3.058474576271186,5.877473111868473,3.9427869432641725,9.092352380307279,0.0,0.0005698005698005699,0.8915254237288135,38.271186440677965,22.27457627118644,620.4714689265536,4504310.823728814,4335870.02259887,4306191.724293785,110110101 ActivityPub,-0.07347749075714738,-0.1912495688904814,0.35682717086834703,0.04354555381474625,0.04380667521245789,3.011045435123201,-0.07347749075714738,-0.18938492028080756,3.2743069523055697,0.0,0.0005698005698005699,0.8915254237288135,34.477339410340406,16.875174476570287,614.93049185776,428956.6875373875,444727.94802259887,483951.44971751375,3.0114445412676147,3.1224655381807067,0.00202120256907607,3.098397664150405,1357636.0852775,0.8920952242986141,666.2830057446707 +7,6.424206214689264,4.51934826403979,6.081003672316383,113.63333333333334,2.859887005649718,1.551412429378531,2.458757062146893,14.695945468269827,10.44849900936422,11.92960835446585,2.5276836158192095,1.8118338520150326,1.7872205321357861,443.6587570621469,200.2912429378531,210.40197740112995,4211795.377401129,4027431.3412429374,3936185.1389830504,011110101 ActivityPub,0.4732556120636433,0.38717640049480995,0.26295824431467363,2.8090822769785886,1.5302473531785594,2.4113279209989082,8.744994865644205,6.31632714581924,6.111562926464141,2.5276836158192095,1.8118338520150326,1.7872205321357861,439.86491003180936,194.89184114323695,204.86100033233635,136441.24120970303,136289.26666666614,113944.86440677894,21.172884937927588,22.359162738791234,0.298934959806266,6.750657551156056,386675.3722831481,6.126737999970029,839.6177515073825 +8,5.996016101694917,4.115452824858758,5.822723728813559,12.0,0.4610169491525423,0.3231638418079096,0.40169491525423734,7.038596610207492,4.488937515714276,6.0954217945492,0.3185924493931507,0.11412970173426931,0.08333125739271789,60.81581920903956,46.03163841807908,39.6771186440678,4290596.245197739,4093679.6282485873,4015609.142372881,101110101 ActivityPub,0.04506549906929713,-0.016719038686222376,0.00467830081184939,0.41021222048141287,0.30199876560793804,0.3542657741062527,1.0876460075818715,0.3567656521692957,0.2773763665474904,0.3185924493931507,0.11412970173426931,0.08333125739271789,57.021972178702,40.63223662346293,34.13614157527418,215242.10900631314,202537.55367231602,193368.86779660964,1.7217880262986576,17.217880262986576,0.21958051132742656,1.0664767601956036,611148.5304752388,0.5160534085201378,131.7903503774391 +9,6.717047175141244,5.298039548022599,6.258045197740112,111.33333333333333,3.2838983050847457,1.8053672316384184,2.760734463276836,20.86164734490389,9.675173343630796,10.059287545932328,4.322316384180791,1.3375674740494448,1.1615861802128817,260.41807909604523,313.0994350282486,333.6474576271187,2704350.788700565,2644613.745762712,2439060.546892656,211111111 Matrix,0.7660965725156235,1.165867684477619,0.43999976973840305,3.233093576413616,1.7842021554384468,2.7133053221288512,14.910696742278269,5.543001480085816,4.241242117930619,4.322316384180791,1.3375674740494448,1.1615861802128817,256.6242320657077,307.70003323363244,328.1064805583251,-1371003.347490861,-1246528.3288135594,-1383179.7276836154,24.694940340294703,26.61730096558711,0.36465829092534935,7.730601053980914,-4000711.403988036,6.821470038443118,892.4307458576652 +10,8.126072316384185,6.383951180646095,7.176185474914289,643.1333333333333,19.56299435028249,10.440677966101692,16.908757062146893,86.35076785035682,19.049727064070915,17.962147869965072,23.903954802259886,3.870416269264377,3.2959816056835347,1466.0844632768358,1579.480790960452,1625.94406779661,3196690.270056497,3090780.961581921,2910156.802259887,121111111 Matrix,2.175121713758565,2.251779317101115,1.3581400469125793,19.512189621611363,10.419512889901721,16.86132792099891,80.39981724773119,14.917555200525936,12.144102441963362,23.903954802259886,3.870416269264377,3.2959816056835347,1462.2906162464983,1574.0813891658358,1620.4030907278163,-878663.8661349295,-800361.11299435,-912083.4723163843,107.4614748902205,20.05086086891229,0.26330688010651193,46.793030432512,-2591108.451445664,31.0703526772078,4656.775096140151 +11,6.694222384570424,5.225497369959088,6.189037869287867,112.89655172413794,3.302454704850964,1.6244886031560493,2.6142606662770307,18.2319808620321,8.842813128138177,9.628057948426159,3.5257159555815325,1.1053817697694035,1.0508980568685522,183.62127410870832,228.96727060198714,244.78638223261248,3933076.896551724,3759788.450029224,3875140.0105201635,111111011 Matrix,0.743271781944804,1.093325506414108,0.37099244128615805,3.2516499761798343,1.6033235269560777,2.566831525129046,12.281030259406478,4.710641264593197,3.8100125204244497,3.5257159555815325,1.1053817697694035,1.0508980568685522,179.82742707837076,223.56786880737098,239.24540516381887,-142277.23963970225,-131353.62454704707,52899.73594389204,20.801684044424125,22.11052549621135,0.29509730425065717,7.4218050282649575,-220731.1282428573,5.681995782219488,642.6407010495607 +12,6.714741828087168,5.29556913504539,6.197516041162227,111.03571428571429,3.2957021791767565,1.774515738498789,2.6016949152542366,17.941532065251376,9.025221561234263,9.562682315145281,3.430690072639225,1.1397096839455112,1.0283297616728362,254.215799031477,309.59685230024206,328.1949152542373,2502909.01937046,2423414.11622276,2218876.640435836,011111111 Matrix,0.7637912254615475,1.1633972715004104,0.37947061316051744,3.244897450505627,1.7533506622988175,2.554265774106252,11.990581462625755,4.893049697689283,3.744636887143572,3.430690072639225,1.1397096839455112,1.0283297616728362,250.42195200113943,304.1974505056259,322.6539381854437,-1572445.1168209664,-1467727.958353511,-1603363.6341404356,20.628268047458608,22.293657330157902,0.29792389970619526,7.552513886910696,-4643536.709314913,5.5987295182575725,877.2733406922091 +13,6.710240112994348,5.254083333333333,6.210937288135595,112.3,3.3545197740113,1.7649717514124292,2.670903954802259,20.885346250053388,9.15355553815482,9.58846585001164,4.331638418079096,1.1916033255283123,1.0321074378789166,258.1076271186441,312.2790960451978,337.8079096045199,3622679.394350282,3504371.912994351,3422020.6564971744,111011111 Matrix,0.7592895103687276,1.121911469788353,0.39289186013388555,3.3037150453401707,1.7438066752124577,2.6234748136542745,14.934395647427767,5.021383674609839,3.7704204220099315,4.331638418079096,1.1916033255283123,1.0321074378789166,254.31378008830652,306.8796942505816,332.2669325357263,-452674.7418411444,-386770.16158192046,-400219.618079097,23.726199744047538,25.353018426408767,0.3451443964661226,7.670996534206903,-1239664.5215021619,6.555349181486324,893.4604068746144 +14,6.678555932203389,5.263268926553672,6.224452824858757,111.13333333333334,3.204237288135593,1.8573446327683614,2.8381355932203394,19.109275393859384,9.998857524680806,10.531172242760968,3.798587570621469,1.44710433244916,1.316050201395029,260.2847457627119,325.64265536723167,351.60310734463275,3506667.5717514125,3405615.4361581923,3325872.1062146896,112111111 Matrix,0.7276053295777691,1.131097063008692,0.4064073968570474,3.1534325594644637,1.8361795565683898,2.790706452072355,13.158324791233763,5.8666856611358265,4.713126814759259,3.798587570621469,1.44710433244916,1.316050201395029,256.4908987323744,320.2432535726155,346.06213027583914,-568686.5644400138,-485526.6384180789,-496368.16836158186,23.73813726712885,25.63206183613193,0.34945136383942776,7.7803185681052085,-1550581.3712196746,6.561742104465658,922.796282580829 +15,6.618828296332402,4.883365867913502,5.665604591990973,117.86206896551724,2.8918760958503795,0.26154295733489186,0.35242548217416725,19.024907096838845,8.729577774536319,9.234835628790563,3.7910578609000587,1.1753280079677226,1.09068800843625,251.86908240794858,72.66510812390416,87.49035651665692,4031609.008766802,3827561.113968439,3908794.109877265,111111101 Matrix,0.6678776937067816,0.7511940043685224,-0.15244083601073655,2.84107136717925,0.24037788113492034,0.3049963410261826,13.073956494213224,4.5974059109913386,3.4167902007888538,3.7910578609000587,1.1753280079677226,1.09068800843625,248.07523537761102,67.26570632928801,81.9493794478633,-43745.12742462428,-63580.9606078323,86553.83530099364,21.088152605993415,21.470676146535133,0.28522138467377117,3.3864455893403527,-20772.25273146294,6.057073877304031,397.2903211547623 +16,6.072488700564974,4.889088135593221,5.7218762711864395,12.0,0.48615819209039546,0.41723163841807903,0.618361581920904,7.485007428713285,5.394210820768308,6.086258203322606,0.4316384180790961,0.15435572811884654,0.11134807463405508,47.18079096045198,89.44971751412429,89.56101694915255,2819366.6994350282,2741348.6429378535,2563416.8689265545,101111111 Matrix,0.12153809793935366,0.7569162720482412,-0.09616915681526983,0.435353463419266,0.39606656221810754,0.5709324407729194,1.5340568260876646,1.2620389572233277,0.2682127753208965,0.4316384180790961,0.15435572811884654,0.11134807463405508,43.38694393011442,84.05031571950813,84.02003988035892,-1255987.436756398,-1149793.4316384178,-1258823.405649717,3.064308558631889,30.643085586318886,0.4267953004703783,1.402352466410293,-3664604.274044533,0.6973422208319977,211.45729952998147 +17,6.695598075715872,5.241983333333333,6.20701986093003,111.33333333333333,3.2870056497175137,1.7446327683615814,2.70593220338983,20.31697468518274,9.307456889881013,9.908025683492165,4.162429378531074,1.2423301296620992,1.1309558356415015,261.33361581920906,311.5661016949153,381.4067796610169,3834118.0632768357,3679551.162711864,3657039.798870057,111110111 Matrix,0.7446474730902519,1.1098114697883528,0.3889744329283209,3.2362009210463842,1.7234676921616099,2.6585030622418455,14.366024082557118,5.1752850263360335,4.089980255490455,4.162429378531074,1.2423301296620992,1.1309558356415015,257.5397687888715,306.16669990029914,375.8658025922233,-241236.0729145906,-211590.91186440736,-165200.47570621455,23.63128936438361,25.470850811910477,0.34696311076716296,7.61817167544984,-618027.4604852125,6.535715343834674,939.5722712813939 +18,6.594282768361582,5.17947033898305,6.130927118644067,88.2,2.758757062146892,1.531073446327684,2.3087570621468925,19.469649813943835,8.376460975694785,8.911258373730638,3.934463276836158,0.9769385379073318,0.8496154852790213,206.71525423728812,256.2234463276836,275.13389830508476,3725999.4960451974,3596489.510734463,3506847.701694915,111211111 Matrix,0.6433321657359619,1.0472984754380699,0.3128816906423575,2.7079523334757627,1.5099083701277125,2.261327920998908,13.518699211318214,4.244289112149805,3.0932129457289284,3.934463276836158,0.9769385379073318,0.8496154852790213,202.92140720695056,250.82404453306742,269.59292123629115,-349354.64014622895,-294652.5638418081,-315392.57288135635,20.856201269196948,28.37578403972374,0.39180005081973185,6.479188624602383,-959399.7768693934,5.7610173000225116,723.3383729763091 +19,6.71800451977401,5.289621186440679,6.225506214689263,110.93333333333334,3.253107344632769,1.766949152542373,2.6511299435028244,20.142478976691407,9.738274583273911,9.636358845999863,4.1022598870056495,1.359422481646327,1.042290629314223,257.1768361581921,304.871186440678,328.980790960452,2250645.0418079095,1947889.174011299,1950368.1491525427,111111111 Matrix,0.7670539171483899,1.1574493228956992,0.4074607866875537,3.2023026159616395,1.7457840763424015,2.60370080235484,14.191528374065786,5.6061027197289315,3.818313417998154,4.1022598870056495,1.359422481646327,1.042290629314223,253.38298912785453,299.47178464606185,323.4398138916584,-1824709.0943835168,-1943252.9005649723,-1871872.1254237287,23.615944511792872,25.546093822852864,0.3481244683979331,7.55178749465888,-5639834.120372218,6.5039729979661995,876.2945876655747 +20,5.940467231638419,4.8038901048989775,6.389432768361582,117.96666666666667,0.06610169491525425,0.06384180790960454,3.2646892655367235,5.940467231638419,4.8038901048989775,9.467750616413413,0.0,0.0,0.9406744277433934,14.273446327683613,24.1819209039548,317.6757062146892,3417667.280225989,3323168.3129943507,3218499.772881356,110111111 Matrix,-0.010483370987201646,0.6717182413539975,0.5713873403598724,0.015296966244124778,0.04267673170963303,3.217260124388739,-0.010483370987201646,0.6717182413539975,3.649705188411704,0.0,0.0,0.9406744277433934,10.479599297346056,18.78251910933865,312.1347291458956,-657686.8559654374,-567973.7615819206,-603740.5016949154,4.3109400587785,4.385245609381916,0.021511906799358264,3.275233822342497,-1829401.1192422733,0.9406744277433934,341.3968475525803