Exemple #1
0
 def test_ave_wei(self):
     c = Average('TestAve')
     c.add( 0, 1 )
     c.add( 1, 3 )
     ave, unc = c.average()
     self.assertEqual(ave, 0.75)
     self.assertAlmostEqual(unc, 0.22, 1)
Exemple #2
0
 def test_ave_unw(self):
     c = Average('TestAve')
     c.add( 1, 1 )
     c.add( 2, 1 )
     ave, unc = c.average()
     self.assertEqual(ave, 1.5)
     self.assertAlmostEqual(unc, 0.35, 1)
Exemple #3
0
 def test_ave_add(self):
     c1 = Average('c1')
     c1.add(0, 1)
     c2 = Average('c2')
     c2.add(1, 3)
     c3 = c1 + c2
     ave, unc = c3.average()
     self.assertEqual(ave, 0.75)
Exemple #4
0
    def _init(self):
        self.logger.info("Initializing controller daemon.")
        self.temp_target = 19
        self.update_time = 0
        self.period = 5 * 60
        self.duty_cycle = 0
        self.pid = PID()
        self.pid.setPoint(self.temp_target)
        self.pin = OutputPin("P8_10")
        self.pin.set_low()
        self.heater = State.off

        self.subscriber = self.get_subscriber(Topic("temperature", "ferm1_wort"))
        self.wort_temp = Average(self.subscriber.topic.data)
        topic = Topic("temperature", "ferm1_wort_average", self.wort_temp.get_value())
        self.publisher_average_temp = self.get_publisher(topic)
        topic = Topic("pid", "ferm1_pid", self.pid.update(self.wort_temp.get_value()))
        self.publisher_pid = self.get_publisher(topic)
        topic = Topic("state", "ferm1_heating", self.heater)
        self.publisher_heater = self.get_publisher(topic)
        topic = Topic("temperature", "ferm1_target", self.temp_target)
        self.publisher_target = self.get_publisher(topic)
        topic = Topic("percentage", "ferm1_duty_cycle", self.duty_cycle)
        self.publisher_duty_cycle = self.get_publisher(topic)

        self.logger.info("Controller initialized.")
Exemple #5
0
 def test_ave_add(self):
     c1 = Average('c1')
     c1.add(0,1)
     c2 = Average('c2')
     c2.add(1,3)
     c3 = c1 + c2
     ave, unc = c3.average()
     self.assertEqual(ave, 0.75)
Exemple #6
0
class ControllerDaemon(AtlasDaemon):
    def _init(self):
        self.logger.info("Initializing controller daemon.")
        self.temp_target = 19
        self.update_time = 0
        self.period = 5 * 60
        self.duty_cycle = 0
        self.pid = PID()
        self.pid.setPoint(self.temp_target)
        self.pin = OutputPin("P8_10")
        self.pin.set_low()
        self.heater = State.off

        self.subscriber = self.get_subscriber(Topic("temperature", "ferm1_wort"))
        self.wort_temp = Average(self.subscriber.topic.data)
        topic = Topic("temperature", "ferm1_wort_average", self.wort_temp.get_value())
        self.publisher_average_temp = self.get_publisher(topic)
        topic = Topic("pid", "ferm1_pid", self.pid.update(self.wort_temp.get_value()))
        self.publisher_pid = self.get_publisher(topic)
        topic = Topic("state", "ferm1_heating", self.heater)
        self.publisher_heater = self.get_publisher(topic)
        topic = Topic("temperature", "ferm1_target", self.temp_target)
        self.publisher_target = self.get_publisher(topic)
        topic = Topic("percentage", "ferm1_duty_cycle", self.duty_cycle)
        self.publisher_duty_cycle = self.get_publisher(topic)

        self.logger.info("Controller initialized.")

    def _loop(self):
        self.wort_temp.update(self.subscriber.topic.data)
        self.publisher_average_temp.publish(self.wort_temp.get_value())
        pid = self.pid.update(self.wort_temp.get_value())
        self.publisher_pid.publish(pid)
        self.publisher_target.publish(self.temp_target)
        if pid < 1:
            self.duty_cycle = pid
        else:
            self.duty_cycle = 1
        self.publisher_duty_cycle.publish(self.duty_cycle)

        if self.update_time + self.period < time.time():
            self.update_time = time.time()
            if 0 < self.duty_cycle:
                self.heater = State.on
                self.pin.set_high()
        elif self.update_time + self.duty_cycle * self.period < time.time():
            if self.heater == State.on:
                self.heater = State.off
                self.pin.set_low()

        self.publisher_heater.publish(self.heater)
        time.sleep(1)
Exemple #7
0
    def _init(self):
        self.atlas.register_topic_handler(self._logger)
        self.pin = OutputPin("P8_10")
        self.pin.set_low()
        self.t0 = time.time()
        self.stage1 = 6 * 60 * 60  # 6 hours
        self.stage2 = 6 * 60 * 60  # 6 hours
        self.stage3 = 6 * 60 * 60  # 6 hours
        self.t_cycle = self.t0
        self.cycle_period = 5 * 60  # 5 minutes
        self.power = 0.2  # 20% of full power
        self.t_log = self.t0
        self.log_period = 20
        self.triplets = []
        self.topics = []

        self.atlas.register_topic_handler(self._logger)

        subscriber = self.get_subscriber(Topic("temperature", "sensor1"))
        average_temp = Average(subscriber.topic.data, 10)
        topic = Topic("temperature", "sensor1_average", average_temp.get_value())
        publisher = self.get_publisher(topic)
        self.triplets.append((subscriber, average_temp, publisher))

        subscriber = self.get_subscriber(Topic("temperature", "sensor2"))
        average_temp = Average(subscriber.topic.data, 10)
        topic = Topic("temperature", "sensor2_average", average_temp.get_value())
        publisher = self.get_publisher(topic)
        self.triplets.append((subscriber, average_temp, publisher))

        subscriber = self.get_subscriber(Topic("temperature", "sensor3"))
        average_temp = Average(subscriber.topic.data, 10)
        topic = Topic("temperature", "sensor3_average", average_temp.get_value())
        publisher = self.get_publisher(topic)
        self.triplets.append((subscriber, average_temp, publisher))

        topic = Topic("state", "heater", self.pin.get_state())
        self.heater_publisher = self.get_publisher(topic)

        topic = Topic("stage", "calibration_stage", 1)
        self.stage_publisher = self.get_publisher(topic)
Exemple #8
0
 def test_arrayNumbers_elementos_1(self):
     self.assertEqual(Average().arrayNumbers("32")[0], 1, "Elementos cadena 1")
Exemple #9
0
 def test_arrayNumbers_average_n(self):
     self.assertEqual(Average().arrayNumbers("3, 9, 3, 9")[3], 6, "Promedio cadena 2")
Exemple #10
0
 def test_arrayNumbers_min_vacio(self):
     self.assertEqual(Average().arrayNumbers("")[1], None, "Minimo cadena vacia")
Exemple #11
0
#!/usr/bin/python

import random

from event import Event
from average import Average

e = Event()
a = Average()


def add_random_sample_delegate(x):
    a.add_sample(x + 10 * (-.5 + random.random()))


def add_sample_delegate(x):
    a.add_sample(x)


e.add_event_listener(add_sample_delegate)
e.add_event_listener(add_random_sample_delegate)

e.add_event(2)
e.add_event(200)

print a.calculate()
Exemple #12
0
from average import Average

if __name__ == "__main__":
	average = Average(3)
	print average.next(1)
	print average.next(2)
	print average.next(3)
	print average.next(4)
	print average.next(5)
	print average.next(6)
Exemple #13
0
 def test_arrayNumbers_elementos_2(self):
     self.assertEqual(Average().arrayNumbers("233, 232")[0], 2, "Elementos cadena 2")
Exemple #14
0
 def test_arrayNumbers_max_2(self):
     self.assertEqual(Average().arrayNumbers("3, 323")[2], 323, "Maximo cadena 2")
Exemple #15
0
 def test_arrayNumbers_max_1(self):
     self.assertEqual(Average().arrayNumbers("3")[2], 3, "Maximo cadena 1")
Exemple #16
0
 def test_arrayNumbers_max_vacio(self):
     self.assertEqual(Average().arrayNumbers("")[2], None, "Maximo cadena vacia")
Exemple #17
0
 def test_arrayNumbers_min_n(self):
     self.assertEqual(Average().arrayNumbers("1, 434,32,32,32,32,3,4")[1], 1, "Minimo cadena n")
Exemple #18
0
 def test_arrayNumbers_min_2(self):
     self.assertEqual(Average().arrayNumbers("1, 434")[1], 1, "Minimo cadena 2")
Exemple #19
0
 def test_arrayNumbers_min_1(self):
     self.assertEqual(Average().arrayNumbers("32")[1], 32, "Minimo cadena 1")
Exemple #20
0
def average():
    form1 = Average()
    form2 = Graph()
    if request.method == 'GET':
        return render_template('base.html',
                               form1=form1,
                               form2=form2,
                               ch='First')
    elif request.method == 'POST':
        if request.form['submit'] == 'PlotTheGraph':

            class Interpolate:
                S, Q, R = [], [], []
                # for finding limits, polynomials
                x = sp.Symbol('x')

                def Lag_Poly(self, L, M):
                    # X for storing x coordinates
                    # Y for storing f(x)
                    self.Q, self.R = L, M
                    for i in range(len(L)):
                        u, j = 1, 0
                        # forming list of polynomials
                        # summation of which is Lagrange Polynomial
                        while j < len(L):
                            if i != j:
                                u *= (self.x - L[j]) / (L[i] - L[j])
                            j += 1
                        u *= M[i]
                        self.S.append(u)
                    # plot Lagrange Polynomial
                    self.plot_Poly()

                def plot_Poly(self, var=[]):
                    a = np.arange(0, max(self.Q) + 0.2, 0.1)
                    pol_sum = 0
                    # plot function in the list
                    for i in self.S:
                        pol_sum += i
                        for j in a:
                            var.append(sp.limit(i, self.x, j))
                        plt.plot(a, var)
                        var = []
                    # plot Lagrange Polynomial in Black Color
                    for j in a:
                        var.append(sp.limit(pol_sum, self.x, j))
                    plt.plot(a, var, 'k')
                    # plot node points
                    plt.plot(self.Q, self.R, 'ro')
                    plt.title('INTERPOLATING POLYNOMIAL IS BLACK')
                    plt.xlabel('X-AXIS')
                    plt.ylabel('Y-AXIS')
                    plt.savefig('C:\Users\hp\Desktop\NA\static\img\graph.png')
                    plt.clf()

            ob = Interpolate()
            x = form2.x_cor.data
            y = form2.y_cor.data
            L = [float(i) for i in x.split(' ')]
            R = [float(i) for i in y.split(' ')]
            ob.Lag_Poly(L, R)
            return render_template('base.html',
                                   form1=form1,
                                   form2=form2,
                                   ch='Second')
        else:
            num = form1.message.data
            num, sum = num.split(' '), 0
            for i in num:
                sum += float(i)
            return render_template('base.html',
                                   form1=form1,
                                   form2=form2,
                                   avg=(sum * 1.0) / len(num),
                                   ch='Third')
Exemple #21
0
#!/usr/bin/python


import random

from event   import Event
from average import Average

e = Event()
a = Average()


def add_random_sample_delegate(x):
  a.add_sample(x + 10 * (-.5 + random.random()))

def add_sample_delegate(x):
  a.add_sample(x)

e.add_event_listener(add_sample_delegate)
e.add_event_listener(add_random_sample_delegate)

e.add_event(2)
e.add_event(200)


print a.calculate()



Exemple #22
0
 def test_arrayNumbers_max_n(self):
     self.assertEqual(Average().arrayNumbers("3, 323, 232,2 ,2,2,3 ,4")[2], 323, "Maximo cadena n")
Exemple #23
0
    all_dataset.drop(labels=['V5', 'V17', 'V22'], axis=1, inplace=True)

    all_dataset['V0']   = all_dataset['V0'].apply(lambda x: math.exp(x))
    all_dataset['V1']   = all_dataset['V1'].apply(lambda x: math.exp(x))
    all_dataset['V6']   = all_dataset['V6'].apply(lambda x: math.exp(x))
    all_dataset['V7']   = all_dataset['V7'].apply(lambda x: math.exp(x))
    all_dataset['V8']   = all_dataset['V8'].apply(lambda x: math.exp(x))
    all_dataset['V30']  = np.log1p(all_dataset["V30"])

    all_dataset = pd.DataFrame(preprocessing.scale(all_dataset), columns=all_dataset.columns)

    X_train = all_dataset[0:len(train_dataset)].values
    X_test  = all_dataset[len(train_dataset):].values
    y_train = train_labels.values

    model.fit(X_train, y_train)
    model.get_submission(X_test)


if __name__ == "__main__":
    from average import Average
    from lgb import LGB_Model
    from etr import ETR_Model
    from huber import Huber_Model

    model_list = [('LGB', LGB_Model()), ('ETR', ETR_Model()), ('HUBER', Huber_Model())]
    ave = Average(model_list)
    train_eval(ave)
    generate_submission(ave)

Exemple #24
0
 def test_arrayNumbers_average_vacio(self):
     self.assertEqual(Average().arrayNumbers("")[3], None, "Promedio cadena vacia")
Exemple #25
0
ch.setFormatter(logging.Formatter('%(asctime)s: %(levelname)s: %(message)s'))
logger.addHandler(ch)

logger.info('Startup')

signals_handler = signals_handler(messageboard)

with Display(), \
     Sensor(), \
     Status(), \
     HtmlWriter(), \
     Fan(), \
     Menu(), \
     Devices(), \
     DCF77(), \
     Average(), \
     RestartWLAN(), \
     CheckNetwork():
    time0 = Uptime()
    while messageboard.query('ExitThread') is None:
        exception = messageboard.query('Exception')
        if exception is not None:
            raise exception
        messageboard.post('Time', (Uptime(), time.localtime()))
        time1 = Uptime()
        if not time1 >= time0:
            logger.warning('Error in uptime: {} < {}.'.format(time1, time0))
            time0 = time1
        sleeptime = 1 - time1 + time0
        if sleeptime <= 0:
            logger.warning(u'Zero sleep time: {} < {}, Δ={:.1f}s.'.format(
Exemple #26
0
 def test_arrayNumbers_average_1(self):
     self.assertEqual(Average().arrayNumbers("3")[3], 3, "Promedio cadena 1")
Exemple #27
0
 def test_arrayNumbers_elementos_vacio(self):
     self.assertEqual(Average().arrayNumbers("")[0], 0, "Elementos cadena vacia")
Exemple #28
0
 def test_arrayNumbers_elementos_n(self):
     self.assertEqual(Average().arrayNumbers("233, 232,23,23,2,2,2,432, 466,6")[0], 10, "Elementos cadena n")