Untitled

 avatar
unknown
plain_text
2 years ago
5.6 kB
5
Indexable
# -*- coding: utf-8 -*-
"""
Created on Fri Mar 24 17:15:12 2023

@author: jackk
"""

import pandas as pd
import io
import sharepy
import base64
import numpy as np
import matplotlib as plt

# --------- GET FILE FROM SHAREPOINT ---------------------

# Set Log in for Sharepoint
sharepoint_user = 'ee20kg@leeds.ac.uk'  # email adress
encoded_password = 'TTNpbmVTY2gwMGwmIQ=='  # password, but encoded for privacy
url = 'https://leeds365.sharepoint.com'  # base sharepoint url

# Set Files name for Sharepoint
file_url = '/sites/TEAM-Shazaib-ProjectSpace/Shared%20Documents/General/spen_farm/'
sensors = ['SL048', 'SL049', 'SL051', 'SL052', 'SL057', 'SL058', 'SL059', 'SL062', 'SL063', 'SL065', 'SL068']
days = ['20230222', '20230223', '20230224', '20230225', '20230226', '20230227', '20230228', '20230301', '20230302', '20230303', '20230304', '20230305', '20230306', '20230307']
datas = []

# Set Files name for Sharepoint
file_url2 = '/sites/TEAM-SEEAQProjects-UKRI-GLASGOW/Shared%20Documents/UKRI%20-%20GLASGOW/sensor_data/'
sensors2 = ['SL043', 'SL048', 'SL049', 'SL051', 'SL057', 'SL058', 'SL059', 'SL061', 'SL062', 'SL063', 'SL065', 'SL068']
days2 = ['02/2023-02-22', '02/2023-02-23', '02/2023-02-24', '02/2023-02-25', '02/2023-02-26', '02/2023-02-27', '02/2023-02-28', '03/2023-03-01', '03/2023-03-02', '03/2023-03-03', '03/2023-03-04', '03/2023-03-05', '03/2023-03-06', '03/2023-03-07']
datas2 = []

s = sharepy.connect(url, username=sharepoint_user, password=base64.b64decode(encoded_password).decode('ascii'))  # connect to url with login details

# Access each of the files and turn to csvs
for sensor in sensors:
    for day in days:
        r = s.get(url+file_url+sensor+"/"+day+".csv")
        f = io.BytesIO(r.content)
        df1 = (pd.read_csv(f))
        for column in df1:
            if column == "UTCDateTime":
                df1 = df1.rename(columns={'UTCDateTime': 'date'})  # rename columns
                df1['date'] = pd.to_datetime(df1['date'], errors='coerce')
                df1['pm2_5_atm'] = np.where(df1['pm2_5_atm'] > 50, 50, df1['pm2_5_atm'])
        datas.append(df1)

# Access each of the files and turn to csvs
for sensor2 in sensors2:
    for day2 in days2:
        r2 = s.get(url+file_url2+sensor2+"/2023/"+day2+".csv")
        f2 = io.BytesIO(r2.content)
        df2 = (pd.read_csv(f2))
        df2 = df2.rename(columns={'PM2.5 A (CF=ATM) (ug/m3)': 'pm2_5_atm'})
        df2['date'] = pd.to_datetime(df2['date'], errors='coerce')
        df2['pm2_5_atm'] = np.where(df2['pm2_5_atm'] > 50, 50, df2['pm2_5_atm'])
        datas2.append(df2)



# --------- PLOT ---------------------

sensor48data = datas[0:13]
sensor49data = datas[14:27]
sensor51data = datas[28:41]
sensor52data = datas[42:55]
sensor57data = datas[56:69]
sensor58data = datas[70:83]
sensor59data = datas[84:97]
sensor62data = datas[98:111]
sensor63data = datas[112:125]
sensor65data = datas[126:139]
sensor68data = datas[139:152]

S48 = pd.concat(sensor48data)
S49 = pd.concat(sensor49data)
S51 = pd.concat(sensor51data)
S52 = pd.concat(sensor52data)
S57 = pd.concat(sensor57data)
S58 = pd.concat(sensor58data)
S59 = pd.concat(sensor59data)
S62 = pd.concat(sensor62data)
S63 = pd.concat(sensor63data)
S65 = pd.concat(sensor65data)
S68 = pd.concat(sensor68data)

sensor243data = datas2[0:13]
sensor248data = datas2[14:27]
sensor249data = datas2[28:41]
sensor251data = datas2[42:55]
sensor257data = datas2[56:69]
sensor258data = datas2[70:83]
sensor259data = datas2[84:97]
sensor261data = datas2[98:111]
sensor262data = datas2[112:125]
sensor263data = datas2[126:139]
sensor265data = datas2[139:152]
sensor268data = datas2[139:152]

S243 = pd.concat(sensor243data)
S248 = pd.concat(sensor248data)
S249 = pd.concat(sensor249data)
S251 = pd.concat(sensor251data)
S257 = pd.concat(sensor257data)
S258 = pd.concat(sensor258data)
S259 = pd.concat(sensor259data)
S261 = pd.concat(sensor261data)
S262 = pd.concat(sensor262data)
S263 = pd.concat(sensor263data)
S265 = pd.concat(sensor265data)
S268 = pd.concat(sensor268data)

mergedS48 = pd.concat([S248, S48])
mergedS49 = pd.concat([S249, S49])
mergedS51 = pd.concat([S251, S51])
mergedS57 = pd.concat([S257, S57])
mergedS58 = pd.concat([S258, S58])
mergedS59 = pd.concat([S259, S59])
mergedS62 = pd.concat([S262, S62])
mergedS63 = pd.concat([S263, S63])
mergedS65 = pd.concat([S265, S65])
mergedS68 = pd.concat([S268, S68])

ax = S243.plot(color="red", x='date', y='pm2_5_atm', xlabel='time', ylabel="pm2_5_atm", label='Sensor 43')
mergedS48.plot(color="yellow", x='date', y='pm2_5_atm', label='Sensor 48', ax=ax)
mergedS49.plot(color="pink", x='date', y='pm2_5_atm', label='Sensor 49', ax=ax)
mergedS51.plot(color="green", x='date', y='pm2_5_atm', label='Sensor 51', ax=ax)
S52.plot(color="orange", x='date', y='pm2_5_atm', label='Sensor 52', ax=ax)
mergedS57.plot(color="purple", x='date', y='pm2_5_atm', label='Sensor 57', ax=ax)
mergedS58.plot(color="blue", x='date', y='pm2_5_atm', label='Sensor 58', ax=ax)
mergedS59.plot(color="darkgreen", x='date', y='pm2_5_atm', label='Sensor 59', ax=ax)
S261.plot(color="darkblue", x='date', y='pm2_5_atm', label='Sensor 61', ax=ax)
mergedS62.plot(color="grey", x='date', y='pm2_5_atm', label='Sensor 62', ax=ax)
mergedS63.plot(color="black", x='date', y='pm2_5_atm', label='Sensor 63', ax=ax)
mergedS65.plot(color="brown", x='date', y='pm2_5_atm', label='Sensor 65', ax=ax)
mergedS68.plot(color="violet", x='date', y='pm2_5_atm', label='Sensor 68', ax=ax)
ax.legend(loc='center left', bbox_to_anchor=(1.02, 0.5), ncol=1)
Editor is loading...