Skip to content

Instantly share code, notes, and snippets.

@calum-chamberlain
Created January 7, 2018 20:34
Show Gist options
  • Save calum-chamberlain/50b80dd0be71916906e33e532654ebe1 to your computer and use it in GitHub Desktop.
Save calum-chamberlain/50b80dd0be71916906e33e532654ebe1 to your computer and use it in GitHub Desktop.
Demonstration of normalisation using obspy correlate functions
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Script written by Amanda Thomas (adapted by Calum Chamberlain) for correlation of synthetic data"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x2b76522cd320>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from obspy.signal.cross_correlation import (\n",
" correlate, xcorr_max, xcorr)\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from scipy import signal\n",
"\n",
"t=np.arange(0, 200, 0.01) \n",
"i, q, e = signal.gausspulse(\n",
" np.arange(-100, 100, 0.01), fc=0.5, retquad=True,\n",
" retenv=True) # gaussian pulse\n",
"i = i + 0.3 * np.random.randn(len(i)) # add noise\n",
"\n",
"data = i[2000:12000] # fake data\n",
"template = i[9000:11000] # fake template\n",
"\n",
"fig, ax = plt.subplots(3, figsize=(10, 10))\n",
"ax[0].plot(range(len(data)), data)\n",
"ax[0].plot(template, color='r')\n",
"\n",
"cc = correlate(data, template, len(data) // 2,\n",
" demean=True, normalize=True, domain='freq')\n",
"\n",
"ax[1].plot(range(len(data) + 1), cc)\n",
"shift, value = xcorr_max(cc)\n",
"ax[2].plot(range(len(data)), data)\n",
"ax[2].plot(range(int(len(data) / 2 - len(template) / 2 + shift),\n",
" int(len(data) / 2 - len(template) / 2 + len(template) + shift)),\n",
" template, color='r')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Offset is 8000 samples, with correlation of 0.555524\n"
]
}
],
"source": [
"print(\"Offset is %i samples, with correlation of %f\" % (shift + len(data) // 2, value))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This gets the offset right, but the correlation is very suppresed, not immediately clear why, because:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"real_shift = shift + len(data) // 2\n",
"np.allclose(template, data[real_shift - len(template) // 2: real_shift + len(template) // 2])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This looks like a failure of obspy from here... Lets see what the EQcorrscan routines come up with. Because these routines are written for multi-dimension datasets, we have to do some reshaping..."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x2b76522cd748>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from eqcorrscan.utils.correlate import get_array_xcorr\n",
"\n",
"templates = template.reshape(1, len(template))\n",
"stream = data.reshape(len(data))\n",
"pads = [0]\n",
"\n",
"xcorr_func = get_array_xcorr()\n",
"\n",
"ccc = xcorr_func(templates=templates, stream=stream, pads=pads)\n",
"\n",
"plt.plot(ccc[0][0])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(3000, 1.0)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xcorr_max(ccc[0][0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With EQcorrscan's normalised routines (this is the frequency domain routine using the fftw library) we get near enough to the correct (1.0) answer within a useful precision. EQcorrscan's other implementations (time and numpy's frequency domain) should get the same result.\n",
"\n",
"So why is ObsPy's cross-correlation different? I don't think it is performing a fully normalised cross-correlation..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Re-working Obspy's correlation implementation.\n",
"\n",
"To \"normalise\" obspy is removing the overall mean of the two data windows, computing the correlation, then dividing by the standard deviation:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"def obspy_xcorr(a, b, shift, demean=True, normalize=True, domain='freq'):\n",
" \"\"\"Hack of obspy's correlate function to test normalisation.\"\"\"\n",
" a = np.asarray(a)\n",
" b = np.asarray(b)\n",
" if demean:\n",
" a = a - np.mean(a)\n",
" b = b - np.mean(b)\n",
" if normalize:\n",
" stdev = (np.sum(a ** 2)) ** 0.5 * (np.sum(b ** 2)) ** 0.5\n",
" if stdev == 0:\n",
" # set stdev to 1 to prevent division by 0\n",
" # cross-correlation function will have only zeros anyway\n",
" stdev = 1\n",
" else:\n",
" stdev = 1\n",
" print(stdev)\n",
" assert domain in ('freq', 'time')\n",
" mid = (len(a) + len(b) - 1) // 2\n",
" if shift is None:\n",
" shift = mid\n",
" if domain == 'freq':\n",
" c = signal.fftconvolve(a, b[::-1], 'full')\n",
" else:\n",
" c = signal.correlate(a, b, 'full')\n",
" return c[mid - shift:mid + shift + len(c) % 2] / stdev"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"583.194230409\n"
]
},
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cc_hacked = obspy_xcorr(data, template, len(data) // 2,\n",
" demean=True, normalize=True, domain='freq')\n",
"np.allclose(cc, cc_hacked)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So, this gets the same result, but, this isn't a normalised cross-correlation by either definition on wikipedia (either [\"normalised\"](https://en.wikipedia.org/wiki/Cross-correlation#Normalized_cross-correlation_(NCC)) or [\"zero-normalised\"](https://en.wikipedia.org/wiki/Cross-correlation#Zero-normalized_cross-correlation_(ZNCC)). Both cases involve removing the standard deviation for **each step**. What this does is remove the bulk standard deviation.\n",
"\n",
"Lets try it again, but changing how to define the standard deviation. We will use bottleneck to compute the moving standard deviations, a la [EQcorrscan](https://github.com/eqcorrscan/EQcorrscan/blob/master/eqcorrscan/utils/correlate.py#L351)."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"def obspy_normxcorr(a, b, shift, demean=True, domain='freq'):\n",
" \"\"\"Hack of obspy's correlate function to test normalisation.\"\"\"\n",
" import bottleneck\n",
" \n",
" a = np.asarray(a).astype(np.float32)\n",
" b = np.asarray(b).astype(np.float32)\n",
" # bottlenecks routines kinda fail for float64\n",
" if demean:\n",
" a = a - np.mean(a)\n",
" b = b - np.mean(b)\n",
" # Get required arrays\n",
" if len(a) < len(b):\n",
" template = a\n",
" stream = b\n",
" else:\n",
" template = b\n",
" stream = a\n",
" template_length = len(template)\n",
" stream_mean_array = bottleneck.move_mean(\n",
" stream, template_length)[template_length - 1:]\n",
" stream_std_array = bottleneck.move_std(\n",
" stream, template_length)[template_length - 1:]\n",
" # because stream_std_array is in denominator or res, nan all 0s\n",
" stream_std_array[stream_std_array == 0] = np.nan\n",
" # Normalize and flip the templates\n",
" norm = ((template - template.mean()) / (\n",
" template.std() * template_length))\n",
" norm_sum = norm.sum()\n",
"\n",
" assert domain in ('freq', 'time')\n",
" mid = (len(a) + len(b) - 1) // 2\n",
" if shift is None:\n",
" shift = mid\n",
" if domain == 'freq':\n",
" c = signal.fftconvolve(norm[::-1], stream, 'full')\n",
" else:\n",
" c = signal.correlate(template, stream, 'full')\n",
" return (c[mid - shift:mid + shift + len(c) % 2] - norm_sum * stream_mean_array) / stream_std_array"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(3000, 0.9999990744268916)"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cc_norm_hacked = obspy_normxcorr(\n",
" data, template, (len(data) // 2) - (len(template) // 2), demean=True, domain='freq')\n",
"xcorr_max(cc_norm_hacked)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that because we use bottleneck for the moving window, which only calculates for full windows, we had to reduce the shift - only fully valid, totally overlapping correlations are returns (as is the case for EQcorrscan)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment