コード例 #1
0
def get_data(timeframe):
    """
    Name in documentation: 'get_data'
    Load the klassified data.
    :raises DBExeption: If the Database is not aviable.
    :return: The klassified data
    """
    try:
        #print(timeframe)
        classified_data = reader.read_data('db_klassifizierte_daten' ,measurement = 'classified',
                                           start_utc= str(convert_time(timeframe[0])),
                                           end_utc= str(convert_time(timeframe[1])))
        classified_data = classified_data.astype('float64')
        #print("Get_Data Ausgabe:")
        #print(classified_data)
        #print("________________________________")

        #print("Get_Data Ausgabe nur True-gesetzte:")
        #print(classified_data.loc[classified_data.abtauzyklus == True]) #only True cycle
        #print("________________________________")


    except exe.DBException:
        raise exe.DBException("Database is not available. Get_data() failed", 901)

    return classified_data
コード例 #2
0
    def test_do_not_resolve_register(self):
        expected_query = "select from test_measurement where register = 'freshAirIntake'"
        when2(rm.read_query, "test", expected_query).thenReturn("success!")

        output = rm.read_data("test",
                              measurement="test_measurement",
                              register="freshAirIntake"
                              )

        self.assertEqual(output, "success!")
コード例 #3
0
    def test_only_end_set(self):
        expected_query = "select from test_measurement where register = '201' AND time < 1ms"
        when2(rm.read_query, "test", expected_query).thenReturn("success!")

        output = rm.read_data("test",
                              measurement="test_measurement",
                              register="freshAirIntake",
                              resolve_register="True",
                              end_utc=1
                              )

        self.assertEqual(output, "success!")
コード例 #4
0
    def test_all_values_in_args(self):
        expected_query = "select from test_measurement where register = '201' AND time > 1ms AND time < 2ms"
        when2(rm.read_query, "test", expected_query).thenReturn("success!")

        output = rm.read_data("test",
                     measurement="test_measurement",
                     register="freshAirIntake",
                     resolve_register="True",
                     start_utc=1,
                     end_utc=2
                     )

        self.assertEqual(output, "success!")
コード例 #5
0
def calculate_prediction(config):
    logger.info("Starting prediction calculation...")
    cfg_validator.validate_config(config)

    database_options = config["database_options"]["prediction"]
    datasource_forecast_dbname = database_options.get(
        "datasource_forecast_dbname")
    datasource_forecast_measurement = database_options.get(
        "datasource_forecast_measurement")
    datasource_forecast_register = database_options.get(
        "datasource_forecast_register")
    datasink_prediction_dbname = database_options.get(
        "datasink_prediction_dbname")
    datasink_prediction_measurement = database_options.get(
        "datasink_prediction_measurement")

    selected_value = config.get("selected_value")
    all_prediction_units = config.get("prediction_options").get(selected_value)
    known_data_sources = db_read.read_data(
        datasource_forecast_dbname,
        measurement=datasource_forecast_measurement)
    known_data_sources = known_data_sources.astype('float64')
    known_data_sources = known_data_sources.rename(
        columns={datasource_forecast_register: 'outdoor'})
    time_start = known_data_sources.first_valid_index()
    time_end = known_data_sources.last_valid_index()
    logger.info("Fetched relevant data...")

    all_prediction_models = model_persistor.load()
    while all_prediction_units:
        logger.info("Known data sources: " +
                    ', '.join(known_data_sources.columns.values))
        for prediction_unit in all_prediction_units:
            independent_data = prediction_unit.get("independent")
            if set(independent_data).issubset(
                    set(known_data_sources.columns.values)):
                logger.info("Predicting " +
                            ', '.join(prediction_unit.get("dependent")))
                apply_model(prediction_unit, known_data_sources,
                            all_prediction_models)
                all_prediction_units.remove(prediction_unit)

    logger.info("Prediction finished. Sending data to database")
    db_write.write_dataframe(datasink_prediction_dbname, known_data_sources,
                             datasink_prediction_measurement)
    classify_prediction(time_start, time_end, config)