Loading pysen/revision.py +9 −5 Original line number Diff line number Diff line Loading @@ -2,9 +2,9 @@ PySEN revision module """ import sys __version__ = "0.7.5" __version__ = "0.7.6" __release__ = "dev1" __date__ = "Feb 14, 2019" __date__ = "Feb 15, 2019" # VERSION = __version__ RELEASE = __release__ Loading @@ -26,10 +26,14 @@ CREDITS = [] def version(full=False): "get pysen version number" if __release__ == 'release': ver = "%s" % __version__ else: ver = "%s.%s" % (__version__, __release__) if full: py_ver = " Python %s.%s" % (sys.version_info.major, sys.version_info.minor) return "%s-%s (%s) %s" % (__version__, __release__, __date__, py_ver) return "%s-%s" % (__version__, __release__) ver = "%s (%s) %s" % (ver, __date__, py_ver) return ver # EOF scripts/nseplot.py +69 −30 Original line number Diff line number Diff line Loading @@ -219,7 +219,7 @@ def echo_plot(hdfile, iecho=0, **kwargs): # center_only = kwargs.pop('center_only', False) # npix = kwargs.pop('npix', 2) # pix npix = kwargs.pop('npix', 4) # pix # tbin1 = kwargs.pop('tbin1',0) # TOF bins tbin2 = kwargs.pop('tbin2',None) Loading Loading @@ -248,10 +248,12 @@ def echo_plot(hdfile, iecho=0, **kwargs): nph = n_idx['dn'] if center_only: ntaus = 1 ntaus = 0 for echo in list(hdfile['/data'].values()): if not iecho or echo.attrs['id'] == iecho: ntaus = ntaus + 1 if ntaus>1: ntaus = ntaus + 1 # resolution curve nxtau, nytau = get_nsubplots(ntaus) fig0 = plt.figure(figsize=(8,8)) fig0.suptitle(r'%s | %s' % (sample, base)) Loading Loading @@ -396,12 +398,11 @@ def echo_plot(hdfile, iecho=0, **kwargs): fig.suptitle(r'%s | %s | $\lambda$=%.2g$\AA$ $Q$=%.3f$\AA^{-1}$ $\tau$=%.3gns' % (sample, base, lam0/ANGSTROM, q0,tau0)) if center_only: if center_only and ntaus>1: # figr = plt.figure(figsize=(8,8)) # figr.suptitle(r'%s | %s' % (sample, base)) ax = fig0.add_subplot(nxtau,nytau,ntaus) res = np.asarray(resolution) print(res) ax.plot(res[:,0],res[:,1], '.--') ax.set_xscale('log') ax.set_yscale('log') Loading @@ -409,27 +410,46 @@ def echo_plot(hdfile, iecho=0, **kwargs): ax.grid(True) def setup_logger(loglevel): "setup logger" #normalize loglevel 0=ERR, 1=WARN, 2=INFO, 3=DEBUG loglvldict= { 0: logging.ERROR, 1: logging.WARNING, 2: logging.INFO, 3: logging.DEBUG, } if loglevel<0: loglevel=0 elif loglevel>3: loglevel=3 loglevel = loglvldict.get(loglevel, logging.INFO) #print(loglevel) if loglevel==logging.INFO: log_format=r'%(message)s' else: log_format=r'%(levelname)s: %(funcName)s: %(message)s' logging.basicConfig(level=loglevel, format=log_format) return logging.getLogger() def main(): "the main" import argparse plot_action = dict(echo=echo_plot,atari=atari_plot, bfield=magnetic_fields_plot) description = "SNS NSE plotting tool" parser = argparse.ArgumentParser(description='echo plot') parser.set_defaults(loglevel=logging.INFO, outdir='.', plot='echo', tbin1=0, tbin2=None, tau=0) parser.add_argument('file', metavar='filename', help='file to process', nargs='+') parser.add_argument('--plot', '-p', dest='plot', choices=['echo', 'atari', 'bfield']) parser.add_argument('--atari', dest='plot', action='store_const', const='atari') parser.add_argument('--bfield', dest='plot', action='store_const', const='bfield') parser.add_argument('--echo' , dest='plot', action='store_const', const='echo') grp_echo = parser.add_argument_group('echo', 'echo plotting') grp_echo.add_argument('--center-only', '-C', dest='center_only', action='store_true', default=False, help='show only center patch') grp_echo.add_argument('--only-echo', dest='only_echo', action='store_true', default=False, help='show only echo (no up/down)') parser_top = argparse.ArgumentParser(description=description) parser_top.add_argument('--version', '-V', action='version', version='%(prog)s pysen={version}'.format(version=version(full=True))) subparsers = parser_top.add_subparsers(dest='what', required=True, help='what to plot') # common arguments parser = argparse.ArgumentParser(add_help=False) parser.set_defaults(loglevel=1, outdir='.', tbin1=0, tbin2=None, tau=0, npix=4, center_only=False, max_chi2=1e3) parser.add_argument('file', metavar='filename', help='file to process', nargs='+') parser.add_argument('--tau', '-t', dest='tau', type=int, help='set tau to display (default=%(default)s)') parser.add_argument('--t1' , '-b', dest='tbin1', type=int, Loading @@ -438,21 +458,40 @@ def main(): help='set max TOF bin (default=%(default)s)') parser.add_argument('--save-file', '-s', dest='savefile', help='save figure to a file (do not show)') parser.add_argument('--verbose', '-v', dest='loglevel', action='store_const', const=logging.DEBUG, help='verbose output') parser.add_argument('--quiet', '-q', dest='loglevel', action='store_const', const=logging.WARNING, help='verbose output') # mutually exclusive [ -v | -q ] group_vrb = parser.add_mutually_exclusive_group() group_vrb.add_argument('--verbose', '-v', dest='loglevel', action='count', help='verbose output') group_vrb.add_argument('--quiet', '-q', dest='loglevel', action='store_const', const=0, help='verbose output') # version option parser.add_argument('--version', '-V', action='version', version='%(prog)s pysen={version}'.format(version=version(full=True))) args = parser.parse_args() if args.loglevel>=logging.INFO: log_format=r'%(message)s' else: log_format=r'%(levelname)s: %(funcName)s: %(message)s' # echo plot parser_echo = subparsers.add_parser('echo', help='plot echo', parents=[parser]) grp_echo = parser_echo.add_argument_group('echo plot options') grp_echo.add_argument('--num-pix', '-N', dest='npix', type=int, help='set pixel binning (default=%(default)s)') grp_echo.add_argument('--center-only', '-C', dest='center_only', action='store_true', help='show only center patch') # atari plot parser_atari = subparsers.add_parser('atari', help='atari plot', parents=[parser]) grp_atari = parser_atari.add_argument_group('atari plot options') grp_atari.add_argument('--only-echo', dest='only_echo', action='store_true', help='show only echo (no up/down)') # magnetic field parser_bfield = subparsers.add_parser('bfield', help='plot magnetic fields', parents=[parser]) grp_bfield = parser_bfield.add_argument_group('magnetic field plot options') grp_bfield.add_argument('--max-chi2', dest='max_chi2', type=float, default=1e-2, help='set max chi-square (default=%(default)s)') args = parser_top.parse_args() logging.basicConfig(level=args.loglevel, format=log_format) log = logging.getLogger() log = setup_logger(args.loglevel) log.debug('program arguments %s', args) if args.savefile: plt.switch_backend('Agg') Loading @@ -466,7 +505,7 @@ def main(): else: hfile = filename with h5py.File(hfile, 'r') as hdf5file: plot_action[args.plot](hdf5file, iecho=args.tau, **kwargs) plot_action[args.what](hdf5file, iecho=args.tau, **kwargs) if args.savefile: plt.savefig(basename+'-'+args.savefile) if not args.savefile: Loading Loading
pysen/revision.py +9 −5 Original line number Diff line number Diff line Loading @@ -2,9 +2,9 @@ PySEN revision module """ import sys __version__ = "0.7.5" __version__ = "0.7.6" __release__ = "dev1" __date__ = "Feb 14, 2019" __date__ = "Feb 15, 2019" # VERSION = __version__ RELEASE = __release__ Loading @@ -26,10 +26,14 @@ CREDITS = [] def version(full=False): "get pysen version number" if __release__ == 'release': ver = "%s" % __version__ else: ver = "%s.%s" % (__version__, __release__) if full: py_ver = " Python %s.%s" % (sys.version_info.major, sys.version_info.minor) return "%s-%s (%s) %s" % (__version__, __release__, __date__, py_ver) return "%s-%s" % (__version__, __release__) ver = "%s (%s) %s" % (ver, __date__, py_ver) return ver # EOF
scripts/nseplot.py +69 −30 Original line number Diff line number Diff line Loading @@ -219,7 +219,7 @@ def echo_plot(hdfile, iecho=0, **kwargs): # center_only = kwargs.pop('center_only', False) # npix = kwargs.pop('npix', 2) # pix npix = kwargs.pop('npix', 4) # pix # tbin1 = kwargs.pop('tbin1',0) # TOF bins tbin2 = kwargs.pop('tbin2',None) Loading Loading @@ -248,10 +248,12 @@ def echo_plot(hdfile, iecho=0, **kwargs): nph = n_idx['dn'] if center_only: ntaus = 1 ntaus = 0 for echo in list(hdfile['/data'].values()): if not iecho or echo.attrs['id'] == iecho: ntaus = ntaus + 1 if ntaus>1: ntaus = ntaus + 1 # resolution curve nxtau, nytau = get_nsubplots(ntaus) fig0 = plt.figure(figsize=(8,8)) fig0.suptitle(r'%s | %s' % (sample, base)) Loading Loading @@ -396,12 +398,11 @@ def echo_plot(hdfile, iecho=0, **kwargs): fig.suptitle(r'%s | %s | $\lambda$=%.2g$\AA$ $Q$=%.3f$\AA^{-1}$ $\tau$=%.3gns' % (sample, base, lam0/ANGSTROM, q0,tau0)) if center_only: if center_only and ntaus>1: # figr = plt.figure(figsize=(8,8)) # figr.suptitle(r'%s | %s' % (sample, base)) ax = fig0.add_subplot(nxtau,nytau,ntaus) res = np.asarray(resolution) print(res) ax.plot(res[:,0],res[:,1], '.--') ax.set_xscale('log') ax.set_yscale('log') Loading @@ -409,27 +410,46 @@ def echo_plot(hdfile, iecho=0, **kwargs): ax.grid(True) def setup_logger(loglevel): "setup logger" #normalize loglevel 0=ERR, 1=WARN, 2=INFO, 3=DEBUG loglvldict= { 0: logging.ERROR, 1: logging.WARNING, 2: logging.INFO, 3: logging.DEBUG, } if loglevel<0: loglevel=0 elif loglevel>3: loglevel=3 loglevel = loglvldict.get(loglevel, logging.INFO) #print(loglevel) if loglevel==logging.INFO: log_format=r'%(message)s' else: log_format=r'%(levelname)s: %(funcName)s: %(message)s' logging.basicConfig(level=loglevel, format=log_format) return logging.getLogger() def main(): "the main" import argparse plot_action = dict(echo=echo_plot,atari=atari_plot, bfield=magnetic_fields_plot) description = "SNS NSE plotting tool" parser = argparse.ArgumentParser(description='echo plot') parser.set_defaults(loglevel=logging.INFO, outdir='.', plot='echo', tbin1=0, tbin2=None, tau=0) parser.add_argument('file', metavar='filename', help='file to process', nargs='+') parser.add_argument('--plot', '-p', dest='plot', choices=['echo', 'atari', 'bfield']) parser.add_argument('--atari', dest='plot', action='store_const', const='atari') parser.add_argument('--bfield', dest='plot', action='store_const', const='bfield') parser.add_argument('--echo' , dest='plot', action='store_const', const='echo') grp_echo = parser.add_argument_group('echo', 'echo plotting') grp_echo.add_argument('--center-only', '-C', dest='center_only', action='store_true', default=False, help='show only center patch') grp_echo.add_argument('--only-echo', dest='only_echo', action='store_true', default=False, help='show only echo (no up/down)') parser_top = argparse.ArgumentParser(description=description) parser_top.add_argument('--version', '-V', action='version', version='%(prog)s pysen={version}'.format(version=version(full=True))) subparsers = parser_top.add_subparsers(dest='what', required=True, help='what to plot') # common arguments parser = argparse.ArgumentParser(add_help=False) parser.set_defaults(loglevel=1, outdir='.', tbin1=0, tbin2=None, tau=0, npix=4, center_only=False, max_chi2=1e3) parser.add_argument('file', metavar='filename', help='file to process', nargs='+') parser.add_argument('--tau', '-t', dest='tau', type=int, help='set tau to display (default=%(default)s)') parser.add_argument('--t1' , '-b', dest='tbin1', type=int, Loading @@ -438,21 +458,40 @@ def main(): help='set max TOF bin (default=%(default)s)') parser.add_argument('--save-file', '-s', dest='savefile', help='save figure to a file (do not show)') parser.add_argument('--verbose', '-v', dest='loglevel', action='store_const', const=logging.DEBUG, help='verbose output') parser.add_argument('--quiet', '-q', dest='loglevel', action='store_const', const=logging.WARNING, help='verbose output') # mutually exclusive [ -v | -q ] group_vrb = parser.add_mutually_exclusive_group() group_vrb.add_argument('--verbose', '-v', dest='loglevel', action='count', help='verbose output') group_vrb.add_argument('--quiet', '-q', dest='loglevel', action='store_const', const=0, help='verbose output') # version option parser.add_argument('--version', '-V', action='version', version='%(prog)s pysen={version}'.format(version=version(full=True))) args = parser.parse_args() if args.loglevel>=logging.INFO: log_format=r'%(message)s' else: log_format=r'%(levelname)s: %(funcName)s: %(message)s' # echo plot parser_echo = subparsers.add_parser('echo', help='plot echo', parents=[parser]) grp_echo = parser_echo.add_argument_group('echo plot options') grp_echo.add_argument('--num-pix', '-N', dest='npix', type=int, help='set pixel binning (default=%(default)s)') grp_echo.add_argument('--center-only', '-C', dest='center_only', action='store_true', help='show only center patch') # atari plot parser_atari = subparsers.add_parser('atari', help='atari plot', parents=[parser]) grp_atari = parser_atari.add_argument_group('atari plot options') grp_atari.add_argument('--only-echo', dest='only_echo', action='store_true', help='show only echo (no up/down)') # magnetic field parser_bfield = subparsers.add_parser('bfield', help='plot magnetic fields', parents=[parser]) grp_bfield = parser_bfield.add_argument_group('magnetic field plot options') grp_bfield.add_argument('--max-chi2', dest='max_chi2', type=float, default=1e-2, help='set max chi-square (default=%(default)s)') args = parser_top.parse_args() logging.basicConfig(level=args.loglevel, format=log_format) log = logging.getLogger() log = setup_logger(args.loglevel) log.debug('program arguments %s', args) if args.savefile: plt.switch_backend('Agg') Loading @@ -466,7 +505,7 @@ def main(): else: hfile = filename with h5py.File(hfile, 'r') as hdf5file: plot_action[args.plot](hdf5file, iecho=args.tau, **kwargs) plot_action[args.what](hdf5file, iecho=args.tau, **kwargs) if args.savefile: plt.savefig(basename+'-'+args.savefile) if not args.savefile: Loading