Loading pysen/inout/convert2hdf.py→pysen/inout/converters.py +49 −0 Original line number Diff line number Diff line #!/usr/bin/env python """ a script to convert .echo files to .hfd5 format """ scripts to convert .echo files to/from .hfd5 format """ import argparse Loading @@ -7,27 +7,43 @@ from pysen import version, setup_logger from pysen.inout import convert_files def main(): "the main" parser = argparse.ArgumentParser(description='convert echo file into HDF5') parser.set_defaults(loglevel=1, compression='gzip', out='.', convert='echo', overwrite=False) "run function for the connverters" description="<unknown>" # description='convert NeXus file to old TACO format (or old .echo file to .h5)' parser = argparse.ArgumentParser(description=description) parser.set_defaults(loglevel=1, out='.', converter='to_taco') parser.add_argument('filename', metavar='file', nargs='+', help='filenames to process') parser.add_argument('--outdir', '-o', dest='out', help='set output directory (default %(default)s)') parser.add_argument('--force','-f', dest='overwrite', action='store_true', help='force conversion, i.e. overwrite existing HDF files') parser.add_argument('--no-compression', '-C', dest='compression', action='store_const', const=None, help='turn off gzip compression') parser.add_argument('--from-taco', '-e', dest='converter', action='store_const', const='from_taco', help='convert from TACO .echo to .h5') parser.add_argument('--verbose', '-v', dest='loglevel', action='count', help='verbose output') parser.add_argument('--quiet', '-q', dest='loglevel', action='store_const', const=0, help='verbose output') parser.add_argument('--version', action='version', version='%(prog)s pysen={version}'.format(version=version(full=True))) # nexus to TACO parser.add_argument('--npix', '-P', type=int, dest='npix', default=32, help='set number of detector pixels (default %(default)s)') parser.add_argument('--ntof', '-T', type=int, dest='ntof', default=42, help='set number of tof channels (default %(default)s)') parser.add_argument('--step', '-S', type=float, dest='step', default=None, help='set precession phase step (default: find it from the NeXus file)') # .echo to .h5 options parser.add_argument('--force','-f', dest='overwrite', action='store_true', default=False, help='force conversion, i.e. overwrite existing HDF files') parser.add_argument('--no-compression', '-C', dest='compression', action='store_const', default='gzip', const=None, help='turn off gzip compression') kwargs = vars(parser.parse_args()) loglevel = kwargs.pop('loglevel') filenames = kwargs.pop('filename') outdir = kwargs.pop('out') setup_logger(loglevel) convert_files(filenames, outdir, **kwargs) args = parser.parse_args() setup_logger(args.loglevel) convert_files(args.filename, args.out, compression=args.compression, overwrite=args.overwrite, converter='from_taco') if __name__ == "__main__": main() pysen/inout/hdf.py +7 −6 Original line number Diff line number Diff line Loading @@ -247,7 +247,6 @@ def convert_to_hdf(filename, outdir, **kwargs): WriterClassType = { 'application/nexus-nse-echo' : EchoWriter, 'application/nexus-nse-diffraction' : DiffractionWriter, 'application/nexus-nse-transmission' : TransmissionWriter } def convert_to_taco(filename, outdir, **kwargs): """convert *.nxs.h5 file into old TACO style echo, translation,diffrun dat file Loading @@ -255,24 +254,26 @@ def convert_to_taco(filename, outdir, **kwargs): file_type = get_nsefiletype(filename) writer_class = WriterClassType.get(file_type, None) if not isinstance(writer_class, type): raise RuntimeError("file {filename} unknown file type {file_type}") raise RuntimeError(f"Unknown file type {file_type}") writer = writer_class() if not writer.read_nexus(filename, **kwargs): return None res = writer.save(outdir=outdir) return res ConverterType = { 'to_taco' : convert_to_taco, 'from_taco' : convert_to_hdf} def convert_files(filenames, outdir, **kwargs): """convert *.nxs.h5 file to/from old TACO style files""" log = logging.getLogger() converter = { 'to_taco' : convert_to_taco, 'from_taco' : convert_to_hdf}.get(kwargs.pop('converter', 'from_taco')) converter = ConverterType.get(kwargs.pop('converter', 'from_taco')) for filename in filenames: try: basename = os.path.basename(filename) outfile = converter(filename, outdir, **kwargs) log.info('converted %s to %s', basename, outfile) except RuntimeError as exc: log.warning("error converting %s: %s", basename, exc) log.warning("error converting %s: (%s)", basename, exc) except OSError as exc: log.warning("error converting %s: %s", basename, exc.strerror) log.warning("error converting %s: (%s)", basename, exc.strerror) pysen/inout/nxs2echo.pydeleted 100755 → 0 +0 −38 Original line number Diff line number Diff line #!/usr/bin/env python """Simple nexus to echo converter Piotr Zolnierczuk, zolnierczukp AT ornl.gov Oak Ridge National Lab, 2024 """ import argparse from pysen import version, setup_logger from pysen.inout import convert_files def main(): "the main" parser = argparse.ArgumentParser(description='convert nxs.h5 files to old TACO format') parser.set_defaults(ntof=42, npix=32, step=None, outdir='.', loglevel=1) parser.add_argument('filename', metavar='file', nargs='+', help='filenames to process') parser.add_argument('--outdir', '-o', dest='out', help='set output directory (default %(default)s)') parser.add_argument('--npix', '-P', type=int, dest='npix', help='set number of detector pixels (default %(default)s)') parser.add_argument('--ntof', '-T', type=int, dest='ntof', help='set number of tof channels (default %(default)s)') parser.add_argument('--step', '-S', type=float, dest='step', help='set precession phase step (default: find it from the NeXus file)') parser.add_argument('--verbose', '-v', dest='loglevel', action='count', help='verbose output') parser.add_argument('--quiet', '-q', dest='loglevel', action='store_const', const=0, help='verbose output') parser.add_argument('--version', action='version', version='%(prog)s pysen={version}'.format(version=version(full=True))) args = parser.parse_args() setup_logger(args.loglevel) convert_files(args.filename, args.out, npix=args.npix, ntof=args.ntof, step=args.step, converter='to_taco') if __name__ == "__main__": main() #EOF pysen/revision.py +2 −2 Original line number Diff line number Diff line Loading @@ -3,8 +3,8 @@ PySEN revision module """ import sys __version__ = "2.1" __release__ = "a1" __date__ = "Feb 27, 2025" __release__ = "a2" __date__ = "Mar 24, 2025" def version(full=False): "get pysen version number" Loading setup.py +5 −3 Original line number Diff line number Diff line Loading @@ -41,12 +41,14 @@ setup( package_dir = { 'pysen': 'pysen' } , entry_points={ 'console_scripts': [ 'convert2hdf = pysen.inout.convert2hdf:main', 'nxs2echo = pysen.inout.nxs2echo:main', 'nseplot = pysen.plot.nseplot:main', 'nxs2echo = pysen.inout.converters:main', # 'nsefilemon = pysen.ui.filemon:main', 'nsesimecho = pysen.ui.pysimecho:main', ] ], #'gui_scripts': [ #] }, scripts = [ 'scripts/pysen_completion', Loading Loading
pysen/inout/convert2hdf.py→pysen/inout/converters.py +49 −0 Original line number Diff line number Diff line #!/usr/bin/env python """ a script to convert .echo files to .hfd5 format """ scripts to convert .echo files to/from .hfd5 format """ import argparse Loading @@ -7,27 +7,43 @@ from pysen import version, setup_logger from pysen.inout import convert_files def main(): "the main" parser = argparse.ArgumentParser(description='convert echo file into HDF5') parser.set_defaults(loglevel=1, compression='gzip', out='.', convert='echo', overwrite=False) "run function for the connverters" description="<unknown>" # description='convert NeXus file to old TACO format (or old .echo file to .h5)' parser = argparse.ArgumentParser(description=description) parser.set_defaults(loglevel=1, out='.', converter='to_taco') parser.add_argument('filename', metavar='file', nargs='+', help='filenames to process') parser.add_argument('--outdir', '-o', dest='out', help='set output directory (default %(default)s)') parser.add_argument('--force','-f', dest='overwrite', action='store_true', help='force conversion, i.e. overwrite existing HDF files') parser.add_argument('--no-compression', '-C', dest='compression', action='store_const', const=None, help='turn off gzip compression') parser.add_argument('--from-taco', '-e', dest='converter', action='store_const', const='from_taco', help='convert from TACO .echo to .h5') parser.add_argument('--verbose', '-v', dest='loglevel', action='count', help='verbose output') parser.add_argument('--quiet', '-q', dest='loglevel', action='store_const', const=0, help='verbose output') parser.add_argument('--version', action='version', version='%(prog)s pysen={version}'.format(version=version(full=True))) # nexus to TACO parser.add_argument('--npix', '-P', type=int, dest='npix', default=32, help='set number of detector pixels (default %(default)s)') parser.add_argument('--ntof', '-T', type=int, dest='ntof', default=42, help='set number of tof channels (default %(default)s)') parser.add_argument('--step', '-S', type=float, dest='step', default=None, help='set precession phase step (default: find it from the NeXus file)') # .echo to .h5 options parser.add_argument('--force','-f', dest='overwrite', action='store_true', default=False, help='force conversion, i.e. overwrite existing HDF files') parser.add_argument('--no-compression', '-C', dest='compression', action='store_const', default='gzip', const=None, help='turn off gzip compression') kwargs = vars(parser.parse_args()) loglevel = kwargs.pop('loglevel') filenames = kwargs.pop('filename') outdir = kwargs.pop('out') setup_logger(loglevel) convert_files(filenames, outdir, **kwargs) args = parser.parse_args() setup_logger(args.loglevel) convert_files(args.filename, args.out, compression=args.compression, overwrite=args.overwrite, converter='from_taco') if __name__ == "__main__": main()
pysen/inout/hdf.py +7 −6 Original line number Diff line number Diff line Loading @@ -247,7 +247,6 @@ def convert_to_hdf(filename, outdir, **kwargs): WriterClassType = { 'application/nexus-nse-echo' : EchoWriter, 'application/nexus-nse-diffraction' : DiffractionWriter, 'application/nexus-nse-transmission' : TransmissionWriter } def convert_to_taco(filename, outdir, **kwargs): """convert *.nxs.h5 file into old TACO style echo, translation,diffrun dat file Loading @@ -255,24 +254,26 @@ def convert_to_taco(filename, outdir, **kwargs): file_type = get_nsefiletype(filename) writer_class = WriterClassType.get(file_type, None) if not isinstance(writer_class, type): raise RuntimeError("file {filename} unknown file type {file_type}") raise RuntimeError(f"Unknown file type {file_type}") writer = writer_class() if not writer.read_nexus(filename, **kwargs): return None res = writer.save(outdir=outdir) return res ConverterType = { 'to_taco' : convert_to_taco, 'from_taco' : convert_to_hdf} def convert_files(filenames, outdir, **kwargs): """convert *.nxs.h5 file to/from old TACO style files""" log = logging.getLogger() converter = { 'to_taco' : convert_to_taco, 'from_taco' : convert_to_hdf}.get(kwargs.pop('converter', 'from_taco')) converter = ConverterType.get(kwargs.pop('converter', 'from_taco')) for filename in filenames: try: basename = os.path.basename(filename) outfile = converter(filename, outdir, **kwargs) log.info('converted %s to %s', basename, outfile) except RuntimeError as exc: log.warning("error converting %s: %s", basename, exc) log.warning("error converting %s: (%s)", basename, exc) except OSError as exc: log.warning("error converting %s: %s", basename, exc.strerror) log.warning("error converting %s: (%s)", basename, exc.strerror)
pysen/inout/nxs2echo.pydeleted 100755 → 0 +0 −38 Original line number Diff line number Diff line #!/usr/bin/env python """Simple nexus to echo converter Piotr Zolnierczuk, zolnierczukp AT ornl.gov Oak Ridge National Lab, 2024 """ import argparse from pysen import version, setup_logger from pysen.inout import convert_files def main(): "the main" parser = argparse.ArgumentParser(description='convert nxs.h5 files to old TACO format') parser.set_defaults(ntof=42, npix=32, step=None, outdir='.', loglevel=1) parser.add_argument('filename', metavar='file', nargs='+', help='filenames to process') parser.add_argument('--outdir', '-o', dest='out', help='set output directory (default %(default)s)') parser.add_argument('--npix', '-P', type=int, dest='npix', help='set number of detector pixels (default %(default)s)') parser.add_argument('--ntof', '-T', type=int, dest='ntof', help='set number of tof channels (default %(default)s)') parser.add_argument('--step', '-S', type=float, dest='step', help='set precession phase step (default: find it from the NeXus file)') parser.add_argument('--verbose', '-v', dest='loglevel', action='count', help='verbose output') parser.add_argument('--quiet', '-q', dest='loglevel', action='store_const', const=0, help='verbose output') parser.add_argument('--version', action='version', version='%(prog)s pysen={version}'.format(version=version(full=True))) args = parser.parse_args() setup_logger(args.loglevel) convert_files(args.filename, args.out, npix=args.npix, ntof=args.ntof, step=args.step, converter='to_taco') if __name__ == "__main__": main() #EOF
pysen/revision.py +2 −2 Original line number Diff line number Diff line Loading @@ -3,8 +3,8 @@ PySEN revision module """ import sys __version__ = "2.1" __release__ = "a1" __date__ = "Feb 27, 2025" __release__ = "a2" __date__ = "Mar 24, 2025" def version(full=False): "get pysen version number" Loading
setup.py +5 −3 Original line number Diff line number Diff line Loading @@ -41,12 +41,14 @@ setup( package_dir = { 'pysen': 'pysen' } , entry_points={ 'console_scripts': [ 'convert2hdf = pysen.inout.convert2hdf:main', 'nxs2echo = pysen.inout.nxs2echo:main', 'nseplot = pysen.plot.nseplot:main', 'nxs2echo = pysen.inout.converters:main', # 'nsefilemon = pysen.ui.filemon:main', 'nsesimecho = pysen.ui.pysimecho:main', ] ], #'gui_scripts': [ #] }, scripts = [ 'scripts/pysen_completion', Loading