|
70 | 70 | datadir = os.path.join(datadir, 'data') |
71 | 71 | ATOMFILE = os.path.join(datadir, 'Dans Element Properties.txt') |
72 | 72 | PENGFILE = os.path.join(datadir, 'peng.dat') |
| 73 | +WAASKIRF_FILE = os.path.join(datadir, 'f0_WaasKirf.dat') |
73 | 74 | NSLFILE = os.path.join(datadir, 'neutron_isotope_scattering_lengths.dat') |
74 | 75 | NSLFILE_SEARS = os.path.join(datadir, 'neutron_isotope_scattering_lengths_sears.dat') |
75 | 76 | ASFFILE = os.path.join(datadir, 'atomic_scattering_factors.npy') |
| 77 | +XMAFILE = os.path.join(datadir, 'XRayMassAtten_mup.dat') |
76 | 78 |
|
77 | 79 | # List of Elements in order sorted by length of name |
78 | 80 | ELEMENT_LIST = [ |
@@ -879,12 +881,12 @@ def atom_properties(elements=None, fields=None): |
879 | 881 |
|
880 | 882 | if elements is not None: |
881 | 883 | # elements must be a list e.g. ['Co','O'] |
882 | | - elements = np.char.lower(np.asarray(elements).reshape(-1)) |
883 | | - all_elements = [el.lower() for el in data['Element']] |
| 884 | + elements = [str2element(el) for el in np.asarray(elements).reshape(-1)] |
| 885 | + all_elements = data['Element'].tolist() |
884 | 886 | # This will error if the required element doesn't exist |
885 | 887 | try: |
886 | 888 | # regex to remove additional characters |
887 | | - index = [all_elements.index(regex_sub_element.sub('', el)) for el in elements] |
| 889 | + index = [all_elements.index(el) for el in elements] |
888 | 890 | except ValueError as ve: |
889 | 891 | raise Exception('Element not available: %s' % ve) |
890 | 892 | data = data[index] |
@@ -1083,10 +1085,9 @@ def xray_scattering_factor_WaasKirf(element, Qmag=0): |
1083 | 1085 | :return: [m*n] array of scattering factors |
1084 | 1086 | """ |
1085 | 1087 |
|
1086 | | - filename = os.path.join(datadir, 'f0_WaasKirf.dat') |
1087 | | - data = np.loadtxt(filename) |
| 1088 | + data = np.loadtxt(WAASKIRF_FILE) |
1088 | 1089 | # get names |
1089 | | - with open(filename) as f: |
| 1090 | + with open(WAASKIRF_FILE) as f: |
1090 | 1091 | lines = re.findall(r'#S\s+\d+\s+[A-Z].*?\n', f.read()) |
1091 | 1092 | table_names = [line[7:].strip() for line in lines] |
1092 | 1093 |
|
@@ -1215,8 +1216,7 @@ def attenuation(element_z, energy_kev): |
1215 | 1216 | element_z = np.asarray(element_z).reshape(-1) |
1216 | 1217 | energy_kev = np.asarray(energy_kev).reshape(-1) |
1217 | 1218 |
|
1218 | | - xma_file = os.path.join(datadir, 'XRayMassAtten_mup.dat') |
1219 | | - xma_data = np.loadtxt(xma_file) |
| 1219 | + xma_data = np.loadtxt(XMAFILE) |
1220 | 1220 |
|
1221 | 1221 | energies = xma_data[:, 0] / 1000. |
1222 | 1222 | out = np.zeros([len(energy_kev), len(element_z)]) |
|
0 commit comments