Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

GEP475GROUPINEEDANAP

2890 views
Kernel: Python 3 (Anaconda)

This is just brain drain of the analysis process and is not detailed enough for exact units at the moment since I don't know all the units yet; we can clean it up, amend it, or scrap it later.

We ultimately want to find cfms per hour. How do we go about that? Breaking down what the question is asking us, we get cubic feet per minute per hour. Essentially though, in order to get a CFM number for a ventilation fan that is appropriate for a total circulation of the ETC air space in one hour, we would need to acquire only one variable:

  • total approximate volume of the ETC, all rooms included or no?

Because of the assumed steadiness of our real question of air changes per hour using CO2 escape rates, using one hour for an air change is fine... as the ETC's will probably be a little over an hour for one full air change.

Using x volume of the ETC in Cubic Feet, we multiply by 1 air change, and then divide by 60 minutes to get the ideal ETC CFM!

But wait, our question of study is to determine the ACTUAL CFMs through infiltration of the ETC using the CO2 decay rates, and so our analysis will stem from data we collect from NetAtmo to begin with.

Assuming we get a steady rate of decrease from the CO2 decay data, we can get a change, or difference, of CO2 per hour; per hour is gotten by taking the CO2 concentrations(ppm) in the hour interval after EMD forum. This will help in our conversion to CFH and CFM later on.

Assuming the CO2 is spread evenly throughout the volume of the ETC; we got a ratio of the peak CO2 per cubic foot of the ETC, this ratio will allow us to compare it, units wise, with the change of CO2 per hour we got above.

The amount of CO2 decrease per hour can then be divided by the ratio above to get the cubic feet per hour infiltration rate.

With our cubic feet per hour we can divide once more by 60 minutes to get our result of cubic feet per minute aka a true CFM infiltration rate; or we can just keep it at CFM per hour, whatever suits our needs.

An example problem of rudimentary coding for 2016 data is started in NetAtmo_2016.ipynb at the bottom.

from pint import UnitRegistry u = UnitRegistry()
#%matplotlib notebook %matplotlib inline import matplotlib.pyplot as plt import numpy as np import pandas as pd data = pd.read_csv('NetAtmo_2016.csv', index_col=1, # use column 1 as the dates to index the data parse_dates=True) # convert the date string into a date object data[-5:]

Starting with the calculations of three samples of CO2 decay (by an hour's difference) after EMD forum to get an average CO2 decay per hour.

time2 = '2016-03-02 18:09:00' #Date for: Peak CO2 reading, first Wed of March at end of EMD forum last spring time1 = '2016-03-02 19:09:00' #Date for: CO2 reading an hour after conclusion of EMD forum data[time2:time1]
u.define('ppm = []') first_peakCO2_EMDforum = 1072 * u.ppm first_CO2_hourafterEMDforum = 943 * u.ppm first_CO2decay_per_hour = first_peakCO2_EMDforum - first_CO2_hourafterEMDforum first_peakCO2_EMDforum - first_CO2_hourafterEMDforum
first_CO2decay_per_hour = 129 * u.ppm / u.hour #doors open or not?
time2 = '2016-03-09 18:18:00' #Date for: Peak CO2 reading, second Wed of March at end of EMD forum last spring time1 = '2016-03-09 19:18:00' #Date for: CO2 reading an hour after conclusion of EMD forum data[time2:time1]
secnd_peakCO2_EMDforum = 771 * u.ppm secnd_CO2_hourafterEMDforum = 730 * u.ppm secnd_CO2decay_per_hour = secnd_peakCO2_EMDforum - secnd_CO2_hourafterEMDforum secnd_peakCO2_EMDforum - secnd_CO2_hourafterEMDforum
secnd_CO2decay_per_hour = 41 * u.ppm / u.hour #doors closed or something?
time2 = '2016-03-23 17:28:00' #Date for: Peak CO2 reading, fourth Wed of March at end of EMD forum last spring; no class third Wed time1 = '2016-03-23 18:28:00' #Date for: CO2 reading an hour after conclusion of EMD forum data[time2:time1]
third_peakCO2_EMDforum = 587 * u.ppm third_CO2_hourafterEMDforum = 509 * u.ppm third_CO2decay_per_hour = third_peakCO2_EMDforum - third_CO2_hourafterEMDforum third_peakCO2_EMDforum - third_CO2_hourafterEMDforum
third_CO2decay_per_hour = 78 * u.ppm / u.hour #door cracked or something?

Below we will average the three decay differences of an hour.

first_CO2decay_per_hour = 129 * u.ppm / u.hour secnd_CO2decay_per_hour = 41 * u.ppm / u.hour third_CO2decay_per_hour = 78 * u.ppm / u.hour avg_CO2decay_per_hour = (first_CO2decay_per_hour + secnd_CO2decay_per_hour + third_CO2decay_per_hour) / 3 (first_CO2decay_per_hour + secnd_CO2decay_per_hour + third_CO2decay_per_hour) / 3
avg_CO2decay_per_hour = 82.7 * u.ppm / u.hour

Because I used the average of three sample CO2 decays, now we need to get the average of the peak CO2 in the ETC at the end of each EMD forum to be a representative peak CO2 that we can ratio with the volume of the ETC.

first_peakCO2_EMDforum = 1072 * u.ppm secnd_peakCO2_EMDforum = 771 * u.ppm third_peakCO2_EMDforum = 587 * u.ppm avg_peakCO2_EMDforum = (first_peakCO2_EMDforum + secnd_peakCO2_EMDforum + third_peakCO2_EMDforum) / 3 (first_peakCO2_EMDforum + secnd_peakCO2_EMDforum + third_peakCO2_EMDforum) / 3
avg_peakCO2_EMDforum = 810 * u.ppm

Using the average peak CO2 we just got with our estimated volume of the ETC, we can get a concentration of CO2 per cubic foot of volume at peak times immediately after EMD forum in the ETC.

  • Volume calculations and images are in the Jupyter Notebook file titled "Drawn volume calculations"

avg_peakCO2_EMDforum = 810 * u.ppm ETC_vlme_cubicft = 41163 * u.feet**3 #Got through calculating finding sums w/ simpler shapes of the large complex shapes of the ETC's shape CO2_per_cubicft = avg_peakCO2_EMDforum / ETC_vlme_cubicft avg_peakCO2_EMDforum / ETC_vlme_cubicft
CO2_per_cubicft = 0.02 * u.ppm / u.feet**3

With the CO2 decay per hour and CO2 per cubic feet, we can then divide the two figures and get to an infiltration rate of cubic feet per hour!

avg_CO2decay_per_hour = 82.7 * u.ppm / u.hour CO2_per_cubicft = 0.02 * u.ppm / u.feet**3 infiltration_rate_cfh = avg_CO2decay_per_hour / CO2_per_cubicft avg_CO2decay_per_hour / CO2_per_cubicft

According to this method of finding the CFH, the ETC has 4135 cubic feet of air changes per hour.

We can take the calculation further to get a CFM if we want by further dividing by 60 minutes

infiltration_rate_cfh = 4135 * u.feet**3 / u.hour min_per_hr = 60 * u.min / u.hour infiltration_rate_cfm = infiltration_rate_cfh / min_per_hr infiltration_rate_cfh / min_per_hr

According to this method of finding the CFM, the ETC has ~69 cubic feet of air changes per hour.