Loading misc/nxs_xyz.py +2 −2 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ import numpy as np import matplotlib.pyplot as plt from pysen.inout.scans import XYZScan from pysen.plot.xyzplotlib import xyz_decomposition, plot_xyz_nexus from pysen.plot.xyzplotlib import plot_xyz_nexus def plot_xyz(filename, **kwargs): scan = XYZScan() Loading Loading @@ -90,7 +90,7 @@ def main(): kwargs = vars(args) filenames = kwargs.pop('filename') for file_name in filenames: plot_xyz(file_name, **kwargs) plot_xyz_nexus(file_name, **kwargs) if args.show: plt.show() Loading pysen/plot/__init__.py +1 −1 Original line number Diff line number Diff line Loading @@ -9,4 +9,4 @@ from .echo import plot_single_echo, echo_plot, atari_plot # NOQA from .histplotlib import plot_var, plot_sc # NOQA from .nseplotlib import ( plot_atari, plot_echo, # NOQA plot_magnetic_fields, plot_map) # NOQA from .xyzplotlib import plot_xyz # NOQA from .xyzplotlib import plot_xyz, plot_xyz_nexus # NOQA pysen/plot/nseplot.py +36 −7 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ from pysen.config import INST_POSITIONS, INST_MODES, DEFAULT_ACCELERATOR_POWER, from pysen.inout import convert_to_hdf from pysen.echo import get_symmetry_phase, make_phase_table from pysen.plot import ( plot_echo, plot_atari, plot_map, plot_xyz, plot_magnetic_fields, plot_xyz, plot_xyz_nexus, plot_magnetic_fields, plot_coverage, plot_diffrun, plot_transmission, plot_datreat, get_colormap) Loading Loading @@ -48,8 +48,8 @@ action_atari = functools.partial(action_default, action=plot_atari) action_maps = functools.partial(action_default, action=plot_map) action_bfield = functools.partial(action_default, action=plot_magnetic_fields) def action_xyz(filenames, **kwargs): "default action for xyz" def action_old_xyz(filenames, **kwargs): "default action for old xyz plot" outdir = kwargs.pop('outdir') overwrite = kwargs.pop('overwrite') savefig = kwargs.pop('savefig') Loading @@ -66,6 +66,16 @@ def action_xyz(filenames, **kwargs): if savefig: plt.savefig(savefig) def action_xyz(filenames, **kwargs): "default action for xyz (new)" _outdir = kwargs.pop('outdir') _overwrite = kwargs.pop('overwrite') savefig = kwargs.pop('savefig') for filename in filenames: plot_xyz_nexus(filename, **kwargs) if savefig: plt.savefig(savefig) def action_diffrun(filenames, **kwargs): "action for diffrun" Loading Loading @@ -354,9 +364,9 @@ def add_atari_options(subparser, parents=None): pars.add_argument('--phase0' , dest='phase0', type=float, help='set inital phase for echo fitting (default=%(default)s)') def add_xyz_options(subparser, parents=None): def add_old_xyz_options(subparser, parents=None): "xyz options" pars = subparser.add_parser('xyz', parents=parents, pars = subparser.add_parser('old_xyz', parents=parents, help='xyz plot (.dat or .h5 files)', description='create xyz analysis plot') pars.set_defaults(overwrite=False, qmin=0, qmax=np.inf, deltaq=0.005, details=False) Loading @@ -370,6 +380,22 @@ def add_xyz_options(subparser, parents=None): pars.add_argument('--details', dest='details', action='store_true', help='print more details of xyz analysis') def add_xyz_options(subparser, parents=None): "xyz options" pars = subparser.add_parser('xyz', parents=parents, help='xyz plot .nxs.h5 file(s)', description='create xyz analysis plot') pars.set_defaults(overwrite=False, qmin=0, qmax=np.inf, deltaq=0.005, details=False) pars.add_argument('file', metavar='filename', help='file to process', nargs='+') # pars.add_argument('--qmin', dest='qmin', type=float, # help='qmin (default=%(default)s)') # pars.add_argument('--qmax', dest='qmax', type=float, # help='qmax (default=%(default)s)') # pars.add_argument('--delta-q', dest='deltaq', type=float, # help='q histogram bin witdth') # pars.add_argument('--details', dest='details', action='store_true', # help='print more details of xyz analysis') def add_diffrun_options(subparser, parents=None): "diffrun options" pars = subparser.add_parser('diffrun', parents=parents, Loading Loading @@ -543,7 +569,7 @@ def main(): add_echo_options(subparsers, parents=[pars_com, pars_tof, pars_pix]) # atari plot add_atari_options(subparsers, parents=[pars_com, pars_tof, pars_pix, pars_zsc]) # xyz plot # xyz plot (new) add_xyz_options (subparsers, parents=[pars_com, pars_tof, pars_pix, pars_zsc]) # diffrun plot add_diffrun_options(subparsers, parents=[pars_com, pars_tof]) Loading @@ -559,6 +585,8 @@ def main(): add_qtau_options(subparsers, parents=[pars_com,]) # phase table add_ptab_options(subparsers, parents=[pars_com,pars_tof, pars_pix]) # xyz2 plot (old) add_old_xyz_options (subparsers, parents=[pars_com, pars_tof, pars_pix, pars_zsc]) # =================================== args = parser.parse_args() Loading @@ -578,7 +606,8 @@ def main(): transmission=action_transmission, tr=action_transmission, datreat=action_datreat, dtr=action_datreat, qtau=action_qtau, qt=action_qtau, phase_table=action_phase_table, pt=action_phase_table).get(args.command, None) phase_table=action_phase_table, pt=action_phase_table, old_xyz=action_old_xyz).get(args.command, None) if action is None: raise RuntimeError('no action specified for %s' % args.command) Loading pysen/plot/xyzplotlib.py +36 −8 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import matplotlib.pyplot as plt from matplotlib import colors from .. import config, get_q, ANGSTROM from ..inout.scans import XYZScan from .plotutil import norm_pix, get_pix Loading @@ -23,23 +24,18 @@ def xyz_decomposition(xyzdata, errors=False): th six keys: {x,y,z}_{up,dn}""" res = {} # sum of x, y and z measurements sX = xyzdata['x_up'] + xyzdata['x_dn'] sY = xyzdata['y_up'] + xyzdata['y_dn'] sZ = xyzdata['z_up'] + xyzdata['z_dn'] # # diff up-down for x, y and z measurements dX = xyzdata['x_up'] - xyzdata['x_dn'] dY = xyzdata['y_up'] - xyzdata['y_dn'] dZ = xyzdata['z_up'] - xyzdata['z_dn'] # sum of all up sUP = xyzdata['z_up'] + xyzdata['x_up'] + xyzdata['y_up'] sDN = xyzdata['z_dn'] + xyzdata['x_dn'] + xyzdata['y_dn'] # "magnetic" sum of up/down sM_UP = +2*xyzdata['z_up'] - xyzdata['x_up'] - xyzdata['y_up'] sM_DN = -2*xyzdata['z_dn'] + xyzdata['x_dn'] + xyzdata['y_dn'] Loading Loading @@ -419,7 +415,7 @@ def plot_xyz_single_nexus(data, info, fig, axes, **kwargs): data['selection_counts'] = cnts.sum() def plot_xyz_nexus(data, info, **kwargs): def plot_xyz_nexus_data(data, info, **kwargs): "plot xyz" #normalize = kwargs.pop('normalize', False) #savefile = kwargs.pop('savefile' , None) Loading Loading @@ -452,4 +448,36 @@ def plot_xyz_nexus(data, info, **kwargs): # self.xyz_analysis() #except KeyError as e: # self.log.info("%s: key %s missing", self.info['base'], e) def plot_xyz_nexus(filename, **kwargs): "plot NeXus NSE XYZ scan file" scan = XYZScan() scan.read_nexus(filename, **kwargs) plot_xyz_nexus_data(scan.data, scan.info, **kwargs) log = logging.getLogger() rates = {} base = scan.info['base'] for key, data in scan.data.items(): rates[key]=0.0 if data['pcharge']>0: counts = data['selection_counts'] scale = data['pcharge']/1e12 rates[key] = counts/scale rates[key+'_sig'] = np.sqrt(counts)/scale log.info("%s: %-6.6s = (%9.1f +/- %9.1f) counts/C", base, key.upper(), rates[key], rates[key+'_sig']) # res = xyz_decomposition(rates, errors=True) # stot = res['sum_ave'] log.info("%s:", base) for key in ('n_coh', 'i_inc', 'm_mag'): log.info("%s: %-6.6s = (%9.1f +/- %9.1f) counts/C (%5.2f +/- %4.2f)%%", base, key.upper(), res[key], res[key+'_sig'], res[key]/stot*100, res[key+'_sig']/stot*100) for key in ('m_up/2', 'm_dn/2',): log.info("%s: %-6.6s = (%9.1f +/- %9.1f) counts/C", base, key.upper(), res[key], res[key+'_sig']) log.info("%s: TOT = %9.1f counts/C", base, stot) #EOF Loading
misc/nxs_xyz.py +2 −2 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ import numpy as np import matplotlib.pyplot as plt from pysen.inout.scans import XYZScan from pysen.plot.xyzplotlib import xyz_decomposition, plot_xyz_nexus from pysen.plot.xyzplotlib import plot_xyz_nexus def plot_xyz(filename, **kwargs): scan = XYZScan() Loading Loading @@ -90,7 +90,7 @@ def main(): kwargs = vars(args) filenames = kwargs.pop('filename') for file_name in filenames: plot_xyz(file_name, **kwargs) plot_xyz_nexus(file_name, **kwargs) if args.show: plt.show() Loading
pysen/plot/__init__.py +1 −1 Original line number Diff line number Diff line Loading @@ -9,4 +9,4 @@ from .echo import plot_single_echo, echo_plot, atari_plot # NOQA from .histplotlib import plot_var, plot_sc # NOQA from .nseplotlib import ( plot_atari, plot_echo, # NOQA plot_magnetic_fields, plot_map) # NOQA from .xyzplotlib import plot_xyz # NOQA from .xyzplotlib import plot_xyz, plot_xyz_nexus # NOQA
pysen/plot/nseplot.py +36 −7 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ from pysen.config import INST_POSITIONS, INST_MODES, DEFAULT_ACCELERATOR_POWER, from pysen.inout import convert_to_hdf from pysen.echo import get_symmetry_phase, make_phase_table from pysen.plot import ( plot_echo, plot_atari, plot_map, plot_xyz, plot_magnetic_fields, plot_xyz, plot_xyz_nexus, plot_magnetic_fields, plot_coverage, plot_diffrun, plot_transmission, plot_datreat, get_colormap) Loading Loading @@ -48,8 +48,8 @@ action_atari = functools.partial(action_default, action=plot_atari) action_maps = functools.partial(action_default, action=plot_map) action_bfield = functools.partial(action_default, action=plot_magnetic_fields) def action_xyz(filenames, **kwargs): "default action for xyz" def action_old_xyz(filenames, **kwargs): "default action for old xyz plot" outdir = kwargs.pop('outdir') overwrite = kwargs.pop('overwrite') savefig = kwargs.pop('savefig') Loading @@ -66,6 +66,16 @@ def action_xyz(filenames, **kwargs): if savefig: plt.savefig(savefig) def action_xyz(filenames, **kwargs): "default action for xyz (new)" _outdir = kwargs.pop('outdir') _overwrite = kwargs.pop('overwrite') savefig = kwargs.pop('savefig') for filename in filenames: plot_xyz_nexus(filename, **kwargs) if savefig: plt.savefig(savefig) def action_diffrun(filenames, **kwargs): "action for diffrun" Loading Loading @@ -354,9 +364,9 @@ def add_atari_options(subparser, parents=None): pars.add_argument('--phase0' , dest='phase0', type=float, help='set inital phase for echo fitting (default=%(default)s)') def add_xyz_options(subparser, parents=None): def add_old_xyz_options(subparser, parents=None): "xyz options" pars = subparser.add_parser('xyz', parents=parents, pars = subparser.add_parser('old_xyz', parents=parents, help='xyz plot (.dat or .h5 files)', description='create xyz analysis plot') pars.set_defaults(overwrite=False, qmin=0, qmax=np.inf, deltaq=0.005, details=False) Loading @@ -370,6 +380,22 @@ def add_xyz_options(subparser, parents=None): pars.add_argument('--details', dest='details', action='store_true', help='print more details of xyz analysis') def add_xyz_options(subparser, parents=None): "xyz options" pars = subparser.add_parser('xyz', parents=parents, help='xyz plot .nxs.h5 file(s)', description='create xyz analysis plot') pars.set_defaults(overwrite=False, qmin=0, qmax=np.inf, deltaq=0.005, details=False) pars.add_argument('file', metavar='filename', help='file to process', nargs='+') # pars.add_argument('--qmin', dest='qmin', type=float, # help='qmin (default=%(default)s)') # pars.add_argument('--qmax', dest='qmax', type=float, # help='qmax (default=%(default)s)') # pars.add_argument('--delta-q', dest='deltaq', type=float, # help='q histogram bin witdth') # pars.add_argument('--details', dest='details', action='store_true', # help='print more details of xyz analysis') def add_diffrun_options(subparser, parents=None): "diffrun options" pars = subparser.add_parser('diffrun', parents=parents, Loading Loading @@ -543,7 +569,7 @@ def main(): add_echo_options(subparsers, parents=[pars_com, pars_tof, pars_pix]) # atari plot add_atari_options(subparsers, parents=[pars_com, pars_tof, pars_pix, pars_zsc]) # xyz plot # xyz plot (new) add_xyz_options (subparsers, parents=[pars_com, pars_tof, pars_pix, pars_zsc]) # diffrun plot add_diffrun_options(subparsers, parents=[pars_com, pars_tof]) Loading @@ -559,6 +585,8 @@ def main(): add_qtau_options(subparsers, parents=[pars_com,]) # phase table add_ptab_options(subparsers, parents=[pars_com,pars_tof, pars_pix]) # xyz2 plot (old) add_old_xyz_options (subparsers, parents=[pars_com, pars_tof, pars_pix, pars_zsc]) # =================================== args = parser.parse_args() Loading @@ -578,7 +606,8 @@ def main(): transmission=action_transmission, tr=action_transmission, datreat=action_datreat, dtr=action_datreat, qtau=action_qtau, qt=action_qtau, phase_table=action_phase_table, pt=action_phase_table).get(args.command, None) phase_table=action_phase_table, pt=action_phase_table, old_xyz=action_old_xyz).get(args.command, None) if action is None: raise RuntimeError('no action specified for %s' % args.command) Loading
pysen/plot/xyzplotlib.py +36 −8 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import matplotlib.pyplot as plt from matplotlib import colors from .. import config, get_q, ANGSTROM from ..inout.scans import XYZScan from .plotutil import norm_pix, get_pix Loading @@ -23,23 +24,18 @@ def xyz_decomposition(xyzdata, errors=False): th six keys: {x,y,z}_{up,dn}""" res = {} # sum of x, y and z measurements sX = xyzdata['x_up'] + xyzdata['x_dn'] sY = xyzdata['y_up'] + xyzdata['y_dn'] sZ = xyzdata['z_up'] + xyzdata['z_dn'] # # diff up-down for x, y and z measurements dX = xyzdata['x_up'] - xyzdata['x_dn'] dY = xyzdata['y_up'] - xyzdata['y_dn'] dZ = xyzdata['z_up'] - xyzdata['z_dn'] # sum of all up sUP = xyzdata['z_up'] + xyzdata['x_up'] + xyzdata['y_up'] sDN = xyzdata['z_dn'] + xyzdata['x_dn'] + xyzdata['y_dn'] # "magnetic" sum of up/down sM_UP = +2*xyzdata['z_up'] - xyzdata['x_up'] - xyzdata['y_up'] sM_DN = -2*xyzdata['z_dn'] + xyzdata['x_dn'] + xyzdata['y_dn'] Loading Loading @@ -419,7 +415,7 @@ def plot_xyz_single_nexus(data, info, fig, axes, **kwargs): data['selection_counts'] = cnts.sum() def plot_xyz_nexus(data, info, **kwargs): def plot_xyz_nexus_data(data, info, **kwargs): "plot xyz" #normalize = kwargs.pop('normalize', False) #savefile = kwargs.pop('savefile' , None) Loading Loading @@ -452,4 +448,36 @@ def plot_xyz_nexus(data, info, **kwargs): # self.xyz_analysis() #except KeyError as e: # self.log.info("%s: key %s missing", self.info['base'], e) def plot_xyz_nexus(filename, **kwargs): "plot NeXus NSE XYZ scan file" scan = XYZScan() scan.read_nexus(filename, **kwargs) plot_xyz_nexus_data(scan.data, scan.info, **kwargs) log = logging.getLogger() rates = {} base = scan.info['base'] for key, data in scan.data.items(): rates[key]=0.0 if data['pcharge']>0: counts = data['selection_counts'] scale = data['pcharge']/1e12 rates[key] = counts/scale rates[key+'_sig'] = np.sqrt(counts)/scale log.info("%s: %-6.6s = (%9.1f +/- %9.1f) counts/C", base, key.upper(), rates[key], rates[key+'_sig']) # res = xyz_decomposition(rates, errors=True) # stot = res['sum_ave'] log.info("%s:", base) for key in ('n_coh', 'i_inc', 'm_mag'): log.info("%s: %-6.6s = (%9.1f +/- %9.1f) counts/C (%5.2f +/- %4.2f)%%", base, key.upper(), res[key], res[key+'_sig'], res[key]/stot*100, res[key+'_sig']/stot*100) for key in ('m_up/2', 'm_dn/2',): log.info("%s: %-6.6s = (%9.1f +/- %9.1f) counts/C", base, key.upper(), res[key], res[key+'_sig']) log.info("%s: TOT = %9.1f counts/C", base, stot) #EOF