diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..b0ba7a0
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..dc9ea49
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..066038e
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,217 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "associatedIndex": 6
+}
+
+
+
+
+
+ {
+ "keyToString": {
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "WebServerToolWindowFactoryState": "false",
+ "last_opened_file_path": "C:/Users/umroot/PycharmProjects/coniston",
+ "node.js.detected.package.eslint": "true",
+ "node.js.detected.package.tslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)",
+ "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable",
+ "vue.rearranger.settings.migration": "true"
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1720361595188
+
+
+ 1720361595188
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/06-25_07-07.csv b/06-25_07-07.csv
index 67d79f2..f1dcaaa 100644
--- a/06-25_07-07.csv
+++ b/06-25_07-07.csv
@@ -3434,3 +3434,306 @@ Date/Time (UTC),Date/Time (--4:0:0),Sewer Water In,Sewer Water Out,Return Air,Su
7/7/2024 11:42,7/7/2024 7:42,63.66987,63.713048,70.103429,70.103429
7/7/2024 11:47,7/7/2024 7:47,63.626692,64.015296,69.973894,70.31932
7/7/2024 11:52,7/7/2024 7:52,63.713048,64.360722,70.103429,69.973894
+7/7/2024 11:54,7/7/2024 7:54,63.410801,64.490257,70.017072,69.930716
+7/7/2024 11:59,7/7/2024 7:59,63.540335,64.058474,70.146607,70.017072
+7/7/2024 12:04,7/7/2024 8:04,63.453979,64.274366,70.189785,69.973894
+7/7/2024 12:09,7/7/2024 8:09,63.799405,64.619792,69.930716,70.017072
+7/7/2024 12:14,7/7/2024 8:14,63.626692,64.188009,70.146607,69.973894
+7/7/2024 12:19,7/7/2024 8:19,64.015296,64.274366,70.103429,70.017072
+7/7/2024 12:24,7/7/2024 8:24,63.842583,64.4039,70.017072,70.146607
+7/7/2024 12:29,7/7/2024 8:29,64.058474,64.447079,69.973894,70.103429
+7/7/2024 12:34,7/7/2024 8:34,64.101653,65.051574,70.017072,69.930716
+7/7/2024 12:39,7/7/2024 8:39,64.360722,64.749326,69.973894,69.887538
+7/7/2024 12:44,7/7/2024 8:44,64.231187,64.619792,69.930716,69.844359
+7/7/2024 12:49,7/7/2024 8:49,64.231187,64.835683,69.973894,69.844359
+7/7/2024 12:54,7/7/2024 8:54,64.4039,64.965218,69.887538,69.844359
+7/7/2024 12:59,7/7/2024 8:59,64.619792,64.922039,70.060251,70.146607
+7/7/2024 13:04,7/7/2024 9:04,64.792505,64.965218,70.146607,70.146607
+7/7/2024 13:09,7/7/2024 9:09,64.878861,65.181109,70.017072,70.017072
+7/7/2024 13:14,7/7/2024 9:14,65.008396,65.224287,69.930716,70.146607
+7/7/2024 13:19,7/7/2024 9:19,64.835683,65.310643,69.930716,70.017072
+7/7/2024 13:24,7/7/2024 9:24,65.181109,64.835683,69.973894,69.844359
+7/7/2024 13:29,7/7/2024 9:29,65.051574,65.181109,70.146607,70.017072
+7/7/2024 13:34,7/7/2024 9:34,65.051574,65.526535,70.146607,70.189785
+7/7/2024 13:39,7/7/2024 9:39,64.965218,65.397,70.060251,70.189785
+7/7/2024 13:44,7/7/2024 9:44,65.008396,65.353822,69.973894,70.103429
+7/7/2024 13:49,7/7/2024 9:49,64.835683,65.181109,70.017072,70.103429
+7/7/2024 13:54,7/7/2024 9:54,64.878861,65.353822,70.060251,70.103429
+7/7/2024 13:59,7/7/2024 9:59,64.749326,64.835683,70.31932,70.448855
+7/7/2024 14:04,7/7/2024 10:04,64.835683,64.878861,70.060251,70.232964
+7/7/2024 14:09,7/7/2024 10:09,65.051574,65.051574,70.405677,70.448855
+7/7/2024 14:14,7/7/2024 10:14,65.051574,64.965218,70.492033,70.448855
+7/7/2024 14:19,7/7/2024 10:19,64.922039,65.051574,70.276142,70.448855
+7/7/2024 14:24,7/7/2024 10:24,64.922039,64.922039,70.448855,70.535211
+7/7/2024 14:29,7/7/2024 10:29,64.965218,64.922039,70.492033,70.362498
+7/7/2024 14:34,7/7/2024 10:34,65.008396,64.835683,70.31932,70.362498
+7/7/2024 14:39,7/7/2024 10:39,65.051574,65.181109,70.492033,70.448855
+7/7/2024 14:44,7/7/2024 10:44,64.706148,65.526535,70.535211,70.448855
+7/7/2024 14:49,7/7/2024 10:49,64.922039,65.181109,70.189785,70.492033
+7/7/2024 14:54,7/7/2024 10:54,65.008396,65.051574,70.448855,70.664746
+7/7/2024 14:59,7/7/2024 10:59,65.008396,65.137931,70.492033,70.621568
+7/7/2024 15:04,7/7/2024 11:04,64.965218,65.224287,70.535211,70.621568
+7/7/2024 15:09,7/7/2024 11:09,65.008396,65.397,70.492033,70.837459
+7/7/2024 15:14,7/7/2024 11:14,65.137931,65.828782,70.448855,70.492033
+7/7/2024 15:19,7/7/2024 11:19,65.094752,65.483356,70.362498,70.621568
+7/7/2024 15:24,7/7/2024 11:24,65.137931,65.267465,70.405677,70.535211
+7/7/2024 15:29,7/7/2024 11:29,64.965218,65.310643,70.448855,70.57839
+7/7/2024 15:34,7/7/2024 11:34,65.051574,65.094752,70.405677,70.621568
+7/7/2024 15:39,7/7/2024 11:39,64.922039,65.656069,70.31932,70.448855
+7/7/2024 15:44,7/7/2024 11:44,65.051574,65.224287,70.405677,70.621568
+7/7/2024 15:49,7/7/2024 11:49,65.094752,65.699248,70.362498,70.664746
+7/7/2024 15:54,7/7/2024 11:54,65.094752,65.397,70.448855,70.57839
+7/7/2024 15:59,7/7/2024 11:59,64.965218,65.051574,70.405677,70.535211
+7/7/2024 16:04,7/7/2024 12:04,65.008396,65.353822,70.492033,70.535211
+7/7/2024 16:09,7/7/2024 12:09,64.965218,65.871961,70.448855,70.621568
+7/7/2024 16:14,7/7/2024 12:14,64.922039,65.440178,70.448855,70.621568
+7/7/2024 16:19,7/7/2024 12:19,64.878861,65.267465,70.492033,70.535211
+7/7/2024 16:24,7/7/2024 12:24,64.878861,65.181109,70.405677,70.57839
+7/7/2024 16:29,7/7/2024 12:29,65.094752,65.181109,70.448855,70.751102
+7/7/2024 16:34,7/7/2024 12:34,65.094752,65.310643,70.405677,70.57839
+7/7/2024 16:39,7/7/2024 12:39,65.137931,65.569713,70.405677,70.664746
+7/7/2024 16:44,7/7/2024 12:44,65.267465,65.569713,70.57839,70.492033
+7/7/2024 16:49,7/7/2024 12:49,65.483356,65.915139,70.621568,70.621568
+7/7/2024 16:54,7/7/2024 12:54,65.526535,65.785604,70.621568,70.794281
+7/7/2024 16:59,7/7/2024 12:59,65.656069,65.483356,70.621568,70.966994
+7/7/2024 17:04,7/7/2024 13:04,65.440178,65.612891,70.535211,70.664746
+7/7/2024 17:09,7/7/2024 13:09,65.353822,65.526535,70.621568,70.837459
+7/7/2024 17:14,7/7/2024 13:14,65.397,65.828782,70.535211,70.664746
+7/7/2024 17:19,7/7/2024 13:19,65.353822,65.612891,70.535211,70.751102
+7/7/2024 17:24,7/7/2024 13:24,65.181109,65.440178,70.621568,70.837459
+7/7/2024 17:29,7/7/2024 13:29,65.137931,65.008396,70.751102,70.837459
+7/7/2024 17:34,7/7/2024 13:34,65.008396,65.612891,70.621568,70.880637
+7/7/2024 17:39,7/7/2024 13:39,65.094752,65.483356,70.57839,70.880637
+7/7/2024 17:44,7/7/2024 13:44,65.137931,65.181109,70.880637,71.010172
+7/7/2024 17:49,7/7/2024 13:49,65.008396,65.353822,70.535211,70.880637
+7/7/2024 17:54,7/7/2024 13:54,65.051574,65.267465,70.751102,70.837459
+7/7/2024 17:59,7/7/2024 13:59,64.792505,65.397,70.837459,71.010172
+7/7/2024 18:04,7/7/2024 14:04,64.965218,65.569713,70.621568,70.880637
+7/7/2024 18:09,7/7/2024 14:09,65.051574,64.792505,70.794281,71.182885
+7/7/2024 18:14,7/7/2024 14:14,64.619792,65.181109,70.707924,70.880637
+7/7/2024 18:19,7/7/2024 14:19,64.922039,65.051574,70.794281,71.096528
+7/7/2024 18:24,7/7/2024 14:24,64.66297,65.224287,70.880637,71.182885
+7/7/2024 18:29,7/7/2024 14:29,64.619792,65.267465,70.751102,70.966994
+7/7/2024 18:34,7/7/2024 14:34,64.706148,65.008396,70.837459,70.837459
+7/7/2024 18:39,7/7/2024 14:39,64.706148,64.878861,70.751102,70.880637
+7/7/2024 18:44,7/7/2024 14:44,64.533435,64.922039,70.794281,70.707924
+7/7/2024 18:49,7/7/2024 14:49,64.533435,65.094752,70.880637,70.880637
+7/7/2024 18:54,7/7/2024 14:54,64.490257,64.878861,70.664746,70.966994
+7/7/2024 18:59,7/7/2024 14:59,64.490257,65.051574,70.923815,70.880637
+7/7/2024 19:04,7/7/2024 15:04,64.533435,65.267465,70.880637,70.923815
+7/7/2024 19:09,7/7/2024 15:09,64.447079,64.965218,70.837459,71.010172
+7/7/2024 19:14,7/7/2024 15:14,64.490257,64.66297,70.880637,71.010172
+7/7/2024 19:19,7/7/2024 15:19,64.533435,64.66297,70.751102,71.096528
+7/7/2024 19:24,7/7/2024 15:24,64.4039,65.008396,71.010172,71.31242
+7/7/2024 19:29,7/7/2024 15:29,64.576613,64.706148,70.966994,71.096528
+7/7/2024 19:34,7/7/2024 15:34,64.447079,65.267465,70.923815,71.182885
+7/7/2024 19:39,7/7/2024 15:39,64.360722,65.397,71.096528,71.096528
+7/7/2024 19:44,7/7/2024 15:44,64.360722,64.965218,70.923815,71.139707
+7/7/2024 19:49,7/7/2024 15:49,64.360722,64.792505,70.880637,71.05335
+7/7/2024 19:54,7/7/2024 15:54,64.490257,64.619792,70.880637,71.010172
+7/7/2024 19:59,7/7/2024 15:59,64.447079,65.137931,70.923815,71.096528
+7/7/2024 20:04,7/7/2024 16:04,64.490257,65.008396,70.751102,71.182885
+7/7/2024 20:09,7/7/2024 16:09,64.4039,64.4039,70.837459,71.096528
+7/7/2024 20:14,7/7/2024 16:14,64.360722,64.706148,71.096528,71.269241
+7/7/2024 20:19,7/7/2024 16:19,64.490257,64.965218,70.966994,71.139707
+7/7/2024 20:24,7/7/2024 16:24,64.447079,64.619792,70.966994,71.269241
+7/7/2024 20:29,7/7/2024 16:29,64.360722,64.965218,71.05335,71.139707
+7/7/2024 20:34,7/7/2024 16:34,64.360722,64.447079,70.880637,71.226063
+7/7/2024 20:39,7/7/2024 16:39,64.360722,64.749326,71.010172,71.05335
+7/7/2024 20:44,7/7/2024 16:44,64.490257,64.878861,70.923815,71.182885
+7/7/2024 20:49,7/7/2024 16:49,64.231187,64.965218,71.010172,71.139707
+7/7/2024 20:54,7/7/2024 16:54,64.144831,64.792505,71.010172,71.31242
+7/7/2024 20:59,7/7/2024 16:59,64.447079,64.490257,70.837459,71.182885
+7/7/2024 21:04,7/7/2024 17:04,64.490257,65.094752,71.010172,71.096528
+7/7/2024 21:09,7/7/2024 17:09,64.4039,65.008396,71.010172,71.139707
+7/7/2024 21:14,7/7/2024 17:14,64.66297,64.835683,71.05335,71.441954
+7/7/2024 21:19,7/7/2024 17:19,64.490257,65.094752,71.139707,71.269241
+7/7/2024 21:24,7/7/2024 17:24,64.274366,64.965218,70.966994,71.226063
+7/7/2024 21:29,7/7/2024 17:29,64.490257,64.533435,71.010172,71.139707
+7/7/2024 21:34,7/7/2024 17:34,64.447079,65.094752,71.010172,71.269241
+7/7/2024 21:39,7/7/2024 17:39,64.4039,65.181109,70.923815,71.182885
+7/7/2024 21:44,7/7/2024 17:44,64.533435,65.224287,71.182885,71.226063
+7/7/2024 21:49,7/7/2024 17:49,64.66297,65.094752,70.880637,71.139707
+7/7/2024 21:54,7/7/2024 17:54,64.490257,64.878861,71.05335,71.269241
+7/7/2024 21:59,7/7/2024 17:59,64.66297,65.051574,70.966994,71.182885
+7/7/2024 22:04,7/7/2024 18:04,64.706148,65.137931,70.923815,71.096528
+7/7/2024 22:09,7/7/2024 18:09,64.576613,64.792505,70.837459,71.096528
+7/7/2024 22:14,7/7/2024 18:14,64.66297,65.483356,70.880637,71.139707
+7/7/2024 22:19,7/7/2024 18:19,64.533435,65.008396,71.31242,71.355598
+7/7/2024 22:24,7/7/2024 18:24,64.533435,65.094752,71.096528,71.355598
+7/7/2024 22:29,7/7/2024 18:29,64.490257,65.181109,70.880637,71.096528
+7/7/2024 22:34,7/7/2024 18:34,64.447079,65.051574,70.837459,71.139707
+7/7/2024 22:39,7/7/2024 18:39,64.533435,65.094752,70.923815,71.226063
+7/7/2024 22:44,7/7/2024 18:44,64.533435,64.965218,70.966994,71.182885
+7/7/2024 22:49,7/7/2024 18:49,64.4039,64.792505,71.05335,71.139707
+7/7/2024 22:54,7/7/2024 18:54,64.835683,64.749326,70.966994,71.226063
+7/7/2024 22:59,7/7/2024 18:59,64.360722,64.965218,71.096528,71.657846
+7/7/2024 23:04,7/7/2024 19:04,64.360722,64.922039,71.182885,71.614667
+7/7/2024 23:09,7/7/2024 19:09,64.4039,65.267465,71.096528,71.05335
+7/7/2024 23:14,7/7/2024 19:14,64.576613,64.965218,71.010172,71.139707
+7/7/2024 23:19,7/7/2024 19:19,64.490257,64.922039,70.923815,71.139707
+7/7/2024 23:24,7/7/2024 19:24,64.576613,65.094752,71.010172,71.182885
+7/7/2024 23:29,7/7/2024 19:29,64.792505,65.051574,70.923815,71.269241
+7/7/2024 23:34,7/7/2024 19:34,65.008396,65.008396,70.794281,71.139707
+7/7/2024 23:39,7/7/2024 19:39,64.835683,65.181109,71.010172,71.139707
+7/7/2024 23:44,7/7/2024 19:44,64.965218,65.137931,71.226063,71.441954
+7/7/2024 23:49,7/7/2024 19:49,65.008396,65.224287,70.966994,71.05335
+7/7/2024 23:54,7/7/2024 19:54,64.835683,65.094752,71.096528,71.31242
+7/7/2024 23:59,7/7/2024 19:59,65.094752,65.569713,71.05335,71.355598
+7/8/2024 0:04,7/7/2024 20:04,65.051574,65.353822,71.05335,71.269241
+7/8/2024 0:09,7/7/2024 20:09,65.267465,65.569713,71.05335,71.441954
+7/8/2024 0:14,7/7/2024 20:14,65.008396,65.267465,71.139707,71.096528
+7/8/2024 0:19,7/7/2024 20:19,65.051574,65.526535,71.182885,71.269241
+7/8/2024 0:24,7/7/2024 20:24,65.137931,65.267465,71.139707,71.139707
+7/8/2024 0:29,7/7/2024 20:29,65.137931,65.656069,71.139707,71.441954
+7/8/2024 0:34,7/7/2024 20:34,65.224287,65.699248,71.05335,71.226063
+7/8/2024 0:39,7/7/2024 20:39,65.267465,65.569713,71.010172,71.269241
+7/8/2024 0:44,7/7/2024 20:44,65.008396,65.526535,71.010172,71.096528
+7/8/2024 0:49,7/7/2024 20:49,65.224287,65.742426,70.923815,71.226063
+7/8/2024 0:54,7/7/2024 20:54,65.267465,65.397,70.880637,71.096528
+7/8/2024 0:59,7/7/2024 20:59,65.224287,65.526535,71.139707,71.05335
+7/8/2024 1:04,7/7/2024 21:04,65.440178,65.656069,71.05335,71.05335
+7/8/2024 1:09,7/7/2024 21:09,65.612891,65.612891,70.923815,71.05335
+7/8/2024 1:14,7/7/2024 21:14,65.008396,65.569713,71.010172,71.05335
+7/8/2024 1:19,7/7/2024 21:19,65.569713,65.483356,70.966994,71.05335
+7/8/2024 1:24,7/7/2024 21:24,65.397,65.742426,70.880637,71.139707
+7/8/2024 1:29,7/7/2024 21:29,65.310643,65.526535,70.966994,71.182885
+7/8/2024 1:34,7/7/2024 21:34,65.310643,65.526535,70.794281,70.966994
+7/8/2024 1:39,7/7/2024 21:39,65.310643,65.267465,71.05335,71.05335
+7/8/2024 1:44,7/7/2024 21:44,65.267465,64.965218,70.966994,71.269241
+7/8/2024 1:49,7/7/2024 21:49,65.224287,65.267465,71.05335,71.096528
+7/8/2024 1:54,7/7/2024 21:54,65.310643,65.785604,70.966994,71.096528
+7/8/2024 1:59,7/7/2024 21:59,65.224287,65.699248,71.355598,71.355598
+7/8/2024 2:04,7/7/2024 22:04,65.353822,65.699248,70.966994,71.139707
+7/8/2024 2:09,7/7/2024 22:09,65.224287,65.440178,71.096528,71.182885
+7/8/2024 2:14,7/7/2024 22:14,65.051574,65.871961,70.923815,71.182885
+7/8/2024 2:19,7/7/2024 22:19,65.310643,65.915139,70.966994,71.355598
+7/8/2024 2:24,7/7/2024 22:24,65.440178,65.526535,71.096528,71.269241
+7/8/2024 2:29,7/7/2024 22:29,65.094752,65.871961,70.966994,71.139707
+7/8/2024 2:34,7/7/2024 22:34,65.224287,65.310643,71.05335,71.269241
+7/8/2024 2:39,7/7/2024 22:39,65.008396,65.440178,71.139707,71.441954
+7/8/2024 2:44,7/7/2024 22:44,65.310643,65.785604,71.139707,71.528311
+7/8/2024 2:49,7/7/2024 22:49,65.224287,65.483356,71.010172,71.441954
+7/8/2024 2:54,7/7/2024 22:54,65.353822,65.483356,71.096528,71.571489
+7/8/2024 2:59,7/7/2024 22:59,65.094752,65.310643,71.269241,71.485133
+7/8/2024 3:04,7/7/2024 23:04,65.137931,65.181109,71.182885,71.096528
+7/8/2024 3:09,7/7/2024 23:09,65.008396,65.181109,71.355598,71.139707
+7/8/2024 3:14,7/7/2024 23:14,64.835683,65.353822,71.182885,71.226063
+7/8/2024 3:19,7/7/2024 23:19,64.835683,65.267465,71.05335,71.05335
+7/8/2024 3:24,7/7/2024 23:24,65.224287,65.310643,71.226063,71.355598
+7/8/2024 3:29,7/7/2024 23:29,65.008396,65.181109,71.05335,71.139707
+7/8/2024 3:34,7/7/2024 23:34,64.706148,65.137931,71.182885,71.226063
+7/8/2024 3:39,7/7/2024 23:39,64.922039,64.965218,71.182885,71.139707
+7/8/2024 3:44,7/7/2024 23:44,64.922039,65.397,71.182885,71.226063
+7/8/2024 3:49,7/7/2024 23:49,64.965218,65.526535,71.226063,71.226063
+7/8/2024 3:54,7/7/2024 23:54,65.008396,65.224287,71.226063,71.226063
+7/8/2024 3:59,7/7/2024 23:59,64.749326,65.310643,71.139707,71.441954
+7/8/2024 4:04,7/8/2024 0:04,64.835683,64.922039,71.182885,71.31242
+7/8/2024 4:09,7/8/2024 0:09,64.706148,64.965218,71.269241,71.139707
+7/8/2024 4:14,7/8/2024 0:14,64.706148,64.922039,71.096528,71.096528
+7/8/2024 4:19,7/8/2024 0:19,64.490257,64.965218,71.010172,71.05335
+7/8/2024 4:24,7/8/2024 0:24,64.447079,64.835683,71.010172,71.096528
+7/8/2024 4:29,7/8/2024 0:29,64.66297,64.878861,71.096528,71.096528
+7/8/2024 4:34,7/8/2024 0:34,64.360722,64.878861,71.096528,71.182885
+7/8/2024 4:39,7/8/2024 0:39,64.447079,64.922039,71.05335,71.226063
+7/8/2024 4:44,7/8/2024 0:44,64.360722,64.922039,71.096528,71.182885
+7/8/2024 4:49,7/8/2024 0:49,64.533435,64.706148,71.096528,71.139707
+7/8/2024 4:54,7/8/2024 0:54,64.490257,64.835683,70.966994,71.139707
+7/8/2024 4:59,7/8/2024 0:59,64.706148,64.965218,71.010172,71.139707
+7/8/2024 5:04,7/8/2024 1:04,64.706148,64.965218,71.226063,71.05335
+7/8/2024 5:09,7/8/2024 1:09,64.317544,64.706148,71.096528,71.05335
+7/8/2024 5:14,7/8/2024 1:14,64.274366,64.533435,71.05335,71.182885
+7/8/2024 5:19,7/8/2024 1:19,64.447079,64.576613,71.139707,71.182885
+7/8/2024 5:24,7/8/2024 1:24,64.619792,64.749326,71.226063,71.269241
+7/8/2024 5:29,7/8/2024 1:29,64.533435,64.749326,71.139707,71.139707
+7/8/2024 5:34,7/8/2024 1:34,64.447079,64.619792,70.966994,70.794281
+7/8/2024 5:39,7/8/2024 1:39,63.885761,64.576613,70.966994,70.966994
+7/8/2024 5:44,7/8/2024 1:44,63.92894,64.533435,71.139707,71.139707
+7/8/2024 5:49,7/8/2024 1:49,64.188009,64.576613,70.794281,70.794281
+7/8/2024 5:54,7/8/2024 1:54,64.015296,64.835683,70.880637,70.966994
+7/8/2024 5:59,7/8/2024 1:59,64.274366,64.576613,70.707924,70.923815
+7/8/2024 6:04,7/8/2024 2:04,63.92894,64.533435,70.923815,70.923815
+7/8/2024 6:09,7/8/2024 2:09,64.015296,64.66297,71.05335,71.010172
+7/8/2024 6:14,7/8/2024 2:14,63.972118,64.144831,70.966994,70.966994
+7/8/2024 6:19,7/8/2024 2:19,63.92894,64.274366,70.923815,71.05335
+7/8/2024 6:24,7/8/2024 2:24,63.972118,63.92894,71.05335,71.05335
+7/8/2024 6:29,7/8/2024 2:29,64.058474,64.4039,71.05335,71.010172
+7/8/2024 6:34,7/8/2024 2:34,63.972118,64.101653,71.010172,71.010172
+7/8/2024 6:39,7/8/2024 2:39,63.92894,64.66297,71.010172,71.139707
+7/8/2024 6:44,7/8/2024 2:44,63.842583,64.188009,71.010172,70.794281
+7/8/2024 6:49,7/8/2024 2:49,63.842583,64.015296,71.05335,71.05335
+7/8/2024 6:54,7/8/2024 2:54,64.015296,63.92894,70.664746,70.707924
+7/8/2024 6:59,7/8/2024 2:59,63.842583,63.92894,70.664746,70.664746
+7/8/2024 7:04,7/8/2024 3:04,63.92894,64.274366,70.966994,70.923815
+7/8/2024 7:09,7/8/2024 3:09,63.92894,64.360722,71.010172,71.010172
+7/8/2024 7:14,7/8/2024 3:14,63.92894,64.231187,70.923815,70.57839
+7/8/2024 7:19,7/8/2024 3:19,63.972118,64.274366,70.664746,70.751102
+7/8/2024 7:24,7/8/2024 3:24,63.972118,64.274366,70.57839,70.664746
+7/8/2024 7:29,7/8/2024 3:29,63.972118,64.447079,70.751102,70.621568
+7/8/2024 7:34,7/8/2024 3:34,63.885761,64.274366,70.751102,70.664746
+7/8/2024 7:39,7/8/2024 3:39,63.92894,64.447079,70.664746,70.664746
+7/8/2024 7:44,7/8/2024 3:44,64.015296,64.360722,70.664746,70.751102
+7/8/2024 7:49,7/8/2024 3:49,63.842583,63.972118,70.664746,70.794281
+7/8/2024 7:54,7/8/2024 3:54,63.583514,64.360722,70.751102,70.664746
+7/8/2024 7:59,7/8/2024 3:59,64.101653,63.972118,70.621568,70.751102
+7/8/2024 8:04,7/8/2024 4:04,64.058474,64.274366,70.751102,70.707924
+7/8/2024 8:09,7/8/2024 4:09,63.713048,64.015296,70.751102,70.837459
+7/8/2024 8:14,7/8/2024 4:14,63.756227,64.274366,70.794281,70.707924
+7/8/2024 8:19,7/8/2024 4:19,63.799405,64.317544,70.664746,70.751102
+7/8/2024 8:24,7/8/2024 4:24,63.540335,64.188009,70.621568,70.794281
+7/8/2024 8:29,7/8/2024 4:29,63.713048,64.144831,70.923815,70.664746
+7/8/2024 8:34,7/8/2024 4:34,63.626692,64.360722,70.751102,70.664746
+7/8/2024 8:39,7/8/2024 4:39,63.66987,64.144831,70.664746,70.880637
+7/8/2024 8:44,7/8/2024 4:44,63.713048,63.92894,70.751102,70.794281
+7/8/2024 8:49,7/8/2024 4:49,63.583514,63.92894,70.751102,70.794281
+7/8/2024 8:54,7/8/2024 4:54,63.66987,64.360722,70.751102,70.751102
+7/8/2024 8:59,7/8/2024 4:59,63.583514,64.317544,70.664746,70.837459
+7/8/2024 9:04,7/8/2024 5:04,63.799405,64.015296,70.707924,70.707924
+7/8/2024 9:09,7/8/2024 5:09,63.756227,63.972118,70.707924,70.794281
+7/8/2024 9:14,7/8/2024 5:14,63.66987,64.058474,70.664746,70.794281
+7/8/2024 9:19,7/8/2024 5:19,63.583514,63.92894,70.707924,70.535211
+7/8/2024 9:24,7/8/2024 5:24,63.713048,64.317544,70.707924,70.664746
+7/8/2024 9:29,7/8/2024 5:29,63.583514,64.188009,70.664746,70.751102
+7/8/2024 9:34,7/8/2024 5:34,63.713048,64.144831,70.664746,70.794281
+7/8/2024 9:39,7/8/2024 5:39,63.799405,64.058474,70.837459,70.794281
+7/8/2024 9:44,7/8/2024 5:44,63.540335,63.972118,70.794281,70.794281
+7/8/2024 9:49,7/8/2024 5:49,63.583514,63.842583,70.621568,70.57839
+7/8/2024 9:54,7/8/2024 5:54,63.756227,63.885761,70.664746,70.794281
+7/8/2024 9:59,7/8/2024 5:59,63.756227,63.92894,70.57839,70.448855
+7/8/2024 10:04,7/8/2024 6:04,63.799405,64.360722,70.707924,70.837459
+7/8/2024 10:09,7/8/2024 6:09,63.92894,64.058474,70.664746,70.707924
+7/8/2024 10:14,7/8/2024 6:14,63.885761,64.188009,70.621568,70.535211
+7/8/2024 10:19,7/8/2024 6:19,63.92894,64.188009,70.621568,70.751102
+7/8/2024 10:24,7/8/2024 6:24,64.058474,64.835683,70.707924,70.621568
+7/8/2024 10:29,7/8/2024 6:29,63.92894,64.447079,70.707924,70.621568
+7/8/2024 10:34,7/8/2024 6:34,63.92894,64.4039,70.621568,70.707924
+7/8/2024 10:39,7/8/2024 6:39,63.885761,64.490257,70.57839,70.621568
+7/8/2024 10:44,7/8/2024 6:44,63.799405,63.799405,70.621568,70.707924
+7/8/2024 10:49,7/8/2024 6:49,63.799405,64.360722,70.751102,70.794281
+7/8/2024 10:54,7/8/2024 6:54,64.015296,64.274366,70.535211,70.621568
+7/8/2024 10:59,7/8/2024 6:59,64.058474,64.188009,70.621568,70.621568
+7/8/2024 11:04,7/8/2024 7:04,64.015296,64.274366,70.621568,70.621568
+7/8/2024 11:09,7/8/2024 7:09,63.92894,64.66297,70.57839,70.621568
+7/8/2024 11:14,7/8/2024 7:14,63.972118,64.144831,70.621568,70.621568
+7/8/2024 11:19,7/8/2024 7:19,63.885761,64.144831,70.57839,70.535211
+7/8/2024 11:24,7/8/2024 7:24,64.101653,64.144831,70.707924,70.751102
+7/8/2024 11:29,7/8/2024 7:29,63.972118,64.490257,70.664746,70.751102
+7/8/2024 11:34,7/8/2024 7:34,63.972118,64.66297,70.707924,70.664746
+7/8/2024 11:39,7/8/2024 7:39,63.972118,64.188009,70.57839,70.492033
+7/8/2024 11:44,7/8/2024 7:44,64.317544,64.66297,70.535211,70.535211
+7/8/2024 11:49,7/8/2024 7:49,64.188009,64.749326,70.57839,70.707924
+7/8/2024 11:54,7/8/2024 7:54,64.101653,64.533435,70.535211,70.621568
+7/8/2024 11:59,7/8/2024 7:59,64.188009,64.576613,70.57839,70.448855
+7/8/2024 12:04,7/8/2024 8:04,64.274366,64.792505,70.57839,70.57839
+7/8/2024 12:09,7/8/2024 8:09,64.231187,64.66297,70.492033,70.492033
+7/8/2024 12:14,7/8/2024 8:14,64.274366,64.706148,70.405677,70.57839
+7/8/2024 12:19,7/8/2024 8:19,64.360722,64.749326,70.535211,70.362498
+7/8/2024 12:24,7/8/2024 8:24,64.317544,64.835683,70.492033,70.621568
+7/8/2024 12:29,7/8/2024 8:29,64.490257,64.66297,70.492033,70.621568
+7/8/2024 12:34,7/8/2024 8:34,64.447079,64.533435,70.448855,70.621568
+7/8/2024 12:39,7/8/2024 8:39,64.447079,64.66297,70.57839,70.57839
+7/8/2024 12:44,7/8/2024 8:44,64.317544,64.66297,70.57839,70.57839
+7/8/2024 12:49,7/8/2024 8:49,64.533435,64.447079,70.448855,70.57839
+7/8/2024 12:54,7/8/2024 8:54,64.447079,64.66297,70.405677,70.448855
+7/8/2024 12:59,7/8/2024 8:59,64.447079,64.706148,70.535211,70.362498
+7/8/2024 13:04,7/8/2024 9:04,64.447079,64.749326,70.751102,70.751102
diff --git a/daily_plots.py b/daily_plots.py
index 365553c..c41d556 100644
--- a/daily_plots.py
+++ b/daily_plots.py
@@ -29,13 +29,13 @@ for day in pd.Index(data.index.date).unique():
fig = go.Figure()
fig.add_trace(go.Scatter(x=day_data.index, y=day_data['Sewer Water In Smooth'], mode='lines', name='Sewer Water In',
- line=dict(shape='spline', color='blue', width=4, dash='solid')))
+ line=dict(shape='spline', color='blue', width=2, dash='solid')))
fig.add_trace(go.Scatter(x=day_data.index, y=day_data['Sewer Water Out Smooth'], mode='lines', name='Sewer Water Out',
- line=dict(shape='spline', color='red', width=4, dash='solid')))
+ line=dict(shape='spline', color='red', width=2, dash='solid')))
fig.add_trace(go.Scatter(x=day_data.index, y=day_data['Return Air Smooth'], mode='lines', name='Return Air',
- line=dict(shape='spline', color='orange', width=4, dash='solid')))
+ line=dict(shape='spline', color='orange', width=2, dash='solid')))
fig.add_trace(go.Scatter(x=day_data.index, y=day_data['Supply Air Smooth'], mode='lines', name='Supply Air',
- line=dict(shape='spline', color='green', width=4, dash='solid')))
+ line=dict(shape='spline', color='green', width=2, dash='solid')))
fig.update_layout(
title=dict(
@@ -60,6 +60,6 @@ for day in pd.Index(data.index.date).unique():
)
# Save the plot (requires kaleido package)
- fig.write_image(f'plotly_plot_{day}.png')
+ fig.write_image(f'temperature_variations_without_Q_{day}.png')
diff --git a/double_y.py b/double_y.py
index 5b34abb..764f421 100644
--- a/double_y.py
+++ b/double_y.py
@@ -1,44 +1,64 @@
import pandas as pd
-import plotly.graph_objects as go
-from plotly.subplots import make_subplots
-# Load the data (assuming you've already loaded and processed it as shown)
+# Load the data
data = pd.read_csv('06-25_07-07.csv')
-# Calculation of Q (BTU / lb)
-data['Q (BTU/lb)'] = data['Sewer Water Out'] - data['Sewer Water In']
-
# Convert 'Date/Time (--4:0:0)' column to datetime
data['Date/Time (--4:0:0)'] = pd.to_datetime(data['Date/Time (--4:0:0)'])
+# Calculate the time difference between consecutive points in minutes
+data['Time Diff (min)'] = data['Date/Time (--4:0:0)'].diff().dt.total_seconds() / 60
+
+# Set flow rate and specific heat capacity
+flow_rate_gpm = 10
+density_water = 62.4 # lbm/ft^3
+flow_rate_lbm_min = flow_rate_gpm * 0.133681 * density_water # Convert GPM to lbm/min
+
+# Calculate Q (BTU)
+cp_water = 1 # BTU/lbm°F
+data['Delta T (F)'] = data['Sewer Water Out'] - data['Sewer Water In']
+data['Q (BTU)'] = flow_rate_lbm_min * cp_water * data['Delta T (F)'] * data['Time Diff (min)']
+
# Apply a smoothing function (moving average)
window_size = 10
data['Sewer Water In Smooth'] = data['Sewer Water In'].rolling(window=window_size, center=True).mean()
data['Sewer Water Out Smooth'] = data['Sewer Water Out'].rolling(window=window_size, center=True).mean()
data['Return Air Smooth'] = data['Return Air'].rolling(window=window_size, center=True).mean()
data['Supply Air Smooth'] = data['Supply Air'].rolling(window=window_size, center=True).mean()
-data['Q Smooth'] = data['Q (BTU/lb)'].rolling(window=window_size, center=True).mean()
+data['Q Smooth'] = data['Q (BTU)'].rolling(window=window_size, center=True).mean()
+
+# Plotting the data
+import plotly.graph_objects as go
+from plotly.subplots import make_subplots
+
fig = make_subplots(rows=1, cols=1, shared_xaxes=True, vertical_spacing=0.1,
- subplot_titles=(f'Temperature Variations and Transferred Heat from 25/06/2024-07/07/2024',),
- specs=[[{"secondary_y": True}]])
+ subplot_titles=('Temperature Variations and Transferred Heat from 25/06/2024-08/07/2024',),
+ specs=[[{"secondary_y": True}]])
+
fig.add_trace(go.Scatter(x=data['Date/Time (--4:0:0)'], y=data['Sewer Water In Smooth'], mode='lines', name='Sewer Water In',
- line=dict(shape='spline', color='blue', width=4, dash='solid')), secondary_y=False)
+ line=dict(shape='spline', color='blue', width=2, dash='solid')), secondary_y=False)
fig.add_trace(go.Scatter(x=data['Date/Time (--4:0:0)'], y=data['Sewer Water Out Smooth'], mode='lines', name='Sewer Water Out',
- line=dict(shape='spline', color='red', width=4, dash='solid')), secondary_y=False)
+ line=dict(shape='spline', color='red', width=2, dash='solid')), secondary_y=False)
fig.add_trace(go.Scatter(x=data['Date/Time (--4:0:0)'], y=data['Return Air Smooth'], mode='lines', name='Return Air',
- line=dict(shape='spline', color='orange', width=4, dash='solid')), secondary_y=False)
+ line=dict(shape='spline', color='orange', width=2, dash='solid')), secondary_y=False)
fig.add_trace(go.Scatter(x=data['Date/Time (--4:0:0)'], y=data['Supply Air Smooth'], mode='lines', name='Supply Air',
- line=dict(shape='spline', color='green', width=4, dash='solid')), secondary_y=False)
-fig.add_trace(go.Scatter(x=data['Date/Time (--4:0:0)'], y=data['Q Smooth'], mode='lines', name='Transferred Heat (BTU/lb)',
- line=dict(shape='spline', color='purple', width=4, dash='solid')), secondary_y=True)
-# Update layout
+ line=dict(shape='spline', color='green', width=2, dash='solid')), secondary_y=False)
+fig.add_trace(go.Scatter(x=data['Date/Time (--4:0:0)'], y=data['Q Smooth'], mode='lines', name='Transferred Heat (BTU)',
+ line=dict(shape='spline', color='purple', width=2, dash='solid')), secondary_y=True)
+
+# Update layout with secondary y-axis title
fig.update_layout(
xaxis_title='Date/Time',
yaxis_title='Temperature (F)',
+ yaxis2_title='Transferred Heat (BTU)',
legend_title_text='Legend',
font=dict(size=14),
width=1400,
height=800
)
+
# Save the plot (requires kaleido package)
-fig.write_image('plotly_plot_with_q.png')
\ No newline at end of file
+fig.write_image('temperature_variations_with_q.png')
+
+# Display the plot
+fig.show()
\ No newline at end of file
diff --git a/double_y_daily.py b/double_y_daily.py
index ccfb855..69394a3 100644
--- a/double_y_daily.py
+++ b/double_y_daily.py
@@ -2,22 +2,32 @@ import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots
-# Load the data (assuming you've already loaded and processed it as shown)
+# Load the data
data = pd.read_csv('06-25_07-07.csv')
-# Calculation of Q (BTU / lb)
-data['Q (BTU/lb)'] = data['Sewer Water Out'] - data['Sewer Water In']
-
# Convert 'Date/Time (--4:0:0)' column to datetime
data['Date/Time (--4:0:0)'] = pd.to_datetime(data['Date/Time (--4:0:0)'])
+# Calculate the time difference between consecutive points in minutes
+data['Time Diff (min)'] = data['Date/Time (--4:0:0)'].diff().dt.total_seconds() / 60
+
+# Set flow rate and specific heat capacity
+flow_rate_gpm = 10
+density_water = 62.4 # lbm/ft^3
+flow_rate_lbm_min = flow_rate_gpm * 0.133681 * density_water # Convert GPM to lbm/min
+
+# Calculate Q (BTU)
+cp_water = 1 # BTU/lbm°F
+data['Delta T (F)'] = data['Sewer Water Out'] - data['Sewer Water In']
+data['Q (BTU)'] = flow_rate_lbm_min * cp_water * data['Delta T (F)'] * data['Time Diff (min)']
+
# Apply a smoothing function (moving average)
window_size = 10
data['Sewer Water In Smooth'] = data['Sewer Water In'].rolling(window=window_size, center=True).mean()
data['Sewer Water Out Smooth'] = data['Sewer Water Out'].rolling(window=window_size, center=True).mean()
data['Return Air Smooth'] = data['Return Air'].rolling(window=window_size, center=True).mean()
data['Supply Air Smooth'] = data['Supply Air'].rolling(window=window_size, center=True).mean()
-data['Q Smooth'] = data['Q (BTU/lb)'].rolling(window=window_size, center=True).mean()
+data['Q Smooth'] = data['Q (BTU)'].rolling(window=window_size, center=True).mean()
# Iterate through each calendar day and create separate plots
for day in pd.Index(data['Date/Time (--4:0:0)'].dt.date).unique():
@@ -31,20 +41,21 @@ for day in pd.Index(data['Date/Time (--4:0:0)'].dt.date).unique():
# Add traces for each line with spline smoothing and increased visibility
fig.add_trace(go.Scatter(x=day_data['Date/Time (--4:0:0)'], y=day_data['Sewer Water In Smooth'], mode='lines', name='Sewer Water In',
- line=dict(shape='spline', color='blue', width=4, dash='solid')), secondary_y=False)
+ line=dict(shape='spline', color='blue', width=2, dash='solid')), secondary_y=False)
fig.add_trace(go.Scatter(x=day_data['Date/Time (--4:0:0)'], y=day_data['Sewer Water Out Smooth'], mode='lines', name='Sewer Water Out',
- line=dict(shape='spline', color='red', width=4, dash='solid')), secondary_y=False)
+ line=dict(shape='spline', color='red', width=2, dash='solid')), secondary_y=False)
fig.add_trace(go.Scatter(x=day_data['Date/Time (--4:0:0)'], y=day_data['Return Air Smooth'], mode='lines', name='Return Air',
- line=dict(shape='spline', color='orange', width=4, dash='solid')), secondary_y=False)
+ line=dict(shape='spline', color='orange', width=2, dash='solid')), secondary_y=False)
fig.add_trace(go.Scatter(x=day_data['Date/Time (--4:0:0)'], y=day_data['Supply Air Smooth'], mode='lines', name='Supply Air',
- line=dict(shape='spline', color='green', width=4, dash='solid')), secondary_y=False)
+ line=dict(shape='spline', color='green', width=2, dash='solid')), secondary_y=False)
fig.add_trace(go.Scatter(x=day_data['Date/Time (--4:0:0)'], y=day_data['Q Smooth'], mode='lines', name='Transferred Heat (BTU/lb)',
- line=dict(shape='spline', color='purple', width=4, dash='solid')), secondary_y=True)
+ line=dict(shape='spline', color='purple', width=2, dash='solid')), secondary_y=True)
# Update layout
fig.update_layout(
xaxis_title='Date/Time',
yaxis_title='Temperature (F)',
+ yaxis2_title='Transferred Heat (BTU/lb)',
legend_title_text='Legend',
font=dict(size=14),
width=1400,
@@ -52,4 +63,4 @@ for day in pd.Index(data['Date/Time (--4:0:0)'].dt.date).unique():
)
# Save the plot (requires kaleido package)
- fig.write_image(f'plotly_plot_{day}.png')
\ No newline at end of file
+ fig.write_image(f'temperature_variations_with_q_{day}.png')
\ No newline at end of file
diff --git a/main.py b/main.py
index bad5b7c..a4e9e3e 100644
--- a/main.py
+++ b/main.py
@@ -21,13 +21,13 @@ fig = go.Figure()
# Add traces for each line with spline smoothing and increased visibility
fig.add_trace(go.Scatter(x=data.index, y=data['Sewer Water In Smooth'], mode='lines', name='Sewer Water In',
- line=dict(shape='spline', color='blue', width=4, dash='solid')))
+ line=dict(shape='spline', color='blue', width=2, dash='solid')))
fig.add_trace(go.Scatter(x=data.index, y=data['Sewer Water Out Smooth'], mode='lines', name='Sewer Water Out',
- line=dict(shape='spline', color='red', width=4, dash='solid')))
+ line=dict(shape='spline', color='red', width=2, dash='solid')))
fig.add_trace(go.Scatter(x=data.index, y=data['Return Air Smooth'], mode='lines', name='Return Air',
- line=dict(shape='spline', color='orange', width=4, dash='solid')))
+ line=dict(shape='spline', color='orange', width=2, dash='solid')))
fig.add_trace(go.Scatter(x=data.index, y=data['Supply Air Smooth'], mode='lines', name='Supply Air',
- line=dict(shape='spline', color='green', width=4, dash='solid')))
+ line=dict(shape='spline', color='green', width=2, dash='solid')))
# Add shading to separate days
for i in range((data.index[-1] - data.index[0]).days + 1):
@@ -43,7 +43,7 @@ for i in range((data.index[-1] - data.index[0]).days + 1):
# Update layout for better styling and to set figure size
fig.update_layout(
title=dict(
- text='Temperature Variations from 25/06/2024-07/07/2024',
+ text='Temperature Variations from 25/06/2024-08/07/2024',
font=dict(size=20, family='Arial', color='black', weight='bold')
),
xaxis_title=dict(
@@ -64,7 +64,7 @@ fig.update_layout(
)
# Save the plot (requires kaleido package)
-fig.write_image('plotly_plot.png')
+fig.write_image('temperatures without Q.png')
# Display the plot
fig.show()
diff --git a/q_calculation.py b/q_calculation.py
index 6a2eb2a..83ff54d 100644
--- a/q_calculation.py
+++ b/q_calculation.py
@@ -1,29 +1,38 @@
import pandas as pd
import plotly.graph_objects as go
-# Load the data (assuming you've already loaded and processed it as shown)
+# Load the data
data = pd.read_csv('06-25_07-07.csv')
-# Calculation of Q (BTU / lb)
-t_sewer_in = data['Sewer Water In'].to_list()
-t_sewer_out = data['Sewer Water Out'].to_list() # corrected column name
-q = [t_sewer_out[i] - t_sewer_in[i] for i in range(len(t_sewer_out))]
-data['Q (BTU/lb)'] = q
+
# Convert 'Date/Time (--4:0:0)' column to datetime
data['Date/Time (--4:0:0)'] = pd.to_datetime(data['Date/Time (--4:0:0)'])
+# Calculate the time difference between consecutive points in minutes
+data['Time Diff (min)'] = data['Date/Time (--4:0:0)'].diff().dt.total_seconds() / 60
+
+# Set flow rate and specific heat capacity
+flow_rate_gpm = 10
+density_water = 62.4 # lbm/ft^3
+flow_rate_lbm_min = flow_rate_gpm * 0.133681 * density_water # Convert GPM to lbm/min
+
+# Calculate Q (BTU)
+cp_water = 1 # BTU/lbm°F
+data['Delta T (F)'] = data['Sewer Water Out'] - data['Sewer Water In']
+data['Q (BTU)'] = flow_rate_lbm_min * cp_water * data['Delta T (F)'] * data['Time Diff (min)']
+
# Set the datetime column as the index
data.set_index('Date/Time (--4:0:0)', inplace=True)
# Apply a smoothing function (moving average)
window_size = 10
-data['Q Smooth'] = data['Q (BTU/lb)'].rolling(window=window_size, center=True).mean()
+data['Q Smooth'] = data['Q (BTU)'].rolling(window=window_size, center=True).mean()
# Ensure index is a datetime index for ease of filtering
data.index = pd.to_datetime(data.index)
# Create the plot
fig = go.Figure()
# Add traces for each line with spline smoothing and increased visibility
fig.add_trace(go.Scatter(x=data.index, y=data['Q Smooth'], mode='lines', name='Transferred Heat (BTU/lb)',
- line=dict(shape='spline', color='blue', width=4, dash='solid')))
+ line=dict(shape='spline', color='blue', width=2, dash='solid')))
# Add shading to separate days
for i in range((data.index[-1] - data.index[0]).days + 1):
@@ -47,7 +56,7 @@ fig.update_layout(
font=dict(size=18, family='Arial', color='black', weight='bold')
),
yaxis_title=dict(
- text='Energy (BTU/lb)',
+ text='Energy (BTU)',
font=dict(size=18, family='Arial', color='black', weight='bold')
),
legend=dict(