opal.analysis package

opal.analysis.FieldAnalysis module

class opal.analysis.FieldAnalysis.FieldAnalysis[source]

Bases: object

max(var, step=0)[source]

Get the maximum value of a variable.

Parameters
  • var (str) – variable name

  • step (int, optional) – time step

Returns

the maximum value of the given variable

Return type

numpy.float64

sum(var, step=0)[source]

Get the sum of the grid data of a variable.

Parameters
  • var (str) – variable name

  • step (int, optional) – time step

Returns

the sum of all grid values of the given variable

Return type

numpy.float64

total_charge(step=0)[source]

Get the total charge on the grid.

Parameters

step (int, optional) – time step

Returns

the total charge on the grid

Return type

numpy.float64

opal.analysis.H5Statistics module

class opal.analysis.H5Statistics.H5Statistics[source]

Bases: opal.analysis.Statistics.Statistics

_halo_2d_ellipsoidal_beam(q, p)[source]

Compute the 2D halo

Compute the 2D halo in horizontal, vertical or longitudinal direction according to

\[\begin{split}\begin{align} H_i & = \frac{\sqrt{3}}{2} \frac{\sqrt{A}}{B} - \frac{15}{7} \\ A & = {<}q^4{>}{<}p^4{>} + 3 {<}q^2p^2{>}^2 - 4 {<}qp^3{>} {<}q^3p{>} \\ B & = {<}q^2{>}{<}p^2{>} - {<}qp{>}^2 \end{align}\end{split}\]

with coordinate q and momentum p.

Parameters
  • q (array_like) – coordinate data

  • p (array_like) – momentum data

Returns

halo

Return type

float

References

https://journals.aps.org/prab/abstract/10.1103/PhysRevSTAB.5.124202

_select(data, attrval, val)[source]

Take a slice from the array

Parameters
  • data (array_like) – Container to extract data from

  • attrval (array_like) – Data to compare with in extraction value

  • val (int or float) – Value for extraction comparison

Returns

Slice of data

Return type

array_like

_selectBunch(data, bunch, step)[source]

Take a bunch slice from the array

Parameters
  • data (array_like) – The data where to extract

  • bunch (int) – Bunch to select

  • step (int) – Step in H5 file

Returns

Slice of data

Return type

array_like

find_beams(var, **kwargs)[source]

Compute the starting and end points of a beam via a histogram.

The purpose of this script is to distinguish bunches of a multi-bunch simulation.

Parameters
Returns

  • peaks (ndarray) – Indices of minima locations

  • hist (array) – The values of the corresponding numpy histogram.

  • bin_edges (array of dtype float) – Return the bin edges (length(hist)+1).

gaussian_kde(var, **kwargs)[source]

Representation of a kernel-density estimate using Gaussian kernels.

Parameters
  • var (str) – The variable

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

scipy kernel density estimator

Return type

scipy.stats.gaussian_kde

Notes

23. March 2018 https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.gaussian_kde.html

halo_2d_ellipsoidal_beam(var, **kwargs)[source]

Compute the 2D halo for a ellipsoidal beam

Compute the 2D halo in horizontal, vertical or longitudinal direction according to

\[\begin{split}\begin{align} H_i & = \frac{\sqrt{3}} {2} \frac{\sqrt{A}} {B} - \frac{15}{7} \\ A & = {<}q^4{>}{<}p^4{>} + 3 {<}q^2p^2{>}^2 - 4 {<}qp^3{>} {<}q^3p{>} \\ B & = {<}q^2{>}{<}p^2{>} - {<}qp{>}^2 \end{align}\end{split}\]

with coordinate q and momentum p. Specify either the ‘step’ or ‘turn’ (probes only).

Parameters
  • var (str) – The direction ‘x’, ‘y’, ‘z’

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

halo

Return type

float

References

https://journals.aps.org/prab/abstract/10.1103/PhysRevSTAB.5.124202

halo_continuous_beam(var, **kwargs)[source]

Compute the halo for a continuous beam.

Compute the halo in horizontal or vertical direction according to

\[h_x = \frac{{<}x^4{>}} {{<}x^2{>}^2} - 2\]
Parameters
  • var (str) – The variable

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

halo

Return type

float

References

T. P. Wangler, Los Alamos National Laboratory, Los Alamos, NM 87545, K. R. Crandall, TechSource, Santa Fe, NM 87594-1057, BEAM HALO IN PROTON LINAC BEAMS, XX International Linac Conference, Monterey, California

halo_ellipsoidal_beam(var, **kwargs)[source]

Compute the halo for a ellipsoidal beam

Compute the halo in horizontal, vertical or longitudinal direction according to

\[h_x = \frac{{<}x^4{>}} {{<}x^2{>}^2} - \frac{15}{7}\]
Parameters
  • var (str) – The variable

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

halo

Return type

float

References

T. P. Wangler, Los Alamos National Laboratory, Los Alamos, NM 87545, K. R. Crandall, TechSource, Santa Fe, NM 87594-1057, BEAM HALO IN PROTON LINAC BEAMS, XX International Linac Conference, Monterey, California

histogram(var, bins, **kwargs)[source]

Compute a histogram of a dataset

Parameters
  • var (str) – The variable

  • bins (int or str) – Binning type or nr of bins (see https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.histogram.html)

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

  • density (bool, optional) – Normalize such that integral over range is 1 (default: True).

Returns

  • numpy.histogram (array) – The values of the histogram. See density and weights for a description of the possible semantics.

  • bin_edges (array of dtype float) – Return the bin edges (length(hist)+1).

Notes

See https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.histogram.html

kurtosis(var, **kwargs)[source]

Compute the kurtosis (Fisher or Pearson) of a dataset.

Kurtosis is the fourth central moment divided by the square of the variance. Fisher’s definition is used, i.e. 3.0 is subtracted from the result to give 0.0 for a normal distribution.

Parameters
  • var (str) – The variable

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

kurtosis

Return type

float

Notes

23. March 2018 https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.kurtosis.html

mean(var, **kwargs)[source]

Calculate the arithmetic mean.

Parameters
  • var (str) – The variable

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

arithmetic mean

Return type

float

moment(var, k, **kwargs)[source]

Calculate the k-th central moment.

Parameters
  • var (str) – The variable to compute k-th central moment

  • k (int) – The moment number, k = 1 is central mean

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

k-th central moment

Return type

float

Notes

https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.moment.html

projected_emittance(dim, **kwargs)[source]

Compute the projected emittance

It shifts the coordinates by their mean value such that the bunch is centered around zero.

\[\varepsilon = \sqrt{ {<}coords^2{>}{<}momenta^2{>} - {<}coords*momenta{>}^2 }\]
Parameters
  • dim (str) – the dimension ‘x’, ‘y’ or ‘z’

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

the projected emittance

Return type

float

radial_halo_2d_ellipsoidal_beam(azimuth, **kwargs)[source]

Compute the 2D radial halo for a ellipsoidal beam

Compute the 2D radial halo according to

\[\begin{split}\begin{align} H_i & = \frac{\sqrt{3}}{2} \frac{\sqrt{A}}{B} - \frac{15}{7} \\ A & = {<}r^4{>}{<}p^4{>} + 3 {<}r^2p^2{>}^2 - 4 {<}rp^3{>} {<}r^3p{>} \\ B & = {<}r^2{>}{<}p^2{>} - {<}rp{>}^2 \end{align}\end{split}\]

with radius r and radial momentum p.

Parameters
  • azimuth (float) – Azimuth for radial halo only (in degree)

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

halo

Return type

float

References

https://journals.aps.org/prab/abstract/10.1103/PhysRevSTAB.5.124202

radial_halo_ellipsoidal_beam(**kwargs)[source]

Compute the radial halo for a ellipsoidal beam

Compute the halo in radial direction according to

\[h_r = \frac{{<}r^4{>}} {{<}r^2{>}^2} - \frac{15}{7}\]
Parameters
  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

halo

Return type

float

References

T. P. Wangler, Los Alamos National Laboratory, Los Alamos, NM 87545, K. R. Crandall, TechSource, Santa Fe, NM 87594-1057, BEAM HALO IN PROTON LINAC BEAMS, XX International Linac Conference, Monterey, California

radial_moment(k, **kwargs)[source]

Calculate the k-th central radial moment.

Parameters
  • k (int) – The moment number, k = 1 is central mean

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

k-th central radial moment

Return type

float

Notes

https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.moment.html

radial_projected_emittance(azimuth, **kwargs)[source]

Compute the radial projected emittance

It shifts the coordinates by their mean value such that the bunch is centered around zero.

\[\varepsilon = \sqrt{ {<}r^2{>}{<}p_r^2{>} - {<}r*p_r{>}^2 }\]
Parameters
  • azimuth (float) – Azimuth angle (in degree)

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

the projected emittance

Return type

float

rotate(y, theta)[source]

Rotate the coordinates (x, y) by theta (degree)

Parameters
  • x (dask.array) – x-data

  • y (dask.array) – y-data

  • theta (float) – The angle in degree

Returns

  • rx (dask.array) – rotated coordinates x

  • ry (dask.array) – rotated coordinates y

Notes

\[\begin{split}\begin{align} R(\theta) & = \begin{bmatrix} \cos(\theta) & -\sin(\theta) \\ \sin(\theta) & \cos(\theta) \end{bmatrix} \\ \begin{bmatrix} rx & ry \end{bmatrix} & = R(\theta) * \begin{bmatrix} x & y \end{bmatrix} \end{align}\end{split}\]

References

https://en.wikipedia.org/wiki/Rotation_matrix

selectData(var, **kwargs)[source]

Select subset of data

Given a H5 dataset, select a subset using the attributes step (or turn) and bunch.

Parameters
  • var (str) – Variable name

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

Data array

Return type

array_like

skew(var, **kwargs)[source]

Calculate the skewness.

Parameters
  • var (str) – The variable

  • bunch (int, optional) – Bunch to select (default: -1, which means all particles)

  • step (int, optional) – Step in H5 file (default: 0)

  • turn (int, optional) – Turn of dataset (default: None, which implies no specific turn selection) (probe H5 files only)

Returns

skewness

Return type

float

Notes

23. March 2018 https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.skew.html

opal.analysis.OptimizerAnalysis module

class opal.analysis.OptimizerAnalysis.OptimizerAnalysis[source]

Bases: object

find(function, opt=0)[source]

Find the individual according to the given function in the Pareto file.

Parameters
  • function (callable) – A function that takes all objectives of 2 individuals as values of 2 lists as argument and returns the better individual. The objectives are considered alphabetically ordered

  • opt (int, optional) – Number of Pareto file

Returns

The ID of best individual that fulfills the custom function.

Return type

int

find_minimum(exclude=[], constraints={})[source]

Find the invidual with minimum sum of all objectives over all generations.

It is possible to exclude some objectives with the list exclude.

It is possible to give constraints on objectives as a dictionary, e.g. { “DPEAK_1_16”: 4.0 } means only individuals that have a “DPEAK_1_16” objective with a value <= 4.

Parameters
  • exclude (list, optional) – Objectives that should be excluded

  • constraints (dict, optional) – Constraints on objectives

Returns

  • float – Sum of objectives

  • int – Generation

  • int – Individual ID

print_individual(ind, gen=1, opt=0, pareto=False)[source]

Print the values of the design variables and objectives of an individual.

If pareto = True, gen is not considered.

Parameters
  • ind (int) – Individual identity number

  • gen (int, optional) – Generation, default: 1

  • opt (int, optional) – Optimizer, default: 0

  • pareto (bool, optional) – Load pareto file (default: False)

opal.analysis.SamplerStatistics module

class opal.analysis.SamplerStatistics.SamplerStatistics[source]

Bases: object

find_matches(ids1, ids2, **kwargs)[source]

Compare two lists

Compare two lists with indices ids1 and ids2 in order to check if they are independent (i.e. not many matches).

Parameters
  • ids1 (list) – Indices of 1st sample set

  • ids2 (list) – Indices of 2nd sample set

  • matches (bool, optional) – If true, the input values of the matches are returned as well, (default: False)

Returns

  • int – Number of matches

  • list – Values of matched input (only if matches is True)

opal.analysis.Statistics module

class opal.analysis.Statistics.Statistics[source]

Bases: object

Base class for all statistic functions on datasets.

It also provides functions on plain data.

__init__()[source]

Initialize self. See help(type(self)) for accurate signature.

gaussian_kde(data)[source]

Calculate the kernel density estimator directly on data.

Parameters

data (array_like) – Plain data

Returns

scipy kernel density estimator

Return type

scipy.stats.gaussian_kde

histogram(data, **kwargs)[source]

Compute a histogram of a dataset

Parameters
Returns

  • numpy.histogram (array) – The values of the histogram. See density and weights for a description of the possible semantics.

  • bin_edges (array of dtype float) – Return the bin edges (length(hist)+1).

Notes

See https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.histogram.html

kurtosis(data)[source]

Compute the kurtosis (Fisher or Pearson) directly on data.

Parameters

data (array_like) – Plain data

Returns

kurtosis

Return type

float

mean(data)[source]

Calculate the arithmetic mean directly on data.

Parameters

data (array_like) – Plain data

Returns

arithmetic mean

Return type

float

moment(data, k)[source]

Calculate the k-th central moment directly on data.

Parameters
  • data (array_like) – Plain data

  • k (int) – The moment number, k = 1 is central mean

Returns

k-th central moment

Return type

float

skew(data)[source]

Calculate the skewness directly on data.

Parameters

data (array_like) – Plain data

Returns

skewness

Return type

float

opal.analysis.StdOpalOutputAnalysis module

class opal.analysis.StdOpalOutputAnalysis.StdOpalOutputAnalysis[source]

Bases: object

calcRFphases(RFcavity)[source]

Calculate the phases of individual cavities in the simulation

Parameters

RFcavity (str) – Name of the RFcavity as specifed in the input file

Returns

Phases

Return type

list

Examples

Check Cyclotron.ipynb in the opal/test directory

opal.analysis.TrackOrbitAnalysis module

class opal.analysis.TrackOrbitAnalysis.TrackOrbitAnalysis[source]

Bases: object

calcTurnSeparation(nsteps=- 1, angle=0.0)[source]

Calculate turn separation from OPAL xxx–trackOrbit.dat file

Parameters
  • nsteps (int) – Number of steps per turn

  • angle (float) – Angle of reference line in radians

Returns

  • float – Turn separation

  • float – Energy

  • float – Radial angle phi_r

  • float – Radius

Examples

Check Cyclotron.ipynb in the opal/test directory

opal.analysis.cyclotron module

opal.analysis.cyclotron.calcCenteringExtraction(radius, turnCorrection=1.35, phaseCorrection=0.0, amplitudeCorrection=1)[source]

Calculate betatron tune values and zentrierung

Based on Fortran routine from Martin Humbel “Bestimmung der horizontalen Betatronschwingungsgroessen R0, DR, A und B mit der Methode der Normalengleichung”

Parameters
  • radius (array_like) – Radii of turns

  • turnCorrection (float, optional) – Betatron oscillations per turn (tune), default value (1.35) based on PSI Ring

  • phaseCorrection (float, optional) – Phase correction for betatron calculation in grad (radial angle between measurement and extraction, default: 0)

  • amplitudeCorrection (float, optional) – Amplitude correction for betatron calculation (default: 1)

Returns

The centering values

Return type

array

Examples

Check Cyclotron.ipynb in the opal/test directory

opal.analysis.cyclotron.detect_peaks(x, mph=None, mpd=1, threshold=0, edge='rising', kpsh=False, valley=False, show=False, ax=None)[source]

Detect peaks in data based on their amplitude and other features.

Parameters
  • x (array_like) – 1D data.

  • mph (None or number, optional) – Detect peaks that are greater than minimum peak height (default: None).

  • mpd (int, optional) – detect peaks that are at least separated by minimum peak distance (in number of data, default = 1).

  • threshold (int, optional) – Detect peaks (valleys) that are greater (smaller) than threshold in relation to their immediate neighbors (default = 0).

  • edge (None or str) – {None, ‘rising’, ‘falling’, ‘both’}, optional (default = ‘rising’) for a flat peak, keep only the rising edge (‘rising’), only the falling edge (‘falling’), both edges (‘both’), or don’t detect a flat peak (None).

  • kpsh (bool, optional) – keep peaks with same height even if they are closer than mpd (default = False).

  • valley (bool, optional) – If True, detect valleys (local minima) instead of peaks.

  • show (bool, optional) – If True, plot data in matplotlib figure.

  • ax (matplotlib.axes.Axes instance, optional) –

Returns

ind – indices of the peaks in x.

Return type

array_like

Notes

The detection of valleys instead of peaks is performed internally by simply negating the data: ind_valleys = detect_peaks(-x)

The function can handle NaN’s

See this IPython Notebook 1.

References

1

http://nbviewer.ipython.org/github/demotu/BMC/blob/master/notebooks/DetectPeaks.ipynb

Examples

>>> from detect_peaks import detect_peaks
>>> x = np.random.randn(100)
>>> x[60:81] = np.nan
>>> # detect all peaks and plot data
>>> ind = detect_peaks(x, show=True)
>>> print(ind)
>>> x = np.sin(2*np.pi*5*np.linspace(0, 1, 200)) + np.random.randn(200)/5
>>> # set minimum peak height = 0 and minimum peak distance = 20
>>> detect_peaks(x, mph=0, mpd=20, show=True)
>>> x = [0, 1, 0, 2, 0, 3, 0, 2, 0, 1, 0]
>>> # set minimum peak distance = 2
>>> detect_peaks(x, mpd=2, show=True)
>>> x = np.sin(2*np.pi*5*np.linspace(0, 1, 200)) + np.random.randn(200)/5
>>> # detection of valleys instead of peaks
>>> detect_peaks(x, mph=0, mpd=20, valley=True, show=True)
>>> x = [0, 1, 1, 0, 1, 1, 0]
>>> # detect both edges
>>> detect_peaks(x, edge='both', show=True)
>>> x = [-2, 1, -2, 2, 1, 1, 3, 0]
>>> # set threshold = 2
>>> detect_peaks(x, threshold = 2, show=True)
opal.analysis.cyclotron.eval_radial_momentum(px, py, theta)[source]

Evaluate the radial momentum

Parameters
  • px (float or array) – Data of momentum in x

  • py (float or array) – Data of momentum in y

  • theta (float) – Azimuthal angle (in radian)

Returns

Radial momentum

Return type

float

Notes

\[\begin{split}\begin{align} x & = r \sin(\theta) \\ y & = r \cos(\theta) \\ r & = \sqrt(x^2 + y^2) \\ \frac{dr}{dt} & = \frac{dr}{dx} \frac{dx}{dt} + \frac{dr}{dy} \frac{dy}{dt} \\ \frac{dr}{dt} & \sim \textrm{radial momentum}~p_r \\ \frac{dx}{dt} & \sim \textrm{horizontal momentum}~p_x \\ \frac{dy}{dt} & \sim \textrm{longitudinal momentum}~p_y \\ \frac{dr}{dx} & = \frac{1}{2 r} * 2 * x = \frac{x}{r} = \cos(\theta) \\ \frac{dr}{dy} & = \frac{1}{2 r} * 2 * y = \frac{y}{r} = \sin(\theta) \\ \rightarrow p_r & = p_x \cos(\theta) + p_y \sin(\theta) \end{align}\end{split}\]
opal.analysis.cyclotron.eval_radius(x, y)[source]

Evaluate the radius

\[r = \sqrt{x^2 + y^2}\]
Parameters
  • x (float or array) – Data of x-direction

  • y (float or array) – Data of y-direction

Returns

Radius

Return type

float

opal.analysis.pareto_fronts module

opal.analysis.pareto_fronts.delete_repeats(x, y, z=0)[source]

Delete repeated pareto front values, if any.

Parameters
  • x (array_like) – 1D array of first objective values

  • y (array_like) – 1D array of second objective values

  • z (array_like, optional) – ND array of second design variables

Returns

Return type

df (pandas db) database with out repeats

opal.analysis.pareto_fronts.get_all_data_db(dbpath)[source]

Get objectives and design variables

Get all objectives and design variables from every generation in an optimzation database. Databases are made using OPAL output from json files or stat files. Functions to make databases can be found in mldb.py.

Parameters

db (str) – Path to pickle file containing database made with mldb.py

Returns

data – Dictonary containing all objectives and design values in optimization database.

Return type

dict

opal.analysis.pareto_fronts.pareto_pts(x, y)[source]

Find Pareto points

Find Pareto points for 2 objectives, given all data recorded by optimization run. These points are calculated independent of generation. i.e. best points from all generations are found and saved.

Parameters
  • x (array_like) – 1D array of first objective values

  • y (array_like) – 1D array of second objective values

  • dvars (array_like, optional) – ND array of design variables

Returns

pfdict – Dictionary that holds pareto front values and corresponding design values

Return type

dict

opal.analysis.pareto_fronts.scaleData(vals)[source]

Scale 1D data array from 0 to 1.

Used to compare objectives with different units.

Parameters

vals (array_like) – 1D array that holds any opal data

Returns

sacaled_vals – 1D array scaled from 0 to 1

Return type

array_like