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()