[study] fix stellar parsing

This commit is contained in:
Noe Brucy
2021-12-14 15:37:20 +01:00
parent 2c6512c719
commit 1eaa7318a3
+12 -2
View File
@@ -283,6 +283,9 @@ class StudyProcessor(Aggregator, HDF5Container):
for j in range(nb_stellar[i]):
line_stellar = logfile.readline().split()
current_line += 1
while line_stellar[0] == "random": # random number outputs are ... random
line_stellar = logfile.readline().split()
current_line += 1
mass = float(line_stellar[3])
time = float(line_stellar[4])
lifetime = float(line_stellar[5])
@@ -300,7 +303,6 @@ class StudyProcessor(Aggregator, HDF5Container):
),
"WARNING",
)
raise
logfile.close()
return stellar_objects
@@ -399,7 +401,7 @@ class StudyProcessor(Aggregator, HDF5Container):
logs = glob.glob(glob_str)
return logs
def _from_log(self, keys, extractor):
def _from_log(self, keys, extractor, unique=False):
# Initialize series
series = {}
@@ -416,7 +418,15 @@ class StudyProcessor(Aggregator, HDF5Container):
# Parse files
for log_filename in log_files:
size = len(series["time"][run])
series = extractor(series, log_filename, run)
if unique:
# Always prefer data from last log, assuming they come in the right order
time = series["time"][run]
time_new = time[size]
ind_overlap = np.searchsorted(time[:size], time_new, side='right')
for key in series:
del series[key][run][ind_overlap:size]
# Numpify the lists
for key in series: