Example: Gantry 2

Load the RingCyclotron.stat file

[1]:
from opal.opal import load_dataset, filetype

dsets = load_dataset('./Gantry2/', ftype=filetype.STAT)
/home/opalci/pyOPALTools/opal/parser/SDDSParser.py:44: ParserWarning: Length of header or names does not match length of data. This leads to a loss of data with index_col=False.
  self._dataset = pd.read_csv(filename, skiprows=self._nRows,
/home/opalci/pyOPALTools/opal/parser/SDDSParser.py:44: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\s+' are interpreted as regex); you can avoid this warning by specifying engine='python'.
  self._dataset = pd.read_csv(filename, skiprows=self._nRows,
/home/opalci/pyOPALTools/opal/parser/SDDSParser.py:44: ParserWarning: Length of header or names does not match length of data. This leads to a loss of data with index_col=False.
  self._dataset = pd.read_csv(filename, skiprows=self._nRows,
/home/opalci/pyOPALTools/opal/parser/SDDSParser.py:44: ParserWarning: Length of header or names does not match length of data. This leads to a loss of data with index_col=False.
  self._dataset = pd.read_csv(filename, skiprows=self._nRows,
/home/opalci/pyOPALTools/opal/parser/SDDSParser.py:44: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\s+' are interpreted as regex); you can avoid this warning by specifying engine='python'.
  self._dataset = pd.read_csv(filename, skiprows=self._nRows,
/home/opalci/pyOPALTools/opal/parser/SDDSParser.py:44: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\s+' are interpreted as regex); you can avoid this warning by specifying engine='python'.
  self._dataset = pd.read_csv(filename, skiprows=self._nRows,

Set the plotting style

[2]:
from opal.visualization.styles import load_style

load_style('jupyter')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[2], line 3
      1 from opal.visualization.styles import load_style
----> 3 load_style('jupyter')

File ~/pyOPALTools/opal/visualization/styles/load_style.py:31, in load_style(use)
     29 from opal.utilities.logger import opal_logger
     30 opal_logger.info("Loading '" + use + "' plotting style")
---> 31 eval(use + '()')

File <string>:1

File ~/pyOPALTools/opal/visualization/styles/jupyter.py:31, in jupyter()
     29 # reset
     30 from opal.visualization.styles.default import default
---> 31 default()
     33 if mpl.__version__ < '2':
     34     opal_logger.error('jupyter style not available for matplotlib version ' + mpl.__version__)

File ~/pyOPALTools/opal/visualization/styles/default.py:38, in default()
     36 mpl.rcParams['lines.linestyle']         = '-'           # solid line
     37 mpl.rcParams['lines.color']             = 'C0'          # has no affect on plot(); see axes.prop_cycle
---> 38 mpl.rcParams['lines.marker']            = None          # the default marker
     39 mpl.rcParams['lines.markeredgewidth']   = 1.0           # the line width around the marker symbol
     40 mpl.rcParams['lines.markersize']        = 6             # markersize, in points

File /usr/local/lib/python3.8/dist-packages/matplotlib/__init__.py:722, in RcParams.__setitem__(self, key, val)
    720         cval = self.validate[key](val)
    721     except ValueError as ve:
--> 722         raise ValueError(f"Key {key}: {ve}") from None
    723     self._set(key, cval)
    724 except KeyError as err:

ValueError: Key lines.marker: Could not convert None to str

Envelope Plot

[3]:
plt = dsets[0].plot_envelope(dsets=dsets[1], lfile='./Gantry2/70MeV_G2.lattice')

plt.show()
_images/Gantry2_6_0.svg