Created MQ-303A

This commit is contained in:
miguel5612
2019-07-03 20:35:48 -05:00
parent 30130db55e
commit fc3ac6a0c3
6 changed files with 4819 additions and 1274 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 50 KiB

+59 -85
View File
@@ -60,7 +60,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 4,
"metadata": {},
"outputs": [
{
@@ -98,20 +98,19 @@
},
{
"cell_type": "code",
"execution_count": 12,
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"x_MQ303A = sheetMQ3.col_values(0)[2:]\n",
"MQ5_CH4 = sheetMQ3.col_values(1)[2:]\n",
"MQ5_CO = sheetMQ3.col_values(2)[2:]\n",
"MQ5_H2 = sheetMQ3.col_values(3)[2:]\n",
"MQ5_Alcohol = sheetMQ3.col_values(4)[2:]"
"x_MQ303A = sheetMQ303A.col_values(0)[2:]\n",
"MQ303A_Iso_butano = sheetMQ303A.col_values(1)[2:]\n",
"MQ303A_Hidrogeno = sheetMQ303A.col_values(2)[2:]\n",
"MQ303A_Alcohol = sheetMQ303A.col_values(3)[2:]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
@@ -122,19 +121,18 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"MQ5_CH4 =zero_to_nan(MQ5_CH4)\n",
"MQ5_CO =zero_to_nan(MQ5_CO)\n",
"MQ5_H2 =zero_to_nan(MQ5_H2)\n",
"MQ5_Alcohol =zero_to_nan(MQ5_Alcohol)"
"MQ303A_Iso_butano =zero_to_nan(MQ303A_Iso_butano)\n",
"MQ303A_Hidrogeno =zero_to_nan(MQ303A_Hidrogeno)\n",
"MQ303A_Alcohol =zero_to_nan(MQ303A_Alcohol)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 12,
"metadata": {
"scrolled": false
},
@@ -148,104 +146,81 @@
"from sklearn import datasets\n",
"from sklearn import linear_model\n",
"\n",
"dataCH4 = {'RsRo': x_MQ309, 'CH4': MQ5_CH4}\n",
"dataCO = {'RsRo': x_MQ309, 'CO': MQ5_CO}\n",
"dataH2 = {'RsRo': x_MQ309, 'H2': MQ5_H2}\n",
"dataLPG = {'RsRo': x_MQ309, 'Alcohol': MQ5_Alcohol}\n",
"dataIso_Butano = {'RsRo': x_MQ303A, 'Iso_Butano': MQ303A_Iso_butano}\n",
"dataHidrogeno = {'RsRo': x_MQ303A, 'Hidrogeno': MQ303A_Hidrogeno}\n",
"dataAlcohol = {'RsRo': x_MQ303A, 'Alcohol': MQ303A_Alcohol}\n",
"\n",
"dfMQ309A_CH4 = pd.DataFrame(dataCH4)\n",
"dfMQ309A_CO = pd.DataFrame(dataCO)\n",
"dfMQ309A_H2 = pd.DataFrame(dataH2)\n",
"dfMQ309A_Alcohol = pd.DataFrame(dataLPG)\n",
"dfMQ303A_Iso_Butano = pd.DataFrame(dataIso_Butano)\n",
"dfMQ303A_Hidrogeno = pd.DataFrame(dataHidrogeno)\n",
"dfMQ303A_Alcohol = pd.DataFrame(dataAlcohol)\n",
"\n",
"dfMQ309A_CH4['CH4'] = pd.to_numeric(dfMQ309A_CH4['CH4'])\n",
"dfMQ309A_CO['CO'] = pd.to_numeric(dfMQ309A_CO['CO'])\n",
"dfMQ309A_H2['H2'] = pd.to_numeric(dfMQ309A_H2['H2'])\n",
"dfMQ309A_Alcohol['Alcohol'] = pd.to_numeric(dfMQ309A_Alcohol['Alcohol'])\n",
"dfMQ303A_Iso_Butano['Iso_Butano'] = pd.to_numeric(dfMQ303A_Iso_Butano['Iso_Butano'])\n",
"dfMQ303A_Hidrogeno['Hidrogeno'] = pd.to_numeric(dfMQ303A_Hidrogeno['Hidrogeno'])\n",
"dfMQ303A_Alcohol['Alchol'] = pd.to_numeric(dfMQ303A_Alcohol['Alcohol'])\n",
"\n",
"dfMQ309A_CH4['CH4'] = dfMQ309A_CH4['CH4'].replace('',None, regex=True)\n",
"dfMQ309A_CO['CO'] = dfMQ309A_CO['CO'].replace('',None, regex=True)\n",
"dfMQ309A_H2['H2'] = dfMQ309A_H2['H2'].replace('',None, regex=True)\n",
"dfMQ309A_Alcohol['Alcohol'] = dfMQ309A_Alcohol['Alcohol'].replace('',None, regex=True)\n",
"dfMQ303A_Iso_Butano['Iso_Butano'] = dfMQ303A_Iso_Butano['Iso_Butano'].replace('',None, regex=True)\n",
"dfMQ303A_Hidrogeno['Hidrogeno'] = dfMQ303A_Hidrogeno['Hidrogeno'].replace('',None, regex=True)\n",
"dfMQ303A_Alcohol['Alchol'] = dfMQ303A_Alcohol['Alchol'].replace('',None, regex=True)\n",
"\n",
"#Global X_Predict variable\n",
"X_Predict = dfMQ309A_CH4.RsRo.apply(lambda x: [x]).tolist()"
"X_Predict = dfMQ303A_Iso_Butano.RsRo.apply(lambda x: [x]).tolist()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"#Model and train CH4\n",
"dataset2TrainCH4 = dfMQ309A_CH4.copy()\n",
"dataset2TrainCH4.dropna(inplace=True)\n",
"X_trainCH4 = dataset2TrainCH4.RsRo.apply(lambda x: [x]).tolist()\n",
"y_trainCH4 = dataset2TrainCH4['CH4'].tolist()\n",
"#Model and train Iso-Butano\n",
"dataset2TrainIso_Butano = dfMQ303A_Iso_Butano.copy()\n",
"dataset2TrainIso_Butano.dropna(inplace=True)\n",
"X_trainIso_Butano = dataset2TrainIso_Butano.RsRo.apply(lambda x: [x]).tolist()\n",
"y_trainIso_Butano = dataset2TrainIso_Butano['Iso_Butano'].tolist()\n",
"model = linear_model.Lasso(alpha=0.1)\n",
"model.fit(X_trainCH4, y_trainCH4)\n",
"model.fit(X_trainIso_Butano, y_trainIso_Butano)\n",
"#Predict\n",
"CH4_Predicted = model.predict(X_Predict)\n",
"Iso_Butano_Predicted = model.predict(X_Predict)\n",
"#save into MQ2\n",
"MQ309A_CH4 = CH4_Predicted"
"MQ303A_Iso_Butano = Iso_Butano_Predicted"
]
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"#Model and train CO\n",
"dataset2TrainCO = dfMQ309A_CO.copy()\n",
"dataset2TrainCO.dropna(inplace=True)\n",
"X_trainCO = dataset2TrainCO.RsRo.apply(lambda x: [x]).tolist()\n",
"y_trainCO = dataset2TrainCO['CO'].tolist()\n",
"#Model and train Hidrogeno\n",
"dataset2TrainHidrogeno = dfMQ303A_Hidrogeno.copy()\n",
"dataset2TrainHidrogeno.dropna(inplace=True)\n",
"X_trainHidrogeno = dataset2TrainHidrogeno.RsRo.apply(lambda x: [x]).tolist()\n",
"y_trainHidrogeno = dataset2TrainHidrogeno['Hidrogeno'].tolist()\n",
"model = linear_model.Lasso(alpha=0.1)\n",
"model.fit(X_trainCO, y_trainCO)\n",
"model.fit(X_trainHidrogeno, y_trainHidrogeno)\n",
"#Predict\n",
"CO_Predicted = model.predict(X_Predict)\n",
"Hidrogeno_Predicted = model.predict(X_Predict)\n",
"#save into MQ2\n",
"MQ309A_CO = CO_Predicted"
"MQ303A_Hidrogeno = Hidrogeno_Predicted"
]
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"#Model and train H2\n",
"dataset2TrainH2 = dfMQ309A_H2.copy()\n",
"dataset2TrainH2.dropna(inplace=True)\n",
"X_trainH2 = dataset2TrainH2.RsRo.apply(lambda x: [x]).tolist()\n",
"y_trainH2 = dataset2TrainH2['H2'].tolist()\n",
"#Model and train Alchol\n",
"dataset2TrainAlchol = dfMQ303A_Alcohol.copy()\n",
"dataset2TrainAlchol.dropna(inplace=True)\n",
"X_trainAlchol = dataset2TrainAlchol.RsRo.apply(lambda x: [x]).tolist()\n",
"y_trainAlchol = dataset2TrainAlchol['Alchol'].tolist()\n",
"model = linear_model.Lasso(alpha=0.1)\n",
"model.fit(X_trainH2, y_trainH2)\n",
"model.fit(X_trainAlchol, y_trainAlchol)\n",
"#Predict\n",
"H2_Predicted = model.predict(X_Predict)\n",
"Alchol_Predicted = model.predict(X_Predict)\n",
"#save into MQ2\n",
"MQ309A_H2 = H2_Predicted\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"#Model and train Alcohol\n",
"dataset2TrainAlcohol = dfMQ309A_Alcohol.copy()\n",
"dataset2TrainAlcohol.dropna(inplace=True)\n",
"X_trainAlcohol = dataset2TrainAlcohol.RsRo.apply(lambda x: [x]).tolist()\n",
"y_trainAlcohol = dataset2TrainAlcohol['Alcohol'].tolist()\n",
"model = linear_model.Lasso(alpha=0.1)\n",
"model.fit(X_trainAlcohol, y_trainAlcohol)\n",
"#Predict\n",
"Alcohol_Predicted = model.predict(X_Predict)\n",
"#save into MQ2\n",
"MQ309A_Alcohol = Alcohol_Predicted"
"MQ303A_Alchol = Alchol_Predicted\n"
]
},
{
@@ -2016,10 +1991,9 @@
"fig.set_dpi(200)\n",
"\n",
"# only these two lines are calibration curves\n",
"plt.plot(MQ309A_CH4, x_MQ309A, marker='o', linewidth=1, label='CH4')\n",
"plt.plot(MQ309A_CO, x_MQ309A, marker='o', linewidth=1, label='CO')\n",
"plt.plot(MQ309A_H2, x_MQ309A, marker='o', linewidth=1, label='H2')\n",
"plt.plot(MQ309A_Alcohol, x_MQ309A, marker='o', linewidth=1, label='Alcohol')\n",
"plt.plot(MQ303A_Iso_Butano, x_MQ303A, marker='o', linewidth=1, label='Iso-Butano')\n",
"plt.plot(MQ303A_CO, x_MQ303A, marker='o', linewidth=1, label='CO')\n",
"plt.plot(MQ303A_Alcohol, x_MQ303A, marker='o', linewidth=1, label='Alcohol')\n",
"\n",
"\n",
"\n",
@@ -2034,15 +2008,15 @@
"\n",
"plt.grid(b=True, which='minor', color='lightgrey', linestyle='--')\n",
"\n",
"fig.suptitle('Calibration plot for MQ-309A data')\n",
"fig.suptitle('Calibration plot for MQ-303A data')\n",
"ax.set_xlabel('PPM Concentration')\n",
"ax.set_ylabel('Rs/Ro')\n",
"\n",
"\n",
"#Save image\n",
"plt.savefig('MQ309A.svg', format = 'svg', dpi = 1200)\n",
"plt.savefig('MQ309A.png')\n",
"plt.savefig('MQ309A.eps', format = 'eps', dpi = 1200)"
"plt.savefig('MQ303A.svg', format = 'svg', dpi = 1200)\n",
"plt.savefig('MQ303A.png')\n",
"plt.savefig('MQ303A.eps', format = 'eps', dpi = 1200)"
]
},
{
File diff suppressed because it is too large Load Diff