main.py 2.34 KB
Newer Older
Romain Creuzenet's avatar
Romain Creuzenet committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
"""File to execute to show results"""
import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime
from parameters import SESSION


def execute_query(query):
    for row in SESSION.execute(query):
        yield row


def ask_q(possibilities, text=">>> "):
    answer = None
    while answer not in possibilities:
        answer = input(text)
    return answer


class Manager:
    table = None  # table name use by the function

    def run(self):
        """Chose"""
        print("Choisissez ce que vous voulez faire")
        print("\t1 - Pour un point donné de l’espace, je veux pouvoir avoir un historique du passé")
        print("\t2 - À un instant donné je veux pouvoir obtenir une carte me représentant n’importe quel indicateur")
        print("\t3 - Pour une période de temps donnée, je veux pouvoir obtenir clusteriser l’espace, et représenter "
              "cette clusterisation")

        decision = {
            "1": "historic",
            "2": "map",
            "3": "cluster"
        }
        answer = ask_q(decision.keys())
        getattr(self, decision[answer])()

    def historic(self):
        self.table = "TABLE_SPACE"

        # Search station
        query = "SELECT DISTINCT station FROM {}".format(self.table)
        stations = [row.station for row in execute_query(query)]
        print("Choisissez une station parmis celles-ci:")
        print("\t".join(stations))
        station = ask_q(stations)

        # Search element
        decision = {
            "tmpf": "La témparature",
            "relh": "L'humidité"
        }
        print("Choisissez un élément parmis les suivant :")
        for code, text in decision.items():
            print("\t-", text, ":", code)
        attr = ask_q(decision.keys())

        x = []
        y = []
        query = "SELECT * FROM {} WHERE station={}".format(self.table, station.__repr__())
        for row in execute_query(query):
            x.append(datetime(*list(row.time)))
            y.append(getattr(row, attr))
        x = np.array(x)
        y = np.array(y)
        plt.plot(x, y, label=attr)
        plt.title(station)
        plt.legend()
        plt.show()

    def map(self):
        print("Cette fonction n'est pas implémentée")

    def cluster(self):
        print("Cette fonction n'est pas implémentée")


if __name__ == "__main__":
    Manager().run()