diff --git a/dataprocessing/readtools.py b/dataprocessing/readtools.py index 4b6c6d57b65402465405053478b00e624727188e..98445c590efdc3e7ec1b7e6e5f267e188fe47172 100644 --- a/dataprocessing/readtools.py +++ b/dataprocessing/readtools.py @@ -1,8 +1,7 @@ import numpy as np import pandas as pd -from dataprocessing.timeseries import * +from timeseries import * import re -import cmath def read_timeseries_Modelica(filename, timeseries_names=None, is_regex=False): from modelicares import SimRes @@ -30,9 +29,6 @@ def read_timeseries_Modelica(filename, timeseries_names=None, is_regex=False): for name in timeseries_names: timeseries.append(TimeSeries(name, sim(name).times(), sim(name).values())) - #print('Modelica results column names: ' + str(timeseries_names)) - #print('Modelica results number: ' + str(len(timeseries_names))) - return timeseries @@ -265,11 +261,13 @@ def read_timeseries_NEPLAN_loadflow(file_name, timeseries_names=None, is_regex=F pass else: line_del.append(rule_check) + # delete those values that are not needed. line_del = set(line_del) line_del = sorted(line_del) for num_to_del in range(len(line_del)): del timeseries[line_del[len(line_del) - num_to_del - 1]] + return timeseries @@ -336,5 +334,4 @@ def read_timeseries_simulink_loadflow(file_name, timeseries_names=None, is_regex line_del = sorted(line_del) for num_to_del in range(len(line_del)): del timeseries[line_del[len(line_del) - num_to_del - 1]] - return timeseries \ No newline at end of file diff --git a/dataprocessing/validationtools.py b/dataprocessing/validationtools.py index 60296687bee85c8d57d1dfae6693d862f3db643e..6bb6e3b710ac2c662a9e1b0bbd29cbd515cda2b8 100644 --- a/dataprocessing/validationtools.py +++ b/dataprocessing/validationtools.py @@ -1,7 +1,10 @@ #!/usr/bin/python # -*- coding: UTF-8 -*- + import os -from dataprocessing.readtools import * + +from readtools import * + def convert_neplan_to_modelica_timeseries(neplan_timeseries): @@ -94,9 +97,13 @@ def compare_timeseries(ts1, ts2): for j in range(len_limit): if ts1[i].name == ts2[j].name: # Find the same variable timeseries_names.append(ts1[i].name) - timeseries_error.append(TimeSeries.rmse(ts2[j], ts1[i])/ts1[i].values[1]) + if ts1[i].values[0] == 0: + timeseries_error.append(TimeSeries.rmse(ts2[j], ts1[i])) # is it good to do so? + else: + timeseries_error.append(TimeSeries.rmse(ts2[j], ts1[i])/ts1[i].values[0]) + print(ts1[i].name) - print(TimeSeries.rmse(ts2[j], ts1[i])/ts1[i].values[len(ts1[i].values) - 1]) + print(timeseries_error[len(timeseries_error) - 1]) flag_not_found = True if flag_not_found is False: # No such variable in Modelica model, set the error to -1 @@ -116,7 +123,7 @@ def assert_modelia_results(net_name, error): fail_list = [] # List for all the failed test # the limitations are set to 0.5 for name in error.keys(): - if abs(error[name]) > 0.01: + if abs(error[name]) > 0.5: fail_list.append(name) else: print("Test on %s Passed" % name) diff --git a/examples/assertresults/assertresults.py b/examples/assertresults/assertresults.py index 162431724a64a9e36707336f4314b219d9dd333f..b72f31ca468d699a7fac67e5391bd9c0faa783e3 100644 --- a/examples/assertresults/assertresults.py +++ b/examples/assertresults/assertresults.py @@ -2,14 +2,18 @@ import re import os import sys -from dataprocessing.validationtools import * -from dataprocessing.readtools import * +sys.path.append(r"D:\HIWI\Git\data-processing\dataprocessing") +from validationtools import * +from readtools import * +os.chdir(r"D:\HIWI\Git") + print("Test Start") # We need to extract all the result files from git now + for files in os.listdir( os.path.abspath("reference-results/Neplan/BasicGrids")): # Assert the result, model result path read from cmd line - assert_modelia_neplan_results(os.path.splitext(files)[0], + validate_modelica_res(os.path.splitext(files)[0], os.path.abspath("reference-results/Modelica/BasicGrids/" + os.path.splitext(files)[0] + ".mat"), os.path.abspath("reference-results/Neplan/BasicGrids/" +