# How to use rampy - 10 common examples

## To help you get started, we’ve selected a few rampy examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

charlesll / rampy / rampy / baseline.py View on Github
``````### Baseline is of the type y = a*exp(-log(2)*((x-b)/c)**2)
# optional parameters
p0_gauss = kwargs.get('p0_gaussian',[1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.gaussian,yafit[:,0],yafit[:,1],p0 = p0_gauss)

baseline_fitted = rampy.gaussian(x,coeffs[0],coeffs[1],coeffs[2])

elif method == 'exp':
### Baseline is of the type y = a*exp(b*(x-xo))
# optional parameters
p0_exp = kwargs.get('p0_exp',[1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.funexp,yafit[:,0],yafit[:,1],p0 = p0_exp)

baseline_fitted = rampy.funexp(x,coeffs[0],coeffs[1],coeffs[2])

elif method == 'log':
### Baseline is of the type y = a*exp(b*(x-xo))
# optional parameters
p0_log = kwargs.get('p0_log',[1.,1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.funlog,yafit[:,0],yafit[:,1],p0 = p0_log)

baseline_fitted = rampy.funlog(x,coeffs[0],coeffs[1],coeffs[2],coeffs[3])

elif method == 'rubberband':
# code from this stack-exchange forum
#https://dsp.stackexchange.com/questions/2725/how-to-perform-a-rubberband-correction-on-spectroscopic-data

# Find the convex hull
v = ConvexHull(np.array([x, y])).vertices``````
charlesll / rampy / rampy / baseline.py View on Github
``````elif method == 'gaussian':
### Baseline is of the type y = a*exp(-log(2)*((x-b)/c)**2)
# optional parameters
p0_gauss = kwargs.get('p0_gaussian',[1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.gaussian,yafit[:,0],yafit[:,1],p0 = p0_gauss)

baseline_fitted = rampy.gaussian(x,coeffs[0],coeffs[1],coeffs[2])

elif method == 'exp':
### Baseline is of the type y = a*exp(b*(x-xo))
# optional parameters
p0_exp = kwargs.get('p0_exp',[1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.funexp,yafit[:,0],yafit[:,1],p0 = p0_exp)

baseline_fitted = rampy.funexp(x,coeffs[0],coeffs[1],coeffs[2])

elif method == 'log':
### Baseline is of the type y = a*exp(b*(x-xo))
# optional parameters
p0_log = kwargs.get('p0_log',[1.,1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.funlog,yafit[:,0],yafit[:,1],p0 = p0_log)

baseline_fitted = rampy.funlog(x,coeffs[0],coeffs[1],coeffs[2],coeffs[3])

elif method == 'rubberband':
# code from this stack-exchange forum
#https://dsp.stackexchange.com/questions/2725/how-to-perform-a-rubberband-correction-on-spectroscopic-data``````
charlesll / rampy / rampy / baseline.py View on Github
``````elif method == 'exp':
### Baseline is of the type y = a*exp(b*(x-xo))
# optional parameters
p0_exp = kwargs.get('p0_exp',[1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.funexp,yafit[:,0],yafit[:,1],p0 = p0_exp)

baseline_fitted = rampy.funexp(x,coeffs[0],coeffs[1],coeffs[2])

elif method == 'log':
### Baseline is of the type y = a*exp(b*(x-xo))
# optional parameters
p0_log = kwargs.get('p0_log',[1.,1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.funlog,yafit[:,0],yafit[:,1],p0 = p0_log)

baseline_fitted = rampy.funlog(x,coeffs[0],coeffs[1],coeffs[2],coeffs[3])

elif method == 'rubberband':
# code from this stack-exchange forum
#https://dsp.stackexchange.com/questions/2725/how-to-perform-a-rubberband-correction-on-spectroscopic-data

# Find the convex hull
v = ConvexHull(np.array([x, y])).vertices

# Rotate convex hull vertices until they start from the lowest one
v = np.roll(v, -v.argmin())
# Leave only the ascending part
v = v[:v.argmax()]

# Create baseline using linear interpolation between vertices``````
charlesll / rampy / rampy / baseline.py View on Github
``````### Baseline is of the type y = a*exp(b*(x-xo))
# optional parameters
p0_exp = kwargs.get('p0_exp',[1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.funexp,yafit[:,0],yafit[:,1],p0 = p0_exp)

baseline_fitted = rampy.funexp(x,coeffs[0],coeffs[1],coeffs[2])

elif method == 'log':
### Baseline is of the type y = a*exp(b*(x-xo))
# optional parameters
p0_log = kwargs.get('p0_log',[1.,1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.funlog,yafit[:,0],yafit[:,1],p0 = p0_log)

baseline_fitted = rampy.funlog(x,coeffs[0],coeffs[1],coeffs[2],coeffs[3])

elif method == 'rubberband':
# code from this stack-exchange forum
#https://dsp.stackexchange.com/questions/2725/how-to-perform-a-rubberband-correction-on-spectroscopic-data

# Find the convex hull
v = ConvexHull(np.array([x, y])).vertices

# Rotate convex hull vertices until they start from the lowest one
v = np.roll(v, -v.argmin())
# Leave only the ascending part
v = v[:v.argmax()]

# Create baseline using linear interpolation between vertices
baseline_fitted = np.interp(x, x[v], y[v])``````
charlesll / rampy / rampy / baseline.py View on Github
``````print('ERROR: Install gcvspline to use this mode (needs a working FORTRAN compiler).')

# optional parameters
splinesmooth = kwargs.get('s',2.0)

# Spline baseline with mode 1 of gcvspl.f, see gcvspline documentation
c, wk, ier = gcvspline(yafit[:,0],yafit[:,1],np.sqrt(np.abs(yafit[:,1])),splinesmooth,splmode = 1) # gcvspl with mode 1 and smooth factor

baseline_fitted = splderivative(x,yafit[:,0],c)

elif method == 'gaussian':
### Baseline is of the type y = a*exp(-log(2)*((x-b)/c)**2)
# optional parameters
p0_gauss = kwargs.get('p0_gaussian',[1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.gaussian,yafit[:,0],yafit[:,1],p0 = p0_gauss)

baseline_fitted = rampy.gaussian(x,coeffs[0],coeffs[1],coeffs[2])

elif method == 'exp':
### Baseline is of the type y = a*exp(b*(x-xo))
# optional parameters
p0_exp = kwargs.get('p0_exp',[1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.funexp,yafit[:,0],yafit[:,1],p0 = p0_exp)

baseline_fitted = rampy.funexp(x,coeffs[0],coeffs[1],coeffs[2])

elif method == 'log':
### Baseline is of the type y = a*exp(b*(x-xo))
# optional parameters
p0_log = kwargs.get('p0_log',[1.,1.,1.,1.])``````
charlesll / rampy / rampy / baseline.py View on Github
``````# optional parameters
splinesmooth = kwargs.get('s',2.0)

# Spline baseline with mode 1 of gcvspl.f, see gcvspline documentation
c, wk, ier = gcvspline(yafit[:,0],yafit[:,1],np.sqrt(np.abs(yafit[:,1])),splinesmooth,splmode = 1) # gcvspl with mode 1 and smooth factor

baseline_fitted = splderivative(x,yafit[:,0],c)

elif method == 'gaussian':
### Baseline is of the type y = a*exp(-log(2)*((x-b)/c)**2)
# optional parameters
p0_gauss = kwargs.get('p0_gaussian',[1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.gaussian,yafit[:,0],yafit[:,1],p0 = p0_gauss)

baseline_fitted = rampy.gaussian(x,coeffs[0],coeffs[1],coeffs[2])

elif method == 'exp':
### Baseline is of the type y = a*exp(b*(x-xo))
# optional parameters
p0_exp = kwargs.get('p0_exp',[1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.funexp,yafit[:,0],yafit[:,1],p0 = p0_exp)

baseline_fitted = rampy.funexp(x,coeffs[0],coeffs[1],coeffs[2])

elif method == 'log':
### Baseline is of the type y = a*exp(b*(x-xo))
# optional parameters
p0_log = kwargs.get('p0_log',[1.,1.,1.,1.])
## fit of the baseline
coeffs, pcov = curve_fit(rampy.funlog,yafit[:,0],yafit[:,1],p0 = p0_log)``````
charlesll / rampy / rampy / rameau.py View on Github
``````sp = np.genfromtxt(path_in+data_liste["Name"][i],delimiter=delim,skip_header=1)

# constructing an interpolator: this will allow an output of all data with the same X axis
f = scipy.interpolate.interp1d(sp[:,0], sp[:,1],fill_value="extrapolate")

# temperature and excitation line correction (see Rameau help)
x, y_all[:,i], sdf = rp.tlcorrection(x,f(x),23.0,laser,normalisation='intensity')

# getting the roi
roi = np.array(rois.loc[i]).reshape(int(len(rois.loc[i])/2),2)

# calculating baseline
if method == "LL2012": # spline

try:
c_hf, b_hf = rp.baseline(x,y_all[:,i],roi,"gcvspline",s=spline_coeff)
except:
break

y_all_corr[:,i]=c_hf[:,0]
y_all_base[:,i]=b_hf[:,0]

elif method == "DG2017": # polynomial 3 following DG2017 method

# getting portion of interrest
x_lf = x[np.where(x&lt;2000.)].reshape(-1)
x_hf = x[np.where(x&gt;2000.)].reshape(-1)

y_lf = y_all[np.where(x&lt;2000.),i].reshape(-1)
y_hf = y_all[np.where(x&gt;2000.),i].reshape(-1)

c_lf, b_lf = rp.baseline(x_lf,y_lf,np.array([[0,200],[1240,1500]]),"poly",polynomial_order = poly_coeff)``````
charlesll / rampy / rampy / rameau.py View on Github
``````break

y_all_corr[:,i]=c_hf[:,0]
y_all_base[:,i]=b_hf[:,0]

elif method == "DG2017": # polynomial 3 following DG2017 method

# getting portion of interrest
x_lf = x[np.where(x&lt;2000.)].reshape(-1)
x_hf = x[np.where(x&gt;2000.)].reshape(-1)

y_lf = y_all[np.where(x&lt;2000.),i].reshape(-1)
y_hf = y_all[np.where(x&gt;2000.),i].reshape(-1)

c_lf, b_lf = rp.baseline(x_lf,y_lf,np.array([[0,200],[1240,1500]]),"poly",polynomial_order = poly_coeff)
c_hf, b_hf = rp.baseline(x_hf,y_hf,np.array([[2500,3100],[3750,3900]]),"poly",polynomial_order = poly_coeff)

y_all_corr[:,i] = np.hstack((c_lf.reshape(-1),c_hf.reshape(-1)))
y_all_base[:,i] = np.hstack((b_lf.reshape(-1),b_hf.reshape(-1)))

else:
raise TypeError('method should be set to LL2012 or DG2017')

# Area / Integrated Intensity calculation
S = np.trapz(y_all_corr[np.where((x&gt;150)&amp;(x&lt;1250)),i],x[np.where((x&gt;150)&amp;(x&lt;1250))])
W = np.trapz(y_all_corr[np.where((x&gt;3100)&amp;(x&lt;3750)),i],x[np.where((x&gt;3100)&amp;(x&lt;3750))])

# updating the Pandas dataframe rws
rs[i] = S[0]
rw[i] = W[0]
rws[i] = W[0]/S[0]``````
charlesll / rampy / rampy / rameau.py View on Github
``````except:
break

y_all_corr[:,i]=c_hf[:,0]
y_all_base[:,i]=b_hf[:,0]

elif method == "DG2017": # polynomial 3 following DG2017 method

# getting portion of interrest
x_lf = x[np.where(x&lt;2000.)].reshape(-1)
x_hf = x[np.where(x&gt;2000.)].reshape(-1)

y_lf = y_all[np.where(x&lt;2000.),i].reshape(-1)
y_hf = y_all[np.where(x&gt;2000.),i].reshape(-1)

c_lf, b_lf = rp.baseline(x_lf,y_lf,np.array([[0,200],[1240,1500]]),"poly",polynomial_order = poly_coeff)
c_hf, b_hf = rp.baseline(x_hf,y_hf,np.array([[2500,3100],[3750,3900]]),"poly",polynomial_order = poly_coeff)

y_all_corr[:,i] = np.hstack((c_lf.reshape(-1),c_hf.reshape(-1)))
y_all_base[:,i] = np.hstack((b_lf.reshape(-1),b_hf.reshape(-1)))

else:
raise TypeError('method should be set to LL2012 or DG2017')

# Area / Integrated Intensity calculation
S = np.trapz(y_all_corr[np.where((x&gt;150)&amp;(x&lt;1250)),i],x[np.where((x&gt;150)&amp;(x&lt;1250))])
W = np.trapz(y_all_corr[np.where((x&gt;3100)&amp;(x&lt;3750)),i],x[np.where((x&gt;3100)&amp;(x&lt;3750))])

# updating the Pandas dataframe rws
rs[i] = S[0]
rw[i] = W[0]
rws[i] = W[0]/S[0]``````
charlesll / rampy / rampy / rameau.py View on Github
``````rs = np.ones(len(data_liste))

record_std = np.zeros((len(data_liste),2))

rois = data_liste.loc[:,"ROI1 lb":"ROI6 hb"]

for i in range(len(data_liste)):

# importing the spectra

# constructing an interpolator: this will allow an output of all data with the same X axis
f = scipy.interpolate.interp1d(sp[:,0], sp[:,1],fill_value="extrapolate")

# temperature and excitation line correction (see Rameau help)
x, y_all[:,i], sdf = rp.tlcorrection(x,f(x),23.0,laser,normalisation='intensity')

# getting the roi
roi = np.array(rois.loc[i]).reshape(int(len(rois.loc[i])/2),2)

# calculating baseline
if method == "LL2012": # spline

try:
c_hf, b_hf = rp.baseline(x,y_all[:,i],roi,"gcvspline",s=spline_coeff)
except:
break

y_all_corr[:,i]=c_hf[:,0]
y_all_base[:,i]=b_hf[:,0]

elif method == "DG2017": # polynomial 3 following DG2017 method``````

## rampy

A Python module containing functions to treat spectroscopic (XANES, Raman, IR...) data

GPL-2.0