Skip to content

Commit 07cd3ec

Browse files
committed
renamed parameters and added output directory parameter. Added functionality for getting data type from file extension
1 parent 6fb2879 commit 07cd3ec

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

Diff for: diffpy/snmf/io.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,10 @@ def load_input_signals(file_path=None):
101101
values_list = []
102102
grid_list = []
103103
current_grid = []
104+
file_extension = ""
104105
for item in directory_path.iterdir():
105106
if item.is_file():
107+
file_extension = Path(item).suffix
106108
data = loadData(item.resolve())
107109
if len(current_grid) != 0 and (current_grid != data[:, 0]).any():
108110
print(f"{item.name} was ignored as it is not on a compatible grid.")
@@ -115,4 +117,10 @@ def load_input_signals(file_path=None):
115117
grid_array = np.column_stack(grid_list)
116118
grid_vector = np.unique(grid_array, axis=1)
117119
values_array = np.column_stack(values_list)
118-
return grid_vector, values_array
120+
if file_extension in {'.gr','.chi'}:
121+
data_type = 'pdf'
122+
elif file_extension in {'iq','.xy','.xye','.xrd'}:
123+
data_type = 'xrd'
124+
else:
125+
data_type = None
126+
return grid_vector, values_array,data_type

Diff for: diffpy/snmf/stretchednmfapp.py

+13-7
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,28 @@ def create_parser():
1010
description="Stretched Nonnegative Matrix Factorization"
1111
)
1212
parser.add_argument('-v', '--version', action='version', help='Print the software version number')
13-
parser.add_argument('-d', '--directory', type=str,
14-
help="Directory containing experimental data. Ensure it is in quotations or apostrophes.")
15-
16-
parser.add_argument('component_number', type=int,
13+
parser.add_argument('-i', '--input-directory', type=str,
14+
help="Directory containing experimental data. Has a default value of None which sets the input as your current working directory.")
15+
parser.add_argument('-o', '--output-directory', type=str,
16+
help="The directory where the results will be dumped. Default behavior will create a new directory named 'smnf_results' inside the input directory.")
17+
parser.add_argument('-t', '--data-type', type=str, choices=['xrd', 'pdf'],
18+
help="The type of the experimental data.")
19+
parser.add_argument('components', type=int,
1720
help="The number of component signals to obtain from experimental "
1821
"data. Must be an integer greater than 0.")
19-
parser.add_argument('data_type', type=str, choices=['xrd', 'pdf'], help="The type of the experimental data.")
2022
args = parser.parse_args()
2123
return args
2224

2325

2426
def main():
2527
args = create_parser()
2628

27-
grid, data_input = load_input_signals(args.directory)
28-
variables = initialize_variables(data_input, args.component_number, args.data_type)
29+
grid, data_input, data_type = load_input_signals(args.input_directory)
30+
if args.data_type is not None:
31+
variables = initialize_variables(data_input, args.components, args.data_type)
32+
else:
33+
variables = initialize_variables(data_input, args.components, data_type)
34+
2935
if variables["data_type"] == 'pdf':
3036
lifted_data = data_input - np.ndarray.min(data_input[:])
3137
maxiter = 300

0 commit comments

Comments
 (0)