\(\renewcommand\AA{\unicode{x212B}}\)
Table of Contents
| Name | Direction | Type | Default | Description | 
|---|---|---|---|---|
| InputWorkspace | Input | PeaksWorkspace | Mandatory | An input PeaksWorkspace. | 
| ScalePeaks | Input | number | 1 | Multiply FSQ and sig(FSQ) by scaleFactor | 
| MinDSpacing | Input | number | 0 | Minimum d-spacing (Angstroms) | 
| MinWavelength | Input | number | 0 | Minimum wavelength (Angstroms) | 
| MaxWavelength | Input | number | 100 | Maximum wavelength (Angstroms) | 
| AppendFile | Input | boolean | False | Append to file if true. Use same corrections as file. If false, new file (default). | 
| ApplyAnvredCorrections | Input | boolean | False | Apply anvred corrections to peaks if true. If false, no corrections during save (default). | 
| LinearScatteringCoef | Input | number | Optional | Linear scattering coefficient in 1/cm if not set with SetSampleMaterial | 
| LinearAbsorptionCoef | Input | number | Optional | Linear absorption coefficient at 1.8 Angstroms in 1/cm if not set with SetSampleMaterial | 
| Radius | Input | number | Optional | Radius of the sample in centimeters | 
| PowerLambda | Input | number | 4 | Power of lambda | 
| SpectraFile | Input | string | Spectrum data read from a spectrum file. Allowed extensions: [‘.dat’] | |
| Filename | Input | string | Mandatory | Path to an hkl file to save. Allowed extensions: [‘.hkl’] | 
| SortBy | Input | string | Sort the histograms by bank, run number or both (default). Allowed values: [‘Bank’, ‘RunNumber’, ‘’] | |
| MinIsigI | Input | number | Optional | The minimum I/sig(I) ratio | 
| WidthBorder | Input | number | Optional | Width of border of detectors | 
| MinIntensity | Input | number | Optional | The minimum Intensity | 
| OutputWorkspace | Output | PeaksWorkspace | SaveHKLOutput | Output PeaksWorkspace | 
| HKLDecimalPlaces | Input | number | Optional | Number of decimal places for fractional HKL. Default is integer HKL. | 
| DirectionCosines | Input | boolean | False | Extra columns (22 total) in file if true for direction cosines. If false, original 14 columns (default). | 
| UBFilename | Input | string | Path to an ISAW-style UB matrix text file only needed for DirectionCosines if workspace does not have lattice. Allowed extensions: [‘.mat’, ‘.ub’, ‘.txt’] | 
SaveHKL outputs the peaks with corrections applied in a format that works successfully in GSAS and SHELX. Peaks that have not been integrated and also peaks that were not indexed are removed.
hklFile.write(‘%4d%4d%4d%8.2f%8.2f%4d%8.4f%7.4f%7d%7d%7.4f%4d%9.5f%9.4f\n’% (H, K, L, FSQ, SIGFSQ, hstnum, WL, TBAR, CURHST, SEQNUM, TRANSMISSION, DN, TWOTH, DSP))
HKL is flipped by -1 due to different q convention in ISAW vs Mantid.
FSQ = integrated intensity of peak (scaled)
SIGFSQ = sigma from integrating peak
hstnum = number of sample orientation (starting at 1)
WL = wavelength of peak
TBAR = output of absorption correction (-log(transmission)/mu)
CURHST = run number of sample
SEQNUM = peak number (unique number for each peak in file)
TRANSMISSION = output of absorption correction (exp(-mu*tbar))
DN = detector bank number
TWOTH = two-theta scattering angle
DSP = d-Spacing of peak (Angstroms)/TR
Last line must have all 0’s
Example - a simple example of running SaveHKL.
import os
path = os.path.join(os.path.expanduser("~"), "MyPeaks.hkl")
#load a peaks workspace from file
peaks = LoadIsawPeaks(Filename=r'Peaks5637.integrate')
SaveHKL(peaks, path)
print(os.path.isfile(path))
Output:
True
Example - an example of running SaveHKL with sorting and filtering options.
import os
#load a peaks workspace from file
peaks = LoadIsawPeaks(Filename=r'Peaks5637.integrate')
print("Number of peaks in table {}".format(peaks.rowCount()))
path = os.path.join(os.path.expanduser("~"), "MyPeaks.hkl")
SaveHKL(peaks, path, MinWavelength=0.5, MaxWavelength=2,MinDSpacing=0.2, SortBy='Bank')
peaks = LoadHKL(path)
print("Number of peaks in table {}".format(peaks.rowCount()))
Output:
Number of peaks in table 434
Number of peaks in table 234
Example - SaveHKL with shape from SetSample
import os
path = os.path.join(os.path.expanduser("~"), "MyPeaks.hkl")
# load a peaks workspace from file
peaks = LoadIsawPeaks(Filename=r'SXD23767.peaks')
SetSample(peaks,
          Geometry={'Shape': 'Cylinder', 'Height': 4.0,
                    'Radius': 0.8,
                    'Center': [0.,0.,0.]},
          Material={'ChemicalFormula': 'V', 'SampleNumberDensity': 0.1})
SaveHKL(peaks, path)
print(os.path.isfile(path))
Output:
True
Categories: AlgorithmIndex | Crystal\DataHandling | DataHandling\Text
C++ header: SaveHKL.h (last modified: 2021-03-31)
C++ source: SaveHKL.cpp (last modified: 2021-03-31)