Commit f2b345b5 authored by Zolnierczuk, Piotr's avatar Zolnierczuk, Piotr
Browse files

nseplot options consistency check

parent b966ebe8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ build: build-ui build-docs
build-dist: build
	@$(PYTHON) setup.py  bdist

install:	build-ui
install-global:	build-ui
	pip install .

install-user: build-ui
+4 −5
Original line number Diff line number Diff line
@@ -18,11 +18,10 @@ def get_symmetry_phase(hdfile, iecho=None, **kwargs):
    ypix1   = kwargs.pop('ypix1', 0)
    ypix2   = kwargs.pop('ypix2', None)

    if kwargs.get('center_only'):
        tbin1, tbin2 = 4, -4
        xpix1, xpix2 = 5, -5
        ypix1, ypix2 = 5, -5

    #if kwargs.get('center_only'):
    #    tbin1, tbin2 = 4, -4
    #    xpix1, xpix2 = 5, -5
    #    ypix1, ypix2 = 5, -5

    log = logging.getLogger()

+64 −52
Original line number Diff line number Diff line
@@ -97,6 +97,20 @@ def action_datreat(filenames, **kwargs):

def action_qtau(filenames, **kwargs):
    "action for q-tau plot"
    __template="""# -*- python -*-
taus_8A  = [0.1,0.2,0.4,0.7,1,2,4,7,10,20,30,50]
taus_11A = [50,70,100,120]

data = [
    # 8A
    coverage( 8, qmin=0.050, pos='p2', taus=taus_8A ),
    coverage( 8, qmin=0.070, pos='p2', taus=taus_8A ),
    coverage( 8, qmin=0.095, pos='p2', taus=taus_8A ),
    # 11A
    coverage(11, qmin=0.050, pos='p2', taus=taus_11A),
    coverage(11, qmin=0.065, pos='p2', taus=taus_11A),
    ]
"""
    savefig = kwargs.pop('savefig', None)
    lmax  = kwargs.pop('lmax', 8.0)
    qmin  = kwargs.pop('qmin', 0.1)
@@ -113,8 +127,11 @@ def action_qtau(filenames, **kwargs):
    title  = kwargs.pop('title' , None)
    cmap   = kwargs.pop('cmap'  , 'jet')

    data  = []
    if kwargs.get('show_template'):
        print(__template)
        return

    data  = []
    try:
        lcls = locals()
        lcls['np'] = np
@@ -211,6 +228,13 @@ def action_phase_table(filenames, **kwargs):
# arguments
# ============================================================================================

def add_extend_argument(parser, option, **kwargs):
    "helper for exend"
    try: # extend is only available in python 3.8 and newer
        parser.add_argument(option,  action='extend', **kwargs)
    except ValueError:
        parser.add_argument(option,  action='append', **kwargs)

def arguments_common():
    "common arguments"
    pars = argparse.ArgumentParser(add_help=False)
@@ -246,8 +270,8 @@ def arguments_selection_tof():
def arguments_selection_pix():
    """pixel selection arguments"""
    pars = argparse.ArgumentParser(add_help=False)
    pars.set_defaults(xpix1=10,xpix2=-10,ypix1=10,ypix2=-10, whole_detector=False)
    grp  = pars.add_argument_group('options to select pixels')
    grp.set_defaults(xpix1=10,xpix2=-10,ypix1=10,ypix2=-10, whole_detector=False)
    grp.add_argument('--x1' , dest='xpix1', type=int,
                     help='set min X pix (default=%(default)s)')
    grp.add_argument('--x2' , dest='xpix2', type=int,
@@ -263,7 +287,6 @@ def arguments_selection_pix():
def arguments_z_scale():
    """vertical scale arguments"""
    pars = argparse.ArgumentParser(add_help=False)
    pars.set_defaults(vmin=0, vmax=None, logz=False, normalize=False)
    grp  = pars.add_argument_group('options to set z (vertical) scale')
    grp.add_argument('--vmin' , dest='vmin', type=int,
                     help='set min vertical scale (default=%(default)s)')
@@ -279,15 +302,12 @@ def arguments_z_scale():
def add_echo_options(subparser, parents=None):
    "echo options"
    pars = subparser.add_parser('echo', parents=parents,
                      aliases=['ec'],
                      help='plot echo (.echo or .h5 files)',
                      description='create echo plot(s)')
    pars.set_defaults(center_only=False, resolution_plot=False, absy=0, npix=4, taus=None)
    pars.add_argument('file', metavar='filename', help='file to process', nargs='+')
    try: # extend is only available in python 3.8 and newer
        pars.add_argument('--tau',  dest='taus', metavar='tau',  type=int, nargs='*', action='extend',
                        help='select list of taus')
    except ValueError:
        pars.add_argument('--tau',  dest='taus', metavar='tau',  type=int, nargs='*', action='append',
    add_extend_argument(pars, '--tau', dest='taus', metavar='tau',  type=int, nargs='*',
                        help='select list of taus')
    pars.add_argument('--center-only'   , '-C', dest='center_only', action='store_true',
                       help='show only center patch')
@@ -305,14 +325,11 @@ def add_echo_options(subparser, parents=None):
def add_atari_options(subparser, parents=None):
    "atari options"
    pars = subparser.add_parser('atari', parents=parents,
                      aliases=['at', ],
                      help='atari plot (.echo or .h5 files)',
                      description='create atari plot(s)')
    pars.add_argument('file', metavar='filename', help='file to process', nargs='+')
    try: # extend is only available in python 3.8 and newer
        pars.add_argument('--tau',  dest='taus',  metavar='tau',  type=int, nargs='*', action='extend',
                        help='select list of taus')
    except ValueError:
        pars.add_argument('--tau',  dest='taus',  metavar='tau',  type=int, nargs='*', action='append',
    add_extend_argument(pars, '--tau', dest='taus', metavar='tau',  type=int, nargs='*',
                        help='select list of taus')
    pars.add_argument('--only-echo', dest='only_echo', action='store_true',
                      help='show only echo (no up/down)')
@@ -337,6 +354,7 @@ def add_xyz_options(subparser, parents=None):
def add_diffrun_options(subparser, parents=None):
    "diffrun options"
    pars = subparser.add_parser('diffrun', parents=parents,
                      aliases=['df',],
                      help='diffrun plot (diffraction scans)',
                      description='create diffraction scan plot(s)')
    pars.set_defaults(selection=None, power=DEFAULT_ACCELERATOR_POWER)
@@ -363,6 +381,7 @@ def add_diffrun_options(subparser, parents=None):
def add_transmission_options(subparser, parents=None):
    "transition options"
    pars = subparser.add_parser('transmission', parents=parents,
                      aliases=['tr', ],
                      help='transmission plot',
                      description='create transmission data plot(s)')
    pars.set_defaults(log_scale=False, spectrum_only=False, pos='p2')
@@ -381,6 +400,7 @@ def add_transmission_options(subparser, parents=None):
def add_datreat_options(subparser, parents=None):
    "datreat options"
    pars = subparser.add_parser('datreat', parents=parents,
                      aliases=['dat',],
                      help='datreat plot (drspine output)',
                      description='create datreat-type plot(s)')
    pars.add_argument('file', metavar='filename', help='file to process', nargs='+')
@@ -397,11 +417,7 @@ def add_plotmap_options(subparser, parents=None):
                      help='map',
                      description='create map plots')
    pars.add_argument('file', metavar='filename', help='file to process', nargs='+')
    try: # extend is only available in python 3.8 and newer
        pars.add_argument('--tau',  dest='taus',  metavar='tau',  type=int, nargs='*', action='extend',
                        help='select list of taus')
    except ValueError:
        pars.add_argument('--tau',  dest='taus',  metavar='tau',  type=int, nargs='*', action='append',
    add_extend_argument(pars, '--tau', dest='taus', metavar='tau',  type=int, nargs='*',
                        help='select list of taus')
    pars.add_argument('--map-type', dest='map_type', choices=['all', 'up', 'down'],
                       help='(default: %(default)s)')
@@ -411,15 +427,12 @@ def add_plotmap_options(subparser, parents=None):
def add_bfield_options(subparser, parents=None):
    "magnetic field"
    pars = subparser.add_parser('bfield', parents=parents,
                      aliases=['bf',],
                      help='bfield',
                      description='create bfield plots')
    pars.add_argument('file', metavar='filename', help='file to process', nargs='+')
    pars.set_defaults(max_chi2=1e-2, axis=-1)
    try: # extend is only available in python 3.8 and newer
        pars.add_argument('--tau',  dest='taus',  metavar='tau',  type=int, nargs='*', action='extend',
                        help='select list of taus')
    except ValueError:
        pars.add_argument('--tau',  dest='taus',  metavar='tau',  type=int, nargs='*', action='append',
    pars.add_argument('file', metavar='filename', help='file to process', nargs='+')
    add_extend_argument(pars, '--tau', dest='taus', metavar='tau',  type=int, nargs='*',
                        help='select list of taus')
    pars.add_argument('--max-chi2', dest='max_chi2', type=float,
                       help='set max chi-square (default=%(default)s)')
@@ -429,6 +442,7 @@ def add_bfield_options(subparser, parents=None):
def add_qtau_options(subparser, parents=None):
    "q-tau plot"
    pars = subparser.add_parser('qtau', parents=parents,
                       aliases=['qt'],
                       help='qtau',
                       description='qtau')
    pars.set_defaults(lmax=8.00, qmin=0.10, tbins=None, taus=None, pos='p2', mode='standard',
@@ -444,17 +458,10 @@ def add_qtau_options(subparser, parents=None):
                        help='set instrument position: (default %(default)s)')
    pars.add_argument('--mode', '-m', dest='mode', choices=INST_MODES,
                        help='set instrument (default %(default)s)')
    try: # extend is only available in python 3.8 and newer
        pars.add_argument('--tau',  dest='taus',  metavar='tau',  type=float, nargs='*', action='extend',
    add_extend_argument(pars, '--tau',  dest='taus',  metavar='tau',  type=float, nargs='*',
                        help='select list of taus')
        pars.add_argument('--tbin', dest='tbins', metavar='tbin', type=int,   nargs='*', action='extend',
                        help='select list of tbins')
    except ValueError:
        pars.add_argument('--tau',  dest='taus',  metavar='tau',  type=float, nargs='*', action='append',
    add_extend_argument(pars, '--tbin', dest='tbins', metavar='tbin', type=int,   nargs='*',
                        help='select list of taus')
        pars.add_argument('--tbin', dest='tbins', metavar='tbin', type=int,   nargs='*', action='append',
                        help='select list of tbins')

    grp = pars.add_argument_group('presentation options')
    grp.add_argument('--title',  dest='title', help='set plot title')
    grp.add_argument('--full', '-F', dest='full', action='store_true',
@@ -467,14 +474,14 @@ def add_qtau_options(subparser, parents=None):
    #                    help='TBD')
    grp.add_argument('--color-map', '-C', dest='cmap', metavar='map',
                        help='select colormap to use (default=%(default)s)')


    pars.add_argument('--show-template', dest='show_template', action='store_true',
                        help='show input template and exit')

def add_ptab_options(subparser, parents=None):
    "make phase table"
    pars = subparser.add_parser('phase_table', parents=parents,
                     aliases=['pt',],
                     help='phase table', description='phase table')
    # defaults
    pars.set_defaults(pos='p2', polyfit=2, threshold=0.2)
    pars.add_argument('file', metavar='filename', help='file to process', nargs='+')
    pars.add_argument('--pos' , '-p', dest='pos',  choices=INST_POSITIONS,
@@ -484,8 +491,6 @@ def add_ptab_options(subparser, parents=None):
    pars.add_argument('--threshold', dest='threshold', metavar='thres', type=float,
                     help=argparse.SUPPRESS)
                     #help='clustering threshold (advanced option)')
    pars.add_argument('--center-only'   , '-C', dest='center_only', action='store_true',
                       help='show only center patch')


# ============================================================================================
@@ -495,18 +500,19 @@ def main():
    "the main"
    description = "SNS-NSE plotting tool"

    pars_com  = arguments_common()
    pars_tof  = arguments_selection_tof()
    pars_pix  = arguments_selection_pix()
    pars_zsc  = arguments_z_scale()

    parser      = argparse.ArgumentParser(description=description)
    parser.set_defaults(loglevel=DEFAULT_LOG_LEVEL)
    subparsers  = parser.add_subparsers(dest='plot', required=False,
    subparsers  = parser.add_subparsers(dest='plot', required=True,
                                        help='plot command',
                                        description=None)
    parser.add_argument('--version', '-V', action='version',
                        version='%(prog)s pysen={version}'.format(version=version(full=True)))
    #
    pars_com  = arguments_common()
    pars_tof  = arguments_selection_tof()
    pars_pix  = arguments_selection_pix()
    pars_zsc  = arguments_z_scale()

    # echo plot
    add_echo_options(subparsers, parents=[pars_com, pars_tof, pars_pix])
    # atari plot
@@ -518,9 +524,9 @@ def main():
    # transmission plot
    add_transmission_options(subparsers, parents=[pars_com, pars_tof])
    # datreat plot
    add_datreat_options(subparsers, parents=[pars_com])
    #add_datreat_options(subparsers, parents=[pars_com])
    # map plot
    add_plotmap_options(subparsers, parents=[pars_com,])
    #add_plotmap_options(subparsers, parents=[pars_com,])
    # magnetic field
    add_bfield_options(subparsers, parents=[pars_com,])
    # qtau plot
@@ -537,14 +543,20 @@ def main():
    if args.savefig:
        plt.switch_backend('Agg')

    kwargs = vars(args)

    action = dict(  echo=action_echo, atari=action_atari,   maps=action_maps, bfield=action_bfield,
                    xyz=action_xyz, diffrun=action_diffrun, transmission=action_transmission,
                    datreat=action_datreat, qtau=action_qtau, phase_table=action_phase_table).get(args.plot, None)
    action = dict(  echo=action_echo, ec=action_echo,
                    atari=action_atari, at=action_atari, summary=action_atari,
                    maps=action_maps,
                    bfield=action_bfield, bf=action_bfield,
                    xyz=action_xyz,
                    diffrun=action_diffrun, df=action_diffrun,
                    transmission=action_transmission, tr=action_transmission,
                    datreat=action_datreat, dat=action_datreat,
                    qtau=action_qtau, qt=action_qtau,
                    phase_table=action_phase_table, pt=action_phase_table).get(args.plot, None)
    if action is None:
        raise RuntimeError('missing in action')
        raise RuntimeError('no action specified for %s' % args.plot)

    kwargs = vars(args)
    action(args.file, **kwargs)

    if not args.savefig:
+1 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@ PySEN revision module
"""
import sys
__version__  = "1.0"
__release__  = "rc1"
__release__  = "rc2"
__date__     = "Aug 22, 2022"

def version(full=False):

test/data/qtau_inp.py

0 → 100644
+15 −0
Original line number Diff line number Diff line
# -*- python -*-

taus_8A  = [0.1,0.2 ,0.4,0.7,1.0,2.0,4.0,7.0,10.0,20.0,30.0,50.0]
taus_11A = [50.0,70.0,100.0,120.0]

data = [
    # 8A
    coverage(8.0,  qmin=0.050, pos='p2', taus=taus_8A ),
    coverage(8.0,  qmin=0.070, pos='p2', taus=taus_8A ),
    coverage(8.0,  qmin=0.095, pos='p2', taus=taus_8A ),

    # 11A
    coverage(11.0, qmin=0.050, pos='p2', taus=taus_11A),
    coverage(11.0, qmin=0.065, pos='p2', taus=taus_11A),
    ]