Skip to content
Snippets Groups Projects
Commit 9eb18412 authored by Markus Mirz's avatar Markus Mirz
Browse files

addded new dpsim read function for real and imaginary vars

parent 044c9f3c
No related branches found
No related tags found
No related merge requests found
......@@ -181,3 +181,57 @@ def read_timeseries_dpsim_cmpl_separate(filename, timeseries_names=None):
for result in timeseries_list:
print(result.name)
return timeseries_list
def read_timeseries_dpsim(filename, timeseries_names=None):
"""Reads complex time series data from DPsim log file. Real and
imaginary part are stored in one complex variable.
:param filename: name of the csv file that has the data
:param timeseries_names: column name which should be read
:return: list of Timeseries objects
"""
pd_df = pd.read_csv(filename)
timeseries_list = []
cmpl_result_columns = []
real_result_columns = []
if timeseries_names is None:
# No column names specified, thus read in all and strip off spaces
pd_df.rename(columns=lambda x: x.strip(), inplace=True)
column_names = list(pd_df.columns.values)
# Remove timestamps column name and store separately
column_names.remove('time')
timestamps = pd_df.iloc[:, 0]
# Find real and complex variable names
real_string = '_re'
imaginary_string = '_im'
for column in column_names:
if real_string in column:
tmp = column.replace(real_string, '')
cmpl_result_columns.append(tmp)
#print("Found complex variable: " + tmp)
elif not imaginary_string in column:
real_result_columns.append(column)
#print("Found real variable: " + column)
for column in cmpl_result_columns:
timeseries_list.append(
TimeSeries(column, timestamps,
np.vectorize(complex)(pd_df[column + real_string],
pd_df[column + imaginary_string])))
for column in real_result_columns:
timeseries_list.append(
TimeSeries(column, timestamps, pd_df[column]))
else:
# Read in specified time series
print('cannot read specified columns yet')
print('DPsim results real column names: ' + str(real_result_columns))
print('DPsim results complex column names: ' + str(cmpl_result_columns))
print('DPsim results variable number: ' + str(len(timeseries_list)))
print('DPsim results length: ' + str(len(timestamps)))
return timeseries_list
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment