From db058d411069af2c53d95bbff46147961903f84e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Fri, 4 Apr 2025 15:01:54 +0200 Subject: [PATCH 01/23] Add raw BDEW profiles --- src/demandlib/bdew/bdew_data/g25.csv | 98 ++++++++++++++++++++++++++++ src/demandlib/bdew/bdew_data/h25.csv | 98 ++++++++++++++++++++++++++++ src/demandlib/bdew/bdew_data/l25.csv | 98 ++++++++++++++++++++++++++++ src/demandlib/bdew/bdew_data/p24.csv | 98 ++++++++++++++++++++++++++++ src/demandlib/bdew/bdew_data/s25.csv | 98 ++++++++++++++++++++++++++++ 5 files changed, 490 insertions(+) create mode 100644 src/demandlib/bdew/bdew_data/g25.csv create mode 100644 src/demandlib/bdew/bdew_data/h25.csv create mode 100644 src/demandlib/bdew/bdew_data/l25.csv create mode 100644 src/demandlib/bdew/bdew_data/p24.csv create mode 100644 src/demandlib/bdew/bdew_data/s25.csv diff --git a/src/demandlib/bdew/bdew_data/g25.csv b/src/demandlib/bdew/bdew_data/g25.csv new file mode 100644 index 0000000..785200e --- /dev/null +++ b/src/demandlib/bdew/bdew_data/g25.csv @@ -0,0 +1,98 @@ +,Januar,Januar,Januar,Februar,Februar,Februar,März,März,März,April,April,April,Mai,Mai,Mai,Juni,Juni,Juni,Juli,Juli,Juli,August,August,August,September,September,September,Oktober,Oktober,Oktober,November,November,November,Dezember,Dezember,Dezember +[kWh],SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT +00:00-00:15,15.045,14.658,14.832,14.762,14.795,14.967,14.746,14.351,14.645,13.754,13.616,13.948,13.226,13.122,13.160,13.708,13.369,13.818,13.829,13.485,13.346,13.746,13.421,13.154,13.324,12.899,13.044,13.562,13.174,13.129,14.693,14.118,14.236,15.623,14.905,15.472 +00:15-00:30,14.908,14.602,14.721,14.586,14.794,14.810,14.561,14.235,14.524,13.604,13.558,13.793,13.178,12.968,13.015,13.500,13.075,13.602,13.606,13.199,13.169,13.689,13.156,13.039,13.133,12.798,12.863,13.390,13.096,12.969,14.562,13.994,14.135,15.499,14.685,15.337 +00:30-00:45,14.785,14.430,14.618,14.464,14.687,14.709,14.562,14.108,14.431,13.581,13.322,13.684,13.189,12.782,12.892,13.290,13.078,13.485,13.375,12.984,13.006,13.432,13.055,12.949,12.911,12.569,12.718,13.252,12.880,12.830,14.492,13.783,14.002,15.441,14.674,15.256 +00:45-01:00,14.739,14.244,14.501,14.480,14.418,14.603,14.371,13.994,14.364,13.547,13.282,13.570,13.114,12.695,12.749,13.244,12.855,13.368,13.275,12.901,12.919,13.301,12.902,12.832,12.856,12.444,12.570,13.167,12.757,12.718,14.395,13.785,13.897,15.322,14.606,15.136 +01:00-01:15,14.674,14.226,14.448,14.412,14.379,14.608,14.423,13.922,14.257,13.438,13.283,13.505,12.971,12.712,12.673,13.262,12.860,13.232,13.234,12.757,12.846,13.215,12.756,12.774,12.722,12.311,12.497,13.139,12.721,12.638,14.269,13.739,13.834,15.174,14.477,15.053 +01:15-01:30,14.591,14.113,14.371,14.261,14.241,14.546,14.326,13.945,14.174,13.378,13.205,13.421,12.895,12.587,12.639,13.104,12.683,13.204,13.196,12.662,12.765,13.142,12.727,12.763,12.532,12.336,12.483,13.107,12.606,12.594,14.135,13.601,13.916,15.070,14.390,14.921 +01:30-01:45,14.549,14.129,14.294,14.259,14.125,14.381,14.178,13.769,14.068,13.241,13.144,13.407,12.810,12.497,12.564,13.098,12.683,13.196,13.123,12.672,12.732,13.047,12.705,12.675,12.498,12.295,12.407,12.933,12.407,12.516,13.907,13.493,13.708,15.009,14.249,14.864 +01:45-02:00,14.421,14.139,14.328,14.270,14.264,14.481,14.203,13.724,14.079,13.164,13.116,13.343,12.812,12.462,12.530,12.961,12.647,13.134,13.026,12.645,12.682,12.974,12.673,12.663,12.374,12.163,12.432,12.884,12.411,12.475,13.879,13.455,13.707,15.036,14.229,14.909 +02:00-02:15,14.328,14.069,14.306,14.291,14.078,14.538,14.135,13.798,14.090,13.152,13.099,13.333,12.644,12.376,12.500,12.971,12.620,13.085,13.032,12.499,12.662,12.884,12.586,12.599,12.430,12.065,12.408,12.764,12.411,12.485,13.789,13.449,13.663,14.946,14.263,14.883 +02:15-02:30,14.227,13.996,14.256,14.189,14.129,14.434,13.965,13.697,14.017,13.088,13.073,13.263,12.585,12.311,12.523,12.855,12.551,13.028,12.899,12.465,12.634,12.810,12.488,12.590,12.382,12.064,12.384,12.646,12.325,12.440,13.727,13.436,13.648,14.804,14.122,14.739 +02:30-02:45,14.077,13.868,14.181,14.054,14.012,14.393,13.825,13.774,13.966,13.046,12.968,13.272,12.505,12.285,12.463,12.704,12.404,12.960,12.783,12.370,12.615,12.787,12.403,12.549,12.287,11.926,12.368,12.590,12.317,12.460,13.683,13.281,13.720,14.748,13.975,14.766 +02:45-03:00,14.269,13.958,14.270,14.160,13.985,14.428,13.945,13.863,14.060,13.085,12.957,13.359,12.399,12.286,12.451,12.732,12.521,12.970,12.811,12.360,12.591,12.757,12.403,12.562,12.263,11.946,12.402,12.621,12.319,12.479,13.783,13.221,13.619,14.752,14.023,14.778 +03:00-03:15,14.308,13.836,14.294,14.164,14.124,14.508,14.054,13.518,14.145,13.216,13.019,13.416,12.599,12.266,12.556,12.775,12.407,13.083,12.685,12.404,12.666,12.902,12.494,12.599,12.353,11.968,12.514,12.733,12.385,12.603,13.751,13.267,13.849,14.952,14.009,14.973 +03:15-03:30,14.346,13.804,14.375,14.250,13.938,14.602,14.159,13.582,14.282,13.289,12.905,13.622,12.585,12.144,12.696,12.830,12.392,13.136,12.686,12.389,12.705,12.846,12.412,12.703,12.358,11.910,12.541,12.739,12.262,12.718,13.880,13.321,13.944,14.963,13.923,15.063 +03:30-03:45,14.413,13.891,14.528,14.192,13.953,14.678,14.178,13.649,14.391,13.298,12.900,13.674,12.571,12.258,12.809,12.836,12.484,13.213,12.805,12.467,12.836,12.870,12.480,12.789,12.429,12.095,12.615,12.795,12.309,12.801,13.895,13.491,13.927,14.956,14.109,15.133 +03:45-04:00,14.433,13.913,14.661,14.329,14.047,14.844,14.118,13.743,14.674,13.443,13.089,13.927,12.606,12.293,13.086,12.985,12.495,13.508,12.994,12.551,13.106,12.995,12.543,13.048,12.574,12.085,12.971,12.822,12.343,13.139,14.088,13.480,14.224,15.180,14.144,15.454 +04:00-04:15,14.443,13.971,15.042,14.335,14.095,15.175,14.116,13.933,14.876,13.441,13.137,14.278,12.764,12.597,13.342,12.949,12.570,13.614,13.056,12.561,13.274,13.131,12.727,13.352,12.732,12.263,13.294,13.147,12.429,13.486,14.198,13.648,14.629,15.226,14.152,15.726 +04:15-04:30,14.806,13.942,15.276,14.490,14.166,15.342,14.382,13.865,15.060,13.607,13.124,14.340,12.902,12.515,13.450,12.917,12.507,13.751,13.147,12.574,13.306,13.117,12.604,13.427,12.878,12.206,13.498,13.153,12.516,13.632,14.484,13.763,14.855,15.483,14.288,15.927 +04:30-04:45,15.082,13.890,15.786,14.788,14.131,15.865,14.627,13.823,15.664,14.020,13.164,15.103,13.253,12.491,14.104,13.214,12.517,14.239,13.375,12.472,13.843,13.414,12.692,13.955,13.171,12.112,14.096,13.724,12.455,14.247,14.656,13.758,15.360,15.788,14.264,16.370 +04:45-05:00,15.566,14.012,16.345,15.137,14.126,16.405,15.125,13.949,16.259,14.458,13.195,15.712,13.629,12.465,14.570,13.595,12.375,14.487,13.697,12.392,14.159,13.817,12.558,14.393,13.587,12.222,14.477,14.166,12.480,14.655,14.962,13.903,15.896,16.263,14.391,16.895 +05:00-05:15,16.137,14.409,17.412,15.990,14.479,17.475,15.724,14.089,17.223,15.284,13.496,16.563,14.156,12.451,15.464,13.796,12.330,15.241,14.006,12.371,14.974,14.413,12.744,15.258,14.128,12.297,15.470,14.725,12.790,15.781,15.891,14.352,17.090,16.971,14.638,17.954 +05:15-05:30,16.577,14.680,18.154,16.401,14.856,18.398,16.161,14.457,18.117,15.487,13.469,17.221,14.283,12.455,15.984,13.917,12.397,15.789,14.144,12.358,15.331,14.765,12.884,15.788,14.483,12.460,16.185,14.994,12.992,16.345,16.059,14.439,17.713,17.298,14.834,18.713 +05:30-05:45,17.451,14.845,19.515,17.487,15.120,19.857,17.077,14.672,19.553,16.104,13.581,18.563,14.718,12.415,16.993,14.447,12.625,16.697,14.526,12.359,16.234,15.218,12.815,16.887,15.119,12.567,17.352,15.591,13.178,17.666,17.018,14.825,19.277,18.217,15.162,20.238 +05:45-06:00,18.179,15.006,21.540,18.192,15.334,21.996,17.670,14.813,21.721,16.621,13.782,20.504,15.135,12.415,18.654,14.762,12.801,18.197,14.873,12.350,17.590,15.591,12.868,18.231,15.756,12.828,19.152,16.269,13.399,19.323,17.823,15.215,21.234,18.694,15.382,22.047 +06:00-06:15,18.881,15.329,24.015,18.615,15.608,24.511,18.271,15.117,24.169,17.010,14.120,22.540,15.473,12.629,20.295,15.243,13.109,19.982,15.295,12.588,19.140,15.804,12.844,19.796,16.228,13.131,21.146,16.871,13.735,21.619,18.379,15.733,23.881,19.284,15.698,24.091 +06:15-06:30,19.115,15.321,25.834,18.890,15.805,26.440,18.581,15.159,25.876,17.125,14.071,24.127,15.800,12.626,21.590,15.475,13.204,21.221,15.370,12.632,20.352,15.951,12.890,21.035,16.287,13.067,22.914,17.336,13.866,23.508,18.485,15.933,25.983,19.435,15.925,26.097 +06:30-06:45,19.467,15.683,28.642,19.155,16.000,29.548,18.594,15.407,28.516,17.467,14.140,26.625,16.197,12.987,23.928,16.000,13.493,23.163,15.799,12.652,22.420,16.048,13.005,23.014,16.502,13.132,25.141,17.510,14.256,26.195,18.749,16.439,28.851,19.870,16.125,28.625 +06:45-07:00,20.072,15.880,32.409,19.980,16.314,33.445,19.016,15.310,32.126,17.715,14.317,29.685,16.541,13.231,26.615,16.298,14.016,25.826,16.185,12.888,24.797,16.366,13.124,25.543,16.777,13.328,27.961,18.172,14.620,29.918,19.613,16.888,32.842,20.507,16.331,31.862 +07:00-07:15,20.600,16.197,38.015,20.508,16.426,39.402,19.691,15.354,37.012,18.351,14.571,33.588,17.053,13.527,30.300,17.064,14.529,29.460,16.775,13.246,27.961,16.897,13.265,28.885,17.168,13.528,31.844,18.978,14.873,34.545,20.297,17.596,38.088,21.149,16.607,36.680 +07:15-07:30,21.219,16.279,42.134,20.949,16.615,43.426,19.935,15.408,40.776,18.673,14.493,37.147,17.507,13.766,33.728,17.355,14.943,32.525,16.999,13.205,30.750,17.267,13.528,31.570,17.424,13.431,35.165,19.659,14.794,37.989,20.652,17.853,42.300,21.517,16.969,40.432 +07:30-07:45,21.908,16.363,46.767,21.823,16.432,47.384,20.656,15.370,44.456,19.408,14.914,40.976,18.203,13.884,37.273,18.038,15.347,36.042,17.680,13.516,33.716,18.020,13.475,34.666,17.725,13.324,38.520,20.054,14.783,41.901,21.350,17.915,46.585,22.320,16.990,44.898 +07:45-08:00,23.183,16.324,52.068,22.745,16.367,52.028,21.736,15.693,48.842,20.631,15.188,45.036,19.525,14.103,41.262,19.279,16.132,39.896,18.941,13.768,37.146,19.320,13.700,38.551,18.657,13.604,42.232,21.269,14.916,45.444,22.059,18.352,51.055,23.418,17.153,49.305 +08:00-08:15,24.553,16.483,56.861,23.681,16.556,56.677,23.232,16.025,53.372,21.901,15.474,49.124,21.027,14.429,45.388,20.765,16.961,43.833,20.402,14.314,40.937,20.485,14.096,42.552,19.994,13.984,46.327,22.451,15.120,49.436,23.504,19.126,55.665,24.495,17.377,53.675 +08:15-08:30,25.289,16.394,58.801,24.772,16.627,58.398,23.887,16.005,55.694,22.631,15.437,51.341,22.225,14.840,47.784,21.276,17.212,45.738,21.222,14.230,42.722,21.079,14.386,44.371,21.002,14.177,48.400,23.039,15.180,51.074,24.538,19.177,58.139,25.344,17.410,55.914 +08:30-08:45,26.229,16.402,60.632,25.955,16.699,59.941,25.268,16.074,57.517,24.070,15.658,53.151,23.144,15.134,49.409,22.872,17.491,47.443,22.417,14.490,44.151,22.346,14.417,46.066,22.157,14.424,49.620,24.116,15.376,52.310,25.402,19.338,59.964,26.188,17.205,57.507 +08:45-09:00,27.973,16.331,62.409,28.117,16.813,61.741,27.172,16.284,59.694,25.839,16.011,54.992,24.539,15.380,51.443,24.339,17.760,49.266,23.811,14.691,45.772,24.216,14.861,47.599,23.684,14.831,51.353,26.057,15.609,53.857,26.900,19.742,61.812,27.613,17.128,59.501 +09:00-09:15,29.561,16.263,64.096,30.084,17.335,63.081,29.309,16.493,60.959,28.113,16.492,56.424,26.772,15.651,52.820,25.872,18.146,50.979,25.729,14.983,47.203,26.047,14.926,48.927,25.430,15.018,52.454,27.928,15.800,55.240,28.708,19.857,62.954,29.426,17.330,60.957 +09:15-09:30,30.544,16.458,64.283,31.194,17.443,63.402,29.625,16.810,61.556,29.053,16.753,56.743,27.353,15.804,53.435,27.111,18.446,51.571,26.389,15.340,47.907,26.919,15.214,49.644,26.448,15.144,52.765,28.486,15.971,55.689,29.955,19.926,63.440,30.142,17.573,61.934 +09:30-09:45,32.123,16.930,65.286,32.596,17.580,64.370,31.057,17.204,62.419,30.165,16.949,57.852,28.943,16.096,54.568,28.217,18.581,52.730,27.535,15.410,49.042,28.208,15.479,50.913,27.414,15.556,53.968,29.482,16.187,56.423,31.206,20.360,64.492,31.656,17.826,62.703 +09:45-10:00,33.654,17.236,66.215,33.451,17.863,65.340,32.293,17.530,63.580,31.323,17.114,58.801,30.133,16.316,55.784,29.142,19.097,54.064,28.756,15.748,50.451,28.948,15.718,52.009,28.288,15.795,54.964,30.150,16.356,57.534,32.381,20.567,65.513,32.729,17.815,63.121 +10:00-10:15,34.535,17.551,67.977,34.757,18.425,67.169,33.195,17.989,65.572,32.470,17.323,60.593,31.496,16.847,57.341,30.237,19.743,55.868,29.877,16.339,51.954,29.971,16.548,53.559,29.603,16.275,56.454,31.321,16.808,59.108,33.356,21.117,67.297,33.370,18.110,64.599 +10:15-10:30,34.712,17.742,68.225,34.637,18.264,67.567,33.431,17.843,65.658,32.509,17.343,60.870,31.497,16.938,57.658,30.613,20.075,56.158,30.366,16.513,52.189,30.084,16.705,53.996,29.773,16.364,56.797,31.741,16.952,59.141,33.442,21.546,67.373,33.622,18.222,64.880 +10:30-10:45,35.127,18.097,68.078,34.811,18.468,67.179,33.494,17.767,65.566,32.355,17.778,60.435,31.471,17.256,57.514,30.753,19.888,56.412,30.432,16.504,52.005,30.085,16.695,53.708,29.910,16.370,56.639,32.059,17.116,58.689,33.447,21.534,67.025,33.500,18.395,64.552 +10:45-11:00,34.966,18.423,67.838,34.985,18.520,67.091,33.774,17.914,65.452,32.633,18.062,60.589,31.249,17.555,57.220,30.393,19.964,56.147,30.411,16.915,52.229,30.330,16.632,53.720,30.066,16.698,56.346,31.993,17.244,58.735,33.595,21.910,66.936,33.823,18.643,64.386 +11:00-11:15,34.689,18.408,68.055,35.056,18.569,66.829,33.830,17.987,65.557,32.467,18.291,60.891,31.209,17.816,57.684,30.392,20.141,56.469,30.584,17.041,52.571,30.825,16.804,53.949,29.923,17.083,56.562,31.720,17.326,58.783,33.952,21.808,66.927,34.041,18.704,64.217 +11:15-11:30,35.257,18.212,67.816,35.391,19.007,66.725,33.903,18.425,65.341,32.479,18.486,60.944,31.351,17.765,57.847,30.914,20.274,56.728,30.601,17.275,52.704,30.930,17.354,54.240,30.011,17.260,56.536,32.102,17.751,58.418,33.996,21.908,66.536,34.048,19.109,63.889 +11:30-11:45,35.145,18.247,67.425,34.855,19.063,66.412,33.693,18.557,65.073,32.756,18.541,60.837,31.474,17.886,57.622,31.046,20.654,56.482,31.083,17.283,52.662,30.836,17.348,54.126,30.154,17.155,56.491,31.960,17.784,57.978,34.120,22.078,66.354,33.970,19.258,63.547 +11:45-12:00,34.392,18.263,66.634,34.044,19.046,65.555,33.460,18.805,64.307,32.154,18.604,60.144,30.994,18.127,57.143,30.839,20.477,56.132,30.487,17.275,52.275,30.338,17.343,53.574,29.881,17.369,56.060,31.792,17.732,57.326,33.403,21.997,65.568,33.537,19.177,63.041 +12:00-12:15,33.241,18.313,64.255,32.909,18.939,63.278,32.826,18.851,62.155,31.418,18.517,58.204,30.157,18.012,55.180,29.958,20.537,54.234,29.643,17.319,50.561,29.481,17.355,51.733,29.351,17.449,54.006,30.325,17.694,55.273,32.268,21.777,63.151,33.052,19.314,61.265 +12:15-12:30,32.689,18.652,62.781,32.356,18.784,61.584,31.721,18.731,60.450,30.717,18.358,56.258,29.067,17.829,53.568,29.516,20.393,52.683,29.157,17.213,49.168,28.986,17.232,50.350,28.656,17.277,52.672,29.805,17.650,53.750,31.798,21.558,61.468,32.262,19.113,59.892 +12:30-12:45,32.189,18.298,61.038,32.041,18.644,59.965,31.125,18.725,58.871,30.027,18.094,55.157,28.489,17.853,52.347,28.991,20.393,51.664,28.366,17.160,47.996,28.476,17.206,49.376,28.279,17.257,51.290,29.055,17.578,52.390,30.988,21.282,59.923,31.924,18.996,58.170 +12:45-13:00,31.454,17.950,59.881,31.370,18.731,58.788,30.645,18.789,57.413,29.299,18.068,54.134,27.644,17.672,51.293,28.775,20.034,50.832,27.809,17.174,47.385,27.674,16.984,48.632,27.771,17.221,50.689,28.309,17.405,51.510,30.561,21.275,58.862,31.248,18.754,57.417 +13:00-13:15,29.806,17.719,58.655,29.586,18.571,57.588,29.072,18.633,56.607,28.028,17.955,53.306,26.640,17.617,50.491,27.222,19.824,50.013,26.666,16.908,46.791,26.623,16.977,47.932,26.626,17.297,49.969,27.044,17.408,50.666,29.066,21.438,58.067,30.217,18.661,56.656 +13:15-13:30,29.050,17.953,57.875,28.667,18.414,56.514,28.101,18.556,55.639,27.333,17.861,52.127,25.680,17.266,49.666,26.286,19.548,49.479,25.712,17.057,46.166,26.251,17.017,47.227,25.742,17.362,48.988,26.471,17.438,49.719,28.186,21.031,57.060,29.358,18.581,55.636 +13:30-13:45,28.526,17.898,56.936,27.789,18.187,55.781,27.652,18.446,54.682,26.846,17.682,51.400,25.744,17.120,49.134,25.708,19.714,48.602,25.559,17.182,45.730,25.767,17.090,46.551,25.199,17.315,48.162,25.969,17.251,48.940,27.960,20.885,56.299,29.186,18.439,54.869 +13:45-14:00,27.997,17.715,56.637,27.432,18.000,55.483,27.113,18.265,54.424,26.273,17.583,51.244,24.806,17.007,48.798,25.279,19.388,48.494,24.913,17.021,45.638,24.989,16.534,46.661,24.444,17.023,47.842,25.517,16.957,48.629,27.475,20.933,56.302,28.948,18.385,54.604 +14:00-14:15,27.202,17.609,57.182,26.285,17.799,55.768,26.051,18.370,54.818,25.363,17.459,51.505,24.118,16.996,48.969,24.388,19.498,48.776,23.824,16.888,45.998,23.978,16.749,47.025,23.782,16.777,48.276,24.690,17.071,48.785,26.870,20.581,56.603,28.017,18.329,54.833 +14:15-14:30,26.128,17.518,56.841,25.830,17.767,55.505,25.472,17.900,54.308,24.616,17.379,51.215,23.444,16.724,48.695,23.514,19.239,48.501,23.146,17.040,45.713,23.635,16.650,46.934,23.303,16.648,48.024,24.384,16.945,48.629,25.965,20.676,56.579,27.365,18.132,54.617 +14:30-14:45,25.603,17.426,57.270,25.353,17.558,55.572,25.295,17.898,54.316,24.354,17.188,51.421,22.617,16.686,48.876,23.038,19.289,48.555,22.795,16.786,46.034,23.306,16.389,47.189,22.847,16.647,48.186,23.910,16.900,48.694,25.560,20.737,56.746,26.919,18.024,54.777 +14:45-15:00,25.569,17.185,56.711,24.834,17.479,54.861,24.854,18.007,53.649,23.976,17.349,50.786,22.645,16.644,48.294,22.693,19.271,47.935,22.706,16.511,45.615,23.119,16.494,46.636,22.597,16.824,47.702,23.620,16.964,48.156,25.176,20.573,55.945,26.964,18.169,53.976 +15:00-15:15,25.494,17.561,56.157,24.613,17.809,54.100,24.627,17.922,52.856,23.548,17.359,50.072,22.308,16.869,47.802,22.867,19.444,47.491,22.607,16.732,45.273,22.994,16.707,46.099,22.352,16.883,46.972,23.222,17.035,47.465,25.173,20.416,55.229,26.619,18.338,53.692 +15:15-15:30,25.346,17.572,55.360,24.248,17.760,53.357,24.190,17.829,51.999,23.328,17.102,49.115,22.147,16.783,47.057,22.626,19.272,46.869,22.513,16.730,44.440,22.793,16.850,45.375,22.074,16.852,46.075,23.334,17.255,46.653,25.043,20.502,54.543,26.877,18.586,53.133 +15:30-15:45,25.049,17.736,54.359,24.064,17.907,52.359,23.969,17.854,50.752,23.308,17.192,47.942,22.301,16.691,45.968,22.354,19.312,45.929,22.413,16.825,43.731,22.646,16.779,44.584,22.111,16.839,45.049,23.093,17.162,45.867,25.005,20.607,53.945,26.704,18.709,52.530 +15:45-16:00,25.106,18.020,53.203,24.054,17.999,51.156,23.874,18.014,49.417,23.034,17.304,46.690,22.143,16.808,44.907,22.259,19.352,44.936,22.382,16.949,42.786,22.574,16.823,43.367,22.026,16.861,43.846,23.048,17.403,44.903,24.945,20.811,53.037,26.686,19.043,51.664 +16:00-16:15,24.571,18.238,51.992,23.366,18.128,49.701,23.141,18.250,47.975,22.455,17.297,45.385,21.536,16.920,43.765,21.729,19.208,43.865,21.928,17.309,41.629,21.723,17.163,42.078,21.628,16.988,42.569,22.552,17.359,43.717,24.415,21.018,51.947,26.338,19.452,51.078 +16:15-16:30,24.222,19.001,50.830,23.100,18.292,48.333,22.726,18.313,46.970,22.003,17.539,44.185,20.867,16.788,42.579,21.617,19.213,42.799,21.410,17.389,40.494,21.230,17.046,40.997,21.118,17.161,41.582,21.954,17.219,42.747,24.183,21.328,51.339,26.445,19.989,50.584 +16:30-16:45,24.582,19.555,50.111,23.148,18.461,47.170,22.639,18.259,45.622,21.591,17.297,42.810,20.848,16.776,41.603,21.337,19.181,41.717,21.501,17.538,39.342,21.315,16.975,39.896,21.018,17.316,40.587,21.602,17.416,41.628,24.252,21.649,50.213,26.600,20.512,49.627 +16:45-17:00,24.800,19.945,49.371,23.259,18.587,46.129,22.815,18.473,44.303,21.625,17.467,41.586,20.699,16.741,40.122,21.149,19.094,40.451,21.578,17.165,38.098,20.894,17.073,38.746,20.917,17.308,39.311,21.888,17.605,40.478,24.818,21.890,49.366,26.532,20.526,48.553 +17:00-17:15,24.934,20.419,47.478,23.334,19.170,44.450,22.663,18.896,42.647,21.530,17.520,39.847,20.490,16.742,38.490,21.417,18.981,38.767,21.076,17.026,36.422,21.085,16.910,37.100,20.966,17.345,37.419,21.654,17.846,38.783,24.929,21.976,47.730,27.101,20.689,46.651 +17:15-17:30,25.220,20.576,46.143,23.614,19.499,43.531,22.738,19.007,41.209,21.515,17.695,38.601,20.361,16.932,37.232,21.203,18.861,37.345,20.977,17.065,35.145,20.909,16.984,35.812,20.821,17.390,36.258,21.698,17.992,37.619,24.836,21.986,46.244,26.631,20.926,45.232 +17:30-17:45,25.446,20.728,44.410,24.111,20.279,42.776,22.624,19.082,39.979,21.237,17.983,37.434,20.372,17.060,36.059,21.011,19.026,36.240,21.039,17.229,34.267,20.924,17.141,34.664,20.899,17.491,35.136,21.795,17.968,36.539,24.716,22.159,44.605,26.373,20.999,43.788 +17:45-18:00,25.099,20.827,42.800,24.133,20.698,41.937,22.546,19.409,38.812,21.224,17.830,35.904,20.405,17.066,34.618,20.743,18.917,34.857,20.970,17.268,33.175,20.591,17.257,33.321,20.956,17.537,34.053,21.737,18.109,35.468,24.757,22.124,42.890,26.140,20.735,42.206 +18:00-18:15,24.327,20.635,39.406,23.990,20.876,39.285,22.614,19.644,36.172,20.385,17.688,33.026,19.823,16.908,31.884,20.145,18.506,32.116,20.332,16.998,30.458,19.977,17.005,30.764,20.098,17.223,31.175,21.222,17.926,32.853,24.186,21.363,39.348,25.039,20.517,38.940 +18:15-18:30,23.456,20.463,36.687,23.366,20.993,36.748,22.185,19.423,34.110,19.751,17.732,30.655,19.033,16.628,29.542,19.374,18.126,29.929,19.425,16.965,28.407,19.181,16.867,28.673,19.284,17.027,29.258,20.731,17.962,31.325,23.380,20.953,36.501,24.284,20.283,36.349 +18:30-18:45,22.986,20.342,33.488,23.173,20.707,33.758,22.181,19.513,31.677,19.555,17.484,28.184,18.687,16.589,27.253,18.995,17.843,27.362,18.940,16.894,25.909,18.964,16.860,26.230,18.785,17.031,26.804,20.806,18.258,29.306,22.960,20.752,33.475,23.805,20.150,33.484 +18:45-19:00,22.624,20.006,31.331,22.836,20.323,31.582,22.200,19.567,30.251,19.226,17.421,26.513,18.673,16.459,25.428,18.773,17.800,25.665,18.837,16.657,24.383,18.648,16.707,24.717,18.703,16.862,25.675,20.971,18.334,27.968,22.629,20.463,31.523,23.388,19.902,31.341 +19:00-19:15,22.250,19.869,29.218,22.229,20.240,29.492,22.064,19.596,28.490,19.205,17.377,24.975,18.356,16.224,23.896,18.311,17.666,24.105,18.511,16.423,22.891,18.369,16.692,23.370,18.536,16.959,24.392,20.695,18.259,26.448,22.233,20.059,29.443,23.004,19.781,29.573 +19:15-19:30,21.811,19.616,27.316,21.858,19.730,27.434,21.511,19.430,26.712,19.084,17.006,23.403,18.211,16.166,22.568,18.216,17.364,22.762,18.113,16.342,21.576,17.832,16.481,22.036,18.338,17.068,23.262,20.311,18.074,25.041,21.456,19.621,27.630,22.485,19.460,27.862 +19:30-19:45,21.343,19.300,26.135,21.400,19.772,26.410,21.004,19.121,25.668,18.934,17.181,22.736,17.914,16.025,21.565,17.846,17.140,21.859,17.910,16.180,20.806,17.610,16.290,21.127,18.366,17.054,22.851,19.796,17.873,24.026,21.250,19.524,26.328,22.198,19.193,26.767 +19:45-20:00,20.987,18.877,25.184,20.877,19.264,25.194,20.644,19.045,24.947,19.020,17.127,22.202,17.277,15.838,20.895,17.561,16.802,21.259,17.589,16.001,20.148,17.446,16.164,20.481,18.265,17.133,22.331,19.385,17.623,23.020,20.499,19.070,25.278,21.937,19.268,25.675 +20:00-20:15,20.515,18.502,23.855,20.266,18.909,23.848,20.247,18.784,23.670,18.700,17.167,21.462,17.021,15.618,20.018,17.111,16.578,20.238,17.043,15.741,19.304,17.091,16.221,19.679,17.990,17.279,21.530,19.012,17.351,21.894,19.891,18.645,23.782,21.165,18.839,24.372 +20:15-20:30,19.950,18.226,22.742,19.679,18.635,22.903,19.426,18.275,22.720,18.345,16.963,20.952,16.733,15.524,19.437,16.654,16.440,19.440,16.570,15.691,18.615,16.648,16.151,19.058,17.600,16.814,20.702,18.366,16.960,20.953,19.468,18.230,22.702,20.437,18.597,23.348 +20:30-20:45,19.505,17.940,21.830,19.276,18.244,21.893,19.003,17.772,21.705,17.989,16.786,20.397,16.405,15.299,18.832,16.201,15.995,18.759,16.436,15.369,18.082,16.537,16.264,18.598,17.267,16.615,19.925,17.916,16.614,20.012,18.774,17.984,21.932,20.054,18.138,22.495 +20:45-21:00,18.956,17.564,20.971,18.826,17.873,21.098,18.801,17.316,20.864,17.722,16.629,19.844,16.122,15.295,18.429,16.152,15.781,18.341,16.323,15.214,17.633,16.455,16.191,18.387,16.790,16.186,19.217,17.561,16.360,19.221,18.313,17.574,21.164,19.528,18.020,21.905 +21:00-21:15,18.269,17.150,20.177,18.199,17.633,20.301,18.158,16.982,20.048,17.256,16.301,19.191,16.220,15.215,18.012,15.944,15.486,17.886,16.061,14.983,17.258,16.451,15.866,17.971,16.402,15.650,18.332,17.131,15.997,18.639,18.060,17.092,20.425,19.196,17.666,21.253 +21:15-21:30,18.030,17.011,19.557,17.902,17.122,19.617,17.743,16.711,19.464,17.026,15.970,18.615,16.272,15.074,17.746,15.522,15.298,17.590,15.927,14.815,16.955,16.151,15.589,17.674,16.097,15.220,17.846,16.702,15.538,18.019,17.695,16.695,19.720,18.907,17.253,20.424 +21:30-21:45,17.774,16.697,19.017,17.513,16.779,18.961,17.428,16.412,18.823,16.574,15.688,18.066,15.928,14.913,17.350,15.435,15.200,17.282,15.798,14.861,16.831,16.067,15.311,17.246,15.772,14.679,17.186,16.376,15.160,17.356,17.140,16.108,18.941,18.234,16.994,19.877 +21:45-22:00,17.198,16.318,18.455,17.176,16.545,18.356,17.006,15.994,18.122,16.008,15.489,17.414,15.817,14.668,16.816,15.525,15.167,16.998,15.750,14.813,16.567,15.702,15.018,16.714,15.307,14.370,16.573,16.153,14.856,16.803,16.663,15.697,18.297,17.932,16.727,19.217 +22:00-22:15,16.558,15.755,17.633,16.351,16.013,17.549,16.213,15.475,17.315,15.490,15.138,16.646,15.395,14.318,16.165,15.492,15.020,16.668,15.281,14.655,16.060,15.283,14.637,16.002,14.923,14.216,15.875,15.546,14.541,16.088,16.323,15.095,17.402,17.414,16.279,18.358 +22:15-22:30,16.312,15.362,17.093,16.144,15.559,17.069,15.855,15.074,16.810,15.078,14.663,16.214,14.689,14.002,15.659,15.064,14.757,16.281,15.165,14.256,15.650,15.016,14.380,15.586,14.523,13.746,15.415,15.147,14.157,15.600,16.057,14.829,16.861,16.923,15.958,17.782 +22:30-22:45,16.133,15.085,16.628,15.769,15.293,16.632,15.625,14.973,16.352,14.878,14.482,15.767,14.359,13.658,15.191,14.855,14.461,15.875,14.896,14.006,15.233,14.594,13.857,15.144,14.119,13.439,14.951,14.832,13.859,15.094,15.629,14.568,16.464,16.648,15.551,17.464 +22:45-23:00,15.735,14.810,16.326,15.655,15.112,16.376,15.434,14.566,16.118,14.564,14.187,15.422,14.199,13.459,14.901,14.622,14.091,15.546,14.679,13.901,14.893,14.305,13.799,14.825,13.996,13.149,14.647,14.604,13.420,14.738,15.285,14.376,16.022,16.461,15.431,17.100 +23:00-23:15,15.531,14.569,15.997,15.489,14.771,15.992,15.104,14.360,15.687,14.383,13.956,15.009,14.006,13.175,14.460,14.390,13.715,15.193,14.378,13.559,14.564,14.166,13.375,14.449,13.753,12.959,14.258,14.521,13.168,14.305,15.005,13.924,15.626,16.170,15.160,16.686 +23:15-23:30,15.508,14.420,15.658,15.352,14.570,15.683,14.767,14.098,15.348,14.154,13.581,14.679,13.838,12.978,14.138,14.169,13.556,14.822,14.066,13.390,14.257,13.860,13.230,14.170,13.501,12.701,13.929,14.170,13.016,14.078,14.784,13.724,15.300,15.868,15.023,16.318 +23:30-23:45,15.330,14.218,15.556,15.096,14.489,15.519,14.662,14.077,15.137,13.980,13.434,14.425,13.719,12.924,13.943,13.878,13.241,14.521,13.861,13.210,14.050,13.752,13.092,13.929,13.365,12.539,13.671,13.733,12.804,13.830,14.554,13.481,15.122,15.733,14.852,16.126 +23:45-00:00,14.994,14.117,15.371,14.913,14.303,15.341,14.392,13.794,14.938,13.810,13.243,14.301,13.560,12.740,13.664,13.660,13.140,14.277,13.715,13.082,13.765,13.543,12.897,13.660,13.078,12.489,13.501,13.640,12.737,13.596,14.461,13.411,14.871,15.459,14.675,15.908 diff --git a/src/demandlib/bdew/bdew_data/h25.csv b/src/demandlib/bdew/bdew_data/h25.csv new file mode 100644 index 0000000..1d93f44 --- /dev/null +++ b/src/demandlib/bdew/bdew_data/h25.csv @@ -0,0 +1,98 @@ +,Januar,Januar,Januar,Februar,Februar,Februar,März,März,März,April,April,April,Mai,Mai,Mai,Juni,Juni,Juni,Juli,Juli,Juli,August,August,August,September,September,September,Oktober,Oktober,Oktober,November,November,November,Dezember,Dezember,Dezember +[kWh],SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT +00:00-00:15,22.152,23.148,20.126,22.247,23.030,20.279,21.857,22.709,19.602,23.914,24.952,21.235,24.619,25.395,22.213,26.983,27.626,24.566,28.255,28.737,25.976,26.762,27.556,24.849,23.550,25.014,21.296,22.870,23.558,20.509,21.707,22.535,19.583,21.650,22.812,19.959 +00:15-00:30,20.809,21.985,18.915,20.913,21.688,19.097,20.478,21.426,18.418,22.426,23.419,19.930,23.080,24.076,20.894,25.584,26.266,23.272,26.868,27.379,24.627,25.412,26.314,23.605,22.282,23.683,20.197,21.534,22.195,19.261,20.333,21.231,18.360,20.225,21.446,18.710 +00:30-00:45,19.757,21.147,17.959,20.014,20.821,18.220,19.823,20.510,17.849,21.493,22.371,19.208,22.073,22.961,20.099,24.444,25.040,22.285,25.820,26.300,23.677,24.561,25.227,22.732,21.458,22.735,19.484,20.761,21.169,18.580,19.296,20.274,17.387,19.131,20.393,17.714 +00:45-01:00,18.889,20.385,17.202,19.230,20.060,17.504,19.045,19.732,17.125,20.461,21.343,18.350,20.956,21.966,19.269,23.317,24.061,21.359,24.770,25.299,22.711,23.525,24.307,21.924,20.445,21.814,18.739,19.810,20.225,17.779,18.380,19.385,16.601,18.234,19.526,16.939 +01:00-01:15,18.217,19.650,16.612,18.547,19.356,16.932,18.327,19.004,16.584,19.661,20.445,17.658,20.167,21.104,18.594,22.374,23.207,20.683,23.867,24.452,21.994,22.842,23.501,21.275,19.743,21.023,18.186,18.994,19.446,17.176,17.729,18.648,16.044,17.523,18.770,16.339 +01:15-01:30,17.530,18.998,16.077,17.910,18.708,16.422,17.756,18.370,16.130,18.889,19.695,17.063,19.364,20.293,17.931,21.562,22.345,19.963,22.999,23.532,21.288,22.101,22.692,20.630,19.006,20.187,17.559,18.273,18.716,16.610,17.151,18.035,15.520,16.867,18.068,15.803 +01:30-01:45,16.988,18.366,15.796,17.457,18.112,16.191,17.345,18.181,15.883,18.313,19.283,16.563,18.689,19.781,17.419,20.807,21.704,19.347,22.292,22.911,20.645,21.377,22.126,20.100,18.287,19.563,17.069,17.659,18.354,16.146,16.715,17.531,15.269,16.358,17.449,15.461 +01:45-02:00,16.399,17.667,15.300,16.879,17.474,15.718,16.779,17.623,15.476,17.758,18.657,16.156,18.091,19.125,16.990,20.258,21.068,18.946,21.735,22.278,20.190,20.887,21.476,19.651,17.779,19.015,16.676,17.077,17.700,15.744,16.184,16.923,14.857,15.738,16.786,14.982 +02:00-02:15,16.199,17.458,15.287,16.723,17.413,15.760,16.666,17.530,15.464,17.500,18.326,16.023,17.862,18.880,16.858,19.852,20.600,18.670,21.261,21.815,19.913,20.537,21.074,19.425,17.488,18.669,16.510,16.839,17.174,15.630,16.016,16.770,14.874,15.536,16.575,14.949 +02:15-02:30,15.893,17.009,15.143,16.461,17.088,15.624,16.478,17.198,15.342,17.258,18.037,15.914,17.584,18.565,16.704,19.574,20.192,18.489,20.973,21.318,19.678,20.195,20.644,19.212,17.218,18.329,16.352,16.608,16.911,15.501,15.764,16.410,14.735,15.267,16.206,14.824 +02:30-02:45,15.660,16.678,15.025,16.292,16.829,15.535,16.298,16.965,15.244,17.076,17.754,15.827,17.442,18.299,16.645,19.284,19.794,18.314,20.650,20.970,19.480,19.927,20.315,19.024,17.079,18.110,16.276,16.455,16.629,15.398,15.574,16.201,14.660,15.079,15.933,14.727 +02:45-03:00,15.442,16.363,14.934,16.124,16.648,15.471,16.168,16.669,15.170,16.932,17.531,15.754,17.295,18.093,16.611,19.072,19.482,18.186,20.404,20.642,19.340,19.768,20.015,18.892,16.988,17.838,16.189,16.309,16.405,15.358,15.404,16.031,14.684,14.912,15.695,14.653 +03:00-03:15,15.398,16.273,15.018,16.131,16.613,15.553,16.091,16.773,15.281,16.914,17.447,15.896,17.248,18.050,16.743,19.003,19.350,18.206,20.328,20.475,19.356,19.597,19.818,18.902,16.926,17.737,16.188,16.292,16.457,15.467,15.456,16.013,14.778,14.867,15.618,14.708 +03:15-03:30,15.219,16.054,14.938,16.001,16.487,15.497,15.982,16.595,15.263,16.809,17.339,15.840,17.127,17.877,16.628,18.772,19.082,18.126,20.206,20.213,19.243,19.431,19.613,18.804,16.803,17.499,16.165,16.205,16.345,15.445,15.318,15.843,14.768,14.768,15.454,14.630 +03:30-03:45,15.102,15.836,14.943,15.955,16.328,15.522,15.955,16.426,15.316,16.750,17.224,15.920,16.993,17.616,16.574,18.695,18.920,18.170,20.029,20.012,19.204,19.335,19.401,18.792,16.599,17.221,16.139,16.170,16.172,15.486,15.234,15.667,14.894,14.730,15.278,14.673 +03:45-04:00,15.029,15.633,14.958,15.896,16.214,15.558,15.956,16.307,15.376,16.753,17.129,16.005,16.931,17.454,16.543,18.625,18.780,18.153,19.877,19.815,19.179,19.192,19.278,18.726,16.518,17.094,16.097,16.178,16.079,15.533,15.236,15.625,14.959,14.664,15.138,14.674 +04:00-04:15,15.190,15.587,15.216,16.055,16.231,15.845,16.190,16.307,15.721,16.984,17.300,16.421,17.112,17.491,16.942,18.751,18.767,18.528,20.084,19.871,19.537,19.293,19.184,19.013,16.613,17.043,16.398,16.352,16.161,15.897,15.418,15.619,15.331,14.825,15.175,14.979 +04:15-04:30,15.066,15.410,15.368,16.000,16.080,16.032,16.138,16.241,15.914,16.991,17.316,16.717,17.102,17.429,17.187,18.675,18.593,18.632,20.037,19.699,19.747,19.320,19.148,19.205,16.580,16.947,16.565,16.399,16.043,16.145,15.313,15.516,15.524,14.800,15.008,15.120 +04:30-04:45,15.097,15.451,15.674,16.029,16.161,16.342,16.197,16.349,16.250,17.158,17.478,17.165,17.197,17.481,17.570,18.591,18.384,18.853,20.029,19.729,20.034,19.357,19.137,19.539,16.604,17.041,16.916,16.513,16.187,16.591,15.442,15.587,15.923,14.858,15.086,15.462 +04:45-05:00,15.312,15.711,16.221,16.319,16.556,16.951,16.568,16.721,16.978,17.592,17.938,18.005,17.489,17.702,18.216,18.319,18.181,19.045,19.969,19.641,20.309,19.537,19.377,20.054,16.935,17.281,17.667,17.008,16.616,17.477,15.726,15.893,16.522,15.079,15.329,15.972 +05:00-05:15,15.366,15.734,16.820,16.316,16.616,17.561,16.721,16.902,17.712,17.824,18.243,19.082,17.610,17.917,19.090,18.672,18.519,20.067,20.278,19.858,21.139,19.961,19.805,21.112,17.269,17.610,18.737,17.249,16.850,18.375,15.779,15.977,17.252,15.212,15.461,16.608 +05:15-05:30,15.192,15.488,17.160,16.189,16.403,17.922,16.622,16.703,18.124,17.925,18.267,19.712,17.449,17.620,19.418,18.658,18.263,20.371,20.129,19.639,21.334,19.924,19.619,21.535,17.280,17.564,19.344,17.278,16.774,18.933,15.694,15.826,17.723,15.147,15.287,16.961 +05:30-05:45,15.338,15.586,18.039,16.318,16.554,18.820,16.762,16.892,19.010,18.208,18.511,20.720,17.774,17.937,20.470,19.119,18.592,21.471,20.442,19.961,22.068,20.330,19.922,22.381,17.767,17.985,20.657,17.601,17.165,19.961,15.929,16.044,18.736,15.361,15.484,17.819 +05:45-06:00,15.819,15.829,19.089,16.830,16.878,19.930,17.166,17.312,19.974,18.642,18.790,21.723,18.295,18.267,21.399,19.605,18.840,22.314,20.754,20.153,22.631,20.487,20.010,22.901,18.457,18.461,21.948,18.130,17.777,21.216,16.513,16.413,20.037,15.923,15.797,18.980 +06:00-06:15,16.806,16.479,20.971,17.853,17.584,21.877,17.950,17.726,21.751,19.592,19.325,23.614,19.599,19.208,23.518,20.876,19.847,24.353,22.057,21.078,24.415,21.556,20.740,24.469,19.974,19.485,24.568,19.202,18.904,23.346,17.884,17.413,22.347,17.002,16.683,21.092 +06:15-06:30,17.632,17.096,22.609,18.696,18.324,23.571,18.810,18.334,23.266,20.337,19.835,24.946,20.413,19.799,25.020,21.632,20.319,25.720,22.766,21.480,25.429,21.900,20.917,25.242,20.837,20.049,26.218,20.012,19.703,25.003,18.903,18.202,24.192,17.895,17.404,22.695 +06:30-06:45,18.582,17.725,23.816,19.843,19.174,24.854,19.834,19.026,24.072,21.322,20.722,25.775,21.512,20.680,25.959,22.652,21.157,26.764,23.699,22.319,26.209,22.800,21.619,25.837,21.813,20.720,27.326,21.074,20.624,26.149,20.128,19.017,25.630,18.813,18.116,23.990 +06:45-07:00,19.477,18.318,24.573,20.779,19.951,25.612,20.989,19.883,24.549,22.818,21.798,26.431,22.934,21.772,26.762,23.879,21.953,27.425,24.750,23.124,26.886,23.876,22.446,26.271,22.881,21.540,27.829,22.371,21.726,27.090,21.255,19.906,26.444,19.716,18.899,24.942 +07:00-07:15,21.015,19.524,25.042,22.409,21.397,25.863,22.627,21.348,24.741,24.845,23.528,26.932,24.889,23.562,27.368,25.649,23.448,28.003,26.517,24.607,27.683,25.501,24.015,26.798,24.623,23.020,27.951,24.009,23.310,27.579,23.063,21.327,26.947,21.262,20.319,25.666 +07:15-07:30,22.340,20.477,25.241,23.933,22.701,25.844,24.247,22.757,24.636,26.627,25.219,26.914,26.593,25.176,27.428,27.383,24.813,28.186,28.136,26.134,28.163,27.085,25.416,27.122,26.342,24.603,27.690,25.331,24.745,27.595,24.630,22.602,26.751,22.661,21.471,26.044 +07:30-07:45,23.947,21.807,25.078,25.589,24.679,25.419,26.004,24.413,24.430,28.528,27.158,26.617,28.461,27.116,27.221,29.101,26.607,27.927,29.764,27.948,28.379,28.681,27.301,27.125,28.325,26.618,27.190,26.920,26.516,27.090,26.375,24.430,26.121,24.201,23.107,25.949 +07:45-08:00,25.491,23.378,24.630,27.305,26.660,24.933,27.540,26.202,23.993,30.116,29.210,26.061,29.937,28.971,26.695,30.533,28.167,27.396,31.191,29.615,28.223,29.972,29.136,26.694,30.006,28.631,26.523,28.269,28.424,26.497,28.261,26.487,25.427,25.754,24.892,25.658 +08:00-08:15,26.837,24.845,23.976,28.918,28.564,24.316,28.823,28.087,23.455,31.708,31.353,25.636,31.481,31.052,26.274,32.073,30.049,27.053,32.718,31.580,28.020,31.503,31.053,26.371,31.611,30.830,25.973,29.870,30.519,25.928,29.802,28.477,24.762,26.985,26.521,25.044 +08:15-08:30,28.317,26.510,23.848,30.249,30.392,24.111,30.124,29.819,23.179,33.084,33.426,25.318,32.643,32.891,25.895,33.593,31.924,26.902,34.066,33.612,28.110,32.935,32.953,26.412,32.972,32.893,25.630,31.354,32.522,25.717,31.168,30.476,24.299,28.374,28.386,24.858 +08:30-08:45,29.179,27.711,23.238,30.952,31.606,23.498,30.695,31.002,22.610,33.859,34.939,24.832,33.673,34.309,25.436,34.456,33.517,26.620,35.197,35.241,28.087,33.879,34.615,26.272,33.975,34.589,25.362,32.331,33.933,25.280,31.925,31.796,23.566,29.236,29.839,24.296 +08:45-09:00,30.038,29.097,22.944,31.521,32.882,23.083,31.286,32.252,22.213,34.633,36.290,24.491,34.640,35.655,25.054,35.265,34.922,26.389,36.253,36.786,28.096,34.651,36.044,26.272,34.798,36.080,25.056,32.928,35.284,24.967,32.652,33.079,23.064,30.103,31.353,23.919 +09:00-09:15,30.834,30.411,22.673,32.089,34.004,22.810,31.790,33.505,22.082,35.221,37.670,24.461,35.272,37.006,25.055,36.179,36.388,26.280,37.003,38.383,28.306,35.576,37.635,26.568,35.701,37.730,25.166,33.712,36.755,24.922,33.255,34.345,22.844,30.729,32.724,23.697 +09:15-09:30,31.737,31.831,22.767,32.844,35.386,22.818,32.640,34.796,22.077,35.862,38.971,24.509,36.073,38.203,24.976,36.830,37.702,26.276,37.982,39.830,28.449,36.317,38.968,26.709,36.325,39.164,25.225,34.657,38.172,24.911,33.906,35.895,22.759,31.605,34.214,23.545 +09:30-09:45,32.301,33.055,22.682,33.290,36.527,22.707,33.089,35.827,22.087,36.286,39.973,24.345,36.415,39.193,24.869,37.290,38.934,26.144,38.560,41.103,28.427,36.860,40.072,26.649,36.991,40.344,25.080,35.255,39.369,24.948,34.321,37.039,22.595,32.060,35.449,23.509 +09:45-10:00,32.771,34.138,22.658,33.821,37.512,22.608,33.288,36.690,22.002,36.482,40.830,24.253,36.661,40.049,24.616,37.695,39.882,25.945,38.901,42.032,28.344,37.520,40.960,26.668,37.391,41.310,24.990,35.738,40.327,24.824,34.655,38.094,22.438,32.537,36.624,23.548 +10:00-10:15,33.451,35.270,22.558,34.244,38.359,22.388,33.705,37.553,21.806,36.850,41.706,24.086,36.967,40.826,24.551,38.197,40.765,25.788,39.461,43.068,28.352,37.967,41.859,26.710,37.767,42.421,24.913,36.240,41.276,24.708,35.177,39.075,22.263,33.197,37.719,23.444 +10:15-10:30,34.172,36.411,22.690,34.756,39.382,22.336,34.057,38.507,21.930,37.170,42.534,24.053,37.440,41.613,24.600,38.576,41.646,25.950,39.852,44.126,28.654,38.661,42.883,26.871,38.139,43.348,25.038,36.593,42.235,24.858,35.654,40.001,22.435,33.819,38.855,23.536 +10:30-10:45,34.721,37.509,22.964,35.179,40.243,22.572,34.442,39.345,22.174,37.504,43.137,24.343,37.880,42.329,24.887,38.991,42.587,26.097,40.400,45.135,29.056,39.221,43.777,27.321,38.548,44.349,25.318,36.974,43.144,25.210,36.130,41.042,22.771,34.435,39.919,23.859 +10:45-11:00,35.472,38.639,23.420,35.682,41.256,22.887,34.851,40.318,22.594,37.853,43.934,24.625,38.507,43.093,25.480,39.682,43.783,26.699,41.208,46.327,29.474,39.801,44.838,27.847,39.060,45.437,25.862,37.529,44.264,25.556,36.622,42.141,23.179,35.054,41.022,24.214 +11:00-11:15,36.638,40.229,24.061,36.633,42.744,23.652,35.729,41.610,23.188,38.643,45.210,25.164,39.353,44.499,26.009,40.675,45.248,27.366,42.205,47.787,30.299,40.608,46.249,28.688,40.048,46.867,26.488,38.405,45.671,26.192,37.418,43.722,23.851,35.943,42.492,24.911 +11:15-11:30,37.602,41.956,24.863,37.440,44.122,24.321,36.587,42.930,24.037,39.533,46.574,25.992,40.307,45.968,26.816,41.406,46.867,28.161,43.338,49.404,31.300,41.689,47.764,29.553,40.977,48.300,27.317,39.177,47.021,27.128,38.443,45.388,24.704,36.843,44.022,25.657 +11:30-11:45,38.463,43.102,25.576,38.260,44.960,24.965,37.214,43.748,24.681,40.055,47.411,26.587,40.980,46.956,27.566,42.061,47.817,28.958,43.713,50.398,32.139,42.603,48.605,30.346,41.586,49.296,27.950,39.845,47.920,27.923,39.127,46.448,25.410,37.621,45.003,26.300 +11:45-12:00,38.883,43.267,25.998,38.450,44.797,25.326,37.335,43.612,25.052,40.296,47.211,27.069,41.212,46.867,28.003,42.324,47.956,29.466,44.158,50.633,32.594,42.818,48.490,30.955,41.735,49.198,28.356,39.978,47.836,28.393,39.417,46.511,25.889,37.934,45.113,26.682 +12:00-12:15,38.394,42.412,26.174,37.755,43.398,25.360,36.653,42.374,25.130,39.710,45.949,27.339,40.912,45.814,28.453,42.149,47.175,30.071,43.973,49.781,33.039,42.620,47.631,31.414,41.236,48.098,28.811,39.776,46.747,28.699,38.924,45.350,26.137,37.400,43.942,26.751 +12:15-12:30,37.981,41.629,26.229,37.162,42.366,25.319,36.222,41.277,25.125,39.197,44.602,27.411,40.439,44.806,28.498,41.531,46.246,30.265,43.550,48.665,33.043,42.200,46.737,31.470,40.829,46.956,28.800,39.127,45.554,28.653,38.485,44.419,26.286,37.121,43.021,26.816 +12:30-12:45,37.549,40.929,26.313,36.506,41.088,25.225,35.667,40.164,25.119,38.548,43.257,27.224,39.773,43.496,28.448,41.003,45.103,30.096,43.098,47.688,32.732,41.687,45.364,31.245,39.981,45.698,28.649,38.576,44.347,28.534,38.114,43.394,26.388,36.815,42.067,26.951 +12:45-13:00,37.194,40.234,26.255,35.998,39.928,25.073,35.196,39.062,25.177,38.070,41.906,27.062,39.239,42.296,28.376,40.409,43.956,29.938,42.487,46.388,32.485,41.044,44.309,30.953,39.208,44.344,28.367,38.056,43.267,28.321,37.562,42.252,26.384,36.548,41.011,26.847 +13:00-13:15,36.759,39.285,26.138,35.484,38.624,24.856,34.617,37.874,24.933,37.429,40.371,26.899,38.467,41.031,28.287,39.753,42.893,29.872,41.816,45.129,32.164,40.516,42.951,30.675,38.667,43.064,28.169,37.433,41.943,28.155,36.977,40.880,26.237,36.090,39.813,26.603 +13:15-13:30,36.299,38.454,26.006,35.145,37.744,24.774,34.244,36.972,24.892,36.788,39.152,26.806,38.119,40.080,28.161,39.246,41.882,29.646,41.406,43.965,31.896,39.780,41.800,30.528,38.040,41.814,28.087,36.828,40.951,27.983,36.622,39.973,26.299,35.790,38.974,26.656 +13:30-13:45,36.095,37.916,26.094,34.935,37.059,24.732,33.954,36.219,24.876,36.251,38.164,26.532,37.384,39.130,27.770,38.824,40.738,29.530,40.782,42.864,31.510,39.262,40.897,30.245,37.482,40.845,27.849,36.386,40.102,27.751,36.263,39.285,26.330,35.636,38.527,26.697 +13:45-14:00,35.686,37.256,25.821,34.301,36.247,24.425,33.574,35.379,24.555,35.751,37.166,26.027,36.998,38.095,27.373,38.375,39.950,29.164,40.337,42.046,31.243,39.022,40.126,29.855,37.114,39.914,27.561,35.922,39.220,27.378,35.911,38.402,25.975,35.238,37.799,26.452 +14:00-14:15,35.325,36.620,25.455,33.945,35.544,23.980,33.224,34.441,24.238,35.263,36.228,25.677,36.526,37.302,27.098,38.178,39.143,28.938,40.188,41.393,30.923,38.893,39.246,29.621,36.672,39.259,27.199,35.511,38.407,27.114,35.460,37.700,25.698,35.102,37.125,26.185 +14:15-14:30,35.331,36.248,25.443,33.714,35.033,23.892,33.130,33.977,24.163,35.080,35.507,25.488,36.386,36.763,26.889,38.085,38.722,28.706,40.083,40.648,30.804,38.426,38.696,29.387,36.421,38.720,27.005,35.228,37.892,26.941,35.518,37.172,25.650,35.101,36.837,26.207 +14:30-14:45,35.305,35.975,25.311,33.627,34.699,23.777,32.966,33.650,24.132,34.907,34.988,25.214,36.577,36.181,26.677,37.933,38.227,28.503,39.851,40.277,30.464,38.209,38.415,29.070,36.273,38.109,26.776,35.109,37.382,26.819,35.528,36.819,25.635,35.166,36.594,26.211 +14:45-15:00,35.132,35.742,25.408,33.553,34.295,23.886,32.857,33.114,24.167,34.695,34.319,25.257,36.304,35.798,26.792,37.817,37.802,28.710,39.655,39.851,30.491,37.939,37.731,29.221,36.096,37.638,26.800,35.025,37.001,26.874,35.538,36.661,25.895,35.157,36.280,26.498 +15:00-15:15,35.158,35.661,25.858,33.571,34.063,24.258,32.689,32.844,24.624,34.592,33.898,25.586,36.185,35.212,27.071,37.457,37.598,28.887,39.618,39.611,30.662,37.781,37.364,29.453,35.973,37.242,27.174,34.966,36.687,27.225,35.597,36.750,26.542,35.397,36.280,27.040 +15:15-15:30,35.179,35.535,25.975,33.669,33.785,24.312,32.742,32.543,24.569,34.351,33.488,25.601,35.989,34.839,27.069,37.288,37.181,28.917,39.455,39.208,30.703,37.551,36.952,29.481,35.831,36.803,27.310,34.788,36.334,27.257,35.765,36.609,26.725,35.414,36.182,27.334 +15:30-15:45,35.203,35.443,26.285,33.588,33.547,24.493,32.581,32.290,24.756,34.016,32.998,25.739,35.439,34.567,27.197,37.156,36.706,29.161,39.459,38.910,30.828,37.527,36.761,29.601,35.521,36.458,27.530,34.640,36.100,27.353,35.914,36.536,27.083,35.669,36.201,27.888 +15:45-16:00,35.450,35.510,26.865,33.535,33.457,24.876,32.454,32.071,25.067,33.831,32.656,26.057,35.212,34.225,27.484,36.985,36.565,29.525,39.307,38.571,31.139,37.350,36.442,30.035,35.370,36.313,27.962,34.499,35.931,27.691,36.271,36.774,27.808,36.019,36.333,28.669 +16:00-16:15,36.116,35.971,28.065,33.829,33.589,25.800,32.693,32.034,25.897,33.910,32.517,26.758,35.469,34.123,28.190,37.095,36.549,30.139,39.207,38.250,31.864,37.433,36.239,30.777,35.327,36.224,28.743,34.652,36.097,28.561,37.076,37.389,29.314,37.021,37.019,30.347 +16:15-16:30,36.902,36.601,29.198,34.278,33.930,26.565,32.979,32.209,26.403,34.104,32.534,27.300,35.755,34.289,28.800,37.064,36.773,30.738,39.296,38.320,32.477,37.662,36.410,31.376,35.634,36.378,29.393,35.035,36.486,29.205,38.183,38.304,30.643,38.158,37.909,31.919 +16:30-16:45,37.761,37.744,30.509,34.786,34.605,27.470,33.301,32.735,27.081,34.420,33.096,28.039,36.104,34.855,29.454,37.456,37.358,31.405,39.418,38.793,33.250,37.752,37.013,32.060,35.951,36.906,30.078,35.585,37.158,30.055,39.626,39.947,32.588,39.406,39.044,33.722 +16:45-17:00,38.927,39.180,32.156,35.537,35.583,28.652,33.648,33.355,27.962,34.728,33.602,28.915,36.259,35.413,30.512,37.974,38.065,32.463,39.909,39.552,34.262,38.118,37.679,32.937,36.416,37.706,31.127,35.984,38.164,31.257,41.319,41.920,34.764,40.744,40.394,35.577 +17:00-17:15,40.646,41.049,34.769,36.862,36.984,30.620,34.490,34.328,29.427,35.372,34.479,30.325,36.976,36.317,31.911,38.310,38.640,33.719,40.496,40.409,35.506,38.497,38.563,34.282,37.021,38.690,32.614,36.883,39.584,33.074,43.621,44.402,37.698,41.883,41.755,37.795 +17:15-17:30,42.110,42.745,36.779,38.272,38.764,32.488,35.337,35.487,30.791,36.026,35.549,31.541,37.697,37.296,33.222,39.111,39.636,34.995,40.950,41.236,36.877,39.194,39.637,35.568,37.881,39.957,34.005,37.900,41.188,34.784,45.246,46.294,39.714,42.721,42.553,39.068 +17:30-17:45,43.119,43.824,38.382,39.983,40.531,34.477,36.436,36.735,32.160,37.112,36.733,32.965,38.663,38.638,34.650,39.813,40.540,36.264,41.555,42.151,38.028,40.034,40.625,36.860,38.817,41.254,35.445,39.285,42.813,36.575,46.298,47.310,41.051,43.202,43.057,39.869 +17:45-18:00,43.955,44.772,39.899,41.944,42.578,37.045,37.736,38.068,33.940,37.852,37.980,34.510,39.481,39.801,36.174,40.589,41.931,37.760,42.268,43.131,39.264,40.615,41.604,38.250,39.742,42.605,36.961,40.726,44.214,38.465,46.843,48.111,42.350,43.513,43.646,40.882 +18:00-18:15,44.419,45.425,40.960,43.379,44.502,39.350,38.934,39.490,35.863,38.717,39.014,35.941,40.079,40.682,37.559,41.158,42.796,39.058,42.821,44.059,40.522,41.084,42.562,39.435,40.658,43.777,38.494,42.295,45.435,40.486,46.914,48.424,43.392,43.591,43.776,41.695 +18:15-18:30,44.443,45.408,41.542,44.369,45.560,41.044,40.254,40.758,37.681,39.395,39.698,37.180,40.733,41.461,38.812,41.730,43.342,40.211,43.329,44.449,41.536,41.686,43.247,40.511,41.489,44.573,39.683,44.004,46.461,42.229,46.826,48.251,43.952,43.361,43.778,42.181 +18:30-18:45,44.085,44.996,41.918,44.427,45.793,42.029,41.204,41.710,39.363,39.729,40.249,38.263,41.136,41.858,39.718,41.920,43.551,41.200,43.551,44.587,42.490,41.824,43.611,41.439,42.131,45.079,40.842,45.376,47.279,44.094,46.208,47.617,44.232,42.864,43.485,42.432 +18:45-19:00,43.524,44.516,42.120,43.993,45.703,42.586,41.890,42.458,40.786,39.970,40.624,39.194,41.193,42.197,40.574,41.920,43.809,41.886,43.428,44.952,43.196,41.887,43.948,42.122,42.599,45.769,41.820,46.384,48.252,45.854,45.419,47.045,44.407,42.200,43.114,42.663 +19:00-19:15,42.928,43.908,41.957,43.492,44.974,42.553,42.239,42.521,41.566,39.943,40.777,39.714,41.077,42.248,40.929,41.819,44.106,42.156,43.088,45.041,43.346,41.631,43.828,42.278,42.992,46.025,42.531,46.815,48.703,46.774,44.634,46.178,44.176,41.484,42.549,42.523 +19:15-19:30,42.060,43.029,41.543,42.616,44.086,42.234,42.028,42.234,41.692,39.939,40.944,40.227,40.939,42.043,41.147,41.444,43.971,42.285,42.789,44.627,43.451,41.546,43.607,42.402,43.747,46.442,43.516,46.577,48.547,46.946,43.866,45.258,43.720,40.593,41.881,42.133 +19:30-19:45,41.173,42.104,41.007,41.705,43.093,41.657,41.440,41.773,41.384,39.965,40.891,40.574,40.824,41.833,41.324,41.200,43.673,42.311,42.459,44.290,43.438,41.264,43.464,42.516,44.454,46.937,44.461,45.968,47.754,46.496,42.805,44.165,43.143,39.700,41.123,41.645 +19:45-20:00,40.164,41.284,40.382,40.702,42.191,41.109,40.437,41.106,40.679,39.552,40.681,40.521,40.575,41.527,41.171,40.857,43.607,42.223,42.127,44.246,43.375,41.008,43.376,42.570,44.596,46.830,45.165,44.535,46.292,45.404,41.796,43.215,42.431,38.716,40.236,41.106 +20:00-20:15,39.182,40.326,39.532,39.696,41.220,40.168,39.563,40.618,39.854,40.013,41.185,41.017,40.373,41.332,40.990,40.394,43.279,42.009,41.776,43.990,43.076,40.869,43.213,42.483,44.743,46.700,45.494,43.357,45.021,44.215,40.844,42.167,41.521,37.954,39.541,40.299 +20:15-20:30,37.781,38.780,38.319,38.354,39.523,38.885,38.353,39.408,38.596,40.181,41.206,41.278,39.912,40.795,40.602,39.764,42.594,41.574,41.163,43.233,42.517,40.724,42.797,42.451,43.830,45.760,44.973,41.772,43.242,42.688,39.368,40.514,40.232,36.818,38.321,39.178 +20:30-20:45,36.282,37.117,36.864,36.831,37.758,37.418,36.905,37.810,37.119,40.342,40.889,41.262,39.482,40.121,40.179,39.397,41.958,41.086,40.509,42.585,41.909,40.723,42.546,42.476,42.682,44.258,43.823,40.195,41.330,41.081,38.014,38.629,38.652,35.562,36.883,37.807 +20:45-21:00,35.381,35.866,35.746,35.855,36.342,36.209,35.629,36.404,35.846,40.227,40.527,40.925,39.338,39.716,39.840,39.007,41.302,40.532,40.004,41.818,41.394,40.887,42.614,42.577,41.567,42.750,42.446,38.952,39.777,39.711,36.982,37.310,37.413,34.735,35.752,36.678 +21:00-21:15,34.692,34.922,34.904,35.117,35.355,35.244,34.920,35.381,34.929,39.794,39.936,40.307,39.109,39.329,39.538,38.515,40.623,39.921,39.700,41.248,40.896,40.839,42.518,42.430,40.235,41.112,41.028,37.930,38.509,38.455,36.132,36.123,36.366,34.121,34.865,35.726 +21:15-21:30,33.815,33.772,33.979,34.242,34.186,34.247,33.978,34.108,33.811,38.842,38.819,39.167,38.542,38.666,38.929,37.759,39.562,38.973,39.071,40.445,40.168,40.245,41.630,41.502,38.845,39.393,39.333,36.903,37.203,37.136,35.225,34.924,35.294,33.380,33.982,34.839 +21:30-21:45,32.837,32.722,32.907,33.268,33.043,33.175,33.028,32.978,32.696,37.640,37.470,37.774,38.138,37.925,38.185,37.386,38.916,38.531,39.013,40.215,39.983,39.568,40.671,40.547,37.489,37.858,37.749,35.781,35.799,35.817,34.284,33.678,34.110,32.646,32.912,33.740 +21:45-22:00,32.768,32.514,32.539,33.073,32.766,32.739,32.742,32.653,32.334,37.098,36.817,37.029,37.956,37.637,38.010,37.590,38.903,38.663,39.338,40.393,40.326,39.022,39.855,39.723,36.704,36.773,36.713,35.211,35.231,35.145,33.976,33.231,33.594,32.337,32.604,33.268 +22:00-22:15,32.678,31.952,32.068,32.964,32.038,32.112,32.676,32.043,31.766,36.488,35.677,35.976,37.406,36.617,37.103,38.099,38.628,38.607,39.387,39.753,40.156,38.240,38.369,38.550,35.453,34.927,35.143,34.662,33.925,34.169,33.545,32.323,32.860,32.243,32.029,32.613 +22:15-22:30,31.368,30.218,30.435,31.638,30.273,30.464,31.351,30.180,30.057,34.799,33.548,33.754,36.041,34.400,34.970,37.398,36.972,37.262,38.223,38.170,38.625,36.756,36.053,36.435,33.890,32.614,32.869,33.245,31.777,32.076,32.209,30.358,31.010,31.140,30.450,30.897 +22:30-22:45,30.280,28.724,28.895,30.534,28.667,28.938,30.102,28.706,28.609,33.370,31.749,31.997,34.793,32.703,33.178,36.290,35.206,35.618,36.981,36.385,36.886,35.524,34.290,34.594,32.825,30.888,31.145,32.110,30.064,30.507,31.095,28.609,29.338,30.109,29.045,29.319 +22:45-23:00,28.952,27.290,27.388,29.122,27.192,27.413,28.660,27.004,26.788,31.808,29.887,30.036,33.262,30.741,31.095,35.068,33.368,33.694,35.681,34.355,34.921,34.232,32.301,32.689,31.468,29.033,29.237,30.741,28.291,28.684,29.610,26.904,27.705,28.721,27.585,27.745 +23:00-23:15,27.554,25.946,26.006,27.753,25.939,26.162,27.359,25.425,25.298,30.336,28.110,28.186,31.654,28.804,29.199,33.554,31.409,31.706,34.406,32.403,32.931,32.886,30.541,30.886,30.014,27.199,27.463,29.353,26.611,27.038,28.177,25.464,26.228,27.573,26.319,26.372 +23:15-23:30,26.256,24.485,24.477,26.461,24.435,24.601,26.105,23.956,23.717,28.858,26.440,26.357,30.118,27.014,27.344,32.067,29.385,29.771,32.960,30.499,30.998,31.528,28.767,29.182,28.719,25.537,25.787,28.029,25.054,25.360,26.720,23.783,24.541,26.350,24.836,24.753 +23:30-23:45,25.052,23.093,23.115,25.252,23.081,23.238,24.968,22.544,22.381,27.455,24.895,24.810,28.785,25.388,25.771,30.775,27.759,28.195,31.747,28.893,29.398,30.373,27.335,27.818,27.484,24.153,24.456,26.960,23.630,23.949,25.426,22.356,23.060,25.214,23.402,23.311 +23:45-00:00,23.942,21.670,21.764,24.174,21.763,21.929,23.698,21.228,21.075,25.849,23.378,23.250,27.228,23.878,24.235,29.315,26.171,26.662,30.267,27.310,27.888,29.059,25.969,26.488,26.145,22.771,23.115,25.439,22.181,22.507,24.210,20.879,21.583,24.158,21.995,21.911 diff --git a/src/demandlib/bdew/bdew_data/l25.csv b/src/demandlib/bdew/bdew_data/l25.csv new file mode 100644 index 0000000..e0bbf43 --- /dev/null +++ b/src/demandlib/bdew/bdew_data/l25.csv @@ -0,0 +1,98 @@ +,Januar,Januar,Januar,Februar,Februar,Februar,März,März,März,April,April,April,Mai,Mai,Mai,Juni,Juni,Juni,Juli,Juli,Juli,August,August,August,September,September,September,Oktober,Oktober,Oktober,November,November,November,Dezember,Dezember,Dezember +[kWh],SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT +00:00-00:15,18.475,17.075,18.100,18.475,17.075,18.100,18.267,16.783,17.925,17.850,16.200,17.575,17.325,15.925,17.050,16.800,15.650,16.525,16.800,15.650,16.525,16.800,15.650,16.525,17.325,15.925,17.050,17.850,16.200,17.575,18.475,17.075,18.100,18.475,17.075,18.100 +00:15-00:30,18.250,16.500,17.350,18.250,16.500,17.350,17.950,16.225,17.158,17.350,15.675,16.775,16.875,15.413,16.275,16.400,15.150,15.775,16.400,15.150,15.775,16.400,15.150,15.775,16.875,15.413,16.275,17.350,15.675,16.775,18.250,16.500,17.350,18.250,16.500,17.350 +00:30-00:45,18.150,16.075,16.725,18.150,16.075,16.725,17.767,15.825,16.508,17.000,15.325,16.075,16.538,15.025,15.600,16.075,14.725,15.125,16.075,14.725,15.125,16.075,14.725,15.125,16.538,15.025,15.600,17.000,15.325,16.075,18.150,16.075,16.725,18.150,16.075,16.725 +00:45-01:00,18.075,15.750,16.200,18.075,15.750,16.200,17.608,15.517,15.975,16.675,15.050,15.525,16.213,14.700,15.063,15.750,14.350,14.600,15.750,14.350,14.600,15.750,14.350,14.600,16.213,14.700,15.063,16.675,15.050,15.525,18.075,15.750,16.200,18.075,15.750,16.200 +01:00-01:15,17.875,15.525,15.800,17.875,15.525,15.800,17.358,15.283,15.558,16.325,14.800,15.075,15.837,14.425,14.625,15.350,14.050,14.175,15.350,14.050,14.175,15.350,14.050,14.175,15.837,14.425,14.625,16.325,14.800,15.075,17.875,15.525,15.800,17.875,15.525,15.800 +01:15-01:30,17.600,15.350,15.475,17.600,15.350,15.475,17.058,15.083,15.242,15.975,14.550,14.775,15.450,14.175,14.313,14.925,13.800,13.850,14.925,13.800,13.850,14.925,13.800,13.850,15.450,14.175,14.313,15.975,14.550,14.775,17.600,15.350,15.475,17.600,15.350,15.475 +01:30-01:45,17.275,15.200,15.250,17.275,15.200,15.250,16.717,14.908,15.008,15.600,14.325,14.525,15.050,13.962,14.063,14.500,13.600,13.600,14.500,13.600,13.600,14.500,13.600,13.600,15.050,13.962,14.063,15.600,14.325,14.525,17.275,15.200,15.250,17.275,15.200,15.250 +01:45-02:00,16.900,15.050,15.050,16.900,15.050,15.050,16.358,14.742,14.817,15.275,14.125,14.350,14.700,13.775,13.888,14.125,13.425,13.425,14.125,13.425,13.425,14.125,13.425,13.425,14.700,13.775,13.888,15.275,14.125,14.350,16.900,15.050,15.050,16.900,15.050,15.050 +02:00-02:15,16.550,14.875,14.900,16.550,14.875,14.900,16.033,14.567,14.675,15.000,13.950,14.225,14.400,13.625,13.763,13.800,13.300,13.300,13.800,13.300,13.300,13.800,13.300,13.300,14.400,13.625,13.763,15.000,13.950,14.225,16.550,14.875,14.900,16.550,14.875,14.900 +02:15-02:30,16.200,14.700,14.800,16.200,14.700,14.800,15.725,14.408,14.567,14.775,13.825,14.100,14.163,13.500,13.638,13.550,13.175,13.175,13.550,13.175,13.175,13.550,13.175,13.175,14.163,13.500,13.638,14.775,13.825,14.100,16.200,14.700,14.800,16.200,14.700,14.800 +02:30-02:45,15.850,14.500,14.700,15.850,14.500,14.700,15.425,14.242,14.467,14.575,13.725,14.000,13.962,13.400,13.538,13.350,13.075,13.075,13.350,13.075,13.075,13.350,13.075,13.075,13.962,13.400,13.538,14.575,13.725,14.000,15.850,14.500,14.700,15.850,14.500,14.700 +02:45-03:00,15.525,14.350,14.600,15.525,14.350,14.600,15.133,14.125,14.367,14.350,13.675,13.900,13.775,13.325,13.438,13.200,12.975,12.975,13.200,12.975,12.975,13.200,12.975,12.975,13.775,13.325,13.438,14.350,13.675,13.900,15.525,14.350,14.600,15.525,14.350,14.600 +03:00-03:15,15.175,14.250,14.475,15.175,14.250,14.475,14.833,14.050,14.242,14.150,13.650,13.775,13.613,13.250,13.313,13.075,12.850,12.850,13.075,12.850,12.850,13.075,12.850,12.850,13.613,13.250,13.313,14.150,13.650,13.775,15.175,14.250,14.475,15.175,14.250,14.475 +03:15-03:30,14.850,14.175,14.350,14.850,14.175,14.350,14.542,14.000,14.108,13.925,13.650,13.625,13.438,13.188,13.188,12.950,12.725,12.750,12.950,12.725,12.750,12.950,12.725,12.750,13.438,13.188,13.188,13.925,13.650,13.625,14.850,14.175,14.350,14.850,14.175,14.350 +03:30-03:45,14.575,14.150,14.225,14.575,14.150,14.225,14.308,13.992,13.992,13.775,13.675,13.525,13.313,13.150,13.075,12.850,12.625,12.625,12.850,12.625,12.625,12.850,12.625,12.625,13.313,13.150,13.075,13.775,13.675,13.525,14.575,14.150,14.225,14.575,14.150,14.225 +03:45-04:00,14.350,14.125,14.125,14.350,14.125,14.125,14.125,13.975,13.892,13.675,13.675,13.425,13.200,13.088,12.963,12.725,12.500,12.500,12.725,12.500,12.500,12.725,12.500,12.500,13.200,13.088,12.963,13.675,13.675,13.425,14.350,14.125,14.125,14.350,14.125,14.125 +04:00-04:15,14.225,14.100,14.075,14.225,14.100,14.075,14.033,13.942,13.850,13.650,13.625,13.400,13.138,13.013,12.900,12.625,12.400,12.400,12.625,12.400,12.400,12.625,12.400,12.400,13.138,13.013,12.900,13.650,13.625,13.400,14.225,14.100,14.075,14.225,14.100,14.075 +04:15-04:30,14.200,14.125,14.075,14.200,14.125,14.075,14.025,13.942,13.858,13.675,13.575,13.425,13.113,12.962,12.888,12.550,12.350,12.350,12.550,12.350,12.350,12.550,12.350,12.350,13.113,12.962,12.888,13.675,13.575,13.425,14.200,14.125,14.075,14.200,14.125,14.075 +04:30-04:45,14.250,14.200,14.150,14.250,14.200,14.150,14.092,13.992,13.933,13.775,13.575,13.500,13.138,12.975,12.938,12.500,12.375,12.375,12.500,12.375,12.375,12.500,12.375,12.375,13.138,12.975,12.938,13.775,13.575,13.500,14.250,14.200,14.150,14.250,14.200,14.150 +04:45-05:00,14.350,14.350,14.350,14.350,14.350,14.350,14.200,14.125,14.125,13.900,13.675,13.675,13.200,13.088,13.088,12.500,12.500,12.500,12.500,12.500,12.500,12.500,12.500,12.500,13.200,13.088,13.088,13.900,13.675,13.675,14.350,14.350,14.350,14.350,14.350,14.350 +05:00-05:15,14.550,14.625,14.700,14.550,14.625,14.700,14.375,14.375,14.433,14.025,13.875,13.900,13.300,13.338,13.350,12.575,12.800,12.800,12.575,12.800,12.800,12.575,12.800,12.800,13.300,13.338,13.350,14.025,13.875,13.900,14.550,14.625,14.700,14.550,14.625,14.700 +05:15-05:30,14.800,15.125,15.225,14.800,15.125,15.225,14.583,14.858,14.917,14.150,14.325,14.300,13.438,13.800,13.763,12.725,13.275,13.225,12.725,13.275,13.225,12.725,13.275,13.225,13.438,13.800,13.763,14.150,14.325,14.300,14.800,15.125,15.225,14.800,15.125,15.225 +05:30-05:45,15.125,15.925,15.950,15.125,15.925,15.950,14.867,15.642,15.617,14.350,15.075,14.950,13.638,14.538,14.388,12.925,14.000,13.825,12.925,14.000,13.825,12.925,14.000,13.825,13.638,14.538,14.388,14.350,15.075,14.950,15.125,15.925,15.950,15.125,15.925,15.950 +05:45-06:00,15.525,17.125,16.900,15.525,17.125,16.900,15.217,16.817,16.592,14.600,16.200,15.975,13.900,15.625,15.288,13.200,15.050,14.600,13.200,15.050,14.600,13.200,15.050,14.600,13.900,15.625,15.288,14.600,16.200,15.975,15.525,17.125,16.900,15.525,17.125,16.900 +06:00-06:15,16.025,18.825,18.125,16.025,18.825,18.125,15.675,18.492,17.900,14.975,17.825,17.450,14.288,17.138,16.500,13.600,16.450,15.550,13.600,16.450,15.550,13.600,16.450,15.550,14.288,17.138,16.500,14.975,17.825,17.450,16.025,18.825,18.125,16.025,18.825,18.125 +06:15-06:30,16.850,21.025,19.750,16.850,21.025,19.750,16.475,20.667,19.633,15.725,19.950,19.400,15.013,19.125,18.125,14.300,18.300,16.850,14.300,18.300,16.850,14.300,18.300,16.850,15.013,19.125,18.125,15.725,19.950,19.400,16.850,21.025,19.750,16.850,21.025,19.750 +06:30-06:45,18.225,23.700,21.925,18.225,23.700,21.925,17.883,23.350,21.917,17.200,22.650,21.900,16.375,21.650,20.300,15.550,20.650,18.700,15.550,20.650,18.700,15.550,20.650,18.700,16.375,21.650,20.300,17.200,22.650,21.900,18.225,23.700,21.925,18.225,23.700,21.925 +06:45-07:00,20.375,26.850,24.775,20.375,26.850,24.775,20.142,26.542,24.850,19.675,25.925,25.000,18.638,24.775,23.150,17.600,23.625,21.300,17.600,23.625,21.300,17.600,23.625,21.300,18.638,24.775,23.150,19.675,25.925,25.000,20.375,26.850,24.775,20.375,26.850,24.775 +07:00-07:15,23.475,30.475,28.400,23.475,30.475,28.400,23.433,30.258,28.500,23.350,29.825,28.700,21.975,28.513,26.713,20.600,27.200,24.725,20.600,27.200,24.725,20.600,27.200,24.725,21.975,28.513,26.713,23.350,29.825,28.700,23.475,30.475,28.400,23.475,30.475,28.400 +07:15-07:30,27.350,34.450,32.625,27.350,34.450,32.625,27.533,34.325,32.692,27.900,34.075,32.825,26.125,32.625,30.775,24.350,31.175,28.725,24.350,31.175,28.725,24.350,31.175,28.725,26.125,32.625,30.775,27.900,34.075,32.825,27.350,34.450,32.625,27.350,34.450,32.625 +07:30-07:45,31.725,38.750,37.225,31.725,38.750,37.225,32.100,38.650,37.200,32.850,38.450,37.150,30.700,36.850,35.050,28.550,35.250,32.950,28.550,35.250,32.950,28.550,35.250,32.950,30.700,36.850,35.050,32.850,38.450,37.150,31.725,38.750,37.225,31.725,38.750,37.225 +07:45-08:00,36.350,43.300,41.925,36.350,43.300,41.925,36.817,43.067,41.767,37.750,42.600,41.450,35.313,40.863,39.250,32.875,39.125,37.050,32.875,39.125,37.050,32.875,39.125,37.050,35.313,40.863,39.250,37.750,42.600,41.450,36.350,43.300,41.925,36.350,43.300,41.925 +08:00-08:15,40.950,47.925,46.450,40.950,47.925,46.450,41.350,47.392,46.125,42.150,46.325,45.475,39.600,44.425,43.063,37.050,42.525,40.650,37.050,42.525,40.650,37.050,42.525,40.650,39.600,44.425,43.063,42.150,46.325,45.475,40.950,47.925,46.450,40.950,47.925,46.450 +08:15-08:30,45.250,52.150,50.425,45.250,52.150,50.425,45.433,51.183,49.875,45.800,49.250,48.775,43.250,47.188,46.125,40.700,45.125,43.475,40.700,45.125,43.475,40.700,45.125,43.475,43.250,47.188,46.125,45.800,49.250,48.775,45.250,52.150,50.425,45.250,52.150,50.425 +08:30-08:45,48.900,55.350,53.400,48.900,55.350,53.400,48.742,53.950,52.550,48.425,51.150,50.850,45.938,48.900,48.000,43.450,46.650,45.150,43.450,46.650,45.150,43.450,46.650,45.150,45.938,48.900,48.000,48.425,51.150,50.850,48.900,55.350,53.400,48.900,55.350,53.400 +08:45-09:00,51.650,56.975,54.875,51.650,56.975,54.875,51.033,55.200,53.642,49.800,51.650,51.175,47.363,49.213,48.287,44.925,46.775,45.400,44.925,46.775,45.400,44.925,46.775,45.400,47.363,49.213,48.287,49.800,51.650,51.175,51.650,56.975,54.875,51.650,56.975,54.875 +09:00-09:15,53.225,56.600,54.625,53.225,56.600,54.625,52.058,54.600,52.917,49.725,50.600,49.500,47.313,48.000,46.763,44.900,45.400,44.025,44.900,45.400,44.025,44.900,45.400,44.025,47.313,48.000,46.763,49.725,50.600,49.500,53.225,56.600,54.625,53.225,56.600,54.625 +09:15-09:30,53.650,54.650,52.900,53.650,54.650,52.900,51.942,52.550,50.725,48.525,48.350,46.375,46.125,45.650,43.950,43.725,42.950,41.525,43.725,42.950,41.525,43.725,42.950,41.525,46.125,45.650,43.950,48.525,48.350,46.375,53.650,54.650,52.900,53.650,54.650,52.900 +09:30-09:45,53.025,51.650,50.200,53.025,51.650,50.200,50.867,49.558,47.683,46.550,45.375,42.650,44.175,42.700,40.588,41.800,40.025,38.525,41.800,40.025,38.525,41.800,40.025,38.525,44.175,42.700,40.588,46.550,45.375,42.650,53.025,51.650,50.200,53.025,51.650,50.200 +09:45-10:00,51.400,48.175,47.000,51.400,48.175,47.000,49.008,46.167,44.375,44.225,42.150,39.125,41.913,39.713,37.388,39.600,37.275,35.650,39.600,37.275,35.650,39.600,37.275,35.650,41.913,39.713,37.388,44.225,42.150,39.125,51.400,48.175,47.000,51.400,48.175,47.000 +10:00-10:15,48.975,44.725,43.750,48.975,44.725,43.750,46.617,42.858,41.325,41.900,39.125,36.475,39.713,37.163,34.963,37.525,35.200,33.450,37.525,35.200,33.450,37.525,35.200,33.450,39.713,37.163,34.963,41.900,39.125,36.475,48.975,44.725,43.750,48.975,44.725,43.750 +10:15-10:30,46.250,41.750,40.850,46.250,41.750,40.850,44.133,40.033,38.817,39.900,36.600,34.750,37.875,35.250,33.400,35.850,33.900,32.050,35.850,33.900,32.050,35.850,33.900,32.050,37.875,35.250,33.400,39.900,36.600,34.750,46.250,41.750,40.850,46.250,41.750,40.850 +10:30-10:45,43.850,39.525,38.625,43.850,39.525,38.625,42.067,37.983,37.042,38.500,34.900,33.875,36.638,34.162,32.663,34.775,33.425,31.450,34.775,33.425,31.450,34.775,33.425,31.450,36.638,34.162,32.663,38.500,34.900,33.875,43.850,39.525,38.625,43.850,39.525,38.625 +10:45-11:00,42.375,38.450,37.525,42.375,38.450,37.525,40.908,37.058,36.283,37.975,34.275,33.800,36.238,34.037,32.763,34.500,33.800,31.725,34.500,33.800,31.725,34.500,33.800,31.725,36.238,34.037,32.763,37.975,34.275,33.800,42.375,38.450,37.525,42.375,38.450,37.525 +11:00-11:15,42.225,38.650,37.675,42.225,38.650,37.675,40.975,37.383,36.575,38.475,34.850,34.375,36.788,34.913,33.588,35.100,34.975,32.800,35.100,34.975,32.800,35.100,34.975,32.800,36.788,34.913,33.588,38.475,34.850,34.375,42.225,38.650,37.675,42.225,38.650,37.675 +11:15-11:30,42.825,39.550,38.525,42.825,39.550,38.525,41.708,38.392,37.408,39.475,36.075,35.175,37.788,36.238,34.662,36.100,36.400,34.150,36.100,36.400,34.150,36.100,36.400,34.150,37.788,36.238,34.662,39.475,36.075,35.175,42.825,39.550,38.525,42.825,39.550,38.525 +11:30-11:45,43.375,40.375,39.350,43.375,40.375,39.350,42.358,39.317,38.158,40.325,37.200,35.775,38.600,37.325,35.500,36.875,37.450,35.225,36.875,37.450,35.225,36.875,37.450,35.225,38.600,37.325,35.500,40.325,37.200,35.775,43.375,40.375,39.350,43.375,40.375,39.350 +11:45-12:00,43.075,40.300,39.375,43.075,40.300,39.375,42.150,39.375,38.133,40.300,37.525,35.650,38.563,37.525,35.537,36.825,37.525,35.425,36.825,37.525,35.425,36.825,37.525,35.425,38.563,37.525,35.537,40.300,37.525,35.650,43.075,40.300,39.375,43.075,40.300,39.375 +12:00-12:15,41.350,38.800,38.050,41.350,38.800,38.050,40.550,38.033,36.883,38.950,36.500,34.550,37.225,36.325,34.450,35.500,36.150,34.350,35.500,36.150,34.350,35.500,36.150,34.350,37.225,36.325,34.450,38.950,36.500,34.550,41.350,38.800,38.050,41.350,38.800,38.050 +12:15-12:30,38.625,36.350,35.800,38.625,36.350,35.800,37.975,35.742,34.775,36.675,34.525,32.725,34.975,34.175,32.538,33.275,33.825,32.350,33.275,33.825,32.350,33.275,33.825,32.350,34.975,34.175,32.538,36.675,34.525,32.725,38.625,36.350,35.800,38.625,36.350,35.800 +12:30-12:45,35.500,33.600,33.175,35.500,33.600,33.175,34.992,33.108,32.325,33.975,32.125,30.625,32.325,31.625,30.300,30.675,31.125,29.975,30.675,31.125,29.975,30.675,31.125,29.975,32.325,31.625,30.300,33.975,32.125,30.625,35.500,33.600,33.175,35.500,33.600,33.175 +12:45-13:00,32.650,31.250,30.800,32.650,31.250,30.800,32.267,30.792,30.108,31.500,29.875,28.725,29.875,29.300,28.263,28.250,28.725,27.800,28.250,28.725,27.800,28.250,28.725,27.800,29.875,29.300,28.263,31.500,29.875,28.725,32.650,31.250,30.800,32.650,31.250,30.800 +13:00-13:15,30.525,29.850,29.125,30.525,29.850,29.125,30.225,29.308,28.533,29.625,28.225,27.350,28.025,27.663,26.775,26.425,27.100,26.200,26.425,27.100,26.200,26.425,27.100,26.200,28.025,27.663,26.775,29.625,28.225,27.350,30.525,29.850,29.125,30.525,29.850,29.125 +13:15-13:30,29.025,29.225,28.125,29.025,29.225,28.125,28.775,28.533,27.575,28.275,27.150,26.475,26.713,26.663,25.838,25.150,26.175,25.200,25.150,26.175,25.200,25.150,26.175,25.200,26.713,26.663,25.838,28.275,27.150,26.475,29.025,29.225,28.125,29.025,29.225,28.125 +13:30-13:45,27.900,29.025,27.575,27.900,29.025,27.575,27.667,28.158,27.042,27.200,26.425,25.975,25.700,26.063,25.300,24.200,25.700,24.625,24.200,25.700,24.625,24.200,25.700,24.625,25.700,26.063,25.300,27.200,26.425,25.975,27.900,29.025,27.575,27.900,29.025,27.575 +13:45-14:00,26.850,28.950,27.325,26.850,28.950,27.325,26.625,27.942,26.783,26.175,25.925,25.700,24.788,25.700,25.013,23.400,25.475,24.325,23.400,25.475,24.325,23.400,25.475,24.325,24.788,25.700,25.013,26.175,25.925,25.700,26.850,28.950,27.325,26.850,28.950,27.325 +14:00-14:15,25.725,28.700,27.200,25.725,28.700,27.200,25.483,27.633,26.642,25.000,25.500,25.525,23.788,25.388,24.825,22.575,25.275,24.125,22.575,25.275,24.125,22.575,25.275,24.125,23.788,25.388,24.825,25.000,25.500,25.525,25.725,28.700,27.200,25.725,28.700,27.200 +14:15-14:30,24.550,28.300,27.125,24.550,28.300,27.125,24.308,27.242,26.558,23.825,25.125,25.425,22.800,25.113,24.738,21.775,25.100,24.050,21.775,25.100,24.050,21.775,25.100,24.050,22.800,25.113,24.738,23.825,25.125,25.425,24.550,28.300,27.125,24.550,28.300,27.125 +14:30-14:45,23.500,27.825,27.100,23.500,27.825,27.100,23.258,26.817,26.517,22.775,24.800,25.350,21.938,24.863,24.700,21.100,24.925,24.050,21.100,24.925,24.050,21.100,24.925,24.050,21.938,24.863,24.700,22.775,24.800,25.350,23.500,27.825,27.100,23.500,27.825,27.100 +14:45-15:00,22.700,27.325,27.100,22.700,27.325,27.100,22.467,26.400,26.483,22.000,24.550,25.250,21.300,24.663,24.663,20.600,24.775,24.075,20.600,24.775,24.075,20.600,24.775,24.075,21.300,24.663,24.663,22.000,24.550,25.250,22.700,27.325,27.100,22.700,27.325,27.100 +15:00-15:15,22.225,26.875,27.075,22.225,26.875,27.075,22.033,26.033,26.417,21.650,24.350,25.100,21.013,24.500,24.638,20.375,24.650,24.175,20.375,24.650,24.175,20.375,24.650,24.175,21.013,24.500,24.638,21.650,24.350,25.100,22.225,26.875,27.075,22.225,26.875,27.075 +15:15-15:30,22.050,26.525,27.075,22.050,26.525,27.075,21.892,25.742,26.375,21.575,24.175,24.975,20.950,24.350,24.613,20.325,24.525,24.250,20.325,24.525,24.250,20.325,24.525,24.250,20.950,24.350,24.613,21.575,24.175,24.975,22.050,26.525,27.075,22.050,26.525,27.075 +15:30-15:45,22.000,26.350,27.150,22.000,26.350,27.150,21.892,25.575,26.383,21.675,24.025,24.850,21.013,24.225,24.575,20.350,24.425,24.300,20.350,24.425,24.300,20.350,24.425,24.300,21.013,24.225,24.575,21.675,24.025,24.850,22.000,26.350,27.150,22.000,26.350,27.150 +15:45-16:00,22.000,26.400,27.325,22.000,26.400,27.325,21.925,25.550,26.475,21.775,23.850,24.775,21.075,24.088,24.550,20.375,24.325,24.325,20.375,24.325,24.325,20.375,24.325,24.325,21.075,24.088,24.550,21.775,23.850,24.775,22.000,26.400,27.325,22.000,26.400,27.325 +16:00-16:15,21.975,26.725,27.650,21.975,26.725,27.650,21.908,25.708,26.700,21.775,23.675,24.800,21.050,23.950,24.525,20.325,24.225,24.250,20.325,24.225,24.250,20.325,24.225,24.250,21.050,23.950,24.525,21.775,23.675,24.800,21.975,26.725,27.650,21.975,26.725,27.650 +16:15-16:30,22.125,27.450,28.275,22.125,27.450,28.275,22.025,26.175,27.175,21.825,23.625,24.975,21.075,23.925,24.588,20.325,24.225,24.200,20.325,24.225,24.200,20.325,24.225,24.200,21.075,23.925,24.588,21.825,23.625,24.975,22.125,27.450,28.275,22.125,27.450,28.275 +16:30-16:45,22.725,28.600,29.350,22.725,28.600,29.350,22.525,27.050,28.033,22.125,23.950,25.400,21.288,24.163,24.838,20.450,24.375,24.275,20.450,24.375,24.275,20.450,24.375,24.275,21.288,24.163,24.838,22.125,23.950,25.400,22.725,28.600,29.350,22.725,28.600,29.350 +16:45-17:00,24.075,30.325,31.025,24.075,30.325,31.025,23.692,28.475,29.408,22.925,24.775,26.175,21.888,24.775,25.363,20.850,24.775,24.550,20.850,24.775,24.550,20.850,24.775,24.550,21.888,24.775,25.363,22.925,24.775,26.175,24.075,30.325,31.025,24.075,30.325,31.025 +17:00-17:15,26.375,32.675,33.425,26.375,32.675,33.425,25.700,30.550,31.400,24.350,26.300,27.350,23.000,25.913,26.250,21.650,25.525,25.150,21.650,25.525,25.150,21.650,25.525,25.150,23.000,25.913,26.250,24.350,26.300,27.350,26.375,32.675,33.425,26.375,32.675,33.425 +17:15-17:30,29.450,35.600,36.500,29.450,35.600,36.500,28.442,33.233,34.017,26.425,28.500,29.050,24.675,27.600,27.625,22.925,26.700,26.200,22.925,26.700,26.200,22.925,26.700,26.200,24.675,27.600,27.625,26.425,28.500,29.050,29.450,35.600,36.500,29.450,35.600,36.500 +17:30-17:45,33.175,39.025,40.125,33.175,39.025,40.125,31.800,36.458,37.217,29.050,31.325,31.400,26.925,29.875,29.638,24.800,28.425,27.875,24.800,28.425,27.875,24.800,28.425,27.875,26.925,29.875,29.638,29.050,31.325,31.400,33.175,39.025,40.125,33.175,39.025,40.125 +17:45-18:00,37.275,42.850,44.225,37.275,42.850,44.225,35.583,40.142,40.983,32.200,34.725,34.500,29.763,32.763,32.413,27.325,30.800,30.325,27.325,30.800,30.325,27.325,30.800,30.325,29.763,32.763,32.413,32.200,34.725,34.500,37.275,42.850,44.225,37.275,42.850,44.225 +18:00-18:15,41.600,46.950,48.625,41.600,46.950,48.625,39.642,44.175,45.208,35.725,38.625,38.375,33.125,36.238,35.988,30.525,33.850,33.600,30.525,33.850,33.600,30.525,33.850,33.600,33.125,36.238,35.988,35.725,38.625,38.375,41.600,46.950,48.625,41.600,46.950,48.625 +18:15-18:30,45.850,51.025,52.875,45.850,51.025,52.875,43.675,48.208,49.433,39.325,42.575,42.550,36.638,39.900,39.888,33.950,37.225,37.225,33.950,37.225,37.225,33.950,37.225,37.225,36.638,39.900,39.888,39.325,42.575,42.550,45.850,51.025,52.875,45.850,51.025,52.875 +18:30-18:45,49.750,54.625,56.525,49.750,54.625,56.525,47.392,51.800,53.167,42.675,46.150,46.450,39.912,43.300,43.550,37.150,40.450,40.650,37.150,40.450,40.650,37.150,40.450,40.650,39.912,43.300,43.550,42.675,46.150,46.450,49.750,54.625,56.525,49.750,54.625,56.525 +18:45-19:00,53.025,57.425,59.050,53.025,57.425,59.050,50.483,54.567,55.883,45.400,48.850,49.550,42.500,45.963,46.425,39.600,43.075,43.300,39.600,43.075,43.300,39.600,43.075,43.300,42.500,45.963,46.425,45.400,48.850,49.550,53.025,57.425,59.050,53.025,57.425,59.050 +19:00-19:15,55.375,59.050,60.100,55.375,59.050,60.100,52.642,56.150,57.192,47.175,50.350,51.375,44.037,47.525,48.050,40.900,44.700,44.725,40.900,44.700,44.725,40.900,44.700,44.725,44.037,47.525,48.050,47.175,50.350,51.375,55.375,59.050,60.100,55.375,59.050,60.100 +19:15-19:30,56.550,59.350,59.675,56.550,59.350,59.675,53.675,56.458,57.075,47.925,50.675,51.875,44.513,47.975,48.413,41.100,45.275,44.950,41.100,45.275,44.950,41.100,45.275,44.950,44.513,47.975,48.413,47.925,50.675,51.875,56.550,59.350,59.675,56.550,59.350,59.675 +19:30-19:45,56.225,58.225,57.875,56.225,58.225,57.875,53.367,55.475,55.642,47.650,49.975,51.175,44.013,47.388,47.650,40.375,44.800,44.125,40.375,44.800,44.125,40.375,44.800,44.125,44.013,47.388,47.650,47.650,49.975,51.175,56.225,58.225,57.875,56.225,58.225,57.875 +19:45-20:00,54.200,55.575,54.875,54.200,55.575,54.875,51.575,53.183,53.025,46.325,48.400,49.325,42.613,45.850,45.850,38.900,43.300,42.375,38.900,43.300,42.375,38.900,43.300,42.375,42.613,45.850,45.850,46.325,48.400,49.325,54.200,55.575,54.875,54.200,55.575,54.875 +20:00-20:15,50.325,51.425,50.850,50.325,51.425,50.850,48.200,49.650,49.392,43.950,46.100,46.475,40.400,43.475,43.188,36.850,40.850,39.900,36.850,40.850,39.900,36.850,40.850,39.900,40.400,43.475,43.188,43.950,46.100,46.475,50.325,51.425,50.850,50.325,51.425,50.850 +20:15-20:30,45.325,46.375,46.225,45.325,46.375,46.225,43.858,45.367,45.158,40.925,43.350,43.025,37.688,40.600,40.025,34.450,37.850,37.025,34.450,37.850,37.025,34.450,37.850,37.025,37.688,40.600,40.025,40.925,43.350,43.025,45.325,46.375,46.225,45.325,46.375,46.225 +20:30-20:45,40.075,41.175,41.525,40.075,41.175,41.525,39.258,40.917,40.825,37.625,40.400,39.425,34.800,37.563,36.763,31.975,34.725,34.100,31.975,34.725,34.100,31.975,34.725,34.100,34.800,37.563,36.763,37.625,40.400,39.425,40.075,41.175,41.525,40.075,41.175,41.525 +20:45-21:00,35.425,36.600,37.275,35.425,36.600,37.275,35.117,36.908,36.892,34.500,37.525,36.125,32.075,34.738,33.813,29.650,31.950,31.500,29.650,31.950,31.500,29.650,31.950,31.500,32.075,34.738,33.813,34.500,37.525,36.125,35.425,36.600,37.275,35.425,36.600,37.275 +21:00-21:15,32.075,33.150,33.900,32.075,33.150,33.900,32.000,33.733,33.750,31.850,34.900,33.450,29.763,32.388,31.463,27.675,29.875,29.475,27.675,29.875,29.475,27.675,29.875,29.475,29.763,32.388,31.463,31.850,34.900,33.450,32.075,33.150,33.900,32.075,33.150,33.900 +21:15-21:30,29.825,30.750,31.300,29.825,30.750,31.300,29.783,31.358,31.325,29.700,32.575,31.375,27.862,30.475,29.675,26.025,28.375,27.975,26.025,28.375,27.975,26.025,28.375,27.975,27.862,30.475,29.675,29.700,32.575,31.375,29.825,30.750,31.300,29.825,30.750,31.300 +21:30-21:45,28.300,29.075,29.325,28.300,29.075,29.325,28.167,29.558,29.450,27.900,30.525,29.700,26.263,28.862,28.237,24.625,27.200,26.775,24.625,27.200,26.775,24.625,27.200,26.775,26.263,28.862,28.237,27.900,30.525,29.700,28.300,29.075,29.325,28.300,29.075,29.325 +21:45-22:00,27.100,27.800,27.800,27.100,27.800,27.800,26.867,28.108,27.950,26.400,28.725,28.250,24.900,27.450,26.975,23.400,26.175,25.700,23.400,26.175,25.700,23.400,26.175,25.700,24.900,27.450,26.975,26.400,28.725,28.250,27.100,27.800,27.800,27.100,27.800,27.800 +22:00-22:15,25.925,26.650,26.525,25.925,26.650,26.525,25.642,26.800,26.658,25.075,27.100,26.925,23.650,26.075,25.775,22.225,25.050,24.625,22.225,25.050,24.625,22.225,25.050,24.625,23.650,26.075,25.775,25.075,27.100,26.925,25.925,26.650,26.525,25.925,26.650,26.525 +22:15-22:30,24.700,25.525,25.425,24.700,25.525,25.425,24.425,25.558,25.492,23.875,25.625,25.625,22.513,24.738,24.575,21.150,23.850,23.525,21.150,23.850,23.525,21.150,23.850,23.525,22.513,24.738,24.575,23.875,25.625,25.625,24.700,25.525,25.425,24.700,25.525,25.425 +22:30-22:45,23.475,24.400,24.425,23.475,24.400,24.425,23.225,24.350,24.417,22.725,24.250,24.400,21.438,23.425,23.400,20.150,22.600,22.400,20.150,22.600,22.400,20.150,22.600,22.400,21.438,23.425,23.400,22.725,24.250,24.400,23.475,24.400,24.425,23.475,24.400,24.425 +22:45-23:00,22.225,23.150,23.400,22.225,23.150,23.400,21.992,23.075,23.317,21.525,22.925,23.150,20.375,22.113,22.225,19.225,21.300,21.300,19.225,21.300,21.300,19.225,21.300,21.300,20.375,22.113,22.225,21.525,22.925,23.150,22.225,23.150,23.400,22.225,23.150,23.400 +23:00-23:15,21.000,21.800,22.275,21.000,21.800,22.275,20.758,21.733,22.158,20.275,21.600,21.925,19.313,20.800,21.088,18.350,20.000,20.250,18.350,20.000,20.250,18.350,20.000,20.250,19.313,20.800,21.088,20.275,21.600,21.925,21.000,21.800,22.275,21.000,21.800,22.275 +23:15-23:30,19.825,20.400,21.150,19.825,20.400,21.150,19.558,20.367,21.008,19.025,20.300,20.725,18.300,19.525,19.975,17.575,18.750,19.225,17.575,18.750,19.225,17.575,18.750,19.225,18.300,19.525,19.975,19.025,20.300,20.725,19.825,20.400,21.150,19.825,20.400,21.150 +23:30-23:45,18.750,19.125,20.025,18.750,19.125,20.025,18.458,19.117,19.875,17.875,19.100,19.575,17.363,18.363,18.925,16.850,17.625,18.275,16.850,17.625,18.275,16.850,17.625,18.275,17.363,18.363,18.925,17.875,19.100,19.575,18.750,19.125,20.025,18.750,19.125,20.025 +23:45-00:00,17.825,18.075,19.000,17.825,18.075,19.000,17.517,18.075,18.842,16.900,18.075,18.525,16.550,17.375,17.950,16.200,16.675,17.375,16.200,16.675,17.375,16.200,16.675,17.375,16.550,17.375,17.950,16.900,18.075,18.525,17.825,18.075,19.000,17.825,18.075,19.000 diff --git a/src/demandlib/bdew/bdew_data/p24.csv b/src/demandlib/bdew/bdew_data/p24.csv new file mode 100644 index 0000000..571340e --- /dev/null +++ b/src/demandlib/bdew/bdew_data/p24.csv @@ -0,0 +1,98 @@ +,Januar,Januar,Januar,Februar,Februar,Februar,März,März,März,April,April,April,Mai,Mai,Mai,Juni,Juni,Juni,Juli,Juli,Juli,August,August,August,September,September,September,Oktober,Oktober,Oktober,November,November,November,Dezember,Dezember,Dezember +[kWh],SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT +00:00-00:15,36.049,35.574,32.800,36.724,32.804,31.606,32.636,32.049,29.429,31.553,33.931,29.786,24.391,25.588,22.005,26.624,26.048,25.140,27.064,28.640,24.854,26.738,26.744,25.278,25.475,25.794,24.093,28.924,28.605,26.458,33.444,34.331,30.652,37.479,37.171,37.357 +00:15-00:30,36.417,33.883,33.127,35.016,33.262,30.536,32.478,32.532,30.155,29.177,31.793,29.637,24.977,23.889,21.581,25.617,26.148,23.933,26.840,28.070,24.301,25.779,25.624,25.369,24.664,24.614,23.575,28.624,27.664,25.844,33.417,34.033,30.770,37.531,37.777,36.664 +00:30-00:45,33.767,33.192,32.120,34.800,34.435,30.504,29.628,30.314,29.708,29.196,29.258,28.264,24.342,23.866,21.812,23.998,27.136,23.034,25.609,25.033,23.861,26.348,25.139,24.124,23.909,24.671,22.943,26.482,26.460,24.991,31.354,32.256,29.603,37.143,36.164,35.490 +00:45-01:00,33.027,31.410,31.070,31.947,33.386,29.502,32.381,32.535,29.462,28.716,29.097,28.495,23.533,23.053,21.449,25.119,24.830,23.625,28.152,25.584,23.159,25.614,24.868,23.263,24.065,23.774,21.997,26.551,25.845,25.137,31.548,31.591,29.373,35.952,34.738,34.705 +01:00-01:15,33.168,30.653,30.886,34.087,32.972,29.317,31.927,29.993,29.063,28.987,28.906,28.205,23.005,22.405,21.665,24.510,25.684,23.073,24.852,23.947,22.576,25.722,24.744,23.071,23.589,23.182,22.287,26.860,25.133,24.577,31.798,31.930,29.127,35.179,33.878,34.297 +01:15-01:30,32.387,31.324,30.690,32.123,30.758,29.907,30.924,31.439,29.286,28.592,30.570,27.960,23.663,22.783,21.249,23.034,22.745,22.456,24.565,25.655,23.176,24.576,24.142,22.836,23.053,23.058,22.117,25.953,25.270,24.422,30.454,31.032,28.671,34.269,34.216,33.695 +01:30-01:45,32.208,30.592,30.975,31.380,31.329,28.830,31.252,30.515,29.409,30.033,28.434,29.572,21.681,22.568,21.560,24.630,22.474,22.812,26.393,24.471,23.025,26.654,23.075,22.558,22.685,21.980,21.573,26.163,23.586,23.961,30.130,29.972,28.455,33.788,33.029,33.613 +01:45-02:00,30.486,30.816,29.994,30.822,30.571,29.016,31.857,28.688,28.543,28.706,29.335,27.760,22.869,20.960,20.857,21.065,22.486,22.061,24.175,24.866,22.892,24.511,24.130,23.001,22.469,21.532,21.871,25.885,23.212,23.817,29.282,30.293,28.546,32.922,33.266,33.744 +02:00-02:15,30.652,29.924,30.763,30.111,30.116,29.325,32.367,29.686,29.071,28.813,28.127,27.960,23.318,23.055,21.799,22.777,21.304,23.328,24.429,24.825,22.202,23.599,22.670,22.658,21.340,21.639,21.457,25.848,23.920,23.911,29.814,30.120,28.634,32.734,32.663,33.754 +02:15-02:30,31.074,30.117,30.004,29.581,30.939,29.330,32.176,31.712,29.399,28.209,29.333,27.931,20.877,20.760,22.015,22.269,24.252,22.235,24.498,23.785,23.167,25.158,25.067,23.075,21.698,21.477,21.524,25.169,23.407,23.850,29.644,30.007,28.754,32.790,32.202,33.493 +02:30-02:45,30.731,28.317,29.762,30.283,29.819,29.534,32.620,29.038,29.608,27.042,28.784,27.357,20.627,21.620,21.292,22.767,23.584,22.235,23.903,25.710,23.200,23.932,23.908,22.919,21.640,21.048,21.925,25.137,23.166,23.667,29.478,29.258,28.106,32.178,31.882,32.940 +02:45-03:00,31.518,29.063,29.934,30.401,29.693,29.045,31.547,30.139,29.857,27.682,28.021,28.092,21.026,21.230,21.182,24.016,21.331,21.893,23.579,25.152,22.495,24.069,24.590,23.605,21.145,21.703,21.999,25.086,23.447,23.491,30.477,28.817,28.189,32.190,31.773,32.976 +03:00-03:15,29.845,30.073,29.753,29.111,31.480,29.656,31.866,29.424,30.183,27.929,28.924,28.703,23.359,22.411,21.377,22.883,21.681,22.513,22.409,23.580,23.248,23.943,27.172,22.435,21.695,20.711,21.098,24.559,23.223,23.578,30.674,28.971,28.681,32.492,32.648,33.147 +03:15-03:30,30.868,29.608,29.685,29.885,29.900,29.222,30.034,28.811,29.940,27.311,30.335,28.552,20.195,21.418,21.152,22.193,20.716,21.939,22.526,22.799,22.628,25.516,23.795,22.640,22.028,21.063,21.402,24.539,24.035,23.400,30.864,29.445,28.745,31.471,32.259,32.965 +03:30-03:45,31.429,28.362,29.397,29.879,29.977,29.794,30.418,30.821,30.382,28.633,30.183,28.969,20.003,21.723,21.030,21.075,20.511,21.148,23.120,22.735,22.455,23.775,23.400,22.879,21.215,20.933,21.389,24.173,24.017,23.632,30.278,29.924,28.988,32.230,31.608,33.263 +03:45-04:00,30.516,29.087,29.770,29.435,30.524,29.451,31.816,30.370,30.638,27.620,31.091,29.327,19.534,22.282,21.861,21.463,20.281,21.360,23.441,22.974,22.903,23.236,22.957,22.629,21.507,21.288,21.287,24.223,23.640,23.658,30.319,28.578,28.550,32.352,31.298,32.677 +04:00-04:15,30.749,30.428,31.472,30.764,30.777,30.486,33.598,30.315,31.023,29.739,30.905,29.659,20.857,23.130,22.018,21.931,22.759,22.635,24.827,24.712,23.278,25.608,23.896,23.551,22.727,21.686,21.995,25.407,23.410,24.067,30.655,29.208,29.727,33.723,32.454,34.116 +04:15-04:30,30.880,28.875,30.647,31.817,31.462,30.324,31.955,30.041,31.345,30.163,30.333,30.028,22.145,22.547,22.994,23.947,22.784,22.571,24.123,24.576,23.821,24.027,23.355,24.322,22.651,22.380,22.509,24.849,23.910,24.776,32.323,30.299,29.845,32.683,31.760,34.090 +04:30-04:45,31.237,29.118,30.492,30.566,32.399,30.879,32.037,30.215,30.921,29.115,31.731,29.852,21.745,22.617,23.141,23.707,22.448,23.761,23.557,25.062,24.828,24.981,26.802,24.411,22.854,21.629,22.829,25.583,23.440,25.732,31.623,29.337,30.108,32.720,32.455,33.987 +04:45-05:00,30.978,28.502,30.983,31.062,31.427,31.278,31.359,29.533,31.302,29.307,30.034,29.872,21.752,23.084,23.501,23.087,21.605,23.292,25.680,23.583,24.001,24.121,24.593,24.324,23.046,21.529,23.035,25.043,24.238,25.840,30.469,29.406,30.618,31.687,32.249,34.627 +05:00-05:15,31.701,29.588,32.825,29.591,31.028,33.539,32.038,32.168,34.849,29.993,31.080,33.633,20.786,22.799,26.136,22.657,21.845,26.222,26.588,24.648,25.444,23.401,25.291,25.815,23.609,21.097,26.116,25.742,24.818,28.341,31.968,29.682,32.480,33.616,32.654,36.264 +05:15-05:30,31.090,30.280,34.358,30.990,33.121,34.025,34.268,31.624,35.765,31.103,33.760,34.200,22.572,22.993,25.669,21.477,20.102,23.793,25.566,23.698,24.943,24.341,24.445,26.502,22.464,22.093,26.569,26.118,25.279,28.710,32.638,29.955,32.904,34.634,33.084,36.679 +05:30-05:45,33.179,30.503,35.269,32.032,32.147,35.414,33.400,32.443,37.966,33.939,32.931,37.003,22.788,22.505,25.800,19.964,16.775,22.078,23.554,23.479,24.323,28.021,25.174,27.868,24.393,22.912,28.013,27.145,26.306,30.025,33.562,31.679,34.782,34.614,34.195,37.943 +05:45-06:00,33.052,31.333,36.734,33.536,34.087,36.761,36.755,33.561,39.687,32.593,33.313,36.819,19.990,18.566,25.083,15.604,13.598,20.438,22.175,20.217,22.900,25.789,25.184,28.004,24.156,23.430,30.286,26.944,26.570,31.028,34.373,32.631,36.155,35.427,35.568,39.738 +06:00-06:15,33.101,31.187,39.263,33.945,31.499,39.400,35.564,33.953,41.596,32.748,31.787,39.158,17.883,17.349,23.087,14.570,11.539,19.156,18.656,17.672,21.202,24.945,23.929,30.103,24.831,24.356,32.970,27.758,26.245,33.841,34.545,33.188,39.929,35.590,34.970,42.173 +06:15-06:30,34.232,30.505,41.355,35.026,32.912,41.085,35.157,33.005,45.106,31.736,32.625,40.530,14.580,16.209,21.997,13.023,10.794,18.005,17.894,15.256,19.102,22.974,24.431,29.496,25.075,24.775,35.467,27.542,27.260,35.215,36.031,33.728,42.036,36.646,35.646,44.450 +06:30-06:45,34.936,32.258,42.126,35.630,34.892,42.690,36.669,36.305,43.694,31.812,33.398,38.555,12.469,15.212,20.138,13.219,9.410,18.299,18.360,13.568,19.338,21.020,23.586,27.627,26.962,26.069,36.664,29.446,27.596,37.620,35.988,35.848,43.197,37.122,36.452,45.622 +06:45-07:00,35.447,32.360,42.162,36.487,34.976,41.638,33.010,34.352,41.567,29.692,29.964,35.473,11.589,11.608,16.793,11.523,8.526,16.809,14.546,11.950,15.929,19.135,19.191,23.350,26.816,26.157,35.488,31.605,29.930,37.407,37.399,34.839,43.536,38.641,36.619,45.282 +07:00-07:15,36.892,31.880,42.331,37.156,34.619,41.885,32.944,29.114,37.983,28.991,28.847,32.072,10.612,12.093,15.197,11.815,8.648,15.047,15.509,12.054,14.944,18.578,18.554,20.373,26.500,24.393,33.249,33.689,31.574,37.967,39.561,35.686,43.392,39.102,38.106,46.055 +07:15-07:30,38.897,33.676,42.349,37.734,35.992,41.087,31.579,26.441,33.394,26.884,26.375,27.909,11.218,10.799,13.781,11.296,9.640,13.255,15.103,9.965,14.365,15.907,16.754,18.639,24.809,21.478,29.154,34.802,31.323,37.742,41.605,38.123,43.181,41.121,38.421,46.614 +07:30-07:45,41.738,35.200,41.686,40.430,37.247,39.859,28.302,25.987,28.735,26.997,24.510,23.831,11.569,10.897,12.381,9.927,8.665,12.603,14.770,9.477,12.596,19.457,13.687,15.675,23.634,21.987,25.174,36.920,31.433,38.157,43.557,39.181,42.039,43.145,42.128,45.882 +07:45-08:00,45.545,36.601,43.807,38.376,36.970,38.794,28.079,22.920,26.717,26.554,21.403,21.099,11.647,10.649,12.946,11.446,7.580,12.350,14.376,10.295,12.507,18.292,11.564,14.656,21.418,20.393,21.895,36.303,30.742,35.696,43.791,37.062,39.701,44.964,44.507,47.330 +08:00-08:15,46.004,38.955,45.265,39.325,36.070,35.827,27.044,23.761,24.015,26.421,21.884,19.830,11.405,13.678,11.675,11.929,7.947,11.310,14.545,11.280,12.300,19.691,14.677,14.094,20.233,19.925,19.850,35.937,30.396,33.925,42.461,37.222,37.962,47.372,46.043,47.866 +08:15-08:30,46.592,42.111,44.172,36.748,33.686,32.420,24.847,21.562,21.567,26.151,21.069,17.170,12.051,11.380,10.064,12.123,8.889,10.409,12.596,11.595,10.692,19.431,14.264,12.718,16.617,20.363,17.553,36.053,29.257,30.457,39.769,35.231,35.137,51.830,47.689,47.629 +08:30-08:45,48.814,42.335,43.001,31.470,32.841,29.428,22.512,20.462,18.655,24.433,19.893,15.755,10.192,11.184,9.205,11.659,10.782,9.817,12.253,9.889,9.302,20.021,13.700,12.103,16.014,21.284,15.385,33.999,26.410,27.974,37.268,34.394,33.178,53.126,50.398,47.107 +08:45-09:00,47.045,41.188,40.188,28.165,31.714,27.359,20.696,19.746,16.747,23.731,17.690,14.196,10.543,10.016,8.639,11.594,9.337,8.833,12.330,10.673,9.725,18.369,13.193,10.883,15.263,20.521,14.136,31.781,25.483,24.467,34.199,32.921,30.595,53.295,51.671,46.177 +09:00-09:15,45.726,41.465,39.070,27.252,35.309,24.838,19.815,18.370,15.247,22.654,17.062,12.494,11.245,10.544,8.313,10.027,7.758,7.900,14.305,11.347,8.816,18.148,12.267,10.773,14.386,21.079,12.719,30.029,24.912,22.015,31.504,32.084,29.345,51.943,54.181,44.248 +09:15-09:30,43.261,39.422,36.962,25.150,31.775,22.168,18.151,17.088,13.291,23.060,17.493,11.246,10.096,11.061,7.895,9.661,7.371,7.019,12.444,10.362,7.837,16.596,12.114,9.673,13.617,22.115,11.266,29.070,25.419,19.871,30.740,30.108,26.940,49.495,52.726,43.082 +09:30-09:45,43.065,39.760,34.011,23.821,29.664,21.088,15.721,17.213,11.967,20.722,18.134,10.499,8.974,8.792,6.391,7.428,7.655,7.044,11.227,10.270,7.356,14.982,13.819,8.307,13.941,20.006,10.064,28.845,24.492,18.592,29.519,27.401,25.468,48.729,51.850,41.893 +09:45-10:00,40.714,38.161,31.817,22.132,26.944,19.165,13.441,18.343,11.961,18.797,19.089,10.054,9.564,10.120,5.559,7.043,6.863,6.786,11.466,9.587,6.989,13.744,12.380,7.965,12.029,17.161,8.899,25.718,22.904,17.420,29.621,26.806,23.573,46.975,50.369,41.071 +10:00-10:15,41.212,36.744,29.555,22.002,27.595,18.053,12.245,16.211,10.463,15.594,15.834,9.312,8.870,8.591,5.123,7.187,6.813,6.561,11.589,9.400,6.297,10.417,11.631,7.293,10.979,15.880,8.527,24.255,20.453,15.612,27.832,27.345,23.959,47.760,49.612,39.277 +10:15-10:30,41.077,35.394,28.068,21.286,27.377,16.453,11.827,15.924,10.620,15.760,16.733,8.744,8.206,7.552,5.023,7.045,7.491,6.056,10.638,11.831,6.085,11.601,11.275,6.774,9.559,14.231,7.920,21.246,19.266,14.301,26.654,26.285,22.879,47.288,49.302,37.966 +10:30-10:45,38.756,36.310,27.026,17.723,28.606,15.320,11.190,16.843,10.093,16.783,16.856,8.457,9.448,7.411,4.900,5.776,6.464,5.190,12.935,10.159,5.850,13.722,10.726,6.377,10.731,13.091,7.302,22.941,17.571,13.054,25.755,27.088,21.596,44.625,49.109,36.161 +10:45-11:00,39.477,36.372,26.151,18.815,26.267,14.072,11.830,15.920,10.101,18.041,15.045,8.148,8.065,7.110,4.919,5.104,6.662,5.706,12.684,9.957,6.119,13.997,10.643,6.115,10.154,12.340,6.916,22.830,17.173,12.761,26.987,27.533,22.184,42.088,49.614,36.148 +11:00-11:15,36.650,35.126,25.426,20.710,27.889,12.823,11.865,15.367,9.633,17.579,13.538,7.775,8.491,7.964,5.211,5.346,6.365,5.372,12.057,9.250,6.751,14.152,10.559,6.400,8.842,12.772,7.121,22.957,16.333,11.736,25.197,26.826,21.161,43.825,51.323,34.265 +11:15-11:30,35.098,36.131,24.178,20.400,26.797,12.646,11.225,15.723,9.616,18.011,14.976,7.247,7.536,7.723,4.588,6.255,7.727,4.914,11.643,9.264,6.213,11.028,9.991,5.721,8.660,13.603,6.578,20.069,15.740,11.154,25.151,28.534,20.635,43.479,54.308,33.404 +11:30-11:45,33.350,37.414,24.806,22.158,26.866,12.318,13.625,15.214,9.686,17.157,17.813,7.243,6.061,8.847,5.077,6.526,7.304,4.887,11.720,9.799,6.112,13.123,11.460,5.875,8.523,13.978,6.477,19.548,18.021,11.820,25.726,31.203,21.503,45.425,55.844,33.731 +11:45-12:00,32.641,38.182,25.117,20.642,28.200,13.895,15.941,17.925,9.478,18.338,17.999,7.491,5.835,8.718,5.355,7.124,9.603,5.479,11.544,9.472,6.443,13.044,11.159,6.290,8.282,13.772,7.376,19.630,19.321,11.926,23.483,30.440,21.807,43.089,56.900,34.252 +12:00-12:15,33.178,35.244,25.673,21.889,27.245,14.091,15.490,18.220,9.576,17.316,17.178,7.143,7.612,8.074,5.082,7.362,9.597,5.907,11.100,8.484,6.167,12.870,10.189,5.982,7.890,14.264,6.882,17.016,18.504,12.132,24.969,27.160,21.913,42.189,56.945,34.732 +12:15-12:30,34.225,35.239,25.712,20.592,26.280,13.302,13.728,17.336,9.450,16.842,14.709,6.749,7.399,8.723,4.796,6.613,8.866,5.506,10.692,11.786,5.596,11.413,10.892,5.968,9.131,11.912,7.273,18.465,17.692,12.092,26.087,25.226,22.450,44.693,55.664,34.184 +12:30-12:45,34.436,34.401,25.307,19.169,24.327,13.215,14.303,17.514,8.865,15.335,14.284,6.995,7.617,8.361,5.618,5.980,9.521,5.525,10.452,11.052,5.573,10.523,10.166,5.411,9.240,11.656,7.432,22.010,16.643,11.743,26.123,24.675,22.143,45.327,52.195,33.194 +12:45-13:00,33.191,35.707,25.676,19.668,22.831,13.166,15.147,17.192,8.761,14.362,13.459,7.024,7.460,7.655,5.571,5.589,8.213,5.494,9.726,9.698,5.260,8.934,9.950,5.361,9.122,12.498,7.026,19.847,15.871,11.206,23.985,25.031,22.129,43.318,48.829,34.209 +13:00-13:15,31.386,34.075,25.023,19.694,22.815,13.103,14.258,15.078,8.390,13.098,12.563,6.965,6.488,7.878,5.350,5.322,7.227,4.820,9.441,7.494,5.101,7.462,8.713,4.887,8.335,11.859,6.491,19.268,15.042,10.837,25.018,25.471,21.610,44.800,44.596,35.415 +13:15-13:30,31.024,34.438,26.665,17.978,21.598,13.596,12.663,14.494,9.016,11.984,12.358,8.012,6.864,6.916,4.820,5.986,6.849,5.011,9.261,7.440,5.305,8.137,9.726,4.687,7.862,10.452,6.379,18.102,16.232,10.669,24.804,26.332,20.891,43.544,44.799,34.976 +13:30-13:45,29.389,32.744,26.320,17.124,20.838,14.366,13.269,16.044,8.985,12.525,9.962,8.164,5.348,6.445,4.675,7.015,6.787,4.741,9.553,7.962,5.246,8.783,9.303,5.150,7.578,9.081,6.517,17.028,15.555,10.308,24.004,25.962,20.633,43.121,47.550,35.213 +13:45-14:00,34.025,34.272,26.507,17.374,19.093,15.415,12.828,16.186,8.808,11.480,11.349,7.349,5.646,5.395,4.286,7.019,5.860,5.147,9.488,8.783,5.139,7.757,7.871,4.951,8.448,8.277,6.266,15.112,15.841,10.373,24.583,25.325,21.696,43.987,46.147,37.021 +14:00-14:15,32.973,35.556,27.553,17.027,20.695,14.018,12.407,14.738,8.696,10.790,11.201,7.338,6.220,5.953,5.011,7.024,6.980,5.066,10.143,6.967,5.987,8.610,8.697,5.436,8.350,9.180,6.738,16.196,15.489,10.172,26.293,26.807,22.709,45.006,45.936,37.414 +14:15-14:30,35.257,35.210,27.841,19.303,23.794,13.679,10.582,16.955,8.960,10.013,9.268,8.099,7.141,6.337,4.845,7.253,6.860,4.886,7.469,8.370,5.583,8.091,8.639,5.304,7.191,9.005,6.150,15.608,16.103,10.486,28.397,27.551,24.494,46.184,46.593,38.212 +14:30-14:45,35.951,35.622,27.780,18.570,23.758,14.295,11.556,16.210,9.340,10.160,10.207,8.085,5.320,6.869,4.632,5.994,7.628,4.593,9.071,7.636,5.900,8.731,7.979,5.659,6.785,7.813,5.791,15.433,14.183,10.494,30.196,28.668,25.756,45.646,48.479,39.095 +14:45-15:00,38.314,38.795,29.401,18.094,23.082,14.935,10.588,15.620,9.631,11.012,10.259,7.954,5.705,6.457,4.362,5.029,7.041,4.510,8.893,6.541,6.116,6.253,7.777,6.423,7.052,8.633,5.777,15.937,15.300,10.707,30.761,29.153,28.067,46.894,48.630,40.040 +15:00-15:15,39.430,39.693,30.642,20.871,22.519,16.239,12.207,18.632,10.424,11.016,11.152,8.084,5.282,6.038,4.745,6.484,7.715,4.933,10.076,5.496,6.333,7.305,6.738,7.177,7.511,8.462,5.841,17.827,17.110,11.462,33.100,33.338,30.290,47.319,50.000,42.775 +15:15-15:30,42.687,39.235,33.694,21.855,24.182,17.489,13.472,20.344,11.195,11.824,11.648,8.440,5.764,5.836,4.655,6.835,8.560,5.133,8.602,6.855,6.430,6.674,6.913,7.289,7.402,9.167,6.103,17.724,18.791,12.347,35.880,34.897,31.363,50.106,52.437,45.176 +15:30-15:45,47.516,42.145,36.743,23.092,25.477,19.644,13.941,20.858,12.782,11.664,11.654,9.289,6.260,5.481,4.510,6.526,9.093,5.745,9.497,7.086,6.252,7.761,8.603,8.432,6.819,9.089,6.130,15.763,19.099,12.886,38.489,37.159,34.441,52.971,54.427,47.649 +15:45-16:00,45.591,46.165,40.331,24.774,26.267,21.820,15.355,21.127,13.988,11.410,11.548,11.017,6.052,5.687,4.663,5.875,9.466,5.854,9.576,8.253,6.603,7.467,9.597,8.883,8.944,9.711,6.807,16.996,18.775,14.106,41.160,43.289,37.736,53.388,57.018,50.881 +16:00-16:15,49.684,48.588,45.303,26.195,26.360,24.808,15.866,21.895,15.077,13.042,12.901,10.769,5.745,5.593,6.417,6.109,8.460,5.592,9.759,8.216,7.222,7.013,8.982,8.186,9.702,9.975,7.517,16.791,19.810,15.920,43.798,50.244,42.009,55.215,58.793,53.281 +16:15-16:30,51.257,51.955,46.120,30.867,31.202,27.584,16.984,23.839,17.691,17.175,14.641,11.469,6.470,5.796,6.659,8.867,8.651,6.016,12.033,8.670,7.156,9.869,9.576,8.339,10.126,10.300,8.993,17.728,22.072,18.205,49.457,52.625,45.667,57.916,60.560,55.629 +16:30-16:45,53.191,53.279,48.924,34.753,36.421,31.856,19.331,25.533,18.946,17.923,14.331,12.550,7.582,6.603,6.855,7.716,7.940,7.121,10.746,8.139,7.859,10.958,10.603,8.980,10.177,12.098,10.204,19.657,25.813,19.687,50.719,53.878,48.510,57.543,60.673,56.106 +16:45-17:00,53.906,55.130,49.089,36.795,37.362,34.571,22.582,26.602,21.550,17.810,14.447,12.336,8.995,7.963,7.422,7.800,8.520,7.765,11.684,8.489,8.694,11.114,11.563,9.806,9.376,14.127,11.883,23.524,27.470,22.118,54.144,57.188,50.320,58.636,60.717,56.848 +17:00-17:15,54.424,55.703,50.592,44.379,42.650,38.785,23.221,27.291,23.447,16.397,17.008,13.976,9.309,8.462,8.085,8.377,11.464,9.296,10.714,9.936,9.671,12.171,12.772,10.826,11.198,15.647,14.074,28.235,30.784,25.520,54.976,58.229,52.383,58.056,61.680,59.449 +17:15-17:30,56.381,58.291,54.616,46.226,47.028,42.390,29.011,28.763,27.828,17.082,18.155,16.011,11.351,9.988,9.286,8.653,11.283,9.800,11.130,10.981,11.044,13.103,15.819,13.111,12.768,17.814,16.480,30.040,31.808,29.429,55.368,59.415,54.346,60.784,60.830,60.780 +17:30-17:45,57.010,57.448,56.533,51.992,52.290,46.858,34.018,35.898,33.100,19.386,21.377,18.472,13.303,11.669,11.025,8.909,11.677,11.840,11.642,11.894,13.213,15.491,17.253,15.739,16.891,20.755,18.472,33.228,35.177,32.929,57.588,59.124,56.893,63.214,63.032,61.116 +17:45-18:00,59.924,59.988,58.463,58.157,55.952,48.845,37.431,43.726,37.875,21.532,22.341,20.747,12.818,13.223,13.457,9.924,13.087,14.496,15.031,13.897,14.077,16.283,17.721,17.660,19.734,21.112,21.427,38.383,37.647,38.986,58.345,59.127,58.608,63.239,61.262,62.540 +18:00-18:15,60.693,61.247,60.382,55.910,58.285,51.990,43.430,45.318,43.939,24.428,24.700,23.680,14.508,16.325,15.306,12.585,14.873,16.874,15.284,15.166,15.245,17.386,20.037,18.682,22.877,24.313,25.898,41.721,42.219,45.434,60.174,62.559,59.823,63.836,63.064,64.602 +18:15-18:30,63.439,60.430,60.777,59.729,56.400,55.019,46.559,50.340,48.042,24.798,28.852,28.222,15.001,17.833,17.345,12.661,15.349,18.142,15.654,16.907,17.673,17.907,21.391,20.248,26.187,29.161,30.260,45.137,45.932,50.167,61.478,61.914,59.976,64.140,63.869,64.977 +18:30-18:45,60.584,62.656,60.500,58.999,55.389,53.950,47.926,50.094,50.824,28.310,29.537,31.117,18.008,19.199,19.670,13.802,17.622,20.926,19.428,17.257,18.164,19.462,23.779,23.938,30.136,34.361,34.339,50.050,48.211,50.955,59.238,60.153,59.582,63.722,65.487,65.554 +18:45-19:00,58.740,61.552,59.536,58.213,54.858,54.043,52.697,52.851,53.069,30.097,31.223,34.779,17.807,21.196,21.127,14.586,19.413,22.936,22.518,17.549,20.249,19.774,25.494,26.492,34.696,36.063,37.699,51.753,48.620,50.557,59.667,62.264,58.896,60.712,64.617,64.475 +19:00-19:15,56.071,61.536,57.915,59.356,55.274,54.036,51.627,54.213,53.362,34.325,36.847,36.512,17.453,22.330,22.807,15.857,22.500,23.887,21.964,20.244,20.901,21.472,29.417,28.427,37.676,42.800,40.452,51.879,47.789,50.489,57.573,57.995,58.853,58.656,62.520,63.264 +19:15-19:30,55.482,61.556,58.173,56.214,58.225,53.068,49.664,52.348,54.250,36.701,40.365,39.026,20.253,24.292,23.958,16.422,22.295,24.781,22.948,23.128,22.423,22.679,30.364,30.118,39.689,43.666,42.865,49.426,48.178,49.156,55.340,57.526,57.345,58.723,61.362,62.451 +19:30-19:45,56.274,58.057,56.424,53.892,55.776,51.726,52.268,53.294,52.906,40.692,40.371,42.351,24.610,24.807,26.113,17.210,25.134,26.491,21.277,25.592,24.037,27.006,33.613,31.266,38.998,45.248,44.544,47.406,45.696,48.073,53.019,56.271,56.773,60.450,58.997,61.121 +19:45-20:00,55.723,57.022,55.861,50.812,55.590,50.724,50.295,53.766,51.773,43.476,43.467,47.431,24.318,26.271,28.576,20.074,27.986,28.309,22.826,28.244,26.711,31.242,36.091,34.672,39.748,45.427,45.615,45.209,46.366,47.353,52.930,56.383,55.731,58.779,58.697,60.939 +20:00-20:15,53.709,57.822,54.410,51.576,55.812,51.159,50.105,53.715,52.521,46.487,46.785,49.525,26.137,31.159,31.828,22.108,31.598,30.670,27.667,27.592,29.966,34.139,40.942,38.081,38.360,44.636,45.568,44.439,43.930,46.956,52.470,54.866,55.714,56.585,59.009,61.092 +20:15-20:30,52.829,55.678,55.364,49.024,55.232,51.651,49.568,52.468,52.420,47.070,47.116,49.727,28.725,33.230,35.381,25.665,29.593,32.491,31.353,30.420,32.046,37.509,41.840,39.376,36.742,42.591,43.481,43.070,42.958,45.884,52.452,53.850,55.633,56.104,57.458,60.346 +20:30-20:45,52.175,52.109,54.509,48.848,52.090,49.647,50.370,50.235,49.073,48.490,46.613,47.793,30.256,34.237,36.488,27.851,33.070,33.502,32.275,32.951,33.854,37.964,41.164,39.320,35.106,40.762,41.437,42.357,42.041,44.210,49.671,51.453,52.442,56.883,57.015,58.180 +20:45-21:00,50.165,52.770,52.969,45.683,51.960,49.109,45.682,47.021,48.695,47.426,45.642,47.133,35.204,36.312,38.191,29.408,36.253,35.665,33.285,36.826,36.351,37.699,40.959,39.724,34.279,39.860,40.025,40.126,41.478,43.090,48.719,50.339,51.581,54.418,54.349,57.739 +21:00-21:15,51.335,52.063,52.389,46.925,47.400,48.227,48.219,45.943,47.420,45.249,42.949,45.969,34.919,36.560,37.747,33.791,38.456,37.861,35.474,37.953,37.818,35.223,42.646,39.048,33.026,38.571,38.869,39.270,38.453,41.487,48.704,49.919,50.711,52.689,53.498,56.871 +21:15-21:30,49.863,48.574,49.660,46.236,47.594,45.984,46.937,44.638,45.714,44.348,42.003,42.742,32.356,35.187,37.123,35.318,37.931,37.958,37.343,39.142,38.295,35.387,36.529,38.287,34.972,37.199,37.391,39.847,38.317,40.728,47.852,45.964,48.493,52.230,52.025,55.329 +21:30-21:45,48.268,46.553,47.216,42.333,44.128,44.489,42.818,42.476,43.323,42.768,42.093,42.056,30.520,35.689,36.356,36.022,37.609,38.883,36.055,39.930,39.156,33.033,37.573,37.176,33.786,36.221,36.200,38.274,36.164,39.510,44.550,44.609,46.345,49.413,50.920,52.944 +21:45-22:00,48.654,45.195,46.418,42.646,40.816,42.706,43.733,40.584,42.393,41.800,40.800,40.660,32.772,34.076,34.215,37.028,38.642,37.353,37.892,37.234,37.460,33.317,35.050,36.092,33.980,33.853,35.622,37.150,35.361,38.328,44.978,44.722,45.215,48.974,48.132,52.096 +22:00-22:15,45.073,41.999,43.879,38.926,42.690,40.587,40.244,39.748,40.679,40.602,38.848,39.019,33.220,31.794,31.740,36.178,36.024,36.011,35.548,36.480,34.880,32.957,35.355,34.773,33.357,33.832,34.724,36.397,34.887,36.712,43.146,40.672,42.789,46.190,46.090,49.731 +22:15-22:30,42.863,40.077,42.488,40.038,39.106,38.707,40.947,36.957,38.756,38.838,38.181,37.826,30.214,31.926,30.635,34.977,35.675,34.002,35.415,34.748,34.419,31.324,34.271,33.639,31.411,31.952,33.424,34.827,33.858,35.389,42.781,38.371,41.731,44.973,44.731,47.888 +22:30-22:45,41.986,38.540,41.153,37.697,38.645,37.498,38.560,36.690,36.580,36.931,36.476,36.402,30.647,30.087,29.824,32.801,32.391,32.422,34.683,33.926,32.564,32.258,30.848,31.692,30.682,31.988,31.470,35.673,32.200,33.980,40.641,36.412,39.498,44.219,42.606,45.232 +22:45-23:00,40.831,36.646,39.312,37.302,36.853,35.814,37.453,34.555,34.880,37.690,33.252,35.047,30.404,27.434,28.408,31.044,29.915,30.766,33.787,31.166,31.754,32.364,31.389,30.379,31.022,29.165,29.970,33.871,30.234,32.843,40.923,36.354,37.790,43.904,41.679,43.356 +23:00-23:15,39.429,35.573,37.433,38.054,33.338,34.249,37.883,32.947,33.861,35.289,31.828,33.215,29.736,25.350,26.628,28.940,29.139,29.604,31.477,30.880,30.290,29.055,27.076,27.971,28.675,26.780,28.155,32.935,28.530,30.953,39.554,34.278,35.651,41.682,39.584,41.659 +23:15-23:30,38.280,34.536,36.317,35.770,33.652,33.180,38.616,30.184,32.322,34.637,30.606,31.358,27.950,26.804,25.640,27.933,28.108,29.130,31.253,27.956,28.793,28.365,29.821,27.241,28.340,25.108,27.334,31.926,27.275,29.651,37.126,33.658,34.560,41.136,38.368,40.735 +23:30-23:45,36.558,33.411,35.168,36.863,32.880,33.130,33.740,31.172,31.961,34.638,29.898,30.340,27.530,25.188,24.803,29.462,27.520,26.768,30.950,26.671,27.379,26.545,27.421,26.730,26.559,23.733,26.494,30.184,27.159,28.719,34.946,31.222,33.891,39.821,37.492,38.927 +23:45-00:00,36.530,32.903,34.413,35.178,31.265,31.926,32.578,29.690,30.603,32.327,29.280,29.307,25.470,22.926,23.314,27.381,24.960,26.969,29.340,25.001,26.776,26.247,25.636,25.434,26.574,23.156,25.543,29.738,25.892,27.569,34.224,31.518,32.514,38.774,36.050,37.881 diff --git a/src/demandlib/bdew/bdew_data/s25.csv b/src/demandlib/bdew/bdew_data/s25.csv new file mode 100644 index 0000000..ef1fe0c --- /dev/null +++ b/src/demandlib/bdew/bdew_data/s25.csv @@ -0,0 +1,98 @@ +,Januar,Januar,Januar,Februar,Februar,Februar,März,März,März,April,April,April,Mai,Mai,Mai,Juni,Juni,Juni,Juli,Juli,Juli,August,August,August,September,September,September,Oktober,Oktober,Oktober,November,November,November,Dezember,Dezember,Dezember +[kWh],SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT,SA,FT,WT +00:00-00:15,48.225,51.804,45.653,46.870,41.293,38.285,27.658,26.999,23.712,15.592,18.786,13.182,5.573,4.927,6.074,7.548,4.941,4.335,6.958,6.640,5.512,8.510,8.440,7.701,8.856,8.236,7.044,30.200,21.829,19.949,44.892,44.929,42.465,57.597,58.572,58.390 +00:15-00:30,49.878,50.466,46.049,43.418,40.530,37.703,24.449,25.945,23.729,15.656,17.736,13.288,5.053,4.572,5.603,7.234,4.721,3.757,6.310,6.641,5.364,8.114,7.763,7.410,8.570,7.378,6.820,28.728,21.408,19.470,44.935,44.151,42.131,56.409,58.127,58.247 +00:30-00:45,47.679,49.867,44.213,43.604,39.515,37.409,25.333,27.784,24.208,16.247,17.381,13.333,4.678,4.738,5.259,6.915,4.999,3.700,6.602,6.381,4.942,9.024,7.741,7.463,8.493,7.171,6.936,28.290,20.590,19.386,46.307,42.888,41.493,57.344,57.912,56.364 +00:45-01:00,45.958,50.944,42.049,41.063,38.152,36.921,25.312,27.101,24.056,15.017,18.054,13.475,4.200,4.977,5.476,7.120,4.450,3.877,6.481,6.214,5.112,8.841,7.928,7.843,8.211,6.628,6.941,27.213,20.578,18.939,42.987,42.371,39.801,55.743,56.608,54.358 +01:00-01:15,45.807,49.858,43.032,40.529,38.378,36.549,26.695,25.629,24.135,15.397,18.207,13.823,4.658,4.858,5.438,6.664,5.020,3.849,6.632,6.373,5.072,8.896,7.954,7.664,8.198,7.017,7.143,26.742,20.254,19.009,41.331,42.187,41.048,54.432,54.682,53.864 +01:15-01:30,47.572,49.609,42.488,40.947,39.310,36.704,26.039,25.107,24.446,15.872,17.817,13.814,4.558,4.833,5.541,7.168,5.242,3.844,6.683,6.507,4.915,9.349,8.065,7.727,8.429,6.342,7.358,25.732,20.336,18.883,41.173,40.283,40.561,53.368,53.790,53.317 +01:30-01:45,46.417,47.150,41.812,41.630,37.690,35.850,26.316,25.901,24.358,16.313,17.780,14.321,4.765,5.371,5.578,6.798,5.594,3.929,7.178,6.316,5.197,8.623,8.410,7.691,9.067,7.147,7.534,25.154,19.935,19.630,42.080,40.936,40.216,55.350,52.977,52.084 +01:45-02:00,44.422,46.923,41.880,39.603,35.846,35.676,26.996,26.886,24.748,16.306,17.716,14.960,4.899,5.491,5.679,5.883,5.422,4.098,6.870,6.471,5.316,8.677,8.353,7.733,9.265,7.600,7.782,24.979,20.508,19.949,43.100,41.017,39.441,52.679,51.560,51.944 +02:00-02:15,44.217,48.113,43.288,40.784,39.699,37.260,28.028,28.463,25.235,16.588,19.808,15.632,4.671,5.515,5.673,6.155,5.595,4.041,7.706,6.538,5.544,9.268,8.446,7.659,9.585,7.231,7.898,25.450,21.196,19.857,40.020,39.597,39.326,50.866,51.165,51.015 +02:15-02:30,44.278,46.262,42.452,40.745,39.201,37.544,28.477,30.598,25.099,16.661,20.155,15.542,4.714,5.476,5.878,6.054,5.665,4.165,7.973,6.767,5.627,9.287,8.769,7.715,9.494,7.753,8.111,24.306,21.423,20.068,41.808,40.721,39.739,52.514,51.200,51.121 +02:30-02:45,44.091,46.241,43.089,40.964,38.387,38.615,27.202,29.437,25.645,16.736,19.277,15.841,5.105,5.850,6.284,5.901,5.730,4.312,7.590,7.355,5.728,8.825,8.871,7.932,9.984,8.375,8.389,24.440,21.025,20.370,41.099,40.697,39.377,51.898,50.425,50.635 +02:45-03:00,44.534,46.061,43.361,39.509,38.691,38.455,26.075,28.615,26.256,17.030,19.597,16.305,5.030,6.177,6.181,6.687,6.013,4.515,7.896,7.145,5.680,8.643,8.521,8.203,9.586,8.126,8.906,24.606,21.984,20.505,41.499,41.200,39.945,51.223,49.543,51.142 +03:00-03:15,44.559,46.512,43.779,40.002,38.919,38.396,27.132,25.760,26.048,17.150,20.419,17.276,5.556,6.761,6.172,6.465,6.624,4.808,7.792,7.451,5.895,8.512,9.746,8.388,10.587,8.470,9.165,25.950,21.536,20.815,42.209,40.799,41.093,51.024,53.606,51.500 +03:15-03:30,45.852,47.077,44.651,40.203,41.559,38.465,28.281,25.697,27.082,17.252,20.028,17.656,5.741,7.237,6.377,6.561,7.808,4.949,7.881,8.773,6.192,8.612,10.499,8.531,10.876,9.581,9.548,25.841,21.914,21.404,43.509,42.187,41.084,52.778,51.092,52.591 +03:30-03:45,44.932,46.676,46.048,40.492,43.145,39.828,28.735,26.716,27.766,18.471,20.902,17.728,5.639,7.465,6.898,6.833,6.644,5.204,8.441,7.791,6.581,9.396,9.519,8.864,11.526,8.885,9.750,26.114,22.503,21.883,44.325,41.517,42.687,50.023,48.625,51.484 +03:45-04:00,46.567,46.536,47.205,42.526,42.588,41.455,28.244,29.305,28.530,18.198,21.984,18.908,5.860,7.400,7.512,7.821,6.484,5.492,8.581,8.298,6.657,10.028,10.337,9.081,11.963,9.033,9.936,26.470,23.053,22.457,41.097,41.663,41.337,49.277,48.997,51.922 +04:00-04:15,47.234,47.385,48.678,42.279,43.394,43.645,31.316,28.935,30.772,18.360,22.907,20.120,6.404,8.108,7.935,7.570,6.759,5.686,8.815,8.448,6.898,10.400,10.706,9.446,11.780,9.475,10.477,26.069,23.242,22.952,42.117,42.564,42.832,51.964,49.272,53.611 +04:15-04:30,45.676,45.925,47.835,41.311,42.513,43.732,32.785,29.467,31.617,19.752,22.752,21.161,6.876,8.381,8.157,8.212,7.179,6.546,8.948,8.356,7.262,11.042,11.838,9.991,12.319,9.831,11.253,26.874,24.270,24.430,43.380,42.189,44.014,50.994,50.680,56.313 +04:30-04:45,44.436,43.786,46.906,42.804,41.232,42.646,32.723,29.334,30.638,19.900,22.749,21.075,8.419,8.531,8.437,8.943,8.226,7.629,9.778,8.745,8.248,11.413,11.772,10.560,12.376,11.680,11.743,27.773,23.795,25.490,44.556,44.341,44.156,50.404,50.244,54.373 +04:45-05:00,45.855,43.381,49.703,42.931,43.073,43.961,34.059,28.976,32.208,21.613,24.714,22.533,10.390,9.882,10.276,9.535,8.713,8.484,10.787,10.173,8.910,11.565,12.992,11.290,13.505,11.888,12.820,28.223,24.138,25.227,44.751,43.979,46.261,49.062,51.507,56.262 +05:00-05:15,47.889,45.860,54.475,43.843,42.851,47.002,34.473,32.849,35.402,22.700,26.011,26.158,10.037,10.596,11.623,10.041,8.361,8.747,11.410,10.610,10.065,12.748,13.315,12.661,15.031,12.702,14.317,29.724,25.626,28.134,47.113,45.414,48.917,52.356,53.393,58.301 +05:15-05:30,49.776,46.102,52.785,46.178,43.794,47.363,35.762,33.281,37.136,22.013,26.166,26.414,9.730,11.292,11.966,10.830,7.968,8.710,11.797,10.888,10.168,12.977,13.275,14.419,16.767,12.101,15.084,31.276,26.066,29.105,49.466,47.539,50.043,56.786,55.222,59.610 +05:30-05:45,48.256,48.671,56.274,47.085,44.723,49.785,36.331,32.655,40.080,23.448,27.893,28.067,10.927,10.761,12.770,9.139,7.965,8.806,11.219,10.956,10.055,13.251,14.189,15.172,17.205,13.345,16.095,31.524,26.392,30.245,48.914,47.511,54.176,58.145,55.738,63.254 +05:45-06:00,50.685,49.694,56.853,48.862,44.576,51.771,36.301,33.187,41.610,25.971,28.994,30.266,10.162,10.861,12.845,8.573,6.628,7.788,10.654,10.570,10.744,14.489,15.222,16.840,17.250,15.065,17.510,30.633,28.227,32.706,51.131,51.149,52.689,54.859,54.758,63.814 +06:00-06:15,55.533,51.666,58.969,53.731,48.381,54.692,40.550,36.908,45.830,31.249,30.994,33.107,10.762,9.649,12.113,8.901,6.043,7.702,12.630,10.268,10.175,16.056,16.298,17.625,19.771,16.017,20.065,34.412,30.576,36.322,57.060,55.683,59.526,61.426,58.022,66.261 +06:15-06:30,55.172,54.341,61.842,55.772,51.491,57.096,40.052,39.879,48.120,31.462,33.165,34.698,9.563,9.666,12.078,8.048,6.553,8.250,10.772,9.462,10.402,17.508,16.525,17.688,20.940,18.816,22.126,36.005,32.770,37.276,56.349,56.125,62.388,62.856,61.283,72.784 +06:30-06:45,54.254,55.661,65.107,54.093,56.797,59.554,40.955,42.976,50.033,28.785,34.551,34.313,8.364,9.522,11.580,7.381,7.980,8.455,9.147,9.752,9.146,16.033,17.003,17.921,21.848,20.988,24.490,36.792,36.136,39.563,60.173,62.050,64.420,62.499,66.089,75.387 +06:45-07:00,56.602,54.559,64.381,55.604,57.872,61.599,42.588,43.795,49.839,28.261,31.641,33.366,8.008,8.016,11.126,6.159,5.988,8.562,8.499,8.891,8.979,15.412,14.622,18.215,23.452,21.578,25.875,37.838,35.157,43.634,57.963,60.953,65.505,64.589,64.687,76.247 +07:00-07:15,58.453,53.563,65.673,59.209,57.919,62.116,42.023,41.406,47.308,29.763,30.218,30.321,8.376,6.676,10.519,4.970,6.200,8.655,8.770,7.220,8.679,15.610,15.651,17.153,25.057,21.502,26.474,40.902,38.391,44.958,60.674,59.791,66.719,65.905,65.916,76.571 +07:15-07:30,61.820,55.615,67.057,60.623,58.348,62.599,42.244,37.245,42.492,31.338,30.996,27.329,7.670,7.870,9.549,5.920,5.328,8.389,9.615,7.123,7.860,16.067,13.103,16.290,25.567,20.884,25.312,50.298,40.876,47.562,68.170,62.985,68.122,69.907,65.940,79.615 +07:30-07:45,66.943,60.553,68.040,65.660,59.730,58.624,39.795,36.386,38.331,29.767,29.260,22.099,7.458,7.018,9.038,6.176,5.708,6.974,8.909,5.807,8.159,14.355,12.795,15.055,24.509,19.127,23.276,50.695,41.947,46.786,70.906,68.368,65.888,72.800,69.205,77.955 +07:45-08:00,73.824,62.638,70.177,67.135,59.527,59.512,37.345,33.722,35.160,31.855,26.854,21.545,6.010,6.563,8.108,6.076,5.517,6.496,7.345,7.404,7.973,14.808,9.704,14.121,22.019,18.983,21.222,54.377,43.200,49.430,67.959,70.018,64.752,80.746,77.081,82.898 +08:00-08:15,75.392,68.558,70.172,64.104,60.871,54.869,38.089,30.699,31.629,30.005,25.369,18.049,6.854,8.625,7.976,7.015,5.572,5.953,7.748,6.695,7.212,14.666,10.870,12.060,18.655,18.610,17.549,51.836,40.640,47.227,69.362,66.057,60.719,83.143,80.975,82.088 +08:15-08:30,75.110,70.920,70.962,60.824,59.980,50.191,36.464,28.107,28.329,28.026,22.861,17.755,7.083,6.749,7.296,6.997,4.729,5.868,7.298,6.837,7.338,14.817,10.775,10.614,16.487,20.066,15.096,53.460,40.996,43.614,68.524,63.098,59.582,85.425,84.751,80.722 +08:30-08:45,74.551,69.073,66.681,52.969,52.579,43.106,32.254,26.176,24.616,26.469,20.483,14.507,8.039,5.878,5.869,8.037,3.706,5.468,6.089,5.855,6.547,13.928,16.113,10.439,15.088,15.670,12.167,48.252,38.445,36.513,67.804,57.682,52.961,86.084,84.657,79.500 +08:45-09:00,71.121,67.665,62.498,46.216,48.221,37.855,26.740,23.361,21.765,27.327,18.895,12.207,6.836,5.266,5.601,6.191,3.976,5.179,6.504,5.014,6.198,11.590,15.646,9.570,11.224,9.290,10.272,49.461,34.943,31.791,57.913,53.770,50.015,87.062,82.854,75.283 +09:00-09:15,64.867,67.531,61.445,46.299,47.670,36.905,26.537,19.569,19.885,25.287,18.380,11.328,5.752,4.906,5.063,6.546,3.413,4.272,5.838,5.402,6.108,11.534,12.811,8.136,10.648,10.172,9.667,43.943,32.874,30.290,52.274,50.323,50.527,80.339,83.027,74.977 +09:15-09:30,65.326,68.143,56.442,45.804,40.416,33.466,26.278,17.402,17.962,22.732,19.552,10.599,5.112,7.335,5.097,3.568,3.354,3.667,5.512,5.092,5.560,11.474,8.548,7.734,8.387,12.228,8.368,39.142,35.090,27.900,47.077,40.532,44.858,80.282,79.261,69.389 +09:30-09:45,63.468,66.156,53.857,44.103,38.006,30.122,22.562,19.073,16.866,23.974,18.236,9.475,4.267,7.646,4.845,3.930,3.315,3.496,4.647,5.153,5.909,11.175,7.358,6.778,7.882,10.352,7.459,38.563,29.519,25.463,46.797,38.889,40.776,77.953,85.136,67.148 +09:45-10:00,60.617,69.313,50.274,38.172,44.648,28.354,18.719,21.208,15.970,21.739,18.729,8.771,4.708,5.285,4.480,2.889,2.654,3.663,4.282,4.776,5.867,9.346,8.429,6.353,6.253,10.327,7.177,42.050,24.952,24.565,43.496,39.986,38.879,76.884,81.266,65.967 +10:00-10:15,61.293,63.132,47.699,36.289,46.716,25.864,16.798,19.985,14.439,22.871,17.918,7.661,5.619,3.718,4.116,2.622,2.285,3.819,7.419,4.441,5.486,7.055,8.014,6.062,5.449,10.877,6.246,36.260,25.034,21.619,44.306,42.046,37.869,70.588,76.388,63.822 +10:15-10:30,55.303,58.838,45.927,32.942,49.630,24.154,15.345,20.630,13.903,23.191,18.060,6.661,3.984,6.475,3.666,2.403,2.136,3.776,5.824,5.665,5.369,7.622,8.802,5.773,4.074,9.026,5.615,27.536,20.553,17.933,38.578,45.972,33.238,66.778,76.648,61.160 +10:30-10:45,51.313,61.095,42.600,28.304,45.836,22.424,14.604,20.602,13.137,19.571,15.934,5.863,3.806,7.430,3.549,3.168,1.966,3.184,6.922,4.413,5.249,6.009,6.844,5.278,4.171,7.444,4.949,25.449,19.144,17.249,33.409,44.535,32.526,65.832,76.100,58.990 +10:45-11:00,52.604,61.101,40.361,29.273,44.390,21.272,17.248,18.218,12.536,18.159,13.808,5.893,3.989,8.011,3.605,3.488,2.378,2.838,7.209,4.534,5.343,7.423,6.898,5.417,4.405,6.194,4.983,24.370,16.829,17.993,32.722,42.836,30.902,55.189,80.849,56.216 +11:00-11:15,49.949,56.627,40.004,30.625,41.666,20.123,18.343,16.252,11.885,21.056,13.921,6.224,2.794,9.249,3.491,2.123,2.345,2.712,7.729,4.580,5.205,7.105,7.324,5.371,3.877,6.889,4.569,25.896,17.458,17.269,33.614,38.354,29.713,60.450,80.632,53.758 +11:15-11:30,50.469,60.836,39.467,33.108,36.567,19.921,15.244,15.912,11.726,20.241,12.846,5.747,3.941,7.240,2.999,2.810,2.063,2.396,5.374,5.979,4.630,6.579,5.724,4.960,3.194,7.383,4.164,23.037,15.638,15.154,32.414,41.379,30.563,65.088,81.790,55.853 +11:30-11:45,49.321,59.955,40.068,33.596,29.656,19.836,14.659,11.593,10.445,19.289,11.853,5.509,3.540,5.653,2.735,2.576,2.561,2.277,7.005,5.067,4.438,6.493,4.539,4.465,3.981,7.620,4.172,20.944,13.062,15.024,34.930,38.219,30.546,65.669,77.732,52.417 +11:45-12:00,50.084,53.896,38.733,29.412,29.396,19.127,14.845,11.184,10.073,16.810,10.643,5.023,3.216,4.047,2.902,2.382,2.465,2.020,7.212,4.704,4.019,6.035,4.433,3.949,3.193,5.533,4.258,20.735,11.622,14.545,33.905,33.949,28.800,61.994,74.535,50.615 +12:00-12:15,49.277,49.107,38.793,30.538,27.070,18.714,11.997,10.780,9.960,17.800,10.302,4.882,3.421,3.660,2.624,2.370,2.938,2.457,7.257,4.734,4.320,4.953,4.732,4.379,3.634,4.650,4.984,19.037,11.171,15.308,34.044,28.326,30.399,59.028,74.499,50.681 +12:15-12:30,49.108,46.074,38.775,28.761,26.579,19.314,13.405,11.002,9.754,18.306,8.702,5.293,3.379,3.139,2.382,2.103,3.864,2.787,6.823,6.446,4.295,6.284,4.297,4.127,3.242,3.816,4.310,18.489,10.496,15.023,29.037,26.062,29.893,60.477,74.973,51.448 +12:30-12:45,46.276,47.446,39.040,27.152,21.875,19.277,12.247,9.882,9.893,17.426,9.638,4.935,2.308,2.327,3.012,2.703,2.564,3.051,4.845,5.127,3.870,5.139,3.505,3.929,3.438,3.038,4.147,18.082,10.753,14.093,32.424,23.369,30.545,61.898,70.425,49.252 +12:45-13:00,45.920,49.620,38.374,27.706,23.536,18.613,12.887,11.591,9.958,14.795,8.743,4.446,2.152,1.891,2.635,1.238,1.895,2.577,5.026,4.057,3.671,4.606,3.166,3.821,3.041,3.114,3.951,15.952,9.901,13.118,32.153,21.646,30.567,57.508,67.258,47.848 +13:00-13:15,44.267,45.780,36.747,27.712,26.272,16.702,11.918,8.654,9.318,14.752,8.278,4.223,1.929,1.664,2.438,0.814,1.241,2.175,5.920,3.895,3.062,5.077,3.604,3.426,3.027,2.689,3.566,13.246,8.992,11.318,33.352,22.041,28.941,59.122,63.975,50.572 +13:15-13:30,43.839,43.996,35.347,24.367,26.005,16.430,8.740,8.094,9.010,13.440,9.413,4.121,2.163,1.478,1.967,2.446,1.201,1.893,3.993,3.088,2.759,3.303,2.793,2.787,2.919,3.060,3.457,12.061,9.004,10.899,35.126,22.163,28.076,58.965,62.655,49.087 +13:30-13:45,41.930,45.970,34.947,23.074,26.665,16.684,8.974,8.240,8.498,9.689,8.179,4.033,1.775,1.617,1.637,1.319,1.439,2.006,4.060,3.313,2.563,2.546,2.485,2.541,2.786,2.100,3.494,11.117,8.267,10.991,37.156,25.660,26.980,58.581,63.149,49.297 +13:45-14:00,42.589,46.583,33.782,26.263,24.600,17.324,8.674,8.118,7.865,11.713,6.256,3.806,2.093,1.894,1.398,1.048,0.980,1.994,3.653,4.514,2.311,2.518,2.072,2.629,3.386,1.958,2.811,11.076,8.795,11.143,36.053,24.765,26.943,59.685,61.351,51.577 +14:00-14:15,44.975,43.061,35.495,23.361,19.979,16.033,9.180,8.365,7.810,10.164,5.734,3.545,1.798,1.359,1.488,1.571,1.566,1.875,4.026,3.318,2.423,2.808,2.308,2.664,3.013,2.057,2.594,12.569,8.822,10.710,33.136,26.130,30.619,64.592,58.790,53.439 +14:15-14:30,43.120,46.010,36.334,24.156,21.015,15.883,8.458,8.519,7.751,9.253,7.537,3.259,1.789,1.411,1.830,2.002,1.429,1.966,4.325,5.205,2.815,2.060,3.243,2.779,2.783,2.002,2.687,10.633,8.620,10.340,31.955,26.737,31.484,67.608,59.850,55.369 +14:30-14:45,45.431,45.969,36.641,24.447,20.386,16.969,8.677,8.896,8.057,10.056,8.406,3.519,1.215,1.694,1.617,2.486,1.415,1.693,3.214,4.778,2.488,1.923,2.493,2.623,3.213,1.570,2.938,9.068,10.622,10.366,32.749,25.285,31.604,68.050,62.164,56.490 +14:45-15:00,46.491,51.608,38.010,23.528,20.240,17.138,9.024,10.572,8.434,10.225,8.469,3.392,1.651,1.329,1.637,2.220,1.584,1.794,3.676,4.226,2.379,2.494,2.001,2.409,3.230,1.702,2.887,10.202,10.332,10.408,35.171,28.130,34.394,70.055,64.511,57.480 +15:00-15:15,53.460,53.562,40.733,23.724,21.777,17.779,10.333,11.411,8.532,9.322,8.408,3.598,1.715,2.052,1.337,2.468,1.287,1.734,3.253,3.641,2.427,2.386,2.487,2.404,3.554,3.878,3.150,12.566,11.847,11.194,40.864,31.338,37.518,72.296,70.775,62.315 +15:15-15:30,57.211,54.179,44.009,22.092,25.014,18.753,9.481,12.253,9.598,7.650,8.913,3.738,2.012,1.507,1.481,2.167,1.527,1.947,3.057,3.135,2.660,2.351,3.231,2.359,3.671,2.821,2.683,12.860,11.435,11.081,43.346,30.448,40.676,75.305,68.913,65.380 +15:30-15:45,62.806,55.178,46.250,22.970,23.746,20.114,9.002,11.512,10.373,8.098,9.551,4.519,1.892,1.325,1.928,1.720,2.324,1.946,3.089,3.783,2.448,3.108,2.998,2.224,2.953,4.074,2.572,11.581,11.123,12.439,44.118,31.237,44.189,82.293,73.001,67.813 +15:45-16:00,66.004,61.622,50.375,22.804,23.936,20.117,9.484,11.944,11.014,8.110,9.088,5.404,2.434,1.119,1.811,1.765,1.826,2.071,3.282,3.280,2.450,2.705,3.260,2.437,2.899,3.482,2.824,13.044,11.040,13.597,50.318,34.940,46.432,84.785,75.287,72.959 +16:00-16:15,64.474,65.270,55.009,23.785,28.110,22.330,9.343,12.684,12.090,9.286,8.271,6.485,2.411,1.616,2.066,1.255,2.302,2.130,3.758,3.767,2.916,3.671,2.818,2.818,3.103,4.412,3.476,12.908,11.708,16.673,47.393,38.091,48.924,89.840,79.299,78.745 +16:15-16:30,65.925,66.354,58.422,24.485,31.451,24.683,9.885,13.386,12.570,10.337,8.530,6.853,2.748,1.757,2.144,1.616,2.613,2.520,3.507,3.337,3.204,4.395,2.843,2.746,3.351,4.990,3.911,16.007,12.952,17.552,53.078,41.262,52.630,92.819,80.895,81.444 +16:30-16:45,71.428,68.707,61.242,26.841,33.995,25.510,11.434,13.906,13.491,12.047,8.685,7.119,2.552,1.599,2.143,2.280,2.262,2.280,3.483,3.282,2.766,3.990,2.685,3.043,2.990,8.659,3.708,18.953,12.325,18.684,53.120,47.274,54.736,95.438,84.464,84.841 +16:45-17:00,77.282,73.614,64.166,29.967,35.994,29.513,14.162,16.266,14.139,13.121,8.737,6.398,3.065,1.718,2.507,2.768,1.992,2.644,3.418,3.269,3.170,5.514,2.721,3.231,3.079,6.112,4.246,15.066,13.596,19.988,57.144,48.774,55.570,95.898,84.933,84.350 +17:00-17:15,88.222,79.444,68.634,32.381,39.200,34.125,15.680,18.658,15.239,15.247,8.747,6.405,3.827,2.702,2.882,2.587,1.823,2.907,4.430,4.327,3.528,4.508,2.976,4.047,3.708,6.065,4.591,14.846,16.091,21.319,56.399,49.686,58.520,97.212,89.776,88.660 +17:15-17:30,83.448,83.857,69.923,35.269,43.548,37.914,18.004,17.754,16.611,16.448,10.206,6.327,5.561,2.936,3.461,2.092,2.084,2.935,4.945,4.510,3.949,4.458,4.020,4.222,3.888,7.108,5.060,19.297,22.045,23.812,59.037,52.668,61.350,100.497,95.268,89.932 +17:30-17:45,88.450,84.980,71.788,39.429,45.941,41.147,20.383,22.389,19.268,18.042,9.830,6.948,6.135,3.266,3.394,2.789,2.152,3.538,4.242,4.291,4.684,5.363,4.910,4.922,4.833,6.716,6.491,19.213,24.449,25.240,58.578,54.329,63.299,104.710,97.859,92.999 +17:45-18:00,90.442,84.542,73.745,39.805,51.778,43.556,22.587,26.304,21.323,16.772,10.368,7.557,4.853,5.196,3.745,2.699,2.510,3.916,5.945,4.066,5.171,5.177,6.422,5.227,6.941,6.493,7.304,20.377,25.855,27.153,60.132,56.078,66.188,105.787,99.481,91.443 +18:00-18:15,90.178,88.558,76.739,42.874,51.569,46.171,26.410,27.539,23.480,17.383,10.229,8.489,4.875,4.053,4.388,3.144,3.009,3.485,6.302,4.119,4.833,6.167,6.519,5.897,6.552,6.977,8.248,22.596,25.576,29.083,66.140,56.475,67.259,102.836,98.631,91.576 +18:15-18:30,93.312,85.988,77.325,44.004,51.983,48.569,25.933,29.059,25.033,19.380,11.584,9.001,4.892,4.551,4.986,3.680,3.337,3.775,5.996,4.354,5.176,6.730,7.148,6.154,7.645,8.232,8.320,25.086,24.975,29.801,64.013,57.374,68.094,97.414,102.307,93.699 +18:30-18:45,93.228,86.413,75.610,45.602,54.465,47.390,26.961,27.804,25.842,23.373,12.865,9.454,5.641,3.919,4.567,5.015,4.724,4.303,5.173,4.047,5.286,6.760,7.515,6.121,7.305,9.216,8.912,24.814,25.936,29.684,60.440,57.649,67.089,94.338,102.271,89.665 +18:45-19:00,95.265,83.678,74.935,45.156,56.271,47.192,25.596,28.481,26.552,20.247,12.218,9.604,6.386,3.756,4.963,4.608,3.706,4.769,5.999,4.532,5.768,6.241,8.738,6.528,7.887,9.404,9.481,24.401,25.936,29.580,60.000,57.312,66.173,96.000,98.838,87.972 +19:00-19:15,94.052,86.480,74.148,42.162,54.513,46.555,26.751,28.246,27.091,24.321,14.736,10.347,6.635,4.487,5.367,3.191,2.957,4.583,6.545,4.622,5.467,7.510,9.327,7.260,9.202,8.534,9.511,25.956,25.615,30.653,59.453,57.937,67.116,96.878,93.644,89.919 +19:15-19:30,89.455,80.851,73.487,43.935,55.399,46.250,28.855,28.082,28.017,22.777,13.596,10.902,6.749,5.368,6.027,4.442,4.050,4.320,7.362,4.152,5.466,4.690,10.527,7.336,8.345,8.834,9.423,25.335,25.035,30.328,58.821,57.733,64.836,89.658,92.674,89.768 +19:30-19:45,87.454,80.041,71.619,43.351,55.335,44.441,28.321,28.965,27.239,25.620,16.722,11.364,8.579,6.045,5.845,5.347,3.995,4.388,7.615,5.471,6.051,5.911,10.534,7.763,7.161,7.954,9.298,25.850,25.958,28.685,59.613,58.788,64.240,91.506,90.243,87.646 +19:45-20:00,81.705,81.847,70.726,44.896,52.707,43.624,32.512,27.884,28.025,27.967,17.209,12.256,8.536,5.567,5.481,4.717,4.507,5.106,8.398,5.617,5.895,7.590,9.896,7.764,7.378,7.164,8.116,26.784,24.734,29.009,60.013,59.113,65.165,91.100,87.257,86.282 +20:00-20:15,80.924,78.606,73.119,48.432,50.230,45.518,28.923,30.854,28.633,26.672,17.713,12.979,7.006,6.095,6.529,5.764,5.600,5.454,10.072,5.877,5.896,7.622,9.946,7.983,7.021,7.788,7.897,26.463,26.088,29.661,61.087,55.856,67.036,91.478,87.804,89.379 +20:15-20:30,78.360,76.882,70.933,50.351,50.322,43.833,26.617,29.137,28.705,26.881,17.556,13.128,6.569,6.597,7.100,6.161,5.722,5.861,8.020,6.368,6.081,6.722,9.366,7.661,7.478,6.458,8.080,27.923,26.103,29.279,58.610,56.591,65.439,92.279,82.748,86.871 +20:30-20:45,74.365,72.847,70.360,47.599,49.468,44.259,29.553,29.736,28.705,25.299,17.241,13.414,7.689,6.597,6.874,5.709,4.837,5.548,8.347,7.831,6.503,7.108,9.336,7.684,7.133,6.010,7.730,26.545,27.599,28.529,57.817,53.903,64.727,87.823,80.893,87.383 +20:45-21:00,74.881,70.905,69.663,50.486,49.897,43.169,28.540,29.096,29.404,26.451,16.837,13.210,6.878,5.574,6.706,6.200,5.187,5.630,8.636,6.213,6.933,7.349,8.643,7.807,7.676,6.002,7.942,25.130,26.942,27.736,57.109,53.603,64.342,83.835,80.263,85.098 +21:00-21:15,74.250,68.060,68.576,47.387,50.567,43.580,27.866,28.854,29.113,26.066,16.509,13.139,6.390,5.702,6.144,6.010,4.735,6.057,8.532,5.571,6.924,7.791,7.953,7.872,7.747,6.118,7.923,26.109,25.350,28.631,58.150,53.074,62.130,83.270,79.623,80.850 +21:15-21:30,69.530,65.531,65.220,46.496,49.362,43.753,27.926,28.699,28.650,25.879,16.804,12.960,6.721,5.913,6.062,6.525,4.801,5.652,8.780,6.046,7.350,7.744,8.195,7.908,8.300,6.890,8.148,26.066,25.473,28.974,56.942,52.408,60.132,80.956,75.201,78.852 +21:30-21:45,69.426,65.690,64.587,46.077,48.384,44.252,27.559,28.863,28.298,24.630,15.973,12.929,6.222,5.433,5.963,5.625,4.781,5.595,7.828,6.270,7.339,7.222,8.552,7.565,8.329,6.152,7.656,26.788,26.025,29.139,52.793,51.504,59.796,76.576,73.638,77.590 +21:45-22:00,66.094,65.662,63.854,47.567,46.613,44.424,27.717,29.504,28.218,24.221,16.534,13.266,7.237,5.841,6.211,5.682,6.186,6.537,8.171,6.919,7.874,6.642,8.922,7.604,8.002,6.350,7.471,27.308,26.488,28.547,50.931,53.231,58.605,77.709,75.955,77.469 +22:00-22:15,65.828,63.255,61.513,44.984,43.965,43.769,27.213,28.304,26.962,25.163,14.712,13.365,6.473,5.434,5.898,5.869,5.511,6.702,7.965,6.025,7.661,7.145,8.266,7.491,7.541,6.188,7.444,27.192,25.593,28.484,49.798,50.454,55.054,72.921,70.085,73.571 +22:15-22:30,66.042,60.391,59.142,44.572,42.132,42.001,26.704,26.561,26.018,24.762,14.587,13.619,6.525,5.891,5.834,5.403,5.286,5.950,7.540,5.825,6.878,8.368,7.820,7.380,8.153,5.599,7.926,26.120,25.044,27.627,50.198,51.824,53.488,72.526,67.085,69.917 +22:30-22:45,63.792,58.675,56.271,42.524,41.092,41.008,24.470,26.057,26.036,24.715,14.254,13.785,6.819,5.051,5.838,5.352,4.393,6.033,7.684,5.454,6.670,9.286,8.984,7.349,7.772,6.623,7.633,25.542,25.011,26.094,49.361,52.211,51.586,69.570,66.991,68.682 +22:45-23:00,60.288,54.586,53.631,42.281,39.906,40.493,25.081,27.413,25.629,24.216,14.907,13.722,6.853,5.403,5.618,4.679,3.712,5.594,7.179,5.044,6.242,9.663,8.134,7.403,7.653,6.034,7.610,24.512,22.861,25.241,48.365,49.612,50.586,67.163,64.880,66.995 +23:00-23:15,56.704,52.793,52.243,42.718,37.395,39.197,25.710,24.683,24.870,23.533,15.050,13.345,6.352,5.378,5.227,3.796,3.294,5.164,6.500,4.822,5.912,9.135,7.863,7.563,7.964,5.789,8.091,25.968,22.641,24.811,47.604,45.868,49.617,65.102,61.818,63.011 +23:15-23:30,57.783,48.899,49.984,40.892,38.421,38.709,25.174,24.089,24.722,22.388,14.467,12.687,5.884,5.431,5.249,4.317,3.581,4.811,6.127,4.943,5.860,9.110,7.532,7.496,8.034,6.073,7.642,24.283,21.913,23.638,47.851,45.269,47.100,60.793,61.101,60.479 +23:30-23:45,54.702,47.327,48.095,41.010,38.978,37.629,25.896,23.231,24.078,22.069,13.943,12.595,5.759,5.360,5.260,4.419,3.565,4.782,5.881,4.797,5.897,7.852,7.718,7.296,7.437,6.319,7.356,26.284,22.392,23.127,46.306,41.204,45.358,58.269,58.331,59.112 +23:45-00:00,54.335,46.957,47.165,41.442,38.972,37.484,25.069,22.517,24.473,21.900,14.413,12.988,5.440,5.297,6.087,4.479,3.713,4.834,6.912,4.885,6.002,8.275,7.635,7.485,7.401,6.628,7.543,26.512,21.073,23.283,44.454,40.885,44.814,59.398,57.183,59.141 From 7d154b6f7850d196760b2cb31a005bd359c11e59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Fri, 4 Apr 2025 16:18:37 +0200 Subject: [PATCH 02/23] Split dynamisation_function function from ElecSlp class --- src/demandlib/bdew/elec_slp.py | 66 ++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 30 deletions(-) diff --git a/src/demandlib/bdew/elec_slp.py b/src/demandlib/bdew/elec_slp.py index 8fae971..d794bf3 100644 --- a/src/demandlib/bdew/elec_slp.py +++ b/src/demandlib/bdew/elec_slp.py @@ -15,11 +15,45 @@ import os import warnings +import numpy as np import pandas as pd from demandlib.tools import add_weekdays2df +def dynamisation_function(timeindex: pd.DatetimeIndex) -> pd.Series: + r""" + Use the dynamisation function of the BDEW to smoothen the seasonal + edges. Functions resolution is daily. + + .. math:: + F_t = -3,92\cdot10^{-10} \cdot t^4 + 3,2\cdot10^{-7} + \cdot t^3– 7,02\cdot10^{-5}\cdot t^2 + 2,1\cdot10^{-3} + \cdot t + 1,24 + + With `t` the day of the year as a decimal number. + """ + + # The standard sais that the day of the year (1 through 365) + # should be used. However, normalisation works better if we + # allow fractional days and start by day 0. + day_of_year = pd.Series( + [((q + 1) / (24 * 4)) for q in range(len(timeindex))], + index=timeindex, + ) + + # Calculate the smoothing factor of the BDEW dynamic H0 profile + # Adjustment of for normalisation: from -3,92 to -3.916649251 + return pd.Series( + -3.916649251 * 10**-10 * day_of_year**4 + + 3.2 * 10**-7 * day_of_year**3 + - 7.02 * 10**-5 * day_of_year**2 + + 0.0021 * day_of_year + + 1.24, + index=timeindex, + ) + + class ElecSlp: """Generate electrical standardized load profiles based on the BDEW method. @@ -165,37 +199,9 @@ def create_bdew_load_profiles(self, dt_index, slp_types, holidays=None): return new_df.div(new_df.sum(axis=0), axis=1) def create_dynamic_h0_profile(self): - r""" - Use the dynamisation function of the BDEW to smoothen the seasonal - edges. Functions resolution is daily. - - .. math:: - F_t = -3,92\cdot10^{-10} \cdot t^4 + 3,2\cdot10^{-7} - \cdot t^3– 7,02\cdot10^{-5}\cdot t^2 + 2,1\cdot10^{-3} - \cdot t + 1,24 - - With `t` the day of the year as a decimal number. - - Adjustment of accuracy: from -3,92 to -3.916649251 - """ - # Create a Series with the day of the year as decimal number - decimal_day = pd.Series( - [((q + 1) / (24 * 4)) for q in range(len(self.slp_frame))], - index=self.slp_frame.index, - ) - - # Calculate the smoothing factor of the BDEW dynamic H0 profile - smoothing_factor = ( - -3.916649251 * 10**-10 * decimal_day**4 - + 3.2 * 10**-7 * decimal_day**3 - - 7.02 * 10**-5 * decimal_day**2 - + 0.0021 * decimal_day - + 1.24 - ) - - # Multiply the smoothing factor with the default H0 profile + # Multiply the smoothing factor with the static H0 profile self.slp_frame["h0_dyn"] = self.slp_frame["h0"].mul( - smoothing_factor, axis=0 + dynamisation_function(self.slp_frame.index), axis=0 ) return self.slp_frame["h0_dyn"] From da3139e3db227c6a86645525d10e7adaa34a1221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Fri, 4 Apr 2025 20:50:37 +0200 Subject: [PATCH 03/23] Set bdew datapath outside ElecSlp class --- src/demandlib/bdew/elec_slp.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/demandlib/bdew/elec_slp.py b/src/demandlib/bdew/elec_slp.py index d794bf3..a82c69e 100644 --- a/src/demandlib/bdew/elec_slp.py +++ b/src/demandlib/bdew/elec_slp.py @@ -15,7 +15,6 @@ import os import warnings -import numpy as np import pandas as pd from demandlib.tools import add_weekdays2df @@ -53,6 +52,8 @@ def dynamisation_function(timeindex: pd.DatetimeIndex) -> pd.Series: index=timeindex, ) +_bdew_datapath = os.path.join(os.path.dirname(__file__), "bdew_data") + class ElecSlp: """Generate electrical standardized load profiles based on the BDEW method. @@ -80,7 +81,6 @@ def __init__(self, year, seasons=None, holidays=None): hoy = 8784 else: hoy = 8760 - self._datapath = os.path.join(os.path.dirname(__file__), "bdew_data") self._date_time_index = pd.date_range( datetime.datetime(year, 1, 1, 0), periods=hoy * 4, freq="15Min" ) @@ -132,7 +132,7 @@ def create_bdew_load_profiles(self, dt_index, slp_types, holidays=None): """ # define file path of slp csv data - file_path = os.path.join(self._datapath, "selp_series.csv") + file_path = os.path.join(_bdew_datapath, "selp_series.csv") # Read standard load profile series from csv file selp_series = pd.read_csv(file_path) From 1aa34c30fb76860bc960a842870a4bec0d0308f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Mon, 7 Apr 2025 10:04:51 +0200 Subject: [PATCH 04/23] Add stub for BDEW25 profiles --- src/demandlib/bdew/_profiles25.py | 73 +++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 src/demandlib/bdew/_profiles25.py diff --git a/src/demandlib/bdew/_profiles25.py b/src/demandlib/bdew/_profiles25.py new file mode 100644 index 0000000..23eb3e0 --- /dev/null +++ b/src/demandlib/bdew/_profiles25.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +""" +Implementation of the 2025 BDEW standard load profiles: +* H25 (dynamic), household profile based on 2018 and 2019 data +* G25 (static), industrial profile based on 2022 and 2023 data +* L25 (static), farm profile based on previous L0 profile +* P25 (dynamic), profile for households with PV based on 2022 and 2023 data +* S25 (dynamic), profile for households with BES based on 2022 and 2023 data + +SPDX-FileCopyrightText: Patrik Schönfeldt + +SPDX-License-Identifier: MIT +""" + +import os + +import pandas as pd + + +_bdew_datapath = os.path.join(os.path.dirname(__file__), "bdew_data") + +class BDEW25Profile(pd.Series): + @property + def datafile(self): + raise NotImplementedError( + "BDEW25Profile needs to be implemented," + " please use one of its children instead." + ) + + def __init__(self, timeindex: pd.DatetimeIndex): + profile_data = pd.read_csv(_bdew_datapath + self.datafile) + profile = profile_data + super().__init__(data=profile, index=timeindex) + + +class L25(BDEW25Profile): + def __init__( + self, + timeindex: pd.DatetimeIndex + ): + super().__init__(timeindex=timeindex) + + @property + def datafile(self): + return "/l25.csv" + + +if __name__ == "__main__": + dti = pd.date_range("2018-01-01", periods=15, freq="15min") + + profile_data = pd.read_csv(_bdew_datapath + "/l25.csv", header=[0,1]) + + profile_data.rename( + columns={ + "Januar": 1, + "Februar": 2, + "März": 3, + "April": 4, + "Mai": 5, + "Juni": 6, + "Juli": 7, + "August": 8, + "September": 9, + "Oktober": 10, + "November": 11, + "Dezember": 12, + }, + inplace=True, + ) + + print(profile_data) + + print(dti.month, dti.day_of_week) From 65c203dcaa664273d79c6fd19777f1acfaf48f05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Mon, 7 Apr 2025 16:47:44 +0200 Subject: [PATCH 05/23] Start structuring SLP25 generation along SLP00 generation --- src/demandlib/bdew/_profiles25.py | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/demandlib/bdew/_profiles25.py b/src/demandlib/bdew/_profiles25.py index 23eb3e0..4cdee0d 100644 --- a/src/demandlib/bdew/_profiles25.py +++ b/src/demandlib/bdew/_profiles25.py @@ -16,6 +16,8 @@ import pandas as pd +from demandlib.tools import add_weekdays2df + _bdew_datapath = os.path.join(os.path.dirname(__file__), "bdew_data") @@ -46,7 +48,11 @@ def datafile(self): if __name__ == "__main__": - dti = pd.date_range("2018-01-01", periods=15, freq="15min") + dt_index = pd.date_range( + start="2020-01-01 00:00", + end="2021-12-31 23:45", + freq="15min", + ) profile_data = pd.read_csv(_bdew_datapath + "/l25.csv", header=[0,1]) @@ -67,7 +73,24 @@ def datafile(self): }, inplace=True, ) + profile_data[("time", "hour")] = [h for h in range(24) for _ in range(4)] + profile_data[("time", "minute")] = [ + m for _ in range(24) for m in range(0, 60, 15) + ] + + new_df = pd.DataFrame( + data={ + "month": dt_index.month, + "day": dt_index.day_of_week + 1, + "hour": dt_index.hour, + "minute": dt_index.minute, + }, + index=dt_index, + ) - print(profile_data) + new_df.replace({"day": [1, 2, 3, 4, 5]}, "WT", inplace=True) + new_df.replace({"day": [6]}, "SA", inplace=True) + new_df.replace({"day": [7, 8]}, "FT", inplace=True) - print(dti.month, dti.day_of_week) + print(profile_data) + print(new_df) From dc97710fb0b04642d6f559050caa79b3e4c72e80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Mon, 7 Apr 2025 19:53:33 +0200 Subject: [PATCH 06/23] Finish static versions of SLP25 --- src/demandlib/bdew/_profiles25.py | 128 +++++++++++++++++++----------- 1 file changed, 82 insertions(+), 46 deletions(-) diff --git a/src/demandlib/bdew/_profiles25.py b/src/demandlib/bdew/_profiles25.py index 4cdee0d..8d1e1e8 100644 --- a/src/demandlib/bdew/_profiles25.py +++ b/src/demandlib/bdew/_profiles25.py @@ -16,11 +16,9 @@ import pandas as pd -from demandlib.tools import add_weekdays2df - - _bdew_datapath = os.path.join(os.path.dirname(__file__), "bdew_data") + class BDEW25Profile(pd.Series): @property def datafile(self): @@ -29,10 +27,83 @@ def datafile(self): " please use one of its children instead." ) + @property + def raw_profile_data(self): + profile_data = pd.read_csv( + _bdew_datapath + self.datafile, + header=[0, 1], + ) + + profile_data.rename( + columns={ + "Januar": 1, + "Februar": 2, + "März": 3, + "April": 4, + "Mai": 5, + "Juni": 6, + "Juli": 7, + "August": 8, + "September": 9, + "Oktober": 10, + "November": 11, + "Dezember": 12, + }, + inplace=True, + ) + del profile_data[("Unnamed: 0_level_0", "[kWh]")] + + hours = [h for h in range(24) for _ in range(4)] + minutes = [m for _ in range(24) for m in range(0, 60, 15)] + serialised_data = [] + for column in profile_data.columns: + serialised_data.append( + pd.DataFrame( + data={ + "month": column[0], + "day": column[1], + "hour": hours, + "minute": minutes, + "value": profile_data[column]/4, + } + ) + ) + + profile_data = pd.concat(serialised_data, ignore_index=True) + return profile_data + + def __init__(self, timeindex: pd.DatetimeIndex): + + new_df = pd.DataFrame( + data={ + "month": timeindex.month, + "day": timeindex.day_of_week + 1, + "hour": timeindex.hour, + "minute": timeindex.minute, + }, + ) + + new_df.replace({"day": [1, 2, 3, 4, 5]}, "WT", inplace=True) + new_df.replace({"day": [6]}, "SA", inplace=True) + new_df.replace({"day": [7, 8]}, "FT", inplace=True) + + new_df = new_df.merge( + self.raw_profile_data, + on=["month", "day", "hour", "minute"], + how="inner", + ) + new_df.set_index(dt_index, inplace=True) + + super().__init__(data=new_df.value, index=timeindex) + + +class G25(BDEW25Profile): def __init__(self, timeindex: pd.DatetimeIndex): - profile_data = pd.read_csv(_bdew_datapath + self.datafile) - profile = profile_data - super().__init__(data=profile, index=timeindex) + super().__init__(timeindex=timeindex) + + @property + def datafile(self): + return "/g25.csv" class L25(BDEW25Profile): @@ -50,47 +121,12 @@ def datafile(self): if __name__ == "__main__": dt_index = pd.date_range( start="2020-01-01 00:00", - end="2021-12-31 23:45", + end="2020-12-31 23:45", freq="15min", ) - profile_data = pd.read_csv(_bdew_datapath + "/l25.csv", header=[0,1]) - - profile_data.rename( - columns={ - "Januar": 1, - "Februar": 2, - "März": 3, - "April": 4, - "Mai": 5, - "Juni": 6, - "Juli": 7, - "August": 8, - "September": 9, - "Oktober": 10, - "November": 11, - "Dezember": 12, - }, - inplace=True, - ) - profile_data[("time", "hour")] = [h for h in range(24) for _ in range(4)] - profile_data[("time", "minute")] = [ - m for _ in range(24) for m in range(0, 60, 15) - ] - - new_df = pd.DataFrame( - data={ - "month": dt_index.month, - "day": dt_index.day_of_week + 1, - "hour": dt_index.hour, - "minute": dt_index.minute, - }, - index=dt_index, - ) - - new_df.replace({"day": [1, 2, 3, 4, 5]}, "WT", inplace=True) - new_df.replace({"day": [6]}, "SA", inplace=True) - new_df.replace({"day": [7, 8]}, "FT", inplace=True) + profile_g = G25(dt_index) + profile_l = L25(dt_index) - print(profile_data) - print(new_df) + print(profile_g) + print(profile_l) From b5f53724f750a964166473028cbbed9ee1711584 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Mon, 7 Apr 2025 19:55:28 +0200 Subject: [PATCH 07/23] Improve imports --- src/demandlib/__init__.py | 8 ++++++++ src/demandlib/bdew/__init__.py | 13 +++++++++++-- src/demandlib/bdew/elec_slp.py | 4 ++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/demandlib/__init__.py b/src/demandlib/__init__.py index 995b9fb..55479a4 100644 --- a/src/demandlib/__init__.py +++ b/src/demandlib/__init__.py @@ -1 +1,9 @@ __version__ = "0.2.2a1" + +from . import bdew +from . import vdi + +__all__ = [ + "bdew", + "vdi", +] diff --git a/src/demandlib/bdew/__init__.py b/src/demandlib/bdew/__init__.py index b8c114a..db39f01 100644 --- a/src/demandlib/bdew/__init__.py +++ b/src/demandlib/bdew/__init__.py @@ -7,5 +7,14 @@ SPDX-License-Identifier: MIT """ -from .elec_slp import ElecSlp # noqa: F401 -from .heat_building import HeatBuilding # noqa: F401 +from ._profiles25 import G25 +from ._profiles25 import L25 +from .elec_slp import ElecSlp +from .heat_building import HeatBuilding + +__all__ = [ + "ElecSlp", + "HeatBuilding", + "G25", + "L25", +] diff --git a/src/demandlib/bdew/elec_slp.py b/src/demandlib/bdew/elec_slp.py index a82c69e..63db4fa 100644 --- a/src/demandlib/bdew/elec_slp.py +++ b/src/demandlib/bdew/elec_slp.py @@ -19,6 +19,8 @@ from demandlib.tools import add_weekdays2df +from ._profiles25 import _bdew_datapath + def dynamisation_function(timeindex: pd.DatetimeIndex) -> pd.Series: r""" @@ -52,8 +54,6 @@ def dynamisation_function(timeindex: pd.DatetimeIndex) -> pd.Series: index=timeindex, ) -_bdew_datapath = os.path.join(os.path.dirname(__file__), "bdew_data") - class ElecSlp: """Generate electrical standardized load profiles based on the BDEW method. From 45818304eecde122e5d75f3a51dadb73435b00f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Mon, 7 Apr 2025 20:18:18 +0200 Subject: [PATCH 08/23] Add dynamic BDEW25 profiles --- src/demandlib/bdew/__init__.py | 6 ++++ src/demandlib/bdew/_profiles25.py | 60 ++++++++++++++++++++++++------- 2 files changed, 53 insertions(+), 13 deletions(-) diff --git a/src/demandlib/bdew/__init__.py b/src/demandlib/bdew/__init__.py index db39f01..ae70645 100644 --- a/src/demandlib/bdew/__init__.py +++ b/src/demandlib/bdew/__init__.py @@ -8,7 +8,10 @@ """ from ._profiles25 import G25 +from ._profiles25 import H25 from ._profiles25 import L25 +from ._profiles25 import P25 +from ._profiles25 import S25 from .elec_slp import ElecSlp from .heat_building import HeatBuilding @@ -16,5 +19,8 @@ "ElecSlp", "HeatBuilding", "G25", + "H25", "L25", + "P25", + "S25", ] diff --git a/src/demandlib/bdew/_profiles25.py b/src/demandlib/bdew/_profiles25.py index 8d1e1e8..0a82a47 100644 --- a/src/demandlib/bdew/_profiles25.py +++ b/src/demandlib/bdew/_profiles25.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- """ Implementation of the 2025 BDEW standard load profiles: -* H25 (dynamic), household profile based on 2018 and 2019 data * G25 (static), industrial profile based on 2022 and 2023 data +* H25 (dynamic), household profile based on 2018 and 2019 data * L25 (static), farm profile based on previous L0 profile * P25 (dynamic), profile for households with PV based on 2022 and 2023 data * S25 (dynamic), profile for households with BES based on 2022 and 2023 data @@ -14,6 +14,7 @@ import os +import numpy as np import pandas as pd _bdew_datapath = os.path.join(os.path.dirname(__file__), "bdew_data") @@ -73,7 +74,6 @@ def raw_profile_data(self): return profile_data def __init__(self, timeindex: pd.DatetimeIndex): - new_df = pd.DataFrame( data={ "month": timeindex.month, @@ -92,11 +92,32 @@ def __init__(self, timeindex: pd.DatetimeIndex): on=["month", "day", "hour", "minute"], how="inner", ) - new_df.set_index(dt_index, inplace=True) + new_df.set_index(timeindex, inplace=True) super().__init__(data=new_df.value, index=timeindex) +class DynamicBDEW25Profile(BDEW25Profile): + def __init__(self, timeindex: pd.DatetimeIndex): + super().__init__(timeindex=timeindex) + self.update(self * self.dynamisation_function(timeindex)) + + @staticmethod + def dynamisation_function(timeindex: pd.DatetimeIndex) -> pd.Series: + + # cast to float hear because of miscalculations when using integers + day_of_year = np.array(timeindex.day_of_year, dtype=float) + + return pd.Series( + -3.92 * 10**-10 * day_of_year**4 + + 3.2 * 10**-7 * day_of_year**3 + - 7.02 * 10**-5 * day_of_year**2 + + 0.0021 * day_of_year + + 1.24, + index=timeindex, + ) + + class G25(BDEW25Profile): def __init__(self, timeindex: pd.DatetimeIndex): super().__init__(timeindex=timeindex) @@ -106,6 +127,15 @@ def datafile(self): return "/g25.csv" +class H25(DynamicBDEW25Profile): + def __init__(self, timeindex: pd.DatetimeIndex): + super().__init__(timeindex=timeindex) + + @property + def datafile(self): + return "/h25.csv" + + class L25(BDEW25Profile): def __init__( self, @@ -118,15 +148,19 @@ def datafile(self): return "/l25.csv" -if __name__ == "__main__": - dt_index = pd.date_range( - start="2020-01-01 00:00", - end="2020-12-31 23:45", - freq="15min", - ) +class P25(DynamicBDEW25Profile): + def __init__(self, timeindex: pd.DatetimeIndex): + super().__init__(timeindex=timeindex) + + @property + def datafile(self): + return "/p25.csv" + - profile_g = G25(dt_index) - profile_l = L25(dt_index) +class S25(DynamicBDEW25Profile): + def __init__(self, timeindex: pd.DatetimeIndex): + super().__init__(timeindex=timeindex) - print(profile_g) - print(profile_l) + @property + def datafile(self): + return "/s25.csv" From 6258eb00ae353a40432d1561c3a3bbca5998aff3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Mon, 7 Apr 2025 20:41:48 +0200 Subject: [PATCH 09/23] Fix PV25 file naming --- src/demandlib/bdew/bdew_data/{p24.csv => p25.csv} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/demandlib/bdew/bdew_data/{p24.csv => p25.csv} (100%) diff --git a/src/demandlib/bdew/bdew_data/p24.csv b/src/demandlib/bdew/bdew_data/p25.csv similarity index 100% rename from src/demandlib/bdew/bdew_data/p24.csv rename to src/demandlib/bdew/bdew_data/p25.csv From ce065cfdb7efbba3a1b18ae366097ffa118720f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Mon, 7 Apr 2025 20:44:47 +0200 Subject: [PATCH 10/23] Define BDEW25Profile init before other class members --- src/demandlib/bdew/_profiles25.py | 54 +++++++++++++++---------------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/src/demandlib/bdew/_profiles25.py b/src/demandlib/bdew/_profiles25.py index 0a82a47..0bc380e 100644 --- a/src/demandlib/bdew/_profiles25.py +++ b/src/demandlib/bdew/_profiles25.py @@ -21,6 +21,30 @@ class BDEW25Profile(pd.Series): + + def __init__(self, timeindex: pd.DatetimeIndex): + new_df = pd.DataFrame( + data={ + "month": timeindex.month, + "day": timeindex.day_of_week + 1, + "hour": timeindex.hour, + "minute": timeindex.minute, + }, + ) + + new_df.replace({"day": [1, 2, 3, 4, 5]}, "WT", inplace=True) + new_df.replace({"day": [6]}, "SA", inplace=True) + new_df.replace({"day": [7, 8]}, "FT", inplace=True) + + new_df = new_df.merge( + self.raw_profile_data, + on=["month", "day", "hour", "minute"], + how="inner", + ) + new_df.set_index(timeindex, inplace=True) + + super().__init__(data=new_df.value, index=timeindex) + @property def datafile(self): raise NotImplementedError( @@ -65,7 +89,7 @@ def raw_profile_data(self): "day": column[1], "hour": hours, "minute": minutes, - "value": profile_data[column]/4, + "value": profile_data[column] / 4, } ) ) @@ -73,29 +97,6 @@ def raw_profile_data(self): profile_data = pd.concat(serialised_data, ignore_index=True) return profile_data - def __init__(self, timeindex: pd.DatetimeIndex): - new_df = pd.DataFrame( - data={ - "month": timeindex.month, - "day": timeindex.day_of_week + 1, - "hour": timeindex.hour, - "minute": timeindex.minute, - }, - ) - - new_df.replace({"day": [1, 2, 3, 4, 5]}, "WT", inplace=True) - new_df.replace({"day": [6]}, "SA", inplace=True) - new_df.replace({"day": [7, 8]}, "FT", inplace=True) - - new_df = new_df.merge( - self.raw_profile_data, - on=["month", "day", "hour", "minute"], - how="inner", - ) - new_df.set_index(timeindex, inplace=True) - - super().__init__(data=new_df.value, index=timeindex) - class DynamicBDEW25Profile(BDEW25Profile): def __init__(self, timeindex: pd.DatetimeIndex): @@ -137,10 +138,7 @@ def datafile(self): class L25(BDEW25Profile): - def __init__( - self, - timeindex: pd.DatetimeIndex - ): + def __init__(self, timeindex: pd.DatetimeIndex): super().__init__(timeindex=timeindex) @property From 69f767b1003a0082ec46435b9f6cf928cefcbe29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Mon, 7 Apr 2025 20:48:09 +0200 Subject: [PATCH 11/23] Fix BDEW25 scaling --- src/demandlib/bdew/_profiles25.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/demandlib/bdew/_profiles25.py b/src/demandlib/bdew/_profiles25.py index 0bc380e..849f7a4 100644 --- a/src/demandlib/bdew/_profiles25.py +++ b/src/demandlib/bdew/_profiles25.py @@ -89,7 +89,7 @@ def raw_profile_data(self): "day": column[1], "hour": hours, "minute": minutes, - "value": profile_data[column] / 4, + "value": 4 * profile_data[column], } ) ) From cb68b4d0357ddbc2bafe376730134e1ebffce0d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Mon, 7 Apr 2025 20:48:45 +0200 Subject: [PATCH 12/23] Add short BDEW25 example --- examples/bdew_slp25.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 examples/bdew_slp25.py diff --git a/examples/bdew_slp25.py b/examples/bdew_slp25.py new file mode 100644 index 0000000..733bc5e --- /dev/null +++ b/examples/bdew_slp25.py @@ -0,0 +1,23 @@ +import matplotlib.pyplot as plt +import pandas as pd + + +from demandlib import bdew + +dt_index = pd.date_range( + start="2020-01-01 00:00", + end="2020-12-31 23:45", + freq="15min", +) + +h25 = bdew.H25(dt_index) +s25 = bdew.S25(dt_index) + +print(h25.sum()/4) +print(s25.sum()/4) + +plt.plot(h25, label="H") +plt.plot(s25, label="S") +plt.legend() + +plt.show() From f98677278353cffeeb62c0431b80ef19a1749e56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Mon, 7 Apr 2025 20:56:18 +0200 Subject: [PATCH 13/23] Test resolution of BDEW25Profile index --- src/demandlib/bdew/_profiles25.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/demandlib/bdew/_profiles25.py b/src/demandlib/bdew/_profiles25.py index 849f7a4..5b2282a 100644 --- a/src/demandlib/bdew/_profiles25.py +++ b/src/demandlib/bdew/_profiles25.py @@ -21,8 +21,12 @@ class BDEW25Profile(pd.Series): - def __init__(self, timeindex: pd.DatetimeIndex): + if timeindex.freq.delta != pd.Timedelta("00:15:00"): + raise NotImplementedError( + "BDEW time series are only implemented for 15-minute steps." + " Please give corresponding index." + ) new_df = pd.DataFrame( data={ "month": timeindex.month, From 605f9fb9526bf43540beda6442aa9cd76a128645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Mon, 7 Apr 2025 20:56:26 +0200 Subject: [PATCH 14/23] Adhere to Black --- examples/bdew_slp25.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/bdew_slp25.py b/examples/bdew_slp25.py index 733bc5e..aff0298 100644 --- a/examples/bdew_slp25.py +++ b/examples/bdew_slp25.py @@ -13,8 +13,8 @@ h25 = bdew.H25(dt_index) s25 = bdew.S25(dt_index) -print(h25.sum()/4) -print(s25.sum()/4) +print(h25.sum() / 4) +print(s25.sum() / 4) plt.plot(h25, label="H") plt.plot(s25, label="S") From f4f65bf576c46047be2d769100351f27112fd991 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Tue, 8 Apr 2025 13:48:23 +0200 Subject: [PATCH 15/23] Add Holiday handling to SLP25 --- examples/bdew_slp25.py | 28 ++++++++++++--- src/demandlib/bdew/_profiles25.py | 60 +++++++++++++++++++++---------- src/demandlib/tools.py | 46 ++++++++++++++++++------ 3 files changed, 100 insertions(+), 34 deletions(-) diff --git a/examples/bdew_slp25.py b/examples/bdew_slp25.py index aff0298..376a68a 100644 --- a/examples/bdew_slp25.py +++ b/examples/bdew_slp25.py @@ -1,3 +1,13 @@ +""" +SPDX-FileCopyrightText: Deutsches Zentrum für Luft- und Raumfahrt +SPDX-FileCopyrightText: Patrik Schönfeldt + + +SPDX-License-Identifier: MIT +""" + +import datetime + import matplotlib.pyplot as plt import pandas as pd @@ -6,18 +16,26 @@ dt_index = pd.date_range( start="2020-01-01 00:00", - end="2020-12-31 23:45", + end="2020-01-31 23:45", freq="15min", ) +holidays = [ + datetime.date(2020, 1, 1), + datetime.date(2020, 1, 2), + datetime.date(2020, 1, 3), + datetime.date(2020, 1, 4), + datetime.date(2020, 1, 5), +] + +h25_holidays = bdew.H25(dt_index, holidays) h25 = bdew.H25(dt_index) -s25 = bdew.S25(dt_index) print(h25.sum() / 4) -print(s25.sum() / 4) +print(h25_holidays.sum() / 4) -plt.plot(h25, label="H") -plt.plot(s25, label="S") +plt.plot(h25, label="HWD") +plt.plot(h25_holidays, label="HHD") plt.legend() plt.show() diff --git a/src/demandlib/bdew/_profiles25.py b/src/demandlib/bdew/_profiles25.py index 5b2282a..ee16471 100644 --- a/src/demandlib/bdew/_profiles25.py +++ b/src/demandlib/bdew/_profiles25.py @@ -7,6 +7,7 @@ * P25 (dynamic), profile for households with PV based on 2022 and 2023 data * S25 (dynamic), profile for households with BES based on 2022 and 2023 data +SPDX-FileCopyrightText: Deutsches Zentrum für Luft- und Raumfahrt SPDX-FileCopyrightText: Patrik Schönfeldt SPDX-License-Identifier: MIT @@ -17,11 +18,15 @@ import numpy as np import pandas as pd +from demandlib.tools import set_holidays_in_df + _bdew_datapath = os.path.join(os.path.dirname(__file__), "bdew_data") class BDEW25Profile(pd.Series): - def __init__(self, timeindex: pd.DatetimeIndex): + def __init__( + self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None + ): if timeindex.freq.delta != pd.Timedelta("00:15:00"): raise NotImplementedError( "BDEW time series are only implemented for 15-minute steps." @@ -30,19 +35,24 @@ def __init__(self, timeindex: pd.DatetimeIndex): new_df = pd.DataFrame( data={ "month": timeindex.month, - "day": timeindex.day_of_week + 1, + "weekday": timeindex.day_of_week + 1, "hour": timeindex.hour, "minute": timeindex.minute, }, + index=timeindex, ) - new_df.replace({"day": [1, 2, 3, 4, 5]}, "WT", inplace=True) - new_df.replace({"day": [6]}, "SA", inplace=True) - new_df.replace({"day": [7, 8]}, "FT", inplace=True) + set_holidays_in_df(new_df, holidays=holidays) + + new_df.replace({"weekday": [1, 2, 3, 4, 5]}, "WT", inplace=True) + new_df.replace({"weekday": [6]}, "SA", inplace=True) + new_df.replace( + {"weekday": [0, 7]}, "FT", inplace=True + ) # 0 for holiday new_df = new_df.merge( self.raw_profile_data, - on=["month", "day", "hour", "minute"], + on=["month", "weekday", "hour", "minute"], how="inner", ) new_df.set_index(timeindex, inplace=True) @@ -90,7 +100,7 @@ def raw_profile_data(self): pd.DataFrame( data={ "month": column[0], - "day": column[1], + "weekday": column[1], "hour": hours, "minute": minutes, "value": 4 * profile_data[column], @@ -103,8 +113,10 @@ def raw_profile_data(self): class DynamicBDEW25Profile(BDEW25Profile): - def __init__(self, timeindex: pd.DatetimeIndex): - super().__init__(timeindex=timeindex) + def __init__( + self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None + ): + super().__init__(timeindex=timeindex, holidays=holidays) self.update(self * self.dynamisation_function(timeindex)) @staticmethod @@ -124,8 +136,10 @@ def dynamisation_function(timeindex: pd.DatetimeIndex) -> pd.Series: class G25(BDEW25Profile): - def __init__(self, timeindex: pd.DatetimeIndex): - super().__init__(timeindex=timeindex) + def __init__( + self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None + ): + super().__init__(timeindex=timeindex, holidays=holidays) @property def datafile(self): @@ -133,8 +147,10 @@ def datafile(self): class H25(DynamicBDEW25Profile): - def __init__(self, timeindex: pd.DatetimeIndex): - super().__init__(timeindex=timeindex) + def __init__( + self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None + ): + super().__init__(timeindex=timeindex, holidays=holidays) @property def datafile(self): @@ -142,8 +158,10 @@ def datafile(self): class L25(BDEW25Profile): - def __init__(self, timeindex: pd.DatetimeIndex): - super().__init__(timeindex=timeindex) + def __init__( + self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None + ): + super().__init__(timeindex=timeindex, holidays=holidays) @property def datafile(self): @@ -151,8 +169,10 @@ def datafile(self): class P25(DynamicBDEW25Profile): - def __init__(self, timeindex: pd.DatetimeIndex): - super().__init__(timeindex=timeindex) + def __init__( + self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None + ): + super().__init__(timeindex=timeindex, holidays=holidays) @property def datafile(self): @@ -160,8 +180,10 @@ def datafile(self): class S25(DynamicBDEW25Profile): - def __init__(self, timeindex: pd.DatetimeIndex): - super().__init__(timeindex=timeindex) + def __init__( + self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None + ): + super().__init__(timeindex=timeindex, holidays=holidays) @property def datafile(self): diff --git a/src/demandlib/tools.py b/src/demandlib/tools.py index dd8cc11..8e8024c 100644 --- a/src/demandlib/tools.py +++ b/src/demandlib/tools.py @@ -3,7 +3,11 @@ import pandas as pd -def add_weekdays2df(time_df, holidays=None, holiday_is_sunday=False): +def add_weekdays2df( + time_df: pd.DataFrame, + holidays: dict | list | None = None, + holiday_is_sunday: bool = False, +): r"""Giving back a DataFrame containing weekdays and optionally holidays for the given year. @@ -14,8 +18,8 @@ def add_weekdays2df(time_df, holidays=None, holiday_is_sunday=False): Optional Parameters ------------------- - holidays : array with information for every hour of the year, if holiday or - not (0: holiday, 1: no holiday) + holidays : list or dict containg dates of holidays (see set_holidays_in_df) + holiday_is_sunday : boolean If set to True, all holidays (0) will be set to sundays (7). @@ -31,20 +35,42 @@ def add_weekdays2df(time_df, holidays=None, holiday_is_sunday=False): time_df["weekday"] = time_df.index.weekday + 1 time_df["date"] = time_df.index.date + set_holidays_in_df(time_df, holidays) + + if holiday_is_sunday: + time_df.weekday = time_df.weekday.mask( + cond=time_df.weekday == 0, other=7 + ) + + return time_df + + +def set_holidays_in_df(time_df: pd.DataFrame, holidays: dict | list) -> None: + r"""Giving back a DataFrame containing weekdays and optionally holidays for + the given year. + + Parameters + ---------- + time_df : pandas DataFrame + DataFrame in which the "weekday" (1..7) + should replaced by 0 for holidays + + holidays : list or dict containg dates of holidays. If a dict is chosen, + the key should identify the date, dict values are ignored. + + Returns + ------- + pandas.DataFrame : DataFrame with weekdays + """ # Set weekday to Holiday (0) for all holidays if holidays is not None: if isinstance(holidays, dict): holidays = list(holidays.keys()) time_df["weekday"] = time_df["weekday"].mask( - cond=pd.to_datetime(time_df["date"]).isin( + cond=pd.to_datetime(time_df.index.date).isin( pd.to_datetime(holidays) ), other=0, ) - if holiday_is_sunday: - time_df.weekday = time_df.weekday.mask( - cond=time_df.weekday == 0, other=7 - ) - - return time_df + return None From c34bd67189e05454c601d02b255e706109125213 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Tue, 8 Apr 2025 14:26:59 +0200 Subject: [PATCH 16/23] Add docstrings for and allow resampling of SLP25 --- src/demandlib/bdew/_profiles25.py | 83 ++++++++++++++++++++++++++----- 1 file changed, 71 insertions(+), 12 deletions(-) diff --git a/src/demandlib/bdew/_profiles25.py b/src/demandlib/bdew/_profiles25.py index ee16471..798d3a4 100644 --- a/src/demandlib/bdew/_profiles25.py +++ b/src/demandlib/bdew/_profiles25.py @@ -24,22 +24,48 @@ class BDEW25Profile(pd.Series): + """ + Electrical standard load profiles based on the BDEW method (2025 revision) + + Parameters + ---------- + timeindex : pd.DatetimeIndex + Time index to produce the SLP for. Only constant step-size is + supported, i.e. timeindex.freq needs to be defined. If time + steps of 15 minutes are used, that are aligned with the full + hour, the original SLP is reproduced. Lower resolutions will + be downsampled, higher resolutions wil be padded. (Pading is + the correct handling because the SLP defines constant values + for 15 minutes.) + + Optional Parameters + ------------------- + holidays : dictionary or list + The keys of the dictionary or the items of the list should be datetime + objects of the days that are holidays. + """ + def __init__( - self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None + self, + timeindex: pd.DatetimeIndex, + holidays: dict | list | None = None, ): - if timeindex.freq.delta != pd.Timedelta("00:15:00"): - raise NotImplementedError( - "BDEW time series are only implemented for 15-minute steps." - " Please give corresponding index." + if timeindex.freq.delta == pd.Timedelta("00:15:00"): + timeindex15m = timeindex + else: + timeindex15m = pd.date_range( + start=timeindex[0], + end=timeindex[-1], + freq="15min", ) new_df = pd.DataFrame( data={ - "month": timeindex.month, - "weekday": timeindex.day_of_week + 1, - "hour": timeindex.hour, - "minute": timeindex.minute, + "month": timeindex15m.month, + "weekday": timeindex15m.day_of_week + 1, + "hour": timeindex15m.hour, + "minute": timeindex15m.minute, }, - index=timeindex, + index=timeindex15m, ) set_holidays_in_df(new_df, holidays=holidays) @@ -55,9 +81,15 @@ def __init__( on=["month", "weekday", "hour", "minute"], how="inner", ) - new_df.set_index(timeindex, inplace=True) + new_df.set_index(timeindex15m, inplace=True) - super().__init__(data=new_df.value, index=timeindex) + values = new_df.value + if timeindex.freq.delta > pd.Timedelta("00:15:00"): + values = values.resample(timeindex.freq.delta).mean() + elif timeindex.freq.delta <= pd.Timedelta("00:15:00"): + values = values.reindex(timeindex, method="ffill") + + super().__init__(data=values, index=timeindex) @property def datafile(self): @@ -113,6 +145,11 @@ def raw_profile_data(self): class DynamicBDEW25Profile(BDEW25Profile): + """ + BDEW25 SLP considering the dynamisation_function. + See BDEW25Profile for more details. + """ + def __init__( self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None ): @@ -136,6 +173,10 @@ def dynamisation_function(timeindex: pd.DatetimeIndex) -> pd.Series: class G25(BDEW25Profile): + """ + SLP for industries, see BDEW25Profile for more details. + """ + def __init__( self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None ): @@ -147,6 +188,10 @@ def datafile(self): class H25(DynamicBDEW25Profile): + """ + SLP for households, see DynamicBDEW25Profile for more details. + """ + def __init__( self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None ): @@ -158,6 +203,10 @@ def datafile(self): class L25(BDEW25Profile): + """ + SLP for farms, see BDEW25Profile for more details. + """ + def __init__( self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None ): @@ -169,6 +218,11 @@ def datafile(self): class P25(DynamicBDEW25Profile): + """ + SLP for housholds with gerneric PV system, + see DynamicBDEW25Profile for more details. + """ + def __init__( self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None ): @@ -180,6 +234,11 @@ def datafile(self): class S25(DynamicBDEW25Profile): + """ + SLP for housholds with gerneric PV system and battery storage, + see DynamicBDEW25Profile for more details. + """ + def __init__( self, timeindex: pd.DatetimeIndex, holidays: dict | list | None = None ): From d0737a6acd580c833c7838ac70a8f8af3902e91e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Tue, 8 Apr 2025 14:30:32 +0200 Subject: [PATCH 17/23] Show different resolutions in SLP25 example --- examples/bdew_slp25.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/examples/bdew_slp25.py b/examples/bdew_slp25.py index 376a68a..2b7e3db 100644 --- a/examples/bdew_slp25.py +++ b/examples/bdew_slp25.py @@ -14,11 +14,21 @@ from demandlib import bdew -dt_index = pd.date_range( +index15m = pd.date_range( start="2020-01-01 00:00", end="2020-01-31 23:45", freq="15min", ) +index1m = pd.date_range( + start="2020-01-01 00:00", + end="2020-01-31 23:45", + freq="1min", +) +index3h = pd.date_range( + start="2020-01-01 00:00", + end="2020-01-31 23:45", + freq="3h", +) holidays = [ datetime.date(2020, 1, 1), @@ -28,14 +38,13 @@ datetime.date(2020, 1, 5), ] -h25_holidays = bdew.H25(dt_index, holidays) -h25 = bdew.H25(dt_index) - -print(h25.sum() / 4) -print(h25_holidays.sum() / 4) +h25_holidays = bdew.H25(index1m, holidays) +h25_std = bdew.H25(index15m) +h25_3h = bdew.H25(index3h) -plt.plot(h25, label="HWD") -plt.plot(h25_holidays, label="HHD") +plt.step(h25_holidays.index, h25_holidays, label="Holidays", where="post") +plt.step(h25_std.index, h25_std, label="Standard", where="post") +plt.step(h25_3h.index, h25_3h, label="Three hours", where="post") plt.legend() plt.show() From 9f3e06b6d9fafcde21ed29e8e2f0792a43c087bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Tue, 8 Apr 2025 14:38:54 +0200 Subject: [PATCH 18/23] Update to stable Pandas API Use of timeindex.freq.delta is deprecated. --- src/demandlib/bdew/_profiles25.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/demandlib/bdew/_profiles25.py b/src/demandlib/bdew/_profiles25.py index 798d3a4..d6e1364 100644 --- a/src/demandlib/bdew/_profiles25.py +++ b/src/demandlib/bdew/_profiles25.py @@ -50,7 +50,8 @@ def __init__( timeindex: pd.DatetimeIndex, holidays: dict | list | None = None, ): - if timeindex.freq.delta == pd.Timedelta("00:15:00"): + original_timedelta = pd.Timedelta(timeindex.freq) + if original_timedelta == pd.Timedelta("00:15:00"): timeindex15m = timeindex else: timeindex15m = pd.date_range( @@ -84,9 +85,9 @@ def __init__( new_df.set_index(timeindex15m, inplace=True) values = new_df.value - if timeindex.freq.delta > pd.Timedelta("00:15:00"): - values = values.resample(timeindex.freq.delta).mean() - elif timeindex.freq.delta <= pd.Timedelta("00:15:00"): + if original_timedelta > pd.Timedelta("00:15:00"): + values = values.resample(original_timedelta).mean() + elif original_timedelta <= pd.Timedelta("00:15:00"): values = values.reindex(timeindex, method="ffill") super().__init__(data=values, index=timeindex) From 056724ed6015ab72c0922207d04f52f4cc4dd29c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Tue, 8 Apr 2025 19:43:00 +0200 Subject: [PATCH 19/23] Fix typo in docstring --- src/demandlib/bdew/_profiles25.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/demandlib/bdew/_profiles25.py b/src/demandlib/bdew/_profiles25.py index d6e1364..cef58b4 100644 --- a/src/demandlib/bdew/_profiles25.py +++ b/src/demandlib/bdew/_profiles25.py @@ -220,7 +220,7 @@ def datafile(self): class P25(DynamicBDEW25Profile): """ - SLP for housholds with gerneric PV system, + SLP for housholds with generic PV system, see DynamicBDEW25Profile for more details. """ @@ -236,7 +236,7 @@ def datafile(self): class S25(DynamicBDEW25Profile): """ - SLP for housholds with gerneric PV system and battery storage, + SLP for housholds with generic PV system and battery storage, see DynamicBDEW25Profile for more details. """ From a742657deee3df31509da58707fedb30669b334e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Tue, 8 Apr 2025 20:21:35 +0200 Subject: [PATCH 20/23] Add tests for 2025 BDEW SLPs --- tests/test_elec_slp.py | 78 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/tests/test_elec_slp.py b/tests/test_elec_slp.py index d955c7d..404dd99 100644 --- a/tests/test_elec_slp.py +++ b/tests/test_elec_slp.py @@ -128,3 +128,81 @@ def test_changed_seasons(): round(slp2.get_profiles("g0").iloc[12000:12096].sum().iloc[0], 5) == 0.00612 ) + +def test_slp25(): + holiday_dict = { + datetime.date(2010, 1, 1): "New year", + datetime.date(2010, 4, 2): "Good Friday", + datetime.date(2010, 4, 5): "Easter Monday", + datetime.date(2010, 5, 1): "Labour Day", + datetime.date(2010, 5, 13): "Ascension Thursday", + datetime.date(2010, 5, 24): "Whit Monday", + datetime.date(2010, 10, 3): "Day of German Unity", + datetime.date(2010, 12, 25): "Christmas Day", + datetime.date(2010, 12, 26): "Second Christmas Day", + } + + holiday_list = list(holiday_dict.keys()) + + index01m = pd.date_range( # 1 minute time steps + start="2010-01-01 00:00", + end="2010-12-31 23:45", + freq="1min", + ) + + index15m = pd.date_range( # 15 minute time steps + start="2010-01-01 00:00", + end="2010-12-31 23:45", + freq="15min", + ) + + index60m = pd.date_range( # 60 minute time steps + start="2010-01-01 00:00", + end="2010-12-31 23:45", + freq="60min", + ) + + index_2years = pd.date_range( # 2010 and 2011 + start="2010-01-01 00:00", + end="2011-12-31 23:45", + freq="15min", + ) + + index_shifted_year = pd.date_range( # 12 month starting June 2010 + start="2010-06-01 00:00", + end="2011-05-31 23:45", + freq="15min", + ) + + for slp_type in [bdew.G25, bdew.H25, bdew.L25, bdew.P25, bdew.S25]: + # We allow 1.0 % tollerenace (with holidays) + slp_profile = slp_type(index15m, holidays=holiday_dict) + assert slp_profile.sum() / 4 == pytest.approx(1e6, rel=0.01) + + # SLP of a shorter index is just the excerpt of the original SLP + short_slp = slp_type(index15m[5:1000], holidays=holiday_dict) + assert short_slp.equals(slp_profile[5:1000]) + + # Higher resolution samples the same SLP, the integral is unchanged + slp_resampled = slp_type(index01m, holidays=holiday_list) + assert slp_resampled.sum() / 15 == pytest.approx( + slp_profile.sum(), rel=0.0001 + ) + + # Lower time resolution averages, so integral is unchanged + slp_resampled = slp_type(index60m, holidays=holiday_dict) + assert slp_resampled.sum() * 4 == pytest.approx( + slp_profile.sum(), rel=0.0001 + ) + + # We allow 2.5 % tollerenace (without holidays) + slp_profile = slp_type(index15m) + assert slp_profile.sum() / 4 == pytest.approx(1e6, rel=0.025) + + # We allow 2.5 % tollerenace (without holidays) + slp_profile = slp_type(index_shifted_year) + assert slp_profile.sum() / 4 == pytest.approx(1e6, rel=0.025) + + # We allow 2.5 % tollerenace (without holidays), two years + slp_profile = slp_type(index_2years) + assert slp_profile.sum() / 4 == pytest.approx(2e6, rel=0.025) From 0ae7e22e9025040edbec60641905939d27ba9f60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Tue, 8 Apr 2025 20:22:21 +0200 Subject: [PATCH 21/23] Adhere to Black --- tests/test_elec_slp.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_elec_slp.py b/tests/test_elec_slp.py index 404dd99..669dd29 100644 --- a/tests/test_elec_slp.py +++ b/tests/test_elec_slp.py @@ -129,6 +129,7 @@ def test_changed_seasons(): == 0.00612 ) + def test_slp25(): holiday_dict = { datetime.date(2010, 1, 1): "New year", From 1b036fb63ce9b50ca02303189167f52462d8482b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Tue, 8 Apr 2025 20:37:11 +0200 Subject: [PATCH 22/23] Test abstract BDEW25 profiles cannot be instanciated --- tests/test_elec_slp.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/test_elec_slp.py b/tests/test_elec_slp.py index 669dd29..9bd2b9e 100644 --- a/tests/test_elec_slp.py +++ b/tests/test_elec_slp.py @@ -175,6 +175,12 @@ def test_slp25(): freq="15min", ) + with pytest.raises(NotImplementedError): + _ = bdew._profiles25.BDEW25Profile(index15m) + + with pytest.raises(NotImplementedError): + _ = bdew._profiles25.DynamicBDEW25Profile(index15m) + for slp_type in [bdew.G25, bdew.H25, bdew.L25, bdew.P25, bdew.S25]: # We allow 1.0 % tollerenace (with holidays) slp_profile = slp_type(index15m, holidays=holiday_dict) From 6c42552193a395c16de153c738038d2b1b1c61e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Sch=C3=B6nfeldt?= Date: Tue, 8 Apr 2025 20:38:34 +0200 Subject: [PATCH 23/23] Do not resample SLP25 if resolution is correct This is a performance optimisation. The values where not changed anyway. --- src/demandlib/bdew/_profiles25.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/demandlib/bdew/_profiles25.py b/src/demandlib/bdew/_profiles25.py index cef58b4..ebaa867 100644 --- a/src/demandlib/bdew/_profiles25.py +++ b/src/demandlib/bdew/_profiles25.py @@ -87,7 +87,7 @@ def __init__( values = new_df.value if original_timedelta > pd.Timedelta("00:15:00"): values = values.resample(original_timedelta).mean() - elif original_timedelta <= pd.Timedelta("00:15:00"): + elif original_timedelta < pd.Timedelta("00:15:00"): values = values.reindex(timeindex, method="ffill") super().__init__(data=values, index=timeindex)