diff --git a/data/results.csv b/data/results.csv new file mode 100644 index 000000000..ac1773eb2 --- /dev/null +++ b/data/results.csv @@ -0,0 +1,2 @@ +sensor_id,location,is_safe,reason +1,Lake A,True,Safe diff --git a/data/sensor_data.csv b/data/sensor_data.csv index fb53e49da..d5939b390 100644 --- a/data/sensor_data.csv +++ b/data/sensor_data.csv @@ -1,1001 +1,6 @@ -sensor_id,timestamp,pH,turbidity,dissolved_oxygen,temperature -SENSOR_005,2023-01-01 00:00:00,6.48,2.43,7.87,21.81 -SENSOR_017,2023-01-01 00:30:00,7.04,4.39,7.49,18.51 -SENSOR_010,2023-01-01 01:00:00,6.69,3.78,6.9,20.96 -SENSOR_009,2023-01-01 01:30:00,6.5,2.42,9.38,22.22 -SENSOR_001,2023-01-01 02:00:00,7.75,2.72,9.32,21.26 -SENSOR_013,2023-01-01 02:30:00,7.52,1.04,5.95,28.44 -SENSOR_018,2023-01-01 03:00:00,7.51,1.44,8.1,22.67 -SENSOR_019,2023-01-01 03:30:00,7.11,3.68,9.27,18.54 -SENSOR_003,2023-01-01 04:00:00,7.58,2.62,8.08,23.45 -SENSOR_016,2023-01-01 04:30:00,7.43,3.43,9.08,22.28 -SENSOR_005,2023-01-01 05:00:00,7.08,3.91,7.74,17.4 -SENSOR_008,2023-01-01 05:30:00,7.36,4.98,8.44,16.95 -SENSOR_007,2023-01-01 06:00:00,7.39,3.91,8.58,20.96 -SENSOR_018,2023-01-01 06:30:00,7.31,3.81,8.66,21.3 -SENSOR_017,2023-01-01 07:00:00,6.68,2.91,8.51,20.97 -SENSOR_006,2023-01-01 07:30:00,7.16,4.11,7.03,23.91 -SENSOR_003,2023-01-01 08:00:00,7.12,2.13,9.78,21.65 -SENSOR_013,2023-01-01 08:30:00,6.95,2.23,7.18,19.69 -SENSOR_002,2023-01-01 09:00:00,6.62,4.31,8.26,17.92 -SENSOR_019,2023-01-01 09:30:00,7.2,4.2,8.61,24.96 -SENSOR_010,2023-01-01 10:00:00,6.55,3.52,7.73,23.39 -SENSOR_004,2023-01-01 10:30:00,7.68,2.87,5.73,23.62 -SENSOR_005,2023-01-01 11:00:00,6.65,3.0,8.62,23.19 -SENSOR_002,2023-01-01 11:30:00,7.71,3.55,9.21,22.49 -SENSOR_002,2023-01-01 12:00:00,7.14,1.81,5.49,21.46 -SENSOR_007,2023-01-01 12:30:00,6.99,2.5,7.67,25.57 -SENSOR_006,2023-01-01 13:00:00,7.04,1.63,10.39,25.82 -SENSOR_010,2023-01-01 13:30:00,7.2,4.35,10.68,21.57 -SENSOR_016,2023-01-01 14:00:00,6.97,2.35,9.63,20.73 -SENSOR_005,2023-01-01 14:30:00,6.61,2.95,9.78,21.55 -SENSOR_016,2023-01-01 15:00:00,7.48,3.86,8.55,20.14 -SENSOR_012,2023-01-01 15:30:00,6.28,3.04,6.14,25.22 -SENSOR_005,2023-01-01 16:00:00,7.91,4.17,7.83,21.71 -SENSOR_008,2023-01-01 16:30:00,6.74,1.67,9.01,22.09 -SENSOR_019,2023-01-01 17:00:00,6.25,4.71,8.44,22.0 -SENSOR_002,2023-01-01 17:30:00,6.98,2.38,7.6,20.6 -SENSOR_012,2023-01-01 18:00:00,7.55,2.04,7.5,17.29 -SENSOR_012,2023-01-01 18:30:00,7.26,3.99,7.36,23.04 -SENSOR_011,2023-01-01 19:00:00,7.08,2.73,8.28,24.41 -SENSOR_008,2023-01-01 19:30:00,7.61,3.46,8.34,19.82 -SENSOR_016,2023-01-01 20:00:00,7.35,2.19,7.91,22.67 -SENSOR_011,2023-01-01 20:30:00,7.61,3.2,9.03,20.5 -SENSOR_009,2023-01-01 21:00:00,6.66,4.72,8.14,19.34 -SENSOR_013,2023-01-01 21:30:00,7.1,3.8,7.92,19.01 -SENSOR_010,2023-01-01 22:00:00,6.78,4.01,6.01,27.9 -SENSOR_014,2023-01-01 22:30:00,6.27,4.23,7.03,18.81 -SENSOR_012,2023-01-01 23:00:00,7.31,0.93,5.94,22.57 -SENSOR_020,2023-01-01 23:30:00,6.86,0.79,11.26,23.01 -SENSOR_020,2023-01-02 00:00:00,6.11,2.57,9.07,27.97 -SENSOR_003,2023-01-02 00:30:00,7.3,1.53,4.97,21.0 -SENSOR_017,2023-01-02 01:00:00,7.25,3.37,9.62,20.07 -SENSOR_006,2023-01-02 01:30:00,7.48,2.24,9.14,21.2 -SENSOR_013,2023-01-02 02:00:00,7.78,2.57,7.1,24.06 -SENSOR_002,2023-01-02 02:30:00,8.11,5.25,9.91,15.36 -SENSOR_008,2023-01-02 03:00:00,7.2,2.8,8.37,20.63 -SENSOR_017,2023-01-02 03:30:00,6.12,3.62,7.86,17.54 -SENSOR_002,2023-01-02 04:00:00,6.07,2.18,7.23,25.6 -SENSOR_012,2023-01-02 04:30:00,7.07,2.16,9.76,18.64 -SENSOR_011,2023-01-02 05:00:00,7.69,2.18,12.35,23.74 -SENSOR_012,2023-01-02 05:30:00,7.63,2.45,12.9,22.73 -SENSOR_011,2023-01-02 06:00:00,6.48,3.7,7.79,23.39 -SENSOR_019,2023-01-02 06:30:00,7.0,3.96,9.97,19.31 -SENSOR_003,2023-01-02 07:00:00,7.33,2.32,8.08,24.73 -SENSOR_005,2023-01-02 07:30:00,7.84,4.16,8.4,20.44 -SENSOR_011,2023-01-02 08:00:00,7.08,2.65,7.53,22.79 -SENSOR_001,2023-01-02 08:30:00,6.29,2.29,8.87,23.41 -SENSOR_007,2023-01-02 09:00:00,7.11,1.03,7.5,14.89 -SENSOR_013,2023-01-02 09:30:00,6.75,3.56,7.38,24.47 -SENSOR_009,2023-01-02 10:00:00,6.94,3.68,7.92,22.83 -SENSOR_018,2023-01-02 10:30:00,6.41,3.0,6.77,17.55 -SENSOR_014,2023-01-02 11:00:00,7.24,2.81,8.94,20.07 -SENSOR_012,2023-01-02 11:30:00,6.72,2.77,10.35,17.33 -SENSOR_002,2023-01-02 12:00:00,6.98,2.64,9.9,16.52 -SENSOR_013,2023-01-02 12:30:00,7.45,4.05,6.59,17.85 -SENSOR_002,2023-01-02 13:00:00,6.57,1.68,8.09,25.84 -SENSOR_013,2023-01-02 13:30:00,6.23,3.57,5.46,21.04 -SENSOR_015,2023-01-02 14:00:00,7.22,2.04,7.95,20.42 -SENSOR_005,2023-01-02 14:30:00,7.09,2.8,7.92,26.51 -SENSOR_013,2023-01-02 15:00:00,8.11,4.5,7.17,21.11 -SENSOR_008,2023-01-02 15:30:00,6.26,2.04,7.27,18.95 -SENSOR_016,2023-01-02 16:00:00,6.05,3.66,6.25,23.38 -SENSOR_003,2023-01-02 16:30:00,7.44,5.18,8.53,25.21 -SENSOR_001,2023-01-02 17:00:00,7.19,1.76,9.62,21.83 -SENSOR_001,2023-01-02 17:30:00,7.37,3.42,7.55,25.87 -SENSOR_006,2023-01-02 18:00:00,6.26,1.28,5.81,17.0 -SENSOR_015,2023-01-02 18:30:00,7.46,4.1,9.24,25.69 -SENSOR_015,2023-01-02 19:00:00,6.7,3.92,7.02,22.71 -SENSOR_012,2023-01-02 19:30:00,7.17,2.58,6.96,21.31 -SENSOR_002,2023-01-02 20:00:00,7.06,2.69,8.68,25.34 -SENSOR_005,2023-01-02 20:30:00,7.52,1.92,10.24,23.94 -SENSOR_001,2023-01-02 21:00:00,7.32,2.72,6.45,20.17 -SENSOR_016,2023-01-02 21:30:00,6.17,3.77,9.28,18.33 -SENSOR_011,2023-01-02 22:00:00,7.01,0.07,6.27,20.92 -SENSOR_019,2023-01-02 22:30:00,6.89,1.99,8.66,23.5 -SENSOR_006,2023-01-02 23:00:00,6.99,4.11,6.96,25.76 -SENSOR_012,2023-01-02 23:30:00,6.73,2.85,7.11,18.13 -SENSOR_018,2023-01-03 00:00:00,7.91,3.32,9.94,20.87 -SENSOR_008,2023-01-03 00:30:00,6.63,1.71,8.02,18.51 -SENSOR_011,2023-01-03 01:00:00,7.61,3.88,8.39,21.42 -SENSOR_009,2023-01-03 01:30:00,6.81,2.65,7.55,27.81 -SENSOR_017,2023-01-03 02:00:00,7.17,2.64,7.43,23.34 -SENSOR_016,2023-01-03 02:30:00,7.48,4.81,7.99,23.1 -SENSOR_017,2023-01-03 03:00:00,7.29,2.62,6.46,23.74 -SENSOR_010,2023-01-03 03:30:00,6.17,3.92,7.96,27.73 -SENSOR_012,2023-01-03 04:00:00,7.91,3.56,8.03,18.71 -SENSOR_012,2023-01-03 04:30:00,6.4,3.49,8.31,26.82 -SENSOR_017,2023-01-03 05:00:00,6.9,1.34,7.33,21.04 -SENSOR_010,2023-01-03 05:30:00,7.01,2.08,6.34,23.18 -SENSOR_005,2023-01-03 06:00:00,6.45,3.29,5.55,18.85 -SENSOR_011,2023-01-03 06:30:00,6.96,3.14,5.82,21.06 -SENSOR_014,2023-01-03 07:00:00,6.54,2.76,8.44,22.85 -SENSOR_017,2023-01-03 07:30:00,6.99,3.07,4.13,28.98 -SENSOR_017,2023-01-03 08:00:00,6.35,3.1,7.77,23.02 -SENSOR_007,2023-01-03 08:30:00,7.53,2.5,5.31,19.82 -SENSOR_015,2023-01-03 09:00:00,7.03,0.93,6.58,21.18 -SENSOR_019,2023-01-03 09:30:00,8.24,2.79,9.44,23.62 -SENSOR_005,2023-01-03 10:00:00,6.83,3.62,7.84,21.92 -SENSOR_006,2023-01-03 10:30:00,7.2,2.06,8.48,24.46 -SENSOR_005,2023-01-03 11:00:00,7.93,2.67,9.11,20.15 -SENSOR_013,2023-01-03 11:30:00,7.58,2.67,8.39,25.57 -SENSOR_011,2023-01-03 12:00:00,7.73,2.72,8.52,15.47 -SENSOR_018,2023-01-03 12:30:00,6.32,3.96,8.64,21.26 -SENSOR_018,2023-01-03 13:00:00,6.39,4.48,8.8,25.66 -SENSOR_004,2023-01-03 13:30:00,7.39,4.1,8.01,24.75 -SENSOR_014,2023-01-03 14:00:00,5.89,2.31,9.25,21.3 -SENSOR_018,2023-01-03 14:30:00,6.5,3.51,6.92,21.87 -SENSOR_011,2023-01-03 15:00:00,7.5,3.16,7.01,21.97 -SENSOR_008,2023-01-03 15:30:00,7.15,2.55,10.43,20.87 -SENSOR_010,2023-01-03 16:00:00,7.13,2.22,8.26,25.3 -SENSOR_005,2023-01-03 16:30:00,6.9,3.87,8.56,22.46 -SENSOR_007,2023-01-03 17:00:00,6.18,3.24,8.17,22.15 -SENSOR_011,2023-01-03 17:30:00,6.53,4.01,9.74,23.36 -SENSOR_016,2023-01-03 18:00:00,7.39,1.7,3.79,24.59 -SENSOR_004,2023-01-03 18:30:00,6.61,3.7,8.94,21.03 -SENSOR_001,2023-01-03 19:00:00,7.14,2.78,8.44,23.59 -SENSOR_016,2023-01-03 19:30:00,7.15,1.97,9.59,22.98 -SENSOR_020,2023-01-03 20:00:00,7.77,1.92,7.72,20.05 -SENSOR_017,2023-01-03 20:30:00,7.13,1.2,6.25,21.76 -SENSOR_017,2023-01-03 21:00:00,7.26,1.85,8.32,19.6 -SENSOR_010,2023-01-03 21:30:00,6.57,3.9,9.52,23.78 -SENSOR_004,2023-01-03 22:00:00,8.26,3.72,6.49,22.23 -SENSOR_011,2023-01-03 22:30:00,6.71,2.05,7.89,18.82 -SENSOR_003,2023-01-03 23:00:00,6.63,4.52,7.05,23.67 -SENSOR_013,2023-01-03 23:30:00,7.23,4.95,9.47,23.27 -SENSOR_019,2023-01-04 00:00:00,6.85,5.36,7.93,14.29 -SENSOR_013,2023-01-04 00:30:00,7.54,2.37,5.01,18.57 -SENSOR_001,2023-01-04 01:00:00,6.93,3.82,7.39,14.71 -SENSOR_017,2023-01-04 01:30:00,7.0,3.39,6.37,26.69 -SENSOR_013,2023-01-04 02:00:00,6.54,2.74,7.97,20.79 -SENSOR_020,2023-01-04 02:30:00,5.76,3.82,5.99,20.98 -SENSOR_012,2023-01-04 03:00:00,6.91,5.35,6.9,21.06 -SENSOR_016,2023-01-04 03:30:00,7.01,3.68,7.95,22.28 -SENSOR_012,2023-01-04 04:00:00,6.84,3.47,7.54,27.52 -SENSOR_019,2023-01-04 04:30:00,6.73,2.76,7.22,22.47 -SENSOR_008,2023-01-04 05:00:00,6.65,5.31,5.75,26.08 -SENSOR_016,2023-01-04 05:30:00,7.97,4.33,8.62,18.73 -SENSOR_011,2023-01-04 06:00:00,7.29,2.63,11.11,19.36 -SENSOR_020,2023-01-04 06:30:00,7.4,2.24,6.02,21.68 -SENSOR_016,2023-01-04 07:00:00,6.61,3.96,8.15,23.67 -SENSOR_008,2023-01-04 07:30:00,6.8,4.27,10.34,22.86 -SENSOR_014,2023-01-04 08:00:00,6.68,3.16,7.59,23.12 -SENSOR_009,2023-01-04 08:30:00,7.0,2.56,12.16,22.32 -SENSOR_012,2023-01-04 09:00:00,6.9,2.71,8.8,22.45 -SENSOR_008,2023-01-04 09:30:00,7.24,3.02,7.31,21.72 -SENSOR_001,2023-01-04 10:00:00,6.61,3.33,6.17,22.47 -SENSOR_006,2023-01-04 10:30:00,7.4,1.34,10.07,18.84 -SENSOR_019,2023-01-04 11:00:00,6.46,3.36,6.73,18.22 -SENSOR_012,2023-01-04 11:30:00,7.07,2.11,6.38,22.1 -SENSOR_018,2023-01-04 12:00:00,6.84,2.94,9.5,21.37 -SENSOR_009,2023-01-04 12:30:00,7.36,4.09,7.79,20.37 -SENSOR_018,2023-01-04 13:00:00,7.0,5.15,9.27,22.16 -SENSOR_004,2023-01-04 13:30:00,7.08,2.91,8.58,22.86 -SENSOR_004,2023-01-04 14:00:00,6.63,4.65,9.04,17.45 -SENSOR_018,2023-01-04 14:30:00,6.55,4.31,7.24,23.22 -SENSOR_016,2023-01-04 15:00:00,6.37,1.8,9.12,23.29 -SENSOR_017,2023-01-04 15:30:00,7.4,1.4,8.91,22.01 -SENSOR_006,2023-01-04 16:00:00,7.32,2.4,9.75,22.16 -SENSOR_002,2023-01-04 16:30:00,7.61,2.04,10.97,24.86 -SENSOR_002,2023-01-04 17:00:00,6.98,2.52,8.46,24.04 -SENSOR_020,2023-01-04 17:30:00,7.19,2.93,10.06,26.12 -SENSOR_010,2023-01-04 18:00:00,6.48,2.31,7.72,21.93 -SENSOR_015,2023-01-04 18:30:00,7.01,3.92,8.67,24.26 -SENSOR_017,2023-01-04 19:00:00,7.83,3.36,10.14,21.32 -SENSOR_011,2023-01-04 19:30:00,6.53,2.93,9.27,25.88 -SENSOR_006,2023-01-04 20:00:00,7.46,2.99,9.02,23.18 -SENSOR_002,2023-01-04 20:30:00,7.11,2.07,6.96,19.08 -SENSOR_001,2023-01-04 21:00:00,7.57,2.97,8.56,20.62 -SENSOR_004,2023-01-04 21:30:00,6.34,2.58,7.72,20.6 -SENSOR_008,2023-01-04 22:00:00,7.25,3.01,7.3,20.57 -SENSOR_003,2023-01-04 22:30:00,8.0,3.74,9.72,29.59 -SENSOR_007,2023-01-04 23:00:00,6.84,3.03,7.61,20.76 -SENSOR_014,2023-01-04 23:30:00,6.65,3.54,7.91,21.17 -SENSOR_010,2023-01-05 00:00:00,6.81,2.89,10.5,23.1 -SENSOR_014,2023-01-05 00:30:00,6.23,3.06,6.34,26.85 -SENSOR_005,2023-01-05 01:00:00,7.18,4.83,6.07,20.51 -SENSOR_008,2023-01-05 01:30:00,6.96,2.89,8.54,17.37 -SENSOR_013,2023-01-05 02:00:00,6.92,3.63,8.22,24.37 -SENSOR_001,2023-01-05 02:30:00,6.41,3.22,7.81,19.84 -SENSOR_016,2023-01-05 03:00:00,6.18,2.48,8.82,26.17 -SENSOR_004,2023-01-05 03:30:00,7.35,3.18,7.03,26.23 -SENSOR_006,2023-01-05 04:00:00,6.45,3.53,9.84,18.22 -SENSOR_020,2023-01-05 04:30:00,7.19,2.82,7.01,24.39 -SENSOR_007,2023-01-05 05:00:00,6.17,1.98,7.32,22.45 -SENSOR_010,2023-01-05 05:30:00,6.75,3.3,8.01,18.67 -SENSOR_013,2023-01-05 06:00:00,7.23,2.15,6.52,16.86 -SENSOR_004,2023-01-05 06:30:00,6.81,3.76,7.59,27.78 -SENSOR_012,2023-01-05 07:00:00,6.85,2.45,9.24,26.85 -SENSOR_005,2023-01-05 07:30:00,6.95,3.5,7.05,23.5 -SENSOR_005,2023-01-05 08:00:00,7.04,3.73,8.75,20.43 -SENSOR_020,2023-01-05 08:30:00,6.26,2.88,7.86,23.37 -SENSOR_016,2023-01-05 09:00:00,7.32,3.48,9.48,28.3 -SENSOR_011,2023-01-05 09:30:00,6.8,3.52,9.77,23.46 -SENSOR_018,2023-01-05 10:00:00,6.14,2.96,9.23,18.27 -SENSOR_007,2023-01-05 10:30:00,7.54,3.04,6.96,20.69 -SENSOR_005,2023-01-05 11:00:00,7.68,3.34,10.77,22.72 -SENSOR_003,2023-01-05 11:30:00,7.79,2.61,8.46,19.76 -SENSOR_014,2023-01-05 12:00:00,7.16,2.26,8.69,21.75 -SENSOR_014,2023-01-05 12:30:00,7.02,2.38,7.81,22.87 -SENSOR_003,2023-01-05 13:00:00,6.81,4.27,6.73,18.3 -SENSOR_010,2023-01-05 13:30:00,6.85,3.82,8.61,20.89 -SENSOR_017,2023-01-05 14:00:00,7.21,3.25,6.87,25.26 -SENSOR_009,2023-01-05 14:30:00,5.86,3.24,6.76,27.46 -SENSOR_018,2023-01-05 15:00:00,7.7,2.81,7.48,16.29 -SENSOR_011,2023-01-05 15:30:00,7.6,3.68,6.63,17.51 -SENSOR_007,2023-01-05 16:00:00,7.03,4.2,6.68,22.6 -SENSOR_012,2023-01-05 16:30:00,6.47,2.88,6.15,25.64 -SENSOR_007,2023-01-05 17:00:00,7.24,3.18,8.12,16.7 -SENSOR_014,2023-01-05 17:30:00,6.69,3.53,10.79,20.93 -SENSOR_018,2023-01-05 18:00:00,6.99,3.83,7.14,19.48 -SENSOR_013,2023-01-05 18:30:00,7.1,3.15,6.64,17.07 -SENSOR_008,2023-01-05 19:00:00,7.33,4.39,7.28,22.54 -SENSOR_004,2023-01-05 19:30:00,7.72,4.39,9.42,21.82 -SENSOR_006,2023-01-05 20:00:00,6.9,4.57,7.53,18.2 -SENSOR_015,2023-01-05 20:30:00,6.4,1.95,6.87,18.36 -SENSOR_009,2023-01-05 21:00:00,7.8,3.34,10.97,23.55 -SENSOR_016,2023-01-05 21:30:00,6.34,3.68,5.74,22.2 -SENSOR_020,2023-01-05 22:00:00,6.8,3.93,8.38,21.71 -SENSOR_001,2023-01-05 22:30:00,7.32,2.67,6.67,22.74 -SENSOR_003,2023-01-05 23:00:00,7.34,2.37,9.73,18.11 -SENSOR_015,2023-01-05 23:30:00,6.96,3.57,8.48,25.64 -SENSOR_009,2023-01-06 00:00:00,7.38,0.97,8.78,19.17 -SENSOR_005,2023-01-06 00:30:00,7.37,3.19,5.09,20.5 -SENSOR_013,2023-01-06 01:00:00,7.27,2.92,8.54,18.29 -SENSOR_007,2023-01-06 01:30:00,6.33,4.16,8.17,19.28 -SENSOR_016,2023-01-06 02:00:00,6.99,1.99,9.11,21.12 -SENSOR_007,2023-01-06 02:30:00,6.55,2.04,7.21,21.93 -SENSOR_010,2023-01-06 03:00:00,7.64,2.59,8.77,18.89 -SENSOR_008,2023-01-06 03:30:00,7.18,2.28,8.65,26.25 -SENSOR_020,2023-01-06 04:00:00,7.86,3.38,4.98,20.54 -SENSOR_015,2023-01-06 04:30:00,6.83,4.1,7.39,22.3 -SENSOR_003,2023-01-06 05:00:00,6.65,2.54,8.23,18.99 -SENSOR_012,2023-01-06 05:30:00,7.5,2.74,8.79,19.96 -SENSOR_001,2023-01-06 06:00:00,6.79,2.21,7.18,22.85 -SENSOR_006,2023-01-06 06:30:00,6.61,2.88,7.78,23.86 -SENSOR_014,2023-01-06 07:00:00,5.91,2.71,10.75,21.22 -SENSOR_002,2023-01-06 07:30:00,6.6,4.72,9.35,18.78 -SENSOR_012,2023-01-06 08:00:00,7.4,3.69,7.22,24.31 -SENSOR_015,2023-01-06 08:30:00,7.08,2.23,8.37,25.03 -SENSOR_005,2023-01-06 09:00:00,6.78,5.04,8.11,20.75 -SENSOR_014,2023-01-06 09:30:00,7.21,2.1,8.82,25.82 -SENSOR_011,2023-01-06 10:00:00,7.15,1.99,7.96,21.07 -SENSOR_001,2023-01-06 10:30:00,7.44,1.81,4.66,18.1 -SENSOR_014,2023-01-06 11:00:00,7.22,4.3,7.16,16.68 -SENSOR_001,2023-01-06 11:30:00,6.88,2.06,7.78,26.05 -SENSOR_008,2023-01-06 12:00:00,6.55,2.87,8.91,21.92 -SENSOR_012,2023-01-06 12:30:00,7.46,2.18,6.4,24.21 -SENSOR_019,2023-01-06 13:00:00,7.6,1.43,5.4,18.86 -SENSOR_019,2023-01-06 13:30:00,7.23,2.1,8.22,19.49 -SENSOR_020,2023-01-06 14:00:00,6.71,2.7,7.86,24.78 -SENSOR_001,2023-01-06 14:30:00,7.01,2.66,9.96,24.21 -SENSOR_002,2023-01-06 15:00:00,6.66,1.64,8.36,17.78 -SENSOR_007,2023-01-06 15:30:00,6.16,3.04,4.96,19.84 -SENSOR_018,2023-01-06 16:00:00,6.95,3.59,6.9,25.03 -SENSOR_010,2023-01-06 16:30:00,7.73,3.04,7.82,22.25 -SENSOR_005,2023-01-06 17:00:00,6.92,2.94,6.89,25.42 -SENSOR_010,2023-01-06 17:30:00,7.45,1.88,7.69,24.6 -SENSOR_006,2023-01-06 18:00:00,7.29,4.36,6.89,19.84 -SENSOR_018,2023-01-06 18:30:00,7.34,2.39,5.95,25.64 -SENSOR_003,2023-01-06 19:00:00,6.64,2.8,6.86,19.28 -SENSOR_017,2023-01-06 19:30:00,7.36,2.77,8.81,20.73 -SENSOR_006,2023-01-06 20:00:00,7.44,3.51,8.17,23.62 -SENSOR_006,2023-01-06 20:30:00,6.99,2.53,6.85,21.0 -SENSOR_004,2023-01-06 21:00:00,7.32,1.71,8.38,21.66 -SENSOR_003,2023-01-06 21:30:00,6.57,2.83,8.83,22.01 -SENSOR_018,2023-01-06 22:00:00,6.63,2.35,6.52,25.76 -SENSOR_001,2023-01-06 22:30:00,6.79,4.88,11.3,17.39 -SENSOR_019,2023-01-06 23:00:00,6.91,0.98,5.94,18.16 -SENSOR_016,2023-01-06 23:30:00,7.01,3.59,7.95,21.2 -SENSOR_007,2023-01-07 00:00:00,7.7,3.15,6.86,22.08 -SENSOR_014,2023-01-07 00:30:00,8.09,1.86,7.62,20.16 -SENSOR_003,2023-01-07 01:00:00,7.39,2.38,6.55,24.79 -SENSOR_004,2023-01-07 01:30:00,6.9,2.99,8.91,18.03 -SENSOR_020,2023-01-07 02:00:00,6.8,3.64,5.33,24.78 -SENSOR_014,2023-01-07 02:30:00,6.59,2.73,9.6,21.37 -SENSOR_002,2023-01-07 03:00:00,7.85,2.61,6.28,29.24 -SENSOR_008,2023-01-07 03:30:00,7.84,4.24,9.57,21.25 -SENSOR_013,2023-01-07 04:00:00,6.72,3.09,8.15,21.88 -SENSOR_013,2023-01-07 04:30:00,5.97,2.39,6.96,24.9 -SENSOR_001,2023-01-07 05:00:00,6.98,3.1,8.31,22.62 -SENSOR_010,2023-01-07 05:30:00,6.39,2.54,4.11,22.05 -SENSOR_020,2023-01-07 06:00:00,6.7,4.11,10.59,19.71 -SENSOR_019,2023-01-07 06:30:00,7.46,3.93,9.19,22.08 -SENSOR_016,2023-01-07 07:00:00,7.06,2.45,9.11,23.1 -SENSOR_006,2023-01-07 07:30:00,6.45,1.55,8.89,15.92 -SENSOR_010,2023-01-07 08:00:00,6.73,4.17,6.35,19.52 -SENSOR_015,2023-01-07 08:30:00,6.68,3.39,8.37,18.98 -SENSOR_005,2023-01-07 09:00:00,7.4,2.16,7.58,22.52 -SENSOR_003,2023-01-07 09:30:00,6.85,3.3,10.21,24.82 -SENSOR_003,2023-01-07 10:00:00,5.97,3.61,7.53,24.94 -SENSOR_008,2023-01-07 10:30:00,7.3,3.58,7.79,19.66 -SENSOR_004,2023-01-07 11:00:00,7.71,3.48,8.76,19.34 -SENSOR_009,2023-01-07 11:30:00,7.05,2.75,7.4,22.04 -SENSOR_007,2023-01-07 12:00:00,6.67,4.8,5.82,22.99 -SENSOR_010,2023-01-07 12:30:00,6.95,3.62,7.1,24.07 -SENSOR_010,2023-01-07 13:00:00,8.11,2.57,10.88,23.27 -SENSOR_004,2023-01-07 13:30:00,6.96,1.11,9.54,24.15 -SENSOR_002,2023-01-07 14:00:00,7.25,3.0,7.47,18.97 -SENSOR_004,2023-01-07 14:30:00,6.12,1.03,6.53,18.86 -SENSOR_011,2023-01-07 15:00:00,6.53,1.86,9.09,24.66 -SENSOR_009,2023-01-07 15:30:00,7.12,3.88,8.63,22.04 -SENSOR_015,2023-01-07 16:00:00,7.21,1.85,10.39,22.97 -SENSOR_016,2023-01-07 16:30:00,6.11,3.82,9.85,21.99 -SENSOR_005,2023-01-07 17:00:00,7.41,3.03,7.0,24.53 -SENSOR_010,2023-01-07 17:30:00,7.87,3.44,11.7,24.18 -SENSOR_004,2023-01-07 18:00:00,7.26,3.01,8.41,25.51 -SENSOR_004,2023-01-07 18:30:00,5.99,3.29,9.96,19.62 -SENSOR_020,2023-01-07 19:00:00,7.72,4.62,8.16,20.5 -SENSOR_001,2023-01-07 19:30:00,6.42,1.45,7.53,26.03 -SENSOR_010,2023-01-07 20:00:00,7.48,3.79,7.74,20.42 -SENSOR_018,2023-01-07 20:30:00,6.36,4.99,4.36,18.49 -SENSOR_002,2023-01-07 21:00:00,7.31,2.98,6.71,26.17 -SENSOR_020,2023-01-07 21:30:00,6.41,1.17,7.5,19.99 -SENSOR_016,2023-01-07 22:00:00,6.93,3.15,9.66,23.26 -SENSOR_007,2023-01-07 22:30:00,5.97,3.15,6.3,25.34 -SENSOR_004,2023-01-07 23:00:00,7.36,4.16,4.36,26.25 -SENSOR_008,2023-01-07 23:30:00,6.99,3.68,5.45,21.11 -SENSOR_009,2023-01-08 00:00:00,6.57,3.05,8.87,22.54 -SENSOR_006,2023-01-08 00:30:00,7.16,4.1,9.79,20.63 -SENSOR_002,2023-01-08 01:00:00,6.78,1.74,6.71,18.75 -SENSOR_013,2023-01-08 01:30:00,6.95,2.36,9.41,24.66 -SENSOR_007,2023-01-08 02:00:00,7.35,4.6,10.74,22.99 -SENSOR_004,2023-01-08 02:30:00,7.5,3.16,7.38,23.12 -SENSOR_009,2023-01-08 03:00:00,6.94,2.66,7.84,20.57 -SENSOR_011,2023-01-08 03:30:00,6.82,2.64,9.4,17.89 -SENSOR_019,2023-01-08 04:00:00,8.1,3.64,9.45,20.85 -SENSOR_009,2023-01-08 04:30:00,6.3,3.11,9.81,29.3 -SENSOR_002,2023-01-08 05:00:00,7.44,2.97,8.3,24.22 -SENSOR_009,2023-01-08 05:30:00,8.06,4.08,11.86,21.31 -SENSOR_020,2023-01-08 06:00:00,7.51,3.53,7.11,22.84 -SENSOR_004,2023-01-08 06:30:00,7.8,5.32,7.49,20.16 -SENSOR_010,2023-01-08 07:00:00,6.67,3.02,6.99,23.26 -SENSOR_016,2023-01-08 07:30:00,6.93,3.4,7.09,24.35 -SENSOR_012,2023-01-08 08:00:00,7.32,2.55,7.78,19.93 -SENSOR_005,2023-01-08 08:30:00,7.01,1.85,5.51,23.53 -SENSOR_015,2023-01-08 09:00:00,7.35,3.01,7.76,19.31 -SENSOR_003,2023-01-08 09:30:00,6.38,3.61,7.84,22.17 -SENSOR_020,2023-01-08 10:00:00,6.31,2.27,7.08,15.12 -SENSOR_004,2023-01-08 10:30:00,7.21,4.75,10.93,20.68 -SENSOR_011,2023-01-08 11:00:00,7.02,4.05,9.91,23.88 -SENSOR_019,2023-01-08 11:30:00,7.32,3.23,5.61,21.81 -SENSOR_020,2023-01-08 12:00:00,5.94,2.68,9.01,26.56 -SENSOR_001,2023-01-08 12:30:00,6.78,2.52,6.68,24.73 -SENSOR_019,2023-01-08 13:00:00,6.53,1.44,8.12,15.56 -SENSOR_016,2023-01-08 13:30:00,6.77,2.0,7.24,21.36 -SENSOR_019,2023-01-08 14:00:00,5.99,4.38,7.18,24.17 -SENSOR_020,2023-01-08 14:30:00,7.48,3.03,10.06,25.61 -SENSOR_007,2023-01-08 15:00:00,5.28,1.46,6.05,22.42 -SENSOR_005,2023-01-08 15:30:00,7.39,3.41,8.16,22.58 -SENSOR_007,2023-01-08 16:00:00,7.28,3.76,8.13,25.21 -SENSOR_003,2023-01-08 16:30:00,7.08,3.24,9.84,15.49 -SENSOR_001,2023-01-08 17:00:00,6.82,2.98,10.26,17.83 -SENSOR_020,2023-01-08 17:30:00,7.4,3.52,10.29,23.65 -SENSOR_017,2023-01-08 18:00:00,6.82,4.19,11.39,21.85 -SENSOR_007,2023-01-08 18:30:00,6.82,2.6,5.54,20.81 -SENSOR_002,2023-01-08 19:00:00,6.35,4.04,9.01,17.94 -SENSOR_006,2023-01-08 19:30:00,7.31,3.92,9.52,20.5 -SENSOR_013,2023-01-08 20:00:00,6.25,3.69,12.12,25.25 -SENSOR_011,2023-01-08 20:30:00,6.19,2.93,7.3,17.85 -SENSOR_010,2023-01-08 21:00:00,6.43,4.72,7.67,21.44 -SENSOR_018,2023-01-08 21:30:00,6.65,2.37,9.52,23.19 -SENSOR_018,2023-01-08 22:00:00,7.79,3.35,5.83,26.18 -SENSOR_003,2023-01-08 22:30:00,6.8,2.93,9.4,20.07 -SENSOR_017,2023-01-08 23:00:00,7.74,2.09,6.76,26.01 -SENSOR_011,2023-01-08 23:30:00,6.66,3.18,7.86,24.83 -SENSOR_020,2023-01-09 00:00:00,6.81,3.58,8.91,22.04 -SENSOR_004,2023-01-09 00:30:00,7.48,4.15,6.23,17.31 -SENSOR_013,2023-01-09 01:00:00,7.43,1.78,9.22,24.12 -SENSOR_019,2023-01-09 01:30:00,7.55,2.53,7.92,23.3 -SENSOR_010,2023-01-09 02:00:00,7.03,3.42,7.69,20.63 -SENSOR_007,2023-01-09 02:30:00,7.63,3.76,8.47,17.27 -SENSOR_020,2023-01-09 03:00:00,7.02,3.79,8.03,20.07 -SENSOR_010,2023-01-09 03:30:00,6.85,3.19,9.67,18.25 -SENSOR_004,2023-01-09 04:00:00,7.23,2.88,7.42,22.08 -SENSOR_006,2023-01-09 04:30:00,7.1,3.47,6.86,25.25 -SENSOR_009,2023-01-09 05:00:00,6.79,2.35,10.36,20.71 -SENSOR_005,2023-01-09 05:30:00,6.42,2.46,5.68,14.72 -SENSOR_010,2023-01-09 06:00:00,6.41,4.25,2.84,16.25 -SENSOR_019,2023-01-09 06:30:00,5.51,3.69,6.68,19.29 -SENSOR_008,2023-01-09 07:00:00,7.38,3.67,11.58,24.65 -SENSOR_012,2023-01-09 07:30:00,6.77,2.42,6.71,23.09 -SENSOR_017,2023-01-09 08:00:00,7.45,2.85,8.05,25.66 -SENSOR_018,2023-01-09 08:30:00,6.69,1.97,9.18,19.16 -SENSOR_015,2023-01-09 09:00:00,6.34,4.01,7.28,27.21 -SENSOR_016,2023-01-09 09:30:00,7.21,2.93,7.97,19.76 -SENSOR_014,2023-01-09 10:00:00,6.37,1.36,7.16,25.77 -SENSOR_015,2023-01-09 10:30:00,6.49,2.25,7.29,21.86 -SENSOR_008,2023-01-09 11:00:00,6.93,4.06,6.09,16.93 -SENSOR_004,2023-01-09 11:30:00,7.56,3.42,10.45,23.99 -SENSOR_008,2023-01-09 12:00:00,7.21,4.66,8.0,19.61 -SENSOR_015,2023-01-09 12:30:00,7.02,3.92,10.98,23.29 -SENSOR_010,2023-01-09 13:00:00,6.73,1.96,9.2,18.52 -SENSOR_011,2023-01-09 13:30:00,7.05,1.56,7.69,26.31 -SENSOR_009,2023-01-09 14:00:00,6.84,4.18,5.08,26.36 -SENSOR_002,2023-01-09 14:30:00,7.02,3.13,8.21,21.49 -SENSOR_008,2023-01-09 15:00:00,5.97,3.28,7.88,18.98 -SENSOR_014,2023-01-09 15:30:00,7.02,0.78,9.09,21.48 -SENSOR_012,2023-01-09 16:00:00,6.42,1.82,9.14,17.86 -SENSOR_016,2023-01-09 16:30:00,6.95,2.5,7.82,21.84 -SENSOR_002,2023-01-09 17:00:00,6.81,3.84,8.24,23.68 -SENSOR_015,2023-01-09 17:30:00,7.14,4.96,5.48,19.31 -SENSOR_001,2023-01-09 18:00:00,7.12,2.01,11.23,22.52 -SENSOR_017,2023-01-09 18:30:00,7.08,0.33,5.04,18.37 -SENSOR_015,2023-01-09 19:00:00,7.12,2.09,8.76,20.28 -SENSOR_011,2023-01-09 19:30:00,7.03,4.6,7.51,20.51 -SENSOR_004,2023-01-09 20:00:00,6.84,3.69,6.39,18.85 -SENSOR_003,2023-01-09 20:30:00,6.44,0.8,9.76,22.38 -SENSOR_006,2023-01-09 21:00:00,7.7,2.63,8.43,20.16 -SENSOR_008,2023-01-09 21:30:00,6.56,4.43,10.11,25.54 -SENSOR_005,2023-01-09 22:00:00,7.78,2.06,10.12,27.89 -SENSOR_009,2023-01-09 22:30:00,7.14,3.5,6.22,23.28 -SENSOR_016,2023-01-09 23:00:00,6.9,2.1,7.85,22.42 -SENSOR_016,2023-01-09 23:30:00,6.53,2.16,11.98,18.81 -SENSOR_013,2023-01-10 00:00:00,7.86,3.55,8.82,21.84 -SENSOR_020,2023-01-10 00:30:00,7.7,2.47,10.36,22.51 -SENSOR_019,2023-01-10 01:00:00,6.03,3.5,10.63,25.51 -SENSOR_005,2023-01-10 01:30:00,7.52,4.21,6.77,22.09 -SENSOR_009,2023-01-10 02:00:00,6.84,1.48,7.51,22.75 -SENSOR_008,2023-01-10 02:30:00,7.16,2.15,8.66,17.24 -SENSOR_014,2023-01-10 03:00:00,7.37,4.08,7.1,20.17 -SENSOR_012,2023-01-10 03:30:00,6.97,3.74,9.06,22.74 -SENSOR_017,2023-01-10 04:00:00,7.62,1.24,8.79,23.9 -SENSOR_014,2023-01-10 04:30:00,6.94,4.34,8.92,19.23 -SENSOR_007,2023-01-10 05:00:00,6.95,2.58,9.02,23.29 -SENSOR_012,2023-01-10 05:30:00,7.01,0.41,5.51,24.14 -SENSOR_003,2023-01-10 06:00:00,6.85,4.51,5.99,18.8 -SENSOR_016,2023-01-10 06:30:00,7.15,3.42,10.13,20.55 -SENSOR_018,2023-01-10 07:00:00,7.32,5.08,6.12,18.29 -SENSOR_002,2023-01-10 07:30:00,7.05,2.63,7.98,27.14 -SENSOR_009,2023-01-10 08:00:00,7.53,2.35,8.24,23.65 -SENSOR_020,2023-01-10 08:30:00,7.31,1.46,10.37,21.31 -SENSOR_007,2023-01-10 09:00:00,7.89,3.52,7.8,20.66 -SENSOR_012,2023-01-10 09:30:00,7.09,2.62,10.24,20.55 -SENSOR_008,2023-01-10 10:00:00,7.56,1.36,10.77,25.25 -SENSOR_004,2023-01-10 10:30:00,7.21,4.67,7.82,17.13 -SENSOR_003,2023-01-10 11:00:00,7.44,4.09,6.76,21.77 -SENSOR_018,2023-01-10 11:30:00,6.56,2.85,7.42,19.83 -SENSOR_011,2023-01-10 12:00:00,7.5,3.83,5.3,22.61 -SENSOR_012,2023-01-10 12:30:00,7.06,3.61,3.82,19.73 -SENSOR_014,2023-01-10 13:00:00,6.71,3.21,9.56,20.23 -SENSOR_019,2023-01-10 13:30:00,7.04,3.62,8.33,19.38 -SENSOR_002,2023-01-10 14:00:00,6.76,1.9,8.95,19.51 -SENSOR_015,2023-01-10 14:30:00,7.65,3.26,8.95,19.85 -SENSOR_016,2023-01-10 15:00:00,6.91,3.22,8.77,18.79 -SENSOR_002,2023-01-10 15:30:00,7.5,2.38,6.31,19.04 -SENSOR_004,2023-01-10 16:00:00,6.25,3.4,8.36,19.65 -SENSOR_015,2023-01-10 16:30:00,7.18,2.32,8.34,25.06 -SENSOR_015,2023-01-10 17:00:00,7.84,1.73,6.41,29.33 -SENSOR_014,2023-01-10 17:30:00,6.32,3.47,2.49,24.0 -SENSOR_003,2023-01-10 18:00:00,7.0,3.32,7.49,23.69 -SENSOR_009,2023-01-10 18:30:00,6.92,4.16,7.52,23.18 -SENSOR_003,2023-01-10 19:00:00,7.25,2.48,9.88,24.62 -SENSOR_003,2023-01-10 19:30:00,6.5,2.18,5.61,20.77 -SENSOR_020,2023-01-10 20:00:00,6.88,5.23,7.1,20.69 -SENSOR_011,2023-01-10 20:30:00,6.05,3.26,6.67,16.46 -SENSOR_009,2023-01-10 21:00:00,7.06,3.48,10.51,25.75 -SENSOR_014,2023-01-10 21:30:00,7.27,1.29,6.65,20.74 -SENSOR_004,2023-01-10 22:00:00,6.56,3.69,9.46,21.71 -SENSOR_012,2023-01-10 22:30:00,6.63,2.61,6.7,24.34 -SENSOR_001,2023-01-10 23:00:00,6.54,3.6,7.59,18.67 -SENSOR_002,2023-01-10 23:30:00,7.23,2.95,8.07,24.68 -SENSOR_019,2023-01-11 00:00:00,6.41,2.33,8.58,22.74 -SENSOR_005,2023-01-11 00:30:00,7.01,2.55,9.79,22.93 -SENSOR_018,2023-01-11 01:00:00,6.82,1.7,8.67,22.78 -SENSOR_019,2023-01-11 01:30:00,7.38,2.4,5.4,25.18 -SENSOR_006,2023-01-11 02:00:00,7.85,1.62,7.02,20.51 -SENSOR_009,2023-01-11 02:30:00,6.48,3.24,10.9,21.43 -SENSOR_011,2023-01-11 03:00:00,7.11,3.2,6.91,17.15 -SENSOR_019,2023-01-11 03:30:00,8.05,1.42,8.69,28.47 -SENSOR_013,2023-01-11 04:00:00,7.08,2.58,7.68,23.84 -SENSOR_013,2023-01-11 04:30:00,6.71,2.43,6.44,22.73 -SENSOR_017,2023-01-11 05:00:00,7.03,3.37,9.36,24.11 -SENSOR_019,2023-01-11 05:30:00,7.02,1.15,8.35,27.2 -SENSOR_009,2023-01-11 06:00:00,8.21,3.45,4.7,21.63 -SENSOR_015,2023-01-11 06:30:00,7.35,4.19,10.03,20.34 -SENSOR_007,2023-01-11 07:00:00,6.76,2.58,5.24,20.92 -SENSOR_002,2023-01-11 07:30:00,7.24,1.44,6.77,25.85 -SENSOR_002,2023-01-11 08:00:00,7.11,3.31,5.75,24.29 -SENSOR_013,2023-01-11 08:30:00,7.09,3.12,8.53,24.01 -SENSOR_013,2023-01-11 09:00:00,6.82,3.21,6.9,23.08 -SENSOR_018,2023-01-11 09:30:00,6.91,3.26,9.01,22.06 -SENSOR_018,2023-01-11 10:00:00,7.84,2.67,6.73,24.59 -SENSOR_011,2023-01-11 10:30:00,7.39,1.25,9.12,21.68 -SENSOR_016,2023-01-11 11:00:00,6.79,3.45,8.28,21.55 -SENSOR_015,2023-01-11 11:30:00,6.48,2.71,5.39,23.92 -SENSOR_020,2023-01-11 12:00:00,6.63,3.88,5.13,24.26 -SENSOR_002,2023-01-11 12:30:00,7.1,3.57,6.55,21.86 -SENSOR_009,2023-01-11 13:00:00,7.43,-0.1,6.81,21.68 -SENSOR_009,2023-01-11 13:30:00,7.06,3.53,8.6,19.2 -SENSOR_002,2023-01-11 14:00:00,6.17,2.48,6.77,20.17 -SENSOR_015,2023-01-11 14:30:00,7.37,3.86,8.26,20.63 -SENSOR_020,2023-01-11 15:00:00,7.04,2.53,6.33,23.7 -SENSOR_014,2023-01-11 15:30:00,6.95,3.75,8.75,22.25 -SENSOR_016,2023-01-11 16:00:00,8.01,1.79,8.41,23.66 -SENSOR_020,2023-01-11 16:30:00,6.32,3.33,8.58,19.42 -SENSOR_009,2023-01-11 17:00:00,6.42,2.85,6.23,24.86 -SENSOR_013,2023-01-11 17:30:00,6.7,4.59,10.3,18.06 -SENSOR_003,2023-01-11 18:00:00,6.18,3.3,5.8,21.58 -SENSOR_006,2023-01-11 18:30:00,7.73,2.75,9.71,18.33 -SENSOR_002,2023-01-11 19:00:00,5.68,2.54,7.2,15.94 -SENSOR_011,2023-01-11 19:30:00,6.51,2.48,7.23,23.65 -SENSOR_010,2023-01-11 20:00:00,7.32,2.25,7.69,18.6 -SENSOR_013,2023-01-11 20:30:00,7.6,3.33,6.33,25.02 -SENSOR_020,2023-01-11 21:00:00,6.9,4.09,8.1,19.65 -SENSOR_010,2023-01-11 21:30:00,7.21,3.67,10.81,17.04 -SENSOR_020,2023-01-11 22:00:00,7.17,1.66,6.36,21.0 -SENSOR_018,2023-01-11 22:30:00,7.26,3.6,7.63,22.68 -SENSOR_005,2023-01-11 23:00:00,7.64,2.67,9.91,20.13 -SENSOR_017,2023-01-11 23:30:00,7.14,2.72,5.36,18.85 -SENSOR_003,2023-01-12 00:00:00,6.75,1.98,8.89,22.3 -SENSOR_015,2023-01-12 00:30:00,6.91,1.39,5.39,23.05 -SENSOR_016,2023-01-12 01:00:00,6.21,2.72,6.21,22.55 -SENSOR_015,2023-01-12 01:30:00,7.02,3.09,7.22,25.46 -SENSOR_006,2023-01-12 02:00:00,6.91,3.07,9.51,18.25 -SENSOR_002,2023-01-12 02:30:00,7.24,2.9,7.34,19.51 -SENSOR_016,2023-01-12 03:00:00,7.56,3.32,8.73,24.45 -SENSOR_013,2023-01-12 03:30:00,7.48,2.76,6.93,23.12 -SENSOR_002,2023-01-12 04:00:00,7.23,2.27,7.77,26.77 -SENSOR_007,2023-01-12 04:30:00,6.64,3.69,8.65,22.55 -SENSOR_008,2023-01-12 05:00:00,6.58,4.47,5.41,19.74 -SENSOR_006,2023-01-12 05:30:00,6.61,3.06,7.96,18.11 -SENSOR_016,2023-01-12 06:00:00,7.2,2.52,7.64,19.57 -SENSOR_001,2023-01-12 06:30:00,7.46,1.91,9.21,21.76 -SENSOR_008,2023-01-12 07:00:00,7.36,2.36,6.76,28.02 -SENSOR_008,2023-01-12 07:30:00,7.03,4.46,6.92,20.83 -SENSOR_001,2023-01-12 08:00:00,6.99,3.41,7.63,24.74 -SENSOR_014,2023-01-12 08:30:00,7.36,3.38,7.99,18.51 -SENSOR_014,2023-01-12 09:00:00,7.74,3.85,7.97,24.31 -SENSOR_014,2023-01-12 09:30:00,7.19,4.15,9.59,20.27 -SENSOR_003,2023-01-12 10:00:00,6.44,2.96,10.04,19.0 -SENSOR_018,2023-01-12 10:30:00,7.06,4.36,9.97,22.82 -SENSOR_005,2023-01-12 11:00:00,6.45,4.1,8.35,18.92 -SENSOR_009,2023-01-12 11:30:00,6.54,2.02,8.59,23.2 -SENSOR_006,2023-01-12 12:00:00,7.22,2.71,9.97,21.74 -SENSOR_010,2023-01-12 12:30:00,6.97,2.98,5.49,18.9 -SENSOR_009,2023-01-12 13:00:00,7.73,4.43,4.15,21.0 -SENSOR_001,2023-01-12 13:30:00,7.87,2.84,10.59,25.52 -SENSOR_015,2023-01-12 14:00:00,5.28,3.28,6.87,24.84 -SENSOR_003,2023-01-12 14:30:00,6.21,4.02,9.47,22.15 -SENSOR_006,2023-01-12 15:00:00,7.56,5.12,6.77,19.09 -SENSOR_014,2023-01-12 15:30:00,6.12,2.58,9.57,19.72 -SENSOR_015,2023-01-12 16:00:00,6.82,3.7,10.99,22.49 -SENSOR_014,2023-01-12 16:30:00,7.23,2.44,6.77,22.48 -SENSOR_007,2023-01-12 17:00:00,6.94,2.08,7.33,23.75 -SENSOR_006,2023-01-12 17:30:00,5.72,2.3,6.68,23.49 -SENSOR_006,2023-01-12 18:00:00,6.85,3.51,10.05,16.96 -SENSOR_006,2023-01-12 18:30:00,7.53,2.18,8.66,25.94 -SENSOR_008,2023-01-12 19:00:00,7.18,4.42,8.77,18.71 -SENSOR_015,2023-01-12 19:30:00,6.65,4.1,6.82,20.38 -SENSOR_016,2023-01-12 20:00:00,7.36,3.42,8.79,16.74 -SENSOR_006,2023-01-12 20:30:00,7.08,1.28,6.83,21.56 -SENSOR_011,2023-01-12 21:00:00,6.28,3.03,8.72,22.0 -SENSOR_014,2023-01-12 21:30:00,6.94,2.92,7.86,25.81 -SENSOR_007,2023-01-12 22:00:00,6.02,3.69,8.24,19.56 -SENSOR_010,2023-01-12 22:30:00,7.37,3.77,8.75,21.24 -SENSOR_004,2023-01-12 23:00:00,7.25,3.76,8.47,17.79 -SENSOR_020,2023-01-12 23:30:00,6.74,3.06,7.95,17.95 -SENSOR_007,2023-01-13 00:00:00,7.26,3.68,5.43,21.7 -SENSOR_007,2023-01-13 00:30:00,6.8,3.0,6.67,22.33 -SENSOR_015,2023-01-13 01:00:00,7.31,4.27,6.92,18.87 -SENSOR_007,2023-01-13 01:30:00,7.94,4.52,9.31,28.09 -SENSOR_001,2023-01-13 02:00:00,6.61,4.49,7.75,23.5 -SENSOR_018,2023-01-13 02:30:00,6.82,4.11,8.75,21.79 -SENSOR_003,2023-01-13 03:00:00,6.65,3.51,5.87,25.74 -SENSOR_018,2023-01-13 03:30:00,6.45,0.34,8.75,15.96 -SENSOR_005,2023-01-13 04:00:00,6.84,3.34,8.38,26.9 -SENSOR_012,2023-01-13 04:30:00,7.05,3.63,6.46,20.66 -SENSOR_013,2023-01-13 05:00:00,7.35,4.19,10.45,21.82 -SENSOR_002,2023-01-13 05:30:00,6.35,0.43,6.79,24.61 -SENSOR_003,2023-01-13 06:00:00,6.69,5.91,8.65,21.9 -SENSOR_011,2023-01-13 06:30:00,8.46,3.41,5.92,21.71 -SENSOR_017,2023-01-13 07:00:00,6.64,2.16,7.56,22.25 -SENSOR_018,2023-01-13 07:30:00,6.48,3.16,8.99,21.15 -SENSOR_011,2023-01-13 08:00:00,7.67,2.81,8.38,20.78 -SENSOR_002,2023-01-13 08:30:00,6.95,3.0,7.74,22.86 -SENSOR_015,2023-01-13 09:00:00,7.65,3.8,9.96,22.38 -SENSOR_013,2023-01-13 09:30:00,6.93,2.57,7.33,20.64 -SENSOR_013,2023-01-13 10:00:00,7.2,4.72,7.03,22.64 -SENSOR_007,2023-01-13 10:30:00,7.16,2.09,9.83,22.76 -SENSOR_020,2023-01-13 11:00:00,6.15,3.44,5.71,18.86 -SENSOR_013,2023-01-13 11:30:00,6.17,2.98,5.8,25.11 -SENSOR_020,2023-01-13 12:00:00,6.97,2.41,7.06,23.11 -SENSOR_013,2023-01-13 12:30:00,7.39,2.17,8.28,23.75 -SENSOR_015,2023-01-13 13:00:00,6.44,1.02,7.77,24.25 -SENSOR_001,2023-01-13 13:30:00,6.3,1.5,7.96,24.47 -SENSOR_015,2023-01-13 14:00:00,6.86,2.67,7.83,25.21 -SENSOR_014,2023-01-13 14:30:00,5.84,3.28,7.7,18.85 -SENSOR_009,2023-01-13 15:00:00,6.5,3.11,6.7,19.18 -SENSOR_009,2023-01-13 15:30:00,7.65,3.18,6.11,21.04 -SENSOR_015,2023-01-13 16:00:00,6.9,3.07,7.57,21.87 -SENSOR_013,2023-01-13 16:30:00,7.54,2.8,2.98,25.16 -SENSOR_011,2023-01-13 17:00:00,6.53,4.04,7.27,20.93 -SENSOR_016,2023-01-13 17:30:00,7.2,2.17,7.1,20.48 -SENSOR_017,2023-01-13 18:00:00,7.5,3.8,8.27,18.08 -SENSOR_012,2023-01-13 18:30:00,7.71,2.55,6.14,22.63 -SENSOR_003,2023-01-13 19:00:00,6.74,1.58,8.04,25.37 -SENSOR_001,2023-01-13 19:30:00,6.12,3.21,9.25,23.99 -SENSOR_001,2023-01-13 20:00:00,6.38,4.01,7.46,25.39 -SENSOR_012,2023-01-13 20:30:00,7.1,3.44,11.03,21.04 -SENSOR_019,2023-01-13 21:00:00,6.83,3.63,6.24,19.78 -SENSOR_010,2023-01-13 21:30:00,6.9,3.18,6.36,24.8 -SENSOR_003,2023-01-13 22:00:00,6.71,3.64,7.86,21.16 -SENSOR_011,2023-01-13 22:30:00,6.41,2.64,6.74,27.18 -SENSOR_005,2023-01-13 23:00:00,7.3,3.83,10.15,17.42 -SENSOR_004,2023-01-13 23:30:00,6.73,3.99,7.98,24.16 -SENSOR_001,2023-01-14 00:00:00,7.6,1.45,9.35,20.68 -SENSOR_004,2023-01-14 00:30:00,7.1,2.88,4.96,26.15 -SENSOR_001,2023-01-14 01:00:00,7.8,4.0,7.0,21.15 -SENSOR_005,2023-01-14 01:30:00,7.68,3.83,6.45,18.49 -SENSOR_015,2023-01-14 02:00:00,6.98,4.09,6.85,20.03 -SENSOR_001,2023-01-14 02:30:00,6.81,4.14,9.96,21.07 -SENSOR_013,2023-01-14 03:00:00,7.19,2.18,6.48,23.45 -SENSOR_019,2023-01-14 03:30:00,6.99,3.91,8.3,21.96 -SENSOR_017,2023-01-14 04:00:00,6.88,3.76,6.96,19.02 -SENSOR_020,2023-01-14 04:30:00,7.65,2.7,7.36,19.12 -SENSOR_013,2023-01-14 05:00:00,6.09,3.88,9.55,29.81 -SENSOR_007,2023-01-14 05:30:00,6.83,3.64,6.7,18.28 -SENSOR_009,2023-01-14 06:00:00,6.28,4.87,6.23,23.08 -SENSOR_006,2023-01-14 06:30:00,6.7,3.35,6.12,17.67 -SENSOR_018,2023-01-14 07:00:00,6.41,2.65,8.79,25.86 -SENSOR_002,2023-01-14 07:30:00,7.43,2.15,7.09,23.83 -SENSOR_014,2023-01-14 08:00:00,7.17,1.71,7.27,24.96 -SENSOR_002,2023-01-14 08:30:00,7.2,2.57,6.74,22.8 -SENSOR_002,2023-01-14 09:00:00,7.29,0.94,5.38,21.98 -SENSOR_020,2023-01-14 09:30:00,6.85,4.31,7.74,17.71 -SENSOR_017,2023-01-14 10:00:00,6.81,3.79,6.38,24.9 -SENSOR_020,2023-01-14 10:30:00,7.03,3.55,8.21,26.06 -SENSOR_003,2023-01-14 11:00:00,6.09,1.88,7.31,22.23 -SENSOR_013,2023-01-14 11:30:00,6.82,1.16,7.39,24.54 -SENSOR_015,2023-01-14 12:00:00,7.67,1.87,5.65,22.49 -SENSOR_004,2023-01-14 12:30:00,6.64,3.98,8.79,20.8 -SENSOR_007,2023-01-14 13:00:00,6.78,1.65,9.39,24.98 -SENSOR_016,2023-01-14 13:30:00,6.96,2.45,7.8,21.94 -SENSOR_007,2023-01-14 14:00:00,6.9,3.08,8.53,23.23 -SENSOR_010,2023-01-14 14:30:00,7.91,3.92,4.84,23.63 -SENSOR_018,2023-01-14 15:00:00,7.23,0.09,7.25,18.63 -SENSOR_007,2023-01-14 15:30:00,7.02,2.3,7.17,23.44 -SENSOR_019,2023-01-14 16:00:00,6.87,3.45,12.01,20.23 -SENSOR_008,2023-01-14 16:30:00,7.18,1.26,7.31,23.06 -SENSOR_014,2023-01-14 17:00:00,6.56,2.8,8.72,20.02 -SENSOR_013,2023-01-14 17:30:00,7.13,3.61,8.58,25.8 -SENSOR_020,2023-01-14 18:00:00,6.7,3.42,8.04,24.88 -SENSOR_009,2023-01-14 18:30:00,6.94,3.75,9.02,17.81 -SENSOR_012,2023-01-14 19:00:00,7.45,2.75,8.01,25.29 -SENSOR_007,2023-01-14 19:30:00,6.51,3.21,9.67,23.91 -SENSOR_017,2023-01-14 20:00:00,7.51,2.98,6.67,20.38 -SENSOR_006,2023-01-14 20:30:00,7.49,2.86,7.25,20.36 -SENSOR_020,2023-01-14 21:00:00,7.02,2.28,6.26,20.46 -SENSOR_012,2023-01-14 21:30:00,7.27,3.88,8.66,19.66 -SENSOR_007,2023-01-14 22:00:00,6.37,1.68,6.57,25.82 -SENSOR_007,2023-01-14 22:30:00,7.04,2.07,11.27,25.12 -SENSOR_017,2023-01-14 23:00:00,6.77,2.11,7.46,19.2 -SENSOR_002,2023-01-14 23:30:00,7.52,2.57,8.03,20.14 -SENSOR_018,2023-01-15 00:00:00,7.15,3.07,5.84,16.88 -SENSOR_007,2023-01-15 00:30:00,7.02,4.5,8.31,18.3 -SENSOR_006,2023-01-15 01:00:00,6.42,2.64,8.35,22.4 -SENSOR_001,2023-01-15 01:30:00,7.13,4.72,5.42,20.05 -SENSOR_003,2023-01-15 02:00:00,6.61,3.51,7.49,16.82 -SENSOR_018,2023-01-15 02:30:00,6.99,3.77,6.68,22.24 -SENSOR_006,2023-01-15 03:00:00,6.69,1.85,7.69,21.37 -SENSOR_004,2023-01-15 03:30:00,7.24,2.82,8.84,14.95 -SENSOR_002,2023-01-15 04:00:00,6.5,2.51,7.49,22.5 -SENSOR_015,2023-01-15 04:30:00,7.55,2.46,4.2,22.42 -SENSOR_009,2023-01-15 05:00:00,6.94,3.83,9.35,21.09 -SENSOR_016,2023-01-15 05:30:00,6.96,2.52,7.52,20.67 -SENSOR_011,2023-01-15 06:00:00,7.69,4.47,6.63,26.37 -SENSOR_005,2023-01-15 06:30:00,7.47,0.65,10.11,21.7 -SENSOR_011,2023-01-15 07:00:00,7.14,3.18,10.68,19.87 -SENSOR_015,2023-01-15 07:30:00,6.77,3.66,6.82,21.84 -SENSOR_020,2023-01-15 08:00:00,6.94,3.33,7.58,26.64 -SENSOR_016,2023-01-15 08:30:00,7.01,2.93,4.7,22.56 -SENSOR_011,2023-01-15 09:00:00,6.63,3.02,7.88,23.83 -SENSOR_017,2023-01-15 09:30:00,6.96,3.49,8.87,21.68 -SENSOR_011,2023-01-15 10:00:00,6.79,3.49,9.28,20.53 -SENSOR_018,2023-01-15 10:30:00,7.74,3.68,7.41,21.53 -SENSOR_008,2023-01-15 11:00:00,6.8,2.72,6.82,20.73 -SENSOR_016,2023-01-15 11:30:00,7.04,4.81,7.5,21.05 -SENSOR_005,2023-01-15 12:00:00,6.75,2.79,7.13,22.7 -SENSOR_017,2023-01-15 12:30:00,6.66,1.34,6.43,24.89 -SENSOR_016,2023-01-15 13:00:00,5.5,4.23,7.9,18.44 -SENSOR_004,2023-01-15 13:30:00,7.39,3.0,6.29,21.72 -SENSOR_008,2023-01-15 14:00:00,6.89,2.98,9.05,22.87 -SENSOR_008,2023-01-15 14:30:00,7.51,0.78,10.12,23.54 -SENSOR_011,2023-01-15 15:00:00,6.96,3.8,9.95,27.43 -SENSOR_020,2023-01-15 15:30:00,6.52,2.17,9.15,21.98 -SENSOR_020,2023-01-15 16:00:00,7.06,1.75,7.41,22.25 -SENSOR_011,2023-01-15 16:30:00,7.33,2.12,7.78,24.72 -SENSOR_017,2023-01-15 17:00:00,7.57,3.26,10.0,22.21 -SENSOR_014,2023-01-15 17:30:00,7.2,2.89,6.27,22.39 -SENSOR_006,2023-01-15 18:00:00,7.03,1.18,6.8,20.76 -SENSOR_004,2023-01-15 18:30:00,7.33,4.52,10.04,23.36 -SENSOR_001,2023-01-15 19:00:00,6.14,3.57,8.04,19.3 -SENSOR_012,2023-01-15 19:30:00,6.53,2.48,7.47,24.84 -SENSOR_001,2023-01-15 20:00:00,8.04,2.99,7.01,21.62 -SENSOR_018,2023-01-15 20:30:00,6.41,2.99,9.88,21.47 -SENSOR_008,2023-01-15 21:00:00,6.59,2.66,6.93,23.86 -SENSOR_020,2023-01-15 21:30:00,6.13,4.55,8.0,22.84 -SENSOR_013,2023-01-15 22:00:00,7.74,2.43,9.5,24.23 -SENSOR_003,2023-01-15 22:30:00,6.68,2.26,9.63,24.62 -SENSOR_005,2023-01-15 23:00:00,7.7,4.55,8.48,24.2 -SENSOR_012,2023-01-15 23:30:00,6.92,3.5,7.23,20.18 -SENSOR_005,2023-01-16 00:00:00,6.83,1.68,10.11,24.38 -SENSOR_009,2023-01-16 00:30:00,6.59,4.5,10.17,21.35 -SENSOR_008,2023-01-16 01:00:00,7.82,2.54,8.83,17.39 -SENSOR_014,2023-01-16 01:30:00,7.07,3.11,8.92,22.92 -SENSOR_006,2023-01-16 02:00:00,6.65,3.4,7.95,23.11 -SENSOR_001,2023-01-16 02:30:00,6.7,3.63,9.51,21.23 -SENSOR_012,2023-01-16 03:00:00,7.03,4.1,6.97,17.72 -SENSOR_001,2023-01-16 03:30:00,6.59,3.7,7.21,22.36 -SENSOR_010,2023-01-16 04:00:00,7.17,3.12,7.68,21.8 -SENSOR_008,2023-01-16 04:30:00,7.23,1.18,11.35,20.83 -SENSOR_007,2023-01-16 05:00:00,5.99,2.57,8.16,19.58 -SENSOR_012,2023-01-16 05:30:00,7.0,2.8,5.68,21.35 -SENSOR_011,2023-01-16 06:00:00,7.36,2.99,5.29,22.86 -SENSOR_006,2023-01-16 06:30:00,7.4,1.98,6.8,22.24 -SENSOR_019,2023-01-16 07:00:00,7.81,4.16,8.93,20.38 -SENSOR_009,2023-01-16 07:30:00,7.17,2.6,7.69,22.08 -SENSOR_020,2023-01-16 08:00:00,7.0,2.36,7.42,26.19 -SENSOR_016,2023-01-16 08:30:00,7.48,2.83,6.65,25.21 -SENSOR_009,2023-01-16 09:00:00,7.02,4.16,8.27,18.52 -SENSOR_003,2023-01-16 09:30:00,5.77,3.7,6.1,21.35 -SENSOR_001,2023-01-16 10:00:00,7.06,4.48,8.11,20.19 -SENSOR_011,2023-01-16 10:30:00,7.26,4.27,8.2,20.97 -SENSOR_019,2023-01-16 11:00:00,7.41,3.73,7.34,26.9 -SENSOR_020,2023-01-16 11:30:00,6.98,3.37,7.23,25.94 -SENSOR_007,2023-01-16 12:00:00,7.83,2.43,9.26,28.64 -SENSOR_015,2023-01-16 12:30:00,7.97,2.94,9.53,19.49 -SENSOR_002,2023-01-16 13:00:00,5.86,4.02,9.29,19.62 -SENSOR_010,2023-01-16 13:30:00,7.02,3.55,8.17,21.05 -SENSOR_016,2023-01-16 14:00:00,7.39,3.19,7.33,19.55 -SENSOR_015,2023-01-16 14:30:00,7.55,4.02,6.24,18.5 -SENSOR_004,2023-01-16 15:00:00,6.19,2.25,7.77,16.45 -SENSOR_002,2023-01-16 15:30:00,7.78,2.26,10.55,25.92 -SENSOR_012,2023-01-16 16:00:00,6.63,4.32,8.78,25.5 -SENSOR_010,2023-01-16 16:30:00,6.09,2.83,6.12,27.41 -SENSOR_005,2023-01-16 17:00:00,7.51,3.88,8.49,22.5 -SENSOR_004,2023-01-16 17:30:00,7.03,1.73,8.28,19.96 -SENSOR_020,2023-01-16 18:00:00,7.1,3.87,8.12,21.67 -SENSOR_005,2023-01-16 18:30:00,7.2,3.13,8.29,15.96 -SENSOR_016,2023-01-16 19:00:00,7.49,3.58,6.05,22.09 -SENSOR_004,2023-01-16 19:30:00,7.3,2.11,10.65,22.1 -SENSOR_010,2023-01-16 20:00:00,7.38,3.66,7.04,21.68 -SENSOR_003,2023-01-16 20:30:00,7.21,3.41,9.1,19.57 -SENSOR_020,2023-01-16 21:00:00,7.28,3.1,6.29,18.3 -SENSOR_007,2023-01-16 21:30:00,6.53,4.01,7.95,25.14 -SENSOR_015,2023-01-16 22:00:00,7.07,2.45,8.22,21.78 -SENSOR_011,2023-01-16 22:30:00,6.38,2.88,10.13,14.95 -SENSOR_003,2023-01-16 23:00:00,6.46,4.58,6.26,26.26 -SENSOR_007,2023-01-16 23:30:00,7.32,5.02,8.09,21.87 -SENSOR_007,2023-01-17 00:00:00,7.22,3.06,9.8,21.86 -SENSOR_004,2023-01-17 00:30:00,7.21,4.12,8.2,24.19 -SENSOR_015,2023-01-17 01:00:00,6.97,4.62,8.57,19.58 -SENSOR_017,2023-01-17 01:30:00,7.33,2.82,6.5,25.76 -SENSOR_003,2023-01-17 02:00:00,7.18,4.02,8.5,17.77 -SENSOR_011,2023-01-17 02:30:00,7.42,3.04,10.38,21.21 -SENSOR_016,2023-01-17 03:00:00,6.58,2.06,7.77,21.67 -SENSOR_001,2023-01-17 03:30:00,6.53,1.62,8.18,21.68 -SENSOR_003,2023-01-17 04:00:00,6.5,2.42,8.16,27.58 -SENSOR_001,2023-01-17 04:30:00,7.84,1.67,7.03,19.95 -SENSOR_009,2023-01-17 05:00:00,7.16,1.69,8.15,24.37 -SENSOR_009,2023-01-17 05:30:00,6.64,5.77,10.28,25.8 -SENSOR_003,2023-01-17 06:00:00,7.46,2.81,11.92,22.52 -SENSOR_019,2023-01-17 06:30:00,7.59,3.22,7.38,23.78 -SENSOR_009,2023-01-17 07:00:00,7.04,1.8,9.43,25.81 -SENSOR_003,2023-01-17 07:30:00,6.15,4.26,5.04,26.45 -SENSOR_015,2023-01-17 08:00:00,6.17,3.82,10.71,17.64 -SENSOR_006,2023-01-17 08:30:00,6.6,3.07,8.1,22.47 -SENSOR_013,2023-01-17 09:00:00,6.28,1.96,10.81,25.65 -SENSOR_003,2023-01-17 09:30:00,7.61,2.21,9.56,19.55 -SENSOR_002,2023-01-17 10:00:00,5.58,0.61,10.76,20.39 -SENSOR_014,2023-01-17 10:30:00,6.57,2.79,6.23,21.06 -SENSOR_011,2023-01-17 11:00:00,7.45,1.63,9.22,19.76 -SENSOR_012,2023-01-17 11:30:00,6.75,2.93,4.22,24.29 -SENSOR_012,2023-01-17 12:00:00,7.65,2.67,7.63,24.06 -SENSOR_018,2023-01-17 12:30:00,7.37,0.79,7.54,23.91 -SENSOR_009,2023-01-17 13:00:00,7.16,1.87,8.32,26.36 -SENSOR_005,2023-01-17 13:30:00,6.78,3.36,7.36,20.61 -SENSOR_008,2023-01-17 14:00:00,6.63,3.79,6.46,19.08 -SENSOR_005,2023-01-17 14:30:00,7.91,3.23,8.95,18.05 -SENSOR_006,2023-01-17 15:00:00,7.09,4.04,7.02,18.93 -SENSOR_016,2023-01-17 15:30:00,6.94,2.95,8.7,17.92 -SENSOR_013,2023-01-17 16:00:00,7.56,2.92,7.87,23.12 -SENSOR_009,2023-01-17 16:30:00,6.07,1.75,8.74,20.74 -SENSOR_019,2023-01-17 17:00:00,6.7,3.84,4.62,21.03 -SENSOR_002,2023-01-17 17:30:00,7.09,3.62,9.14,21.23 -SENSOR_005,2023-01-17 18:00:00,7.0,0.94,10.71,24.66 -SENSOR_005,2023-01-17 18:30:00,6.63,2.89,11.11,15.09 -SENSOR_019,2023-01-17 19:00:00,7.07,6.81,7.01,19.35 -SENSOR_013,2023-01-17 19:30:00,6.79,0.7,8.78,19.38 -SENSOR_018,2023-01-17 20:00:00,7.18,2.52,8.52,21.66 -SENSOR_017,2023-01-17 20:30:00,7.15,0.85,9.17,22.31 -SENSOR_014,2023-01-17 21:00:00,7.59,2.95,8.02,18.78 -SENSOR_012,2023-01-17 21:30:00,7.04,2.92,6.29,21.71 -SENSOR_020,2023-01-17 22:00:00,7.67,2.99,12.08,21.53 -SENSOR_018,2023-01-17 22:30:00,5.77,3.81,9.65,25.02 -SENSOR_004,2023-01-17 23:00:00,6.37,4.84,9.44,18.03 -SENSOR_004,2023-01-17 23:30:00,7.56,2.74,8.47,17.99 -SENSOR_013,2023-01-18 00:00:00,7.36,4.64,10.03,16.82 -SENSOR_010,2023-01-18 00:30:00,7.53,2.31,7.1,21.82 -SENSOR_018,2023-01-18 01:00:00,6.96,1.75,8.3,20.99 -SENSOR_016,2023-01-18 01:30:00,6.44,3.15,6.83,21.77 -SENSOR_018,2023-01-18 02:00:00,7.44,4.46,5.98,22.71 -SENSOR_011,2023-01-18 02:30:00,6.64,3.65,9.48,22.9 -SENSOR_013,2023-01-18 03:00:00,6.75,3.31,7.77,21.43 -SENSOR_013,2023-01-18 03:30:00,7.25,1.76,7.89,19.88 -SENSOR_008,2023-01-18 04:00:00,6.82,2.66,6.12,23.17 -SENSOR_005,2023-01-18 04:30:00,7.4,3.72,8.34,27.09 -SENSOR_018,2023-01-18 05:00:00,7.27,2.41,7.62,23.94 -SENSOR_018,2023-01-18 05:30:00,7.6,4.26,9.43,25.5 -SENSOR_009,2023-01-18 06:00:00,8.27,3.14,8.25,22.27 -SENSOR_008,2023-01-18 06:30:00,6.79,0.98,6.74,22.25 -SENSOR_003,2023-01-18 07:00:00,6.82,4.01,7.64,21.37 -SENSOR_009,2023-01-18 07:30:00,7.15,4.09,6.07,22.02 -SENSOR_011,2023-01-18 08:00:00,7.49,2.69,7.99,24.35 -SENSOR_011,2023-01-18 08:30:00,7.09,1.54,7.63,22.32 -SENSOR_019,2023-01-18 09:00:00,6.64,2.01,8.13,21.79 -SENSOR_016,2023-01-18 09:30:00,7.44,1.19,7.32,19.16 -SENSOR_013,2023-01-18 10:00:00,6.8,3.79,8.62,27.29 -SENSOR_003,2023-01-18 10:30:00,8.03,3.97,9.33,22.61 -SENSOR_014,2023-01-18 11:00:00,7.65,2.73,7.92,20.83 -SENSOR_002,2023-01-18 11:30:00,6.73,2.23,8.8,23.26 -SENSOR_011,2023-01-18 12:00:00,6.89,4.58,10.06,17.99 -SENSOR_013,2023-01-18 12:30:00,6.9,3.03,8.23,22.32 -SENSOR_001,2023-01-18 13:00:00,7.02,3.87,9.29,18.38 -SENSOR_016,2023-01-18 13:30:00,7.78,3.36,6.57,22.76 -SENSOR_004,2023-01-18 14:00:00,7.4,3.75,5.18,22.12 -SENSOR_011,2023-01-18 14:30:00,7.46,3.21,9.75,25.41 -SENSOR_012,2023-01-18 15:00:00,6.92,4.35,6.93,21.82 -SENSOR_009,2023-01-18 15:30:00,7.66,3.09,8.95,22.56 -SENSOR_010,2023-01-18 16:00:00,6.75,1.19,5.61,21.1 -SENSOR_004,2023-01-18 16:30:00,6.85,1.85,7.66,21.05 -SENSOR_006,2023-01-18 17:00:00,7.49,2.08,8.54,23.24 -SENSOR_006,2023-01-18 17:30:00,7.35,3.45,6.79,23.42 -SENSOR_002,2023-01-18 18:00:00,7.7,2.62,8.24,24.58 -SENSOR_013,2023-01-18 18:30:00,7.43,2.69,11.34,20.39 -SENSOR_017,2023-01-18 19:00:00,7.79,3.09,7.51,17.41 -SENSOR_011,2023-01-18 19:30:00,6.81,3.39,7.25,25.01 -SENSOR_011,2023-01-18 20:00:00,7.21,4.09,8.88,21.55 -SENSOR_007,2023-01-18 20:30:00,5.87,3.54,8.58,21.09 -SENSOR_016,2023-01-18 21:00:00,7.48,0.38,10.16,23.19 -SENSOR_003,2023-01-18 21:30:00,6.12,4.4,10.62,23.2 -SENSOR_019,2023-01-18 22:00:00,7.65,3.17,6.01,17.31 -SENSOR_008,2023-01-18 22:30:00,7.15,2.96,5.83,25.64 -SENSOR_016,2023-01-18 23:00:00,6.93,1.84,10.96,21.71 -SENSOR_004,2023-01-18 23:30:00,7.06,3.72,7.84,22.5 -SENSOR_005,2023-01-19 00:00:00,6.77,2.18,6.61,25.83 -SENSOR_014,2023-01-19 00:30:00,7.11,2.97,7.54,19.49 -SENSOR_016,2023-01-19 01:00:00,7.08,2.84,9.64,21.71 -SENSOR_016,2023-01-19 01:30:00,7.24,4.75,9.2,16.2 -SENSOR_011,2023-01-19 02:00:00,6.49,3.37,7.18,20.57 -SENSOR_008,2023-01-19 02:30:00,7.71,3.22,6.68,20.95 -SENSOR_004,2023-01-19 03:00:00,5.98,1.42,6.26,22.06 -SENSOR_003,2023-01-19 03:30:00,7.68,2.24,9.36,16.38 -SENSOR_019,2023-01-19 04:00:00,7.58,2.94,7.67,21.77 -SENSOR_003,2023-01-19 04:30:00,6.99,2.52,7.26,20.78 -SENSOR_008,2023-01-19 05:00:00,7.23,2.83,7.14,26.17 -SENSOR_014,2023-01-19 05:30:00,6.68,0.79,7.82,23.17 -SENSOR_012,2023-01-19 06:00:00,6.63,1.81,6.07,24.59 -SENSOR_016,2023-01-19 06:30:00,7.76,2.34,8.24,26.07 -SENSOR_004,2023-01-19 07:00:00,6.9,3.84,6.98,21.7 -SENSOR_010,2023-01-19 07:30:00,8.12,4.26,6.43,27.34 -SENSOR_009,2023-01-19 08:00:00,7.04,3.15,8.25,27.68 -SENSOR_009,2023-01-19 08:30:00,7.27,4.22,11.47,19.93 -SENSOR_012,2023-01-19 09:00:00,7.14,3.32,8.98,20.48 -SENSOR_001,2023-01-19 09:30:00,7.7,2.53,7.08,21.96 -SENSOR_001,2023-01-19 10:00:00,7.13,1.94,5.97,25.34 -SENSOR_019,2023-01-19 10:30:00,7.88,4.31,7.54,16.38 -SENSOR_020,2023-01-19 11:00:00,6.65,4.24,9.42,15.42 -SENSOR_002,2023-01-19 11:30:00,7.48,3.43,9.56,18.5 -SENSOR_019,2023-01-19 12:00:00,7.27,2.54,9.01,23.7 -SENSOR_007,2023-01-19 12:30:00,6.68,2.08,4.66,17.14 -SENSOR_004,2023-01-19 13:00:00,7.13,4.49,5.79,24.65 -SENSOR_014,2023-01-19 13:30:00,6.68,3.62,8.11,17.55 -SENSOR_005,2023-01-19 14:00:00,6.06,2.89,8.66,16.38 -SENSOR_002,2023-01-19 14:30:00,6.81,2.18,8.19,17.38 -SENSOR_002,2023-01-19 15:00:00,6.96,2.01,7.27,24.22 -SENSOR_017,2023-01-19 15:30:00,6.9,6.34,8.75,20.41 -SENSOR_018,2023-01-19 16:00:00,7.34,2.44,5.11,22.48 -SENSOR_007,2023-01-19 16:30:00,7.41,2.75,6.24,26.08 -SENSOR_008,2023-01-19 17:00:00,7.1,3.97,9.7,18.08 -SENSOR_009,2023-01-19 17:30:00,7.22,1.92,9.32,29.21 -SENSOR_008,2023-01-19 18:00:00,6.46,2.14,6.37,19.1 -SENSOR_019,2023-01-19 18:30:00,7.19,0.98,9.49,22.22 -SENSOR_007,2023-01-19 19:00:00,7.6,3.47,7.44,16.01 -SENSOR_009,2023-01-19 19:30:00,6.68,1.35,7.68,22.82 -SENSOR_016,2023-01-19 20:00:00,7.06,2.3,8.89,25.94 -SENSOR_018,2023-01-19 20:30:00,7.12,1.97,6.72,20.52 -SENSOR_006,2023-01-19 21:00:00,6.92,1.96,6.53,22.13 -SENSOR_018,2023-01-19 21:30:00,7.15,2.56,7.1,19.37 -SENSOR_001,2023-01-19 22:00:00,7.9,2.47,8.88,27.0 -SENSOR_002,2023-01-19 22:30:00,7.94,3.76,4.61,22.96 -SENSOR_017,2023-01-19 23:00:00,6.65,3.56,7.52,19.51 -SENSOR_002,2023-01-19 23:30:00,7.59,3.38,8.24,15.28 -SENSOR_006,2023-01-20 00:00:00,7.11,2.65,4.65,21.04 -SENSOR_020,2023-01-20 00:30:00,7.68,2.51,6.34,21.08 -SENSOR_016,2023-01-20 01:00:00,7.1,2.42,8.55,23.16 -SENSOR_020,2023-01-20 01:30:00,7.06,2.6,5.14,22.49 -SENSOR_006,2023-01-20 02:00:00,6.23,4.33,10.18,20.17 -SENSOR_014,2023-01-20 02:30:00,7.12,2.25,6.95,21.83 -SENSOR_015,2023-01-20 03:00:00,6.46,2.98,6.73,17.86 -SENSOR_003,2023-01-20 03:30:00,7.26,3.36,8.71,20.16 -SENSOR_014,2023-01-20 04:00:00,6.71,3.18,7.85,20.8 -SENSOR_013,2023-01-20 04:30:00,7.36,1.16,7.76,23.18 -SENSOR_002,2023-01-20 05:00:00,6.43,2.17,7.44,18.56 -SENSOR_008,2023-01-20 05:30:00,7.02,1.61,8.46,25.58 -SENSOR_004,2023-01-20 06:00:00,6.28,1.93,5.77,21.69 -SENSOR_015,2023-01-20 06:30:00,6.89,4.09,9.08,21.02 -SENSOR_003,2023-01-20 07:00:00,6.89,2.81,6.83,21.61 -SENSOR_011,2023-01-20 07:30:00,6.84,3.27,6.84,21.89 -SENSOR_013,2023-01-20 08:00:00,7.26,4.01,8.56,24.52 -SENSOR_016,2023-01-20 08:30:00,7.33,4.0,9.07,21.9 -SENSOR_002,2023-01-20 09:00:00,7.16,1.67,6.94,16.98 -SENSOR_012,2023-01-20 09:30:00,6.55,4.07,8.53,22.39 -SENSOR_016,2023-01-20 10:00:00,8.03,3.18,7.42,22.07 -SENSOR_001,2023-01-20 10:30:00,6.8,2.61,7.85,19.32 -SENSOR_017,2023-01-20 11:00:00,8.38,3.18,7.92,22.14 -SENSOR_020,2023-01-20 11:30:00,7.0,3.6,8.19,18.57 -SENSOR_017,2023-01-20 12:00:00,7.34,2.42,6.31,27.27 -SENSOR_020,2023-01-20 12:30:00,7.05,3.06,4.4,18.92 -SENSOR_015,2023-01-20 13:00:00,7.44,2.99,8.42,24.43 -SENSOR_014,2023-01-20 13:30:00,6.49,4.41,7.41,26.03 -SENSOR_016,2023-01-20 14:00:00,6.74,1.65,6.0,20.5 -SENSOR_014,2023-01-20 14:30:00,7.79,2.48,10.6,13.73 -SENSOR_012,2023-01-20 15:00:00,6.1,4.57,6.96,21.7 -SENSOR_008,2023-01-20 15:30:00,8.24,2.61,6.38,22.68 -SENSOR_014,2023-01-20 16:00:00,7.3,5.63,6.97,22.15 -SENSOR_012,2023-01-20 16:30:00,7.7,2.07,10.47,21.49 -SENSOR_019,2023-01-20 17:00:00,7.33,2.91,7.26,29.47 -SENSOR_004,2023-01-20 17:30:00,7.42,0.27,4.26,20.57 -SENSOR_010,2023-01-20 18:00:00,7.57,1.39,9.9,19.12 -SENSOR_001,2023-01-20 18:30:00,7.11,1.31,8.24,16.7 -SENSOR_010,2023-01-20 19:00:00,7.45,1.62,9.98,20.47 -SENSOR_020,2023-01-20 19:30:00,6.6,3.89,4.68,18.37 -SENSOR_001,2023-01-20 20:00:00,6.77,2.73,9.87,20.29 -SENSOR_008,2023-01-20 20:30:00,6.81,1.75,7.45,26.54 -SENSOR_015,2023-01-20 21:00:00,7.22,2.55,9.42,18.39 -SENSOR_001,2023-01-20 21:30:00,7.1,2.06,7.88,22.9 -SENSOR_003,2023-01-20 22:00:00,7.53,2.44,5.71,25.22 -SENSOR_018,2023-01-20 22:30:00,6.54,3.0,9.3,19.6 -SENSOR_010,2023-01-20 23:00:00,7.01,3.22,6.59,20.75 -SENSOR_017,2023-01-20 23:30:00,6.28,3.4,8.22,21.8 -SENSOR_020,2023-01-21 00:00:00,6.2,2.15,8.75,23.7 -SENSOR_006,2023-01-21 00:30:00,6.03,3.9,7.63,20.69 -SENSOR_010,2023-01-21 01:00:00,7.35,4.12,6.11,19.77 -SENSOR_017,2023-01-21 01:30:00,6.65,3.69,5.58,20.33 -SENSOR_011,2023-01-21 02:00:00,6.72,1.98,8.25,25.83 -SENSOR_013,2023-01-21 02:30:00,6.75,3.05,10.76,16.24 -SENSOR_014,2023-01-21 03:00:00,6.34,2.71,10.41,27.47 -SENSOR_019,2023-01-21 03:30:00,7.04,2.01,8.08,24.7 -SENSOR_005,2023-01-21 04:00:00,6.77,3.79,8.37,23.63 -SENSOR_007,2023-01-21 04:30:00,6.84,4.03,8.91,22.33 -SENSOR_012,2023-01-21 05:00:00,6.8,2.56,6.9,22.3 -SENSOR_019,2023-01-21 05:30:00,6.55,4.38,7.87,21.73 -SENSOR_014,2023-01-21 06:00:00,6.82,2.43,5.55,18.24 -SENSOR_004,2023-01-21 06:30:00,7.05,2.08,11.62,23.94 -SENSOR_001,2023-01-21 07:00:00,7.04,2.26,8.14,23.81 -SENSOR_013,2023-01-21 07:30:00,7.24,3.91,6.45,21.95 -SENSOR_019,2023-01-21 08:00:00,6.22,4.07,8.62,22.2 -SENSOR_012,2023-01-21 08:30:00,6.71,3.33,8.6,15.33 -SENSOR_005,2023-01-21 09:00:00,7.16,2.51,5.44,21.03 -SENSOR_007,2023-01-21 09:30:00,6.97,1.7,8.67,26.72 -SENSOR_012,2023-01-21 10:00:00,7.46,3.65,8.99,17.92 -SENSOR_007,2023-01-21 10:30:00,6.91,2.98,5.6,27.18 -SENSOR_009,2023-01-21 11:00:00,7.21,1.72,9.02,22.08 -SENSOR_020,2023-01-21 11:30:00,7.13,4.7,9.57,16.42 -SENSOR_019,2023-01-21 12:00:00,6.87,2.43,7.55,19.64 -SENSOR_010,2023-01-21 12:30:00,7.31,1.76,4.48,22.69 -SENSOR_003,2023-01-21 13:00:00,7.25,2.03,8.61,20.95 -SENSOR_010,2023-01-21 13:30:00,6.77,2.47,8.1,24.5 -SENSOR_002,2023-01-21 14:00:00,6.65,3.87,9.69,22.92 -SENSOR_010,2023-01-21 14:30:00,6.49,1.78,8.49,25.85 -SENSOR_014,2023-01-21 15:00:00,7.07,3.37,7.88,22.78 -SENSOR_002,2023-01-21 15:30:00,6.44,3.23,9.44,26.2 -SENSOR_012,2023-01-21 16:00:00,7.03,3.51,6.97,19.53 -SENSOR_001,2023-01-21 16:30:00,7.47,2.61,7.01,24.82 -SENSOR_019,2023-01-21 17:00:00,6.82,3.65,5.79,25.62 -SENSOR_007,2023-01-21 17:30:00,6.61,3.12,10.25,14.41 -SENSOR_019,2023-01-21 18:00:00,6.89,2.62,6.44,20.94 -SENSOR_002,2023-01-21 18:30:00,6.73,3.36,7.92,21.93 -SENSOR_007,2023-01-21 19:00:00,6.68,1.55,5.19,18.06 -SENSOR_020,2023-01-21 19:30:00,6.86,2.95,9.49,20.56 +sensor_id,location,ph,turbidity,temperature +1,Lake A,7.2,0.9,25 +2,Lake B,8.7,1.1,23 +3,Lake C,,0.5,22 +4,Lake D,7.1,,24 +5,Lake E,6.4,0.8,20 diff --git a/requirements.txt b/requirements.txt index 1411a4a0b..a1e6c0bf8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -pandas \ No newline at end of file +pandas==2.2.3 diff --git a/src/__pycache__/clean_data.cpython-313.pyc b/src/__pycache__/clean_data.cpython-313.pyc new file mode 100644 index 000000000..6474d6964 Binary files /dev/null and b/src/__pycache__/clean_data.cpython-313.pyc differ diff --git a/src/__pycache__/evaluate.cpython-313.pyc b/src/__pycache__/evaluate.cpython-313.pyc new file mode 100644 index 000000000..4246585ec Binary files /dev/null and b/src/__pycache__/evaluate.cpython-313.pyc differ diff --git a/src/__pycache__/load_data.cpython-313.pyc b/src/__pycache__/load_data.cpython-313.pyc new file mode 100644 index 000000000..281f61003 Binary files /dev/null and b/src/__pycache__/load_data.cpython-313.pyc differ diff --git a/src/clean_data.py b/src/clean_data.py index da613640a..483b32dc4 100644 --- a/src/clean_data.py +++ b/src/clean_data.py @@ -1,7 +1,32 @@ -def clean_sensor_data(df: pd.DataFrame) -> pd.DataFrame: - """ - Clean sensor data by handling missing or invalid values. +import pandas as pd +def clean_data(df): + """ + Clean the DataFrame by handling missing values and invalid entries. + + Args: + df (pd.DataFrame): Input DataFrame with sensor data. + Returns: - pd.DataFrame: Cleaned data. + pd.DataFrame: Cleaned DataFrame. """ + # Create a copy to avoid modifying the original + df_clean = df.copy() + + # Convert pH and turbidity to numeric, coercing errors to NaN + df_clean['ph'] = pd.to_numeric(df_clean['ph'], errors='coerce') + df_clean['turbidity'] = pd.to_numeric(df_clean['turbidity'], errors='coerce') + + # Handle missing values: fill with mean for pH and turbidity + df_clean['ph'] = df_clean['ph'].fillna(df_clean['ph'].mean()) + df_clean['turbidity'] = df_clean['turbidity'].fillna(df_clean['turbidity'].mean()) + + # Ensure temperature is numeric and fill missing with mean + df_clean['temperature'] = pd.to_numeric(df_clean['temperature'], errors='coerce') + df_clean['temperature'] = df_clean['temperature'].fillna(df_clean['temperature'].mean()) + + # Remove invalid entries (e.g., negative pH or turbidity) + df_clean['ph'] = df_clean['ph'].clip(lower=0, upper=14) # pH range: 0–14 + df_clean['turbidity'] = df_clean['turbidity'].clip(lower=0) # Turbidity >= 0 + + return df_clean diff --git a/src/clean_data.py.bak b/src/clean_data.py.bak new file mode 100644 index 000000000..da613640a --- /dev/null +++ b/src/clean_data.py.bak @@ -0,0 +1,7 @@ +def clean_sensor_data(df: pd.DataFrame) -> pd.DataFrame: + """ + Clean sensor data by handling missing or invalid values. + + Returns: + pd.DataFrame: Cleaned data. + """ diff --git a/src/evaluate.py b/src/evaluate.py index 006256224..447d7f1e2 100644 --- a/src/evaluate.py +++ b/src/evaluate.py @@ -1,9 +1,102 @@ -class WaterQualityEvaluator: - def __init__(self, ph_range=(6.5, 8.5), turbidity_threshold=1.0): - self.ph_range = ph_range - self.turbidity_threshold = turbidity_threshold +import pandas as pd + +class SensorReading: + """Class to model a sensor reading and evaluate its safety.""" + + def __init__(self, sensor_id, location, ph, turbidity, temperature): + """ + Initialize a sensor reading. + + Args: + sensor_id (int): Sensor identifier. + location (str): Location of the sensor. + ph (float): pH value. + turbidity (float): Turbidity value in NTU. + temperature (float): Temperature in degrees Celsius. + """ + self.sensor_id = sensor_id + self.location = location + self.ph = ph + self.turbidity = turbidity + self.temperature = temperature + self.status = None + self.reason = None + + def evaluate_safety(self): + """ + Evaluate if the reading is safe based on pH and turbidity. + + Safe ranges: + - pH: 6.5–8.5 (inclusive) + - Turbidity: 0–1 NTU (inclusive) + + Returns: + tuple: (bool, str) indicating (is_safe, reason). + """ + is_safe = True + reasons = [] + + # Check pH + if pd.isna(self.ph): + is_safe = False + reasons.append("missing pH") + elif not (6.5 <= self.ph <= 8.5): + is_safe = False + reasons.append("pH too high" if self.ph > 8.5 else "pH too low") + + # Check turbidity + if pd.isna(self.turbidity): + is_safe = False + reasons.append("missing turbidity") + elif not (0 <= self.turbidity <= 1): + is_safe = False + reasons.append("turbidity too high") + + self.status = is_safe + self.reason = ", ".join(reasons) if reasons else "Safe" + + return self.status, self.reason - def is_safe(self, row: pd.Series) -> bool: +class WaterQualityEvaluator: + """Class to evaluate water quality for multiple sensor readings.""" + + def __init__(self): + self.readings = [] + + def add_reading(self, sensor_id, location, ph, turbidity, temperature): + """ + Add a sensor reading to the evaluator. + + Args: + sensor_id (int): Sensor identifier. + location (str): Location of the sensor. + ph (float): pH value. + turbidity (float): Turbidity value in NTU. + temperature (float): Temperature in degrees Celsius. + """ + reading = SensorReading(sensor_id, location, ph, turbidity, temperature) + self.readings.append(reading) + + def evaluate_all(self): + """ + Evaluate all sensor readings. + + Returns: + list: List of tuples (sensor_id, location, is_safe, reason). + """ + results = [] + for reading in self.readings: + is_safe, reason = reading.evaluate_safety() + results.append((reading.sensor_id, reading.location, is_safe, reason)) + return results + + def count_safety_status(self): """ - Determine if a row of water data is safe. + Count the number of safe and unsafe readings. + + Returns: + tuple: (safe_count, unsafe_count) """ + safe_count = sum(1 for reading in self.readings if reading.status) + unsafe_count = len(self.readings) - safe_count + return safe_count, unsafe_count \ No newline at end of file diff --git a/src/load_data.py b/src/load_data.py index c0126703a..bd845167c 100644 --- a/src/load_data.py +++ b/src/load_data.py @@ -1,10 +1,25 @@ -def load_csv(filepath: str) -> pd.DataFrame: - """ - Load sensor data from a CSV file. +import pandas as pd +def load_data(file_path): + """ + Load a CSV file into a pandas DataFrame. + Args: - filepath (str): Path to the CSV file. - + file_path (str): Path to the CSV file. + Returns: - pd.DataFrame: Loaded data as a pandas DataFrame. + pd.DataFrame: DataFrame containing the CSV data. + + Raises: + FileNotFoundError: If the CSV file is not found. + pd.errors.EmptyDataError: If the CSV file is empty. """ + try: + df = pd.read_csv(file_path) + return df + except FileNotFoundError: + print(f"Error: File '{file_path}' not found.") + raise + except pd.errors.EmptyDataError: + print(f"Error: File '{file_path}' is empty.") + raise \ No newline at end of file diff --git a/src/load_data.py.bak b/src/load_data.py.bak new file mode 100644 index 000000000..e625baa91 --- /dev/null +++ b/src/load_data.py.bak @@ -0,0 +1,20 @@ +import pandas as pd +def load_csv(filepath: str) -> pd.DataFrame: + """ + Load sensor data from a CSV file. + + Args: + filepath (str): Path to the CSV file. + + Returns: + pd.DataFrame: Loaded data as a pandas DataFrame. + """ +try: + df = pd.read_csv(file_path) + return df + except FileNotFoundError: + print(f"Error: File '{file_path}' not found.") + raise + except pd.errors.EmptyDataError: + print(f"Error: File '{file_path}' is empty.") + raise \ No newline at end of file diff --git a/src/main.py b/src/main.py index e69de29bb..649d1ad73 100644 --- a/src/main.py +++ b/src/main.py @@ -0,0 +1,68 @@ +import sys +import pandas as pd +from load_data import load_data +from clean_data import clean_data +from evaluate import WaterQualityEvaluator + +def main(location_filter=None): + """ + Run the water quality monitoring pipeline. + + Args: + location_filter (str, optional): Filter results by location name. + """ + # Load data + try: + df = load_data("../data/sensor_data.csv") + except FileNotFoundError as e: + print(f"Error: {e}") + return + except pd.errors.EmptyDataError as e: + print(f"Error: CSV file is empty - {e}") + return + except Exception as e: + print(f"Unexpected error: {e}") + return + + # Clean data + df_clean = clean_data(df) + + # Evaluate safety + evaluator = WaterQualityEvaluator() + for _, row in df_clean.iterrows(): + evaluator.add_reading( + row['sensor_id'], + row['location'], + row['ph'], + row['turbidity'], + row['temperature'] + ) + + results = evaluator.evaluate_all() + + # Filter by location if provided + if location_filter: + results = [(sid, loc, safe, reason) for sid, loc, safe, reason in results + if location_filter.lower() in loc.lower()] + + # Print results + for sensor_id, location, is_safe, reason in results: + status = "[Safe]" if is_safe else f"[Unsafe] ({reason})" + print(f"Sensor {sensor_id} at {location}: {status}") + + # Count safe vs unsafe (bonus) + safe_count, unsafe_count = evaluator.count_safety_status() + print(f"\nSummary: {safe_count} safe, {unsafe_count} unsafe") + + # Save results to CSV (bonus) + results_df = pd.DataFrame( + results, + columns=['sensor_id', 'location', 'is_safe', 'reason'] + ) + results_df.to_csv("../data/results.csv", index=False) + print("Results saved to data/results.csv") + +if __name__ == "__main__": + # Accept location name from terminal (bonus) + location = sys.argv[1] if len(sys.argv) > 1 else None + main(location) \ No newline at end of file diff --git a/src/main.py.bak b/src/main.py.bak new file mode 100644 index 000000000..19e8cbfe9 --- /dev/null +++ b/src/main.py.bak @@ -0,0 +1,68 @@ +import sys +import pandas as pd +from load_data import load_data +from clean_data import clean_data +from evaluate import WaterQualityEvaluator + +def main(location_filter=None): + """ + Run the water quality monitoring pipeline. + + Args: + location_filter (str, optional): Filter results by location name. + """ + # Load data + try: + df = load_data("data/sensor_data.csv") + except FileNotFoundError as e: + print(f"Error: {e}") + return + except pd.errors.EmptyDataError as e: + print(f"Error: CSV file is empty - {e}") + return + except Exception as e: + print(f"Unexpected error: {e}") + return + + # Clean data + df_clean = clean_data(df) + + # Evaluate safety + evaluator = WaterQualityEvaluator() + for _, row in df_clean.iterrows(): + evaluator.add_reading( + row['sensor_id'], + row['location'], + row['ph'], + row['turbidity'], + row['temperature'] + ) + + results = evaluator.evaluate_all() + + # Filter by location if provided + if location_filter: + results = [(sid, loc, safe, reason) for sid, loc, safe, reason in results + if location_filter.lower() in loc.lower()] + + # Print results + for sensor_id, location, is_safe, reason in results: + status = "✅ Safe" if is_safe else f"❌ Unsafe ({reason})" + print(f"Sensor {sensor_id} at {location}: {status}") + + # Count safe vs unsafe (bonus) + safe_count, unsafe_count = evaluator.count_safety_status() + print(f"\nSummary: {safe_count} safe, {unsafe_count} unsafe") + + # Save results to CSV (save) + results_df = pd.DataFrame( + results, + columns=['sensor_id', 'location', 'is_safe', 'reason'] + ) + results_df.to_csv("data/results.csv", index=False) + print("Results saved to data/results.csv") + +if __name__ == "__main__": + # Accept location name from terminal (bonus) + location = sys.argv[1] if len(sys.argv) > 1 else None + main(location) \ No newline at end of file diff --git a/src/test_clean.py b/src/test_clean.py new file mode 100644 index 000000000..8564af966 --- /dev/null +++ b/src/test_clean.py @@ -0,0 +1,6 @@ +from load_data import load_data +from clean_data import clean_data + +df = load_data("C:/Users/gold/water_quality_monitoring/data/sensor_data.csv") +df_clean = clean_data(df) +print(df_clean) diff --git a/src/test_evaluate.py b/src/test_evaluate.py new file mode 100644 index 000000000..e4548f136 --- /dev/null +++ b/src/test_evaluate.py @@ -0,0 +1,21 @@ +from load_data import load_data +from clean_data import clean_data +from evaluate import WaterQualityEvaluator + +df = load_data("../data/sensor_data.csv") +df_clean = clean_data(df) + +evaluator = WaterQualityEvaluator() +for _, row in df_clean.iterrows(): + evaluator.add_reading( + row['sensor_id'], + row['location'], + row['ph'], + row['turbidity'], + row['temperature'] + ) + +results = evaluator.evaluate_all() +for sensor_id, location, is_safe, reason in results: + status = "Safe" if is_safe else f"Unsafe ({reason})" + print(f"Sensor {sensor_id} at {location}: {status}") \ No newline at end of file diff --git a/src/test_load.py b/src/test_load.py new file mode 100644 index 000000000..d38102aa5 --- /dev/null +++ b/src/test_load.py @@ -0,0 +1,4 @@ +from load_data import load_data + +df = load_data("C:/Users/gold/water_quality_monitoring/data/sensor_data.csv") +print(df)