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']