예제 #1
0
def task_configuration():
    es_history_config = EsConfig(host="51.144.39.71:9200", index_name="wf_scada_hist", document_type="wf_scada_hist")
    es_probability_config = EsConfig(host="51.144.39.71:9200", index_name="wf_model_predictions", document_type="wf_model_prediction")
    es_rul_config = EsConfig(host="51.144.39.71:9200", index_name="wf_model_ruls", document_type="wf_model_rul")

    return {
        "company_id": 1,
        "turbine_id": 1,
        "end_date": datetime.datetime(2016, 2, 29),
        "window_delta": 1,
        "es_history_config": es_history_config,
        "es_probability_config":  es_probability_config,
        "es_rul_config":  es_rul_config,
        "components_definitions":  []
    }
def test_residual_time():
    es_config = EsConfig(host="51.144.39.71:9200", index_name="wf_model_ruls", document_type="wf_model_rul")
    turbine_id = 1

    end_date = datetime(2016, 2, 29)
    window_delta = timedelta(days=10)
    ruls = get_rul(turbine_id, end_date, window_delta, es_config)
    res_time = residual_time(ruls['global_model'])

    np.testing.assert_almost_equal(res_time, 10.662488246015524, decimal=5, verbose=True)
def test_last_rul_healthscore():
    es_config = EsConfig(host="51.144.39.71:9200", index_name="wf_model_ruls", document_type="wf_model_rul")
    turbine_id = 1

    end_date = datetime(2016, 2, 29)
    window_delta = timedelta(hours=1)
    ruls = get_rul(turbine_id, end_date, window_delta, es_config)

    global_model_rul_healthscore = last_rul_healthscore(ruls['global_model'])

    assert 0 <= global_model_rul_healthscore <= 100
def test_get_rul():
    es_config = EsConfig(host="51.144.39.71:9200", index_name="wf_model_ruls", document_type="wf_model_rul")
    turbine_id = 1

    end_date = datetime(2016, 2, 29)
    window_delta = timedelta(days=10)
    ruls = get_rul(turbine_id, end_date, window_delta, es_config)

    assert isinstance(ruls, pd.DataFrame)
    indexes = ruls.index

    assert indexes[0] == pd.Timestamp(end_date - window_delta)
    assert indexes[-1] == end_date
def test_last_probability_healthscore():
    es_config = EsConfig(host="51.144.39.71:9200", index_name="wf_model_predictions",
                         document_type="wf_model_prediction")

    turbine_id = 1

    end_date = datetime(2016, 2, 29)
    window_delta = timedelta(days=10)
    probabilities = get_probabilities(turbine_id, end_date, window_delta, es_config)

    global_model_score = last_probability_healthscore(probabilities['global_model'])

    np.testing.assert_almost_equal(global_model_score, 88.11894166872555, decimal=5, verbose=True)
if __name__ == '__main__':
    args = parser.parse_args()
    logging.info("Running prediction")

    configuration = parse_config_yaml(
        os.path.join(args.data_dir, 'configuration.yaml'))

    end_date = args.day
    start_date = end_date - timedelta(hours=int(args.window_delta))
    turbines = args.turbines  # tuple: (1,)
    method = args.method

    transformer_data = pickle.load(
        open(os.path.join(args.data_dir, transfomer_data), 'rb'))

    es_history_config = EsConfig(**configuration['elasticsearch']['history'])
    es_probability_config = EsConfig(
        **configuration['elasticsearch']['probability'])
    es_rul_config = EsConfig(**configuration['elasticsearch']['rul'])

    for model_name, configuration in configuration['models'].items():
        configuration['datasource_params']['host'] = es_history_config.host
        configuration['datasource_params'][
            'index_name'] = es_history_config.index_name
        configuration['datasource_params']['start_date'] = start_date
        configuration['datasource_params']['end_date'] = end_date

        configuration['transformer_params']['X_min'] = transformer_data[
            'X_min']
        configuration['transformer_params']['X_max'] = transformer_data[
            'X_max']