Skip to content

Instantly share code, notes, and snippets.

@cjordan
Created October 26, 2016 09:15
Show Gist options
  • Save cjordan/3b1024a0f0f8da18900539f6e6efef23 to your computer and use it in GitHub Desktop.
Save cjordan/3b1024a0f0f8da18900539f6e6efef23 to your computer and use it in GitHub Desktop.
Testing scipy's find_peaks_cwt
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 166,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import multiprocessing as mp\n",
"\n",
"import numpy as np\n",
"from scipy import signal, ndimage\n",
"\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 269,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def get_spectrum(A=100, W=30, N=1000, noise=0.1):\n",
" np.random.seed()\n",
" random_offset = int(np.random.uniform(0.1*N, 0.9*N))\n",
" line = np.roll(np.roll(A*signal.gaussian(N, W), -N/2), random_offset)\n",
" measured = line + np.random.normal(loc=0, scale=noise, size=N)\n",
" \n",
" peaks = signal.find_peaks_cwt(measured, np.arange(10, 50, 5), min_snr=5, noise_perc=10)\n",
" \n",
" return measured, random_offset, peaks"
]
},
{
"cell_type": "code",
"execution_count": 254,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def plot_spectrum_w_peaks(A=10, W=20, N=1000):\n",
" spectrum, offset, peaks = get_spectrum(A=A, W=W, N=N)\n",
" _, ax = plt.subplots(1, figsize=(15, 3))\n",
" ax.plot(spectrum)\n",
" ax.set_title(\"Offset: %s, Peaks: %s\" % (offset, peaks))"
]
},
{
"cell_type": "code",
"execution_count": 280,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nrIB58/K1dGnW67x5WebDD2d548fnsvnzM6558/L62X77PAf33Qdve1tef9Xz9eSTGX/v3nmNDh+e\ndXHvvXmcr31tXj933ZXncLfd8sv+ihV5XLvtlu+bOTP3OWdOXnNDh8KIERnn5Mm57Pjj8zw++GCe\nwwMPzGNduTKfC4sW5fv69MnfX/e6fN9222Ws1XqZMyfv/7lz8w/ZhQvzmbN6ddb5LrvAuHFw//25\nfMcdsx67dVt3D0+blvvff/+8fhYtyuthhx3ymHv1yvtg222zvpcvz/OzZk0+a2bMyGvusMPy+COy\nfqqvHj3W/XvNmry+9903r41nn133PHryyfwDvBr3Hnvk/TVw4Lrr/k9/yvtm5co8jj33zOfuU0/l\n/bNwYdZJr17rzvsDD+RzadiwfO+CBfnenXbKOu7ZM+/VBQvy+Hv3zrq9/fask6OPzvP74IP5/m23\nzWfZI4/k78uW5bL+/fOZumhRxlyt6yFD8rqbNy+P/S9/yeOvfj7stlu+b968jGGnnfJ5tGxZntM+\nfbL+Bw3Ke2v33fNYn3oq37NyZZ6PAw/MOrv33qyHoUOzzl56Ka+93r3zHqk+Z/r0WZcQueqqXL7f\nfnmf9OuX9fiDH2RdHHRQ7nfRoox1553zudutW+5rv/3yml68OPf55z/nPvfdN8/nww/n/oYPz2fP\n6NF5Lf/xj+vutREjst7uvz/XT5+er75981l18MFw6615vY4bt+4z+MAD89xOnrzu+fzii/nvHXbI\n+/yxx/JaHTkyr8/Vq7Oeq8/MJUvyWt9tt7zfqp+N06fDKafk/f/CC1nPpWS9zZiRz69DDsn7YunS\nfGYOH56zVC5aBPvsk9f/smW5/uWXM9ZddllXzm235WfI2WdnHHPm5Hk/8MD83J89O2N+/nk47ri8\nnrt1y3tp1aq8zgYPztcLL+Q1Vr0Pd9opz++CBXle7r8/6/iAA/J9/frl9VG9bqvHsWRJ/ly9Ouvk\n/vvzPK5vvKs99shrvW9f+OpX4Zxz8pqV1mfAAJg4MV/LluX3xltuyc+BefPyWfLDH67bfuDATMbN\nnp3PgqlT87NoxIi858aOzedM9TtC7975nOrdO58J8+bltdynT943q1fnvTZvXt7jw4blNd+jR95/\nzz6b28yenc++007L33tU/gKaMiXXzZuX997hh+c9MG9elr9sWT6nrrwyPwNGjcp78+mn8/Pguecy\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f9daee57690>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_spectrum_w_peaks(A=100, W=20)"
]
},
{
"cell_type": "code",
"execution_count": 273,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f9daf2bd210>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"spectra = mp.Pool().map(get_spectrum, np.ones(1e3))\n",
"\n",
"peak_offsets = []\n",
"for s in spectra:\n",
" offset = s[1]\n",
" peaks = s[2]\n",
" if len(peaks) == 0:\n",
" peak_offsets.append(1000)\n",
" else:\n",
" for p in peaks:\n",
" peak_offsets.append(offset-p)\n",
" \n",
"_, ax = plt.subplots(1, figsize=(15, 5))\n",
"ax.hist(peak_offsets, bins=np.arange(-1000, 1100, 100))\n",
"ax.grid(True)\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python2",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment