[study] fix stellar parsing
This commit is contained in:
+12
-2
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user