[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]):
|
for j in range(nb_stellar[i]):
|
||||||
line_stellar = logfile.readline().split()
|
line_stellar = logfile.readline().split()
|
||||||
current_line += 1
|
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])
|
mass = float(line_stellar[3])
|
||||||
time = float(line_stellar[4])
|
time = float(line_stellar[4])
|
||||||
lifetime = float(line_stellar[5])
|
lifetime = float(line_stellar[5])
|
||||||
@@ -300,7 +303,6 @@ class StudyProcessor(Aggregator, HDF5Container):
|
|||||||
),
|
),
|
||||||
"WARNING",
|
"WARNING",
|
||||||
)
|
)
|
||||||
raise
|
|
||||||
logfile.close()
|
logfile.close()
|
||||||
return stellar_objects
|
return stellar_objects
|
||||||
|
|
||||||
@@ -399,7 +401,7 @@ class StudyProcessor(Aggregator, HDF5Container):
|
|||||||
logs = glob.glob(glob_str)
|
logs = glob.glob(glob_str)
|
||||||
return logs
|
return logs
|
||||||
|
|
||||||
def _from_log(self, keys, extractor):
|
def _from_log(self, keys, extractor, unique=False):
|
||||||
|
|
||||||
# Initialize series
|
# Initialize series
|
||||||
series = {}
|
series = {}
|
||||||
@@ -416,7 +418,15 @@ class StudyProcessor(Aggregator, HDF5Container):
|
|||||||
|
|
||||||
# Parse files
|
# Parse files
|
||||||
for log_filename in log_files:
|
for log_filename in log_files:
|
||||||
|
size = len(series["time"][run])
|
||||||
series = extractor(series, log_filename, 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
|
# Numpify the lists
|
||||||
for key in series:
|
for key in series:
|
||||||
|
|||||||
Reference in New Issue
Block a user