11#!/usr/bin/env python
22
3+ import numpy as np
34from diffpy .morph .morphapp import (
45 create_option_parser ,
56 multiple_morphs ,
89)
910
1011
11- def morph (file1 , file2 , ** kwargs ):
12+ def morph (morph_file , target_file , ** kwargs ):
1213 """Run diffpy.morph at Python level.
1314
1415 Parameters
1516 ----------
16- file1 : str
17+ morph_file : str
1718 Path-like object to the file to be morphed.
18- file2 : str
19+ target_file : str
1920 Path-like object to the target file.
2021 kwargs: dict
2122 See the diffpy.morph manual for options.
@@ -33,7 +34,53 @@ def morph(file1, file2, **kwargs):
3334 inputs .append (f"--{ key } " )
3435 inputs .append (f"{ value } " )
3536 (opts , pargs ) = parser .parse_args (inputs )
36- pargs = [file1 , file2 ]
37+ pargs = [morph_file , target_file ]
38+
39+ return single_morph (
40+ parser , opts , pargs , stdout_flag = False , python_wrap = True
41+ )
42+
43+
44+ def morphpy (morph_table , target_table , morph_header , target_header , ** kwargs ):
45+ """Run diffpy.morph at Python level.
46+
47+ Parameters
48+ ----------
49+ morph_table: numpy.array
50+ Two-column array of (r, gr) for morphed function.
51+ target_table: numpy.array
52+ Two-column array of (r, gr) for target function.
53+ morph_header: dict
54+ Any relevant parameters (e.g. wavelength, composition, temperature)
55+ for the morphed function.
56+ target_header: dict
57+ Any relevant parameters for the target ction.
58+ kwargs: dict
59+ See the diffpy.morph manual for options.
60+
61+ Returns
62+ -------
63+ dict:
64+ Summary of morphs.
65+ """
66+
67+ parser = create_option_parser ()
68+
69+ inputs = []
70+ for key , value in kwargs .items ():
71+ inputs .append (f"--{ key } " )
72+ inputs .append (f"{ value } " )
73+ (opts , pargs ) = parser .parse_args (inputs )
74+
75+ morph_table = np .array (morph_table )
76+ target_table = np .array (target_table )
77+
78+ x_morph = morph_table [:, 0 ]
79+ y_morph = morph_table [:, 1 ]
80+ x_target = target_table [:, 0 ]
81+ y_target = target_table [:, 1 ]
82+
83+ pargs = ["Morph" , "Target" , x_morph , y_morph , x_target , y_target ]
3784
3885 return single_morph (
3986 parser , opts , pargs , stdout_flag = False , python_wrap = True
0 commit comments