示例#1
0
    def __load_data__(self):
        """Query the user data"""
        email = self.__user.email
        measurements = Measurement.query.filter_by(email=email).all()
        tSTART = DateUtil.date_to_datetime(config.DT_STRT)
        tSTOP = DateUtil.date_to_datetime(config.DT_STOP)

        measurements = [
            m for m in Measurement.query.filter_by(email=email).all()
            if m.timestamp >= tSTART and m.timestamp <= tSTOP
        ]
        weights = np.array([])
        dates = np.array([])
        if len(measurements):
            dates = np.array([m.timestamp for m in measurements])
            weights = np.array([m.weight for m in measurements])

            weights = np.array([x for _, x in sorted(zip(dates, weights))])
            dates = DateUtil.convert_datetimes(np.array(sorted(dates)),
                                               convert_to_date=True)

            days = np.array(
                [td.total_seconds() / 3600. / 24. for td in dates - dates[0]])

            self.__x_dates = dates
            self.__x_days = days
            self.__y_data = weights

            yerr = getattr(config, 'WT_ERROR', None)

            if yerr is not None:
                self.__y_err = np.ones_like(self.__y_data) * yerr
            else:
                self.do_errors = False