Skip to content

Commit 4779569

Browse files
committed
update the way parameter and simulation data files are loaded
1 parent 9cb6bae commit 4779569

483 files changed

Lines changed: 143 additions & 20 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

grainlearning/dynamic_systems.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -507,23 +507,18 @@ def get_sim_data_files(self):
507507
"""
508508
Get the simulation data files from the simulation data directory.
509509
"""
510-
mag = floor(log(self.num_samples, 10)) + 1
511-
self.sim_data_files = []
510+
if self.sim_data_file_ext == '.txt':
511+
files = glob(self.sim_data_dir + f'/iter{self.curr_iter}/{self.sim_name}*_sim*{self.sim_data_file_ext}')
512+
# Sort sim_data_files
513+
self.sim_data_files = sorted(files, key=lambda x: int(x.split('_Sample')[-1].split('_sim')[0]))
512514

513-
for i in range(self.num_samples):
514-
if self.sim_data_file_ext != '.npy':
515-
sim_data_file_ext = '_sim' + self.sim_data_file_ext
516-
else:
517-
sim_data_file_ext = self.sim_data_file_ext
518-
file_name = self.sim_data_dir.rstrip('/') + f'/iter{self.curr_iter}/{self.sim_name}*Iter{self.curr_iter}*' \
519-
+ str(i).zfill(mag) + '*' + sim_data_file_ext
520-
files = glob(file_name)
515+
elif self.sim_data_file_ext == '.npy':
516+
files = glob(self.sim_data_dir + f'/iter{self.curr_iter}/{self.sim_name}*_Sample*{self.sim_data_file_ext}')
517+
# Sort sim_data_files
518+
self.sim_data_files = sorted(files, key=lambda x: int(x.split('_Sample')[-1].split(self.sim_data_file_ext)[0]))
521519

522-
if not files:
523-
raise RuntimeError("No data files with name " + file_name + ' found')
524-
if len(files) > 1:
525-
raise RuntimeError("Found more than one files with the name " + file_name)
526-
self.sim_data_files.append(files[0])
520+
if len(self.sim_data_files) != self.num_samples:
521+
raise RuntimeError(f'Number of simulation data files found ({len(self.sim_data_files)}) does not match the expected number of samples ({self.num_samples})')
527522

528523
def load_sim_data(self):
529524
"""Load the simulation data from the simulation data files.
@@ -552,17 +547,22 @@ def load_param_data(self):
552547
"""
553548
Load parameter data from a table written in a text file.
554549
"""
550+
# get parameter data files
551+
if self.sim_data_file_ext == '.txt':
552+
files = glob(self.sim_data_dir + f'/iter{self.curr_iter}/{self.sim_name}*_Sample*_param*{self.sim_data_file_ext}')
553+
elif self.sim_data_file_ext == '.npy':
554+
files = glob(self.sim_data_dir + f'/iter{self.curr_iter}/{self.sim_name}*_Sample*{self.sim_data_file_ext}')
555555
if os.path.exists(self.param_data_file):
556556
# we assume parameter data are always in the last columns.
557557
self.param_data = np.genfromtxt(self.param_data_file, comments='!')[:, -self.num_params:]
558558
self.num_samples = self.param_data.shape[0]
559-
else:
560-
# if param_data_file does not exit, get parameter data from text files
561-
files = glob(self.sim_data_dir + f'/iter{self.curr_iter}/{self.sim_name}*_param*{self.sim_data_file_ext}')
559+
560+
# if param_data_file does not exit or the number of files found does not match num_samples, recover parameter data from text files
561+
if os.path.exists(self.param_data_file) is False or len(files) != self.num_samples:
562562
self.num_samples = len(files)
563563
# if the number of files found is non-zero
564564
if self.num_samples != 0:
565-
self.sim_data_files = sorted(files)
565+
self.sim_data_files = sorted(files, key=lambda x: int(x.split('_Sample')[-1].split('_param')[0]))
566566
self.param_data = np.zeros([self.num_samples, self.num_params])
567567
for i, sim_data_file in enumerate(self.sim_data_files):
568568
if self.sim_data_file_ext == '.npy':

tests/data/linear_sim_data/iter0/linear_Iter0-Sample00.npy renamed to tests/data/linear_sim_data/iter0/linear_Iter0_Sample00.npy

File renamed without changes.

tests/data/linear_sim_data/iter0/linear_Iter0-Sample01.npy renamed to tests/data/linear_sim_data/iter0/linear_Iter0_Sample01.npy

File renamed without changes.

tests/data/linear_sim_data/iter0/linear_Iter0-Sample02.npy renamed to tests/data/linear_sim_data/iter0/linear_Iter0_Sample02.npy

File renamed without changes.

tests/data/linear_sim_data/iter0/linear_Iter0-Sample03.npy renamed to tests/data/linear_sim_data/iter0/linear_Iter0_Sample03.npy

File renamed without changes.

tests/data/linear_sim_data/iter0/linear_Iter0-Sample04.npy renamed to tests/data/linear_sim_data/iter0/linear_Iter0_Sample04.npy

File renamed without changes.

tests/data/linear_sim_data/iter0/linear_Iter0-Sample05.npy renamed to tests/data/linear_sim_data/iter0/linear_Iter0_Sample05.npy

File renamed without changes.

tests/data/linear_sim_data/iter0/linear_Iter0-Sample06.npy renamed to tests/data/linear_sim_data/iter0/linear_Iter0_Sample06.npy

File renamed without changes.

tests/data/linear_sim_data/iter0/linear_Iter0-Sample07.npy renamed to tests/data/linear_sim_data/iter0/linear_Iter0_Sample07.npy

File renamed without changes.

tests/data/linear_sim_data/iter0/linear_Iter0-Sample08.npy renamed to tests/data/linear_sim_data/iter0/linear_Iter0_Sample08.npy

File renamed without changes.

0 commit comments

Comments
 (0)