Source code for nxtomomill.app.fscan2nx
import sys
import logging
import argparse
from nxtomomill.converter.fscan.fscanconverter import from_fscan_to_nx
_logger = logging.getLogger(__name__)
[docs]def main(argv):
parser = argparse.ArgumentParser(
description="convert fscan dataset to nexus format. "
)
parser.add_argument(
"input_file",
help="Path to the master file of the acquisition, containing entries '1.1', '2.1', etc",
default=None,
nargs="?",
)
parser.add_argument(
"output_file",
help="Path to the output NX file",
default=None,
nargs="?",
)
parser.add_argument(
"--halftomo",
help="Whether to enable extended-field-of-view mode (half-tomography). Default is False.",
dest="halftomo",
action="store_true",
default=False,
)
parser.add_argument(
"--ignore_last_n_projections",
"--ignore-last-n-projections",
default=0,
help="Number of projections to ignore in the end of each series of projections",
)
parser.add_argument(
"--detector-name",
"--detector_name",
default="pcoedgehs",
help="Detector name. Default is pcoedgehs.",
)
parser.add_argument(
"--rot_motor_name",
"--rot-motor-name",
default="hrrz",
help="Rotation motor name. Default is hrrz.",
)
parser.add_argument("--energy", default=None, help="Incident beam energy in keV")
parser.add_argument(
"--distance", default=None, help="Sample-detector distance in meters"
)
options = parser.parse_args(argv[1:])
if options.input_file is None or options.output_file is None:
_logger.error("Need input file and output file. Type --help to see options")
sys.exit(0)
energy = options.energy
distance = options.distance
if energy is not None:
energy = float(energy)
if distance is not None:
distance = float(distance)
from_fscan_to_nx(
options.input_file,
options.output_file,
detector_name=options.detector_name,
rotation_motor_name=options.rot_motor_name,
halftomo=options.halftomo,
ignore_last_n_projections=options.ignore_last_n_projections,
energy=energy,
distance=distance,
)
if __name__ == "__main__":
main(sys.argv)