{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 2. Compute travel times\n", "\n", "This notebook computes the travel times from all the points of a three-dimensional grid to each seismic station. These travel times are necessary for time-shifting the seismic traces when evaluating the beamformed network response at every location of the grid.\n", "\n", "This tutorial utilizes the `pykonal` package to compute travel times given a velocity model. The package documentation and installation procedure are described in the [pykonal package documentation](https://github.com/malcolmw/pykonal). Please acknowledge [White et al. (2020)](https://pubs.geoscienceworld.org/ssa/srl/article-abstract/91/4/2378/586804/PyKonal-A-Python-Package-for-Solving-the-Eikonal?redirectedFrom=fulltext) if using `pykonal`.\n", "\n", "> **Note:** although `pykonal` handles computing the travel times in a three-dimensional velocity model, the example below uses a one-dimensional velocity model.\n", "\n", "## Contents\n", "\n", "* [Read velocity model](#read-velocity-model)\n", "\n", "* [Interpolate velocity model at depth](#interpolate-velocity-model-at-depth)\n", "* [Expand model laterally](#expand-model-laterally)\n", "* [Get station coordinates](#station-coordinates)\n", "* [Show model and stations](#show-model-and-stations)\n", "* [Compute travel times](#compute-travel-times)\n", "* [Save travel times](#save-travel-times)\n", "* [Show travel times at a given station](#show-travel-times-at-a-given-station)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import h5py as h5\n", "import numpy as np\n", "import os\n", "import pandas as pd\n", "import tqdm\n", "\n", "from matplotlib import pyplot as plt\n", "\n", "from obspy import read, read_inventory\n", "from pykonal.solver import PointSourceSolver\n", "from pykonal.transformations import geo2sph" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read velocity model\n", "\n", "We wrote the velocity model of [Karabulut et al. (2011)](https://www.sciencedirect.com/science/article/pii/S0040195111002903?casa_token=wTzEUe0IdicAAAAA:fYbKmGkHHrQfyLicd0lO4Ai451jT6h_yTF6ZZXrvglpw9rXDTVVzWzIWNQ0aFAFbMJ_pU6I) in a csv file that we read with `pandas`. The model is given in meters for the depth and in m/s for the speed values. Everything is converted to km for compatibility with `pykonal`. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "FILEPATH_VELOCITY = \"../data/velocity_model_Karabulut2011.csv\"" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
depth-2.00.01.02.03.04.05.06.08.010.012.014.015.020.022.025.032.077.0
P2.903.05.605.705.805.905.956.056.106.156.206.256.306.406.506.708.008.045
S1.671.93.153.213.263.413.423.443.483.563.593.613.633.663.783.854.654.650
\n", "
" ], "text/plain": [ "depth -2.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 8.0 10.0 \\\n", "P 2.90 3.0 5.60 5.70 5.80 5.90 5.95 6.05 6.10 6.15 \n", "S 1.67 1.9 3.15 3.21 3.26 3.41 3.42 3.44 3.48 3.56 \n", "\n", "depth 12.0 14.0 15.0 20.0 22.0 25.0 32.0 77.0 \n", "P 6.20 6.25 6.30 6.40 6.50 6.70 8.00 8.045 \n", "S 3.59 3.61 3.63 3.66 3.78 3.85 4.65 4.650 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Read velocity model\n", "velocity_layers = pd.read_csv(\n", " FILEPATH_VELOCITY, \n", " usecols=[1, 2, 4],\n", " names=[\"depth\", \"P\", \"S\"],\n", " skiprows=1,\n", " index_col=\"depth\",\n", " )\n", "\n", "# Convert meters to kilometers\n", "velocity_layers *= 1e-3\n", "velocity_layers.index *= 1e-3\n", "\n", "# Show table\n", "velocity_layers.T" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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vL29AUAzT2+MKlWqAHi0l8KTBcnly5c15y6+TdDUf5G2adMG9evXxxdffAE3NzccOXIEq1atMuk19DE07+J+V69e1TnH1atXERwcrPne29sbzs7OWL58ud5rFp/TVJ78q/PxnJ50+fJl2NnZoXLlyiaNoSQhISFIT09H69atERMTo1krVGzVqlWIiorCokWLtB539+5dvefT9xf2qlWrEBISgjVr1mgdVyqVes9R0msI/O+5Ky7WlEql1i9UQwrOxx/7uGctVot/bj7//HOduxGLPT6CZKjc3Fz8+OOPmDJlCiZMmKBpL14rZGq//fYb2rVrh6CgIOzYsQOenp46fRo0aIDVq1ejsLBQa13LiRMnAPDOH0viSIsNS0xMxNatW9GzZ0/UqFHjqf2LV85v2bIFq1atwuuvv45KlSppjsfExMDBwQF//fUXmjVrpverJG3atAEAnULh4MGDOH36NNq2bQvg0XSIp6cnFi9ebNSCUgBQKBSl/tU2YsQI/PTTT5g4cSKqVq2qc+eAORia98svvwwnJyd89913Wv327dunM10SFxeHv/76C1WqVNH7Gjxe4JhD7dq1Ua1aNSQlJWm9Rvfv38f69es1dxSVl+DgYKSnp8Pb2xsdOnTA3r17NcdkMpnOX9nHjx/XOypTEplMBkdHR62C5erVqyXePfTzzz9rRi2AR7dOr1mzBrVq1dIUrsWv0fHjx7Ue+8MPPzw1npIeu3nzZp2+xbkbMprRokULVKpUCadOnSrx33fxSKIx55XJZBBC6LwOS5cu1bvp27M4evQo2rVrh+rVqyM1NbXE4vn111/HvXv3sH79eq32lStXIiAgAC+99JJJ4yLDcaRForZu3Yr79+9r/iI8deqU5u6DTp06af1SePDggWZO/8GDBzh37hxSUlLw448/IjIyEosXLzbomu3bt0f16tXx7rvv4urVq1pTQ8CjN8tp06bhww8/xLlz59ChQwdUrlwZ165dw4EDB+Dq6lriRla1a9fGv/71L3z++eews7NDx44dkZ2djY8++giBgYEYPXo0gEfrIv773/9i0KBBaNeuHQYPHoyqVavi7NmzOHbsGL744osS42/QoAGSk5OxZs0a1KxZE05OTmjQoIHmeJ8+fTBx4kTs3r0bkydP1rwBm5OheVeuXBljx47FjBkzMGjQIHTv3h0XL15EfHy8znTD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = velocity_layers.plot(\n", " drawstyle=\"steps-post\",\n", " ylabel=\"Wave Velocity (km/s)\",\n", " xlabel=\"Depth (km)\",\n", " title=\"1D velocity model from Karabulut et al. 2011\",\n", " grid=True,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interpolate velocity model at depth\n", "\n", "We compute the travel times on a finer grid than the model grid, so we need to interpolate the model. We define 30 depths between 30 km and -2 km." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "depths = np.linspace(30.0, -2.0, 32)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then we interpolate the velocity at the given depths using `pandas.DataFrame` method `reindex`." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "velocity_layers_interp = velocity_layers.reindex(depths, method=\"ffill\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can then compare the natural (layered) and interpolated models as a function of depth" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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Fuipp57SkiVL1Lp1ax06dMgz7u2331b37t3ldrs1ZcoUffrpp7rnnnsKDeZ5Pv74Y9WuXVsXXXSRVq9erdWrV3t+qR40aJDef//9AlPrJ02aJLvdrkGDBhVbtyS99tpr+vbbb/Xaa6/prbfe0q+//qqrrrpKt912m/766y+98847GjdunL744gsNHjz4jF73qFGjPOPmz5/vmQq7devWfMfLyspS27ZtNX36dN1zzz1avHixHn74YU2bNs3Tb29Vq1ZNq1ev1kUXXeS5NGH16tVq1qyZZ8wrr7yiL7/8Ui+88IIWL16s+vXra+bMmerVq5fi4uI0a9Ysvf322zp69KjatWunlStXFnievn37qkmTJpo7d65uv/12vfTSS7rvvvt0zTXXqEePHvr444/VoUMHPfzww5o3b55XtTscDvXv31+vv/66Xn755UKnTh85ckSSNGLECH322WeaOnWqateurXbt2hUaEAt7rTk5OTpy5IgefPBBzZ8/X7NmzdJll12m3r1769133y1wjAULFuiVV17R6NGj9dFHH6lWrVq66aab9NFHH3n1uvzliSee0PXXXy9Jnr6uXr1a1apVK/IxM2bMUOfOnRUXF6fp06drzpw5qlChgrp06eIJ3YMHD9bdd98tSZo3b16hXzOn27lzp84//3xNmDBBS5cu1dixY7Vv3z61aNEi3/eAGb788kuFh4erXr16nm0///yzGjRooPDw/BMtGzdu7NkPAGWGAQAo0l9//WVIMkaMGFHo/rZt2xoXXHBBkY9fvHixIckYO3Zssc/TrFkzo3Xr1vm2TZo0yZBkbNq0yTAMw9i9e7cRHh5u3H333fnGZWZmGomJiUbfvn0920aMGGGc+l/8li1bDEnGkCFD8j32+++/NyQZjz76qOdYcXFxxmWXXWa43e4i6z39+IZhGBdccIHRtm3bAmO3b99uWK1W46WXXvJs+/vvv42KFSsat956a5HPYRiGsWPHDkOS0aRJE8Plcnm2T5gwwZBkXH311fnGDx061JBkpKen+/S6jx49akRGRhrXXnttvnHffvutISnf6xozZoxhtVqNtWvX5hv70UcfGZKMRYsWebbVqlXLGDBgQLGv0TAK/zrKe+116tQxcnNzPdtdLpeRlJRkNGrUKN/nJDMz06hSpUq+r6O8Po0fPz7fsZs2bWpIMubNm+fZ5nA4jMqVKxu9e/cusd5atWoZkvJ9Dr3hdDoNh8NhdOzYMd/nuqjXWtwxbrvtNuOiiy7Kt0+SUa5cOWP//v35xtevX9+oW7euZ1thX7+GYRhTp041JBk7duzwbGvbtm2+/n/11VeGJOOrr77K99i81zB16lTPtrvuuqvQ5ynMiRMnjAoVKhhXXXVVvu0ul8to0qSJcckll3i2Pf/88wXq9IXT6TSOHz9uREdHGy+//LJne1Gv7UwtXbrUsFqtxn333Zdv+3nnnWd06dKlwPi9e/cakoxnn3220OP58rqL+v8IAEobZ7gBwESGl2c7b731Vq1atSrf2dSpU6eqRYsWnmsRly5dKqfTqVtuuUVOp9PzFhkZqbZt2xY7pTRvGvLpK2ZfcsklatCggefs2apVq5SRkaEhQ4b4bZXz2rVrq2fPnpo0aZLn8zFz5kwdPnzY6xWlu3fvnm+6aIMGDSRJPXr0yDcub/vu3bslef+6V69erezs7ALXULdu3Vq1atXKt23hwoW68MIL1bRp03x96NKlyxmv8Fycq6++Ot9U3a1bt2rv3r3617/+le9zEhMTo+uuu07fffedsrKy8h3j9BXFGzRoIIvFom7dunm2hYeHq27dul5PM27atKlq1qypV199Vd99912R46ZMmaJmzZopMjJS4eHhstlsWr58ubZs2VLia83z4Ycfqk2bNoqJifEc4+233y70GB07dlTVqlU9H4eFhemGG27Qf//732JnaQTaqlWrdOTIEQ0YMCDf15Xb7VbXrl21du1any9ZyHP8+HE9/PDDqlu3rsLDwxUeHq6YmBidOHGi0M+hP/z444/q27evWrZsme9ylDzF/f9i5h0WAKC0EbgBwER54SUpKanYcf3791dERITn+s/Nmzdr7dq1uvXWWz1jDhw4IElq0aKFbDZbvrcPPvig2Kmhhw8flqRCp7MmJSV59v/111+S5PcF0e69915t27ZNy5Ytk3RyinirVq2KnQZ7qgoVKuT72G63F7s975ZU3r7uvH8TExMLjDt924EDB7Rx48YCPYiNjZVhGH6font67SW9JrfbraNHj+bbXtjnKSoqqsBK4na73evbeVWvXl1paWlKSEhQly5dClw/Lkkvvvii7rzzTl166aWaO3euvvvuO61du1Zdu3bV33//XeJrlU5Om+7bt6+qV6+uGTNmaPXq1Vq7dq0G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1Lp169SsWTOfX7evAhq4T1+lburUqapSpYrWrVuXrzEAAAAAYJaEiATZw+wl3oc7ISKhFKvyn1q1aslisWjhwoXq3r27ypUrp9jYWD344IO677775Ha7ddlllykjI0OrVq1STEyMBgwYUOwxIyMjNWDAAL3wwgvKyMjQPffco759+3qur37ooYc0YsQI1alTR02bNtXUqVO1YcOGQs9ES1LdunX17rvvaunSpUpNTdV7772ntWvXKjU11TMmJSVFS5cu1datW1WxYkXFx8erf//+ev7559WrVy/Pqui7d+/WvHnz9NBDD6lGjRq699579dxzz+m8885TgwYN9OKLL+ZbUd1MQXUNd3p6uiR5Luo/XU5OjnJycjwfZ2RkSJIcDofPq/iVNrfLadoxSzq29ZT9hsspt9X/taB43vYKgUevQkdej4L9/3/80yN6FfzoVeigVwU5HA4ZhiG3213sVOrCVI2qqgW9FuhY9rEix5SPLK+qUVV9PnbedcJ5tRW2v6h9JR331McU9rrztlWrVk0jR47UI488oltvvVX/+te/NHXqVI0aNUqVK1fWmDFj9Pvvv6t8+fK66KKLNHz48HzHO/3YhmGobt26uuaaa9S9e3cdOXJE3bp106uvvuoZ95///Efp6el64IEHdPDgQTVs2FDz589XnTp1Cj32HXfcofXr1+uGG26QxWLRjTfeqDvvvFNLlizxjL3tttv01VdfqXnz5jp+/LiWL1+udu3aKS0tTY888oh69+6tzMxMVa9eXR06dFBMTIzcbrfuu+8+7d27VwMHDpTVatWtt96qa665Runp6QVe16mfW8Mw5HA4FBYWlu/z6sv3ncUorRuQlcAwDPXq1UtHjx7VN998U+iYkSNH5lu5Ls/MmTMVFRVldokhK8yVo54bb5ckLWz8plxhESU8AgAAAAgt4eHhnntZ502hhjmee+45ffbZZ0XmtrIgNzdXe/bs0f79++V05j8Rk5WVpX79+ik9Pb3Iaex5guYM93/+8x9t3LhRK1euLHLM8OHDdf/993s+zsjIUHJysjp37lziCw20zXsz/H5Mt8up3Zu+U81GLWUNK7qVVkeWtPHk+7Uat5Lbxh8nSpu3vULg0avQkderTp06ndHiMig9DodDy5Yto1chgF6FDnpVUHZ2tvbs2aOYmBhFRkYGuhwPwzCUmZmp2NjYIhcM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N30KMj169DAGDRqUb1vv3r2Nm2++2TAM/39fcYY7xOTm5mrdunXq3Llzvu2dO3fWqlWrAlQVvLFjxw7t378/X+8iIiLUtm1behdg6enpkqQKFSpIolfByuVyafbs2Tpx4oRatWpFn4LUXXfdpR49eujKK6/Mt51+BZdt27YpKSlJqampuvHGG/X7779Lok/BZsGCBWrevLn69OmjKlWq6KKLLtKbb77p2U+/glNubq5mzJihQYMGyWKx0Kcgc9lll2n58uX67bffJEk//fSTVq5cqe7du0vy//dVuH/KRmk5dOiQXC6Xqlatmm971apVtX///gBVBW/k9aew3u3atSsQJUEnr9G5//77ddlll+nCCy+URK+CzaZNm9SqVStlZ2crJiZGH3/8sRo2bOj5oUefgsfs2bP1448/au3atQX28X0VPC699FK9++67qlevng4cOKCnn35arVu31i+//EKfgszvv/+uyZMn6/7779ejjz6qNWvW6J577lFERIRuueUW+hWk5s+fr2PHjmngwIGS+P8v2Dz88MNKT09X/fr1FRYWJpfLpWeeeUY33XSTJP/3i8AdoiwWS76PDcMosA3Bid4Fl//85z/auHGjVq5cWWAfvQoO559/vjZs2KBjx45p7ty5GjBggFasWOHZT5+Cw549e3Tvvffq888/V2RkZJHj6FfgdevWzfN+o0aN1KpVK9WpU0fTp09Xy5YtJdGnYOF2u9W8eXM9++yzkqSLLrpIv/zyiyZPnqxbbrnFM45+BZe3335b3bp1U1JSUr7t9Ck4fPDBB5oxY4ZmzpypCy64QBs2bNDQoUOVlJSkAQMGeMb5q19MKQ8xlSpVUlhYWIGz2QcPHizwVxgEl7wVYOld8Lj77ru1YMECffXVV6pRo4ZnO70KLna7XXXr1lXz5s01ZswYNWnSRC+//DJ9CjLr1q3TwYMHdfHFFys8PFzh4eFasWKFXnnlFYWHh3t6Qr+CT3R0tBo1aqRt27bxfRVkqlWrpoYNG+bb1qBBA89CufQr+OzatUtffPGFBg8e7NlGn4LLQw89pEceeUQ33nijGjVqpH/961+67777NGbMGEn+7xeBO8TY7XZdfPHFnpUP8yxbtkytW7cOUFXwRmpqqhITE/P1Ljc3VytWrKB3pcwwDP3nP//RvHnz9OWXXyo1NTXffnoV3AzDUE5ODn0KMh07dtSmTZu0YcMGz1vz5s3Vv39/bdiwQbVr16ZfQSonJ0dbtmxRtWrV+L4KMm3atClw28rffvtNtWrVksTPq2A0depUValSRT169PBso0/BJSsrS1Zr/hgcFhbmuS2Y3/vl+7puCLTZs2cbNpvNePvtt43NmzcbQ4cONaKjo42dO3cGurRzXmZmprF+/Xpj/fr1hiTjxRdfNNavX2/s2rXLMAzDeO6554z4+Hhj3rx5xqZNm4ybbrrJqFatmpGRkRHgys8td955pxEfH2+kpaUZ+/bt87xlZWV5xtCr4DB8+HDj66+/Nnbs2GFs3LjRePTRRw2r1Wp8/vnnhmHQp2B36irlhkG/gsUDDzxgpKWlGb///rvx3XffGT179jRiY2M9v0fQp+CxZs0aIzw83HjmmWeMbdu2Ge+//74RFRVlzJgxwzOGfgUPl8tl1KxZ03j44YcL7KNPwWPAgAFG9erVjYULFxo7duww5s2bZ1SqVMkYNmyYZ4w/+0XgDlGvvfaaUatWLcNutxvNmjXz3M4IgfXVV18Zkgq8DRgwwDCMk7cZGDFihJGYmGhEREQYV1xxhbFp06bAFn0OKqxHkoypU6d6xtCr4DBo0CDP/3WVK1c2Onbs6AnbhkGfgt3pgZt+BYcbbrjBqFatmmGz2YykpCSjd+/exi+//OLZT5+Cy6effmpceOGFRkREhFG/fn3jjTfeyLeffgWPpUuXGpKMrVu3FthHn4JHRkaGce+99xo1a9Y0IiMjjdq1axuPPfaYkZOT4xnjz35ZDMMwfD8vDgAAAAAAisM13AAAAAAAmIDADQAAAACACQjcAAAAAACYgMANAAAAAIAJCNwAAAAAAJiAwA0AAAAAgAkI3AAAAAAAmIDADQAAAACACQjcAACcA3bu3CmLxaINGzb4/Ngvv/xS9evXl9vtliSNHDlSTZs29W+Bklq0aKF58+b5/bgAAAQKgRsAAJMNHDhQFotFFotFNptNVatWVadOnfTOO+94Qqy/n++aa67x2/GGDRumxx57TFarub82PPHEE3rkkUdM+ZwAABAIBG4AAEpB165dtW/fPu3cuVOLFy9W+/btde+996pnz55yOp2BLq9Iq1at0rZt29SnTx/Tn6tHjx5KT0/X0qVLTX8uAABKA4EbAIBSEBERocTERFWvXl3NmjXTo48+qk8++USLFy/WtGnTPOPS09N1xx13qEqVKoqLi1OHDh30008/efbnTed+/fXXlZycrKioKPXp00fHjh3z7J8+fbo++eQTz1n1tLQ0z+N///13tW/fXlFRUWrSpIlWr15dbN2zZ89W586dFRkZWeSYHTt2qG7durrzzjvldrs1bdo0lS9fXgsXLtT555+vqKgoXX/99Tpx4oSmT5+ulJQUJSQk6O6775bL5fIcJywsTN27d9esWbN8++QCABCkCNwAAARIhw4d1KRJE891y4ZhqEePHtq/f78WLVqkdevWqVmzZurYsaOOHDniedx///tfzZkzR59++qmWLFmiDRs26K677pIkPfjgg+rbt6/njPq+ffvUunVrz2Mfe+wxPfjgg9qwYYPq1aunm266qdgz7F9//bWaN29e5P6ff/5Zbdq0UZ8+fTR58mTPtPOsrCy98sormj17tpYsWaK0tDT17t1bixYt0qJFi/Tee+/pjTfe0EcffZTveJdccom++eYb3z+ZAAAEofBAFwAAwLmsfv362rhxoyTpq6++0qZNm3Tw4EFFRERIkl544QXNnz9fH330ke644w5JUnZ2tqZPn64aNWpI+v927h2kzS8O4/hjqyXRoIJGjYKmKLaoFBpcXARBvCRCpRbbQRRbunZKBC9DRejm0oKiq4ujhWrrYoZ4WbRoW5RApSGgRBFFVCQEkg5/DFhvf2zf6PD9wEuSc3LOczKFH+85r/Thwwe5XC4NDg4qLy9PZrNZ4XBYeXl5Z/LcbrdcLpckqb+/X+Xl5fr586cePnx47voCgYDy8/PP7VtYWFBTU5O6u7vldrtP9UUiEQ0PD6u4uFiS9OzZM42NjWlra0sWi0VlZWWqqamR1+vV8+fP4+MKCgoUDAYVjUYNPzMOAIDR+CcDAOAGxWIxJSUlSZKWlpZ0eHiorKwsWSyW+PXr1y+tr6/HxxQWFsaLbUmqqqpSNBqV3++/Mu/Ro0fx9zabTZK0vb194fePj4/P3U4eDAZVW1urvr6+M8W2JKWmpsaLbUnKzc2V3W6XxWI51fZnttlsVjQaVTgcvvK3AABw23GHGwCAG7S2tqb79+9LkqLRqGw226kz1ycyMzMvnOOkYD95vUxKSsqZcZc9FTw7O1t7e3tn2q1Wq/Lz8zU+Pq5Xr14pPT39wpyTrPPa/sze3d1VamqqzGbzlb8FAIDbjjvcAADckJmZGX3//l0tLS2SJIfDoVAopOTkZJWUlJy6srOz4+OCwaA2NzfjnxcWFnTnzh2VlpZKku7du3fqYWR/4/Hjx1pdXT3Tbjab9enTJ5lMJtXX1+vg4OCf5P348UMOh+OfzAUAwE2j4AYAIAHC4bBCoZA2Njb09etXvXv3Tk+ePFFTU5Pa29slSbW1taqqqlJzc7Omp6cVCAQ0Pz+vvr4+LS4uxucymUzq6OjQysqKfD6f3rx5o9bW1viZbbvdrm/fvsnv92tnZ0eRSOTa666vr9fs7Oy5fWlpaZqcnFRycrIaGxt1eHh47ZwTPp9PdXV1fz0PAAC3AQU3AAAJ8OXLF9lsNtntdjU0NMjr9er9+/f6+PGj7t69K+m/LdZTU1Oqrq7Wy5cvVVpaqhcvXigQCCg3Nzc+V0lJiZ4+fSqn06m6ujpVVFRoaGgo3v/69Ws9ePBAlZWVslqtmpubu/a629ratLq6euH5cIvFos+fPysWi8npdOro6OjaWRsbG5qfn1dnZ+e15wAA4DZJisVisZteBAAA+H/evn2riYkJLS8vJyyzq6tL+/v7GhkZMTTH4/Fof39fo6OjhuYAAJAo3OEGAACX6u3tVVFR0T87F36RnJwcDQwMGJoBAEAi8ZRyAABwqYyMDPX09Bie4/F4DM8AACCR2FIOAAAAAIAB2FIOAAAAAIABKLgBAAAAADAABTcAAAAAAAag4AYAAAAAwAAU3AAAAAAAGICCGwAAAAAAA1BwAwAAAABgAApuAAAAAAAM8Bv8D4Rr+NOEIQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "velocity_layers.plot(drawstyle=\"steps-post\")\n", "velocity_layers_interp.sort_values(\"depth\").plot(\n", " drawstyle=\"steps-post\",\n", " xlabel=\"Depth (km)\",\n", " ylabel=\"Speed (km/s)\",\n", " title=\"1D velocity model from Karabulut et al. 2011\",\n", " ax=plt.gca(),\n", " grid=True,\n", " figsize=(12, 8),\n", " marker=\"s\",\n", " ls=\"\"\n", ")\n", "\n", "# Labels and legends\n", "plt.axvspan(depths.min(), depths.max(), alpha=0.2)\n", "plt.legend([\"P\", \"S\", \"P interpolated\", \"S interpolated\", \"Domain\"])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Expand model laterally\n", "\n", "Because `pykonal` uses three-dimensional coordinate systems, we need to cast the one-dimensional velocity model onto a three-dimensional grid. The following define the grid in the longitude and latitude dimensions." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PS
depth
30.0000006.703.85
28.9677426.703.85
27.9354846.703.85
26.9032266.703.85
25.8709686.703.85
24.8387106.503.78
23.8064526.503.78
22.7741946.503.78
21.7419356.403.66
20.7096776.403.66
19.6774196.303.63
18.6451616.303.63
17.6129036.303.63
16.5806456.303.63
15.5483876.303.63
14.5161296.253.61
13.4838716.203.59
12.4516136.203.59
11.4193556.153.56
10.3870976.153.56
9.3548396.103.48
8.3225816.103.48
7.2903236.053.44
6.2580656.053.44
5.2258065.953.42
4.1935485.903.41
3.1612905.803.26
2.1290325.703.21
1.0967745.603.15
0.0645163.001.90
-0.9677422.901.67
-2.0000002.901.67
\n", "
" ], "text/plain": [ " P S\n", "depth \n", " 30.000000 6.70 3.85\n", " 28.967742 6.70 3.85\n", " 27.935484 6.70 3.85\n", " 26.903226 6.70 3.85\n", " 25.870968 6.70 3.85\n", " 24.838710 6.50 3.78\n", " 23.806452 6.50 3.78\n", " 22.774194 6.50 3.78\n", " 21.741935 6.40 3.66\n", " 20.709677 6.40 3.66\n", " 19.677419 6.30 3.63\n", " 18.645161 6.30 3.63\n", " 17.612903 6.30 3.63\n", " 16.580645 6.30 3.63\n", " 15.548387 6.30 3.63\n", " 14.516129 6.25 3.61\n", " 13.483871 6.20 3.59\n", " 12.451613 6.20 3.59\n", " 11.419355 6.15 3.56\n", " 10.387097 6.15 3.56\n", " 9.354839 6.10 3.48\n", " 8.322581 6.10 3.48\n", " 7.290323 6.05 3.44\n", " 6.258065 6.05 3.44\n", " 5.225806 5.95 3.42\n", " 4.193548 5.90 3.41\n", " 3.161290 5.80 3.26\n", " 2.129032 5.70 3.21\n", " 1.096774 5.60 3.15\n", " 0.064516 3.00 1.90\n", "-0.967742 2.90 1.67\n", "-2.000000 2.90 1.67" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "velocity_layers_interp" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "longitudes = np.linspace(30.20, 30.45, 25)\n", "# sample latitudes in decreasing order to get corresponding colatitudes in increasing order (see explanation further)\n", "latitudes = np.linspace(40.76, 40.60, 16)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We then expand the velocity vector in the longitude and latitude dimensions with `xarray`. This operation is automatically done with the `expand_dim()` method." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "velocity_P = np.zeros((len(depths), len(latitudes), len(longitudes)), dtype=np.float32)\n", "velocity_S = np.zeros((len(depths), len(latitudes), len(longitudes)), dtype=np.float32)\n", "# use numpy's broadcasting rules\n", "velocity_P[...] = velocity_layers_interp[\"P\"].values[:, None, None]\n", "velocity_S[...] = velocity_layers_interp[\"S\"].values[:, None, None]\n", "# store the P- and S-wave velocity models in a dictionary\n", "velocity_model = {\n", " \"P\": velocity_P,\n", " \"S\": velocity_S\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Station coordinates\n", "\n", "We extract the station coordinates from the XML files." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
longitudelatitudeelevationdepth
code
DC0630.26575140.616718555.0-0.555
DC0730.24217040.667080164.0-0.164
DC0830.25013040.744438162.0-0.162
DD0630.31777040.623539182.0-0.182
DE0730.41153940.67966140.0-0.040
DE0830.40646940.74856231.0-0.031
SAUV30.32720040.740200170.0-0.170
SPNC30.30830040.686001190.0-0.190
\n", "
" ], "text/plain": [ " longitude latitude elevation depth\n", "code \n", "DC06 30.265751 40.616718 555.0 -0.555\n", "DC07 30.242170 40.667080 164.0 -0.164\n", "DC08 30.250130 40.744438 162.0 -0.162\n", "DD06 30.317770 40.623539 182.0 -0.182\n", "DE07 30.411539 40.679661 40.0 -0.040\n", "DE08 30.406469 40.748562 31.0 -0.031\n", "SAUV 30.327200 40.740200 170.0 -0.170\n", "SPNC 30.308300 40.686001 190.0 -0.190" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get inventories\n", "inventory = read_inventory(\"../data/processed/*xml\")\n", "\n", "# Extract stations\n", "stations = [sta for net in inventory for sta in net]\n", "attrs = \"longitude\", \"latitude\", \"elevation\", \"code\"\n", "stations = [{item: getattr(sta, item) for item in attrs} for sta in stations]\n", "\n", "# Turn into dataframe\n", "network = pd.DataFrame(stations).set_index(\"code\")\n", "network[\"depth\"] = -1e-3 * network.elevation \n", "\n", "# Save network metadata\n", "network.to_csv(\"../data/network.csv\")\n", "\n", "# Show\n", "network\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Show model and stations\n", "\n", "This cell selects a slice of the velocity model with the `DataArray.sel()` and plots it." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7QAAAK7CAYAAADC5sPPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB7HElEQVR4nO3deXQUVfr/8U8lJJ0ASbNmQSIgIMgqyBZAdpBFBDeYUTEo6jCyKW6AOoALiMqwKDLoIAGVZRxAUNnVBJGgCAQQFNEBiZiACyQskpj0/f3Bl/7ZJIF0SLpT4f06p86xqm7de6tT09MPz617LWOMEQAAAAAANhPg7w4AAAAAAFAYBLQAAAAAAFsioAUAAAAA2BIBLQAAAADAlghoAQAAAAC2REALAAAAALAlAloAAAAAgC0R0AIAAAAAbImAFgAAAABgSwS0AEqEm2++WaGhoTp+/Hi+Ze68804FBQXpyJEjBa7XsixNmDDh0jtYwPr37t2rCRMm6ODBg8XWpj8kJCTIsiwlJCR4fW18fLwsyyqSz2Tw4MGqWbOmx7GaNWtq8ODBl1y3t1555RXVqVNHwcHBsizrgs+uv23YsEHdu3dXtWrV5HA4FBERoS5dumjVqlW5ytasWVOWZcmyLAUEBMjpdOqaa67R3XffrXXr1vm03948O506dVKnTp2KvU8AgJKFgBZAiTBkyBCdOXNGCxcuzPN8enq6li9frhtvvFGRkZE+7l3+kpKSdN9997n39+7dq4kTJ5a6gLYkW758uZ5++mmftpmcnKyRI0eqc+fO+vjjj5WUlKSwsDCf9sEbv/76qxo2bKhp06Zp3bp1mjNnjoKCgtSnTx+9/fbbucq3a9dOSUlJ2rx5s5YuXarhw4frwIEDuuGGG3Tbbbfpjz/+8Em/+/Tpo6SkJEVHR/ukPQCA/ZTxdwcAQJJ69eqlatWq6c0339SDDz6Y6/yiRYv0+++/a8iQIX7oXf7atGnj7y5c9po1a+bzNvfs2SNJuv/++9WqVasLlj19+rTKli3ri27la+DAgRo4cKDHsRtvvFG1atXS66+/rrvuusvjXIUKFTye7W7dumnYsGGaMGGCJk6cqKeeekpTpkwptv7+/vvvCgkJUdWqVVW1atViawcAYH9kaAGUCIGBgYqLi9O2bdu0e/fuXOfnzZun6Oho9erVS5KUlpamv/3tb6pevbqCg4NVq1YtTZw4UdnZ2Rdt66uvvlK/fv1UsWJFhYSE6Nprr9X8+fNzlTt+/LgeeeQRXXXVVe5hmr1799Y333zjLvPnIcfx8fG6/fbbJUmdO3d2D9uMj4/Xs88+qzJlyiglJSVXO/fee68qV66sM2fO5NvnwYMHq3z58vrmm290ww03qFy5coqOjtYLL7wgSdqyZYvat2+vcuXK6eqrr87zfgp6399884169uypsmXLqkqVKho6dKhOnDiRZ782bNigrl27Kjw8XGXLllW7du300Ucf5XsfF/Lzzz/rgQceUExMjBwOh6pWrap27dppw4YNF7wuryHHBfnbZWVl6bnnnlP9+vXd7d1zzz36+eefL9hep06d3AFg69atZVmWu/1OnTqpUaNG2rhxo9q2bauyZcvq3nvvlSQdOnRId911lyIiIuRwOHTNNddo6tSpcrlc7roPHjwoy7L00ksvacqUKapZs6ZCQ0PVqVMnffvtt/rjjz80ZswYVatWTU6nUzfffLOOHj1a0I/YQ1BQkCpUqKAyZQr+b9sTJkxQw4YN9eqrr17weZWkzMxMPfLII4qKilLZsmXVoUMHbdu2Ldff69yw4nXr1unee+9V1apVVbZsWWVmZuY55NgYoxdffFE1atRQSEiImjdvrtWrV3t7+wCAUoIMLYAS495779ULL7ygN998U9OmTXMf37t3r7744guNGTNGgYGBSktLU6tWrRQQEKB//OMfql27tpKSkvTcc8/p4MGDmjdvXr5t7Nu3T23btlVERIRmzpypypUr6+2339bgwYN15MgRPf7445KkEydOqH379jp48KCeeOIJtW7dWidPntTGjRuVmpqq+vXr56q7T58+mjRpksaNG6dZs2apefPmkqTatWvLGKPnn39ec+bM0XPPPee+5rffftPixYs1fPhwhYSEXPDz+eOPP3TLLbdo6NCheuyxx7Rw4UKNHTtWGRkZWrp0qZ544glVr15dr7zyigYPHqxGjRrpuuuu8+q+jxw5oo4dOyooKEivvfaaIiMj9c4772j48OG5+vP222/r7rvvVr9+/TR//nwFBQVpzpw5uuGGG7R27Vp17dr1gvdzvkGDBmn79u16/vnndfXVV+v48ePavn27fv31V6/qKcjfzuVyqV+/fvr000/1+OOPq23btvrhhx80fvx4derUSV9++aVCQ0PzrP+1117TokWL9Nxzz2nevHmqX7++RxYxNTVVd911lx5//HFNmjRJAQEB+vnnn9W2bVtlZWXp2WefVc2aNfXBBx/o0Ucf1ffff6/XXnvNo41Zs2apSZMmmjVrljs479u3r1q3bq2goCC9+eab+uGHH/Too4/qvvvu08qVKwv02bhcLrlcLh09elRz5szRt99+63WmtW/fvnrhhRf05Zdfqn379vmWu+eee7RkyRI9/vjj6tKli/bu3aubb75ZGRkZeZa/99571adPH7311ls6deqUgoKC8iw3ceJETZw4UUOGDNFtt92mlJQU3X///crJyVG9evW8uhcAQClgAKAE6dixo6lSpYrJyspyH3vkkUeMJPPtt98aY4z529/+ZsqXL29++OEHj2tffvllI8ns2bPHfUySGT9+vHv/L3/5i3E4HObQoUMe1/bq1cuULVvWHD9+3BhjzDPPPGMkmfXr11+wv+fX/+677xpJ5pNPPslVNi4uzkRERJjMzEz3sSlTppiAgABz4MCBC7YTFxdnJJmlS5e6j/3xxx+matWqRpLZvn27+/ivv/5qAgMDzejRo72+7yeeeMJYlmWSk5M9ynXv3t3jvk6dOmUqVapk+vbt61EuJyfHNG3a1LRq1cp9bN68eUbSRe+xfPny5qGHHrro51CjRg2PYzVq1DBxcXHu/YL87RYtWpTr8zTGmK1btxpJ5rXXXrtgP87d09atWz2Od+zY0UgyH330kcfxMWPGGEnm888/9zj+97//3ViWZfbt22eMMebAgQNGkmnatKnJyclxl5s+fbqRZG666SaP6x966CEjyaSnp1+wv+fccMMNRpKRZMLDw82yZctylalRo4bp06dPvnXMnj3bSDJLlizJt8yePXuMJPPEE094HD/3uf/573Xus7z77rtz1XP+s3Ps2DETEhJibr75Zo9yn332mZFkOnbsmG+fAAClE0OOAZQoQ4YM0S+//OLOOGVnZ+vtt9/W9ddfr7p160qSPvjgA3Xu3FnVqlVTdna2ezs3HDkxMTHf+j/++GN17dpVMTExHscHDx6s06dPKykpSZK0evVqXX311erWrVuR3duoUaN09OhRvfvuu5LOZstmz56tPn365Jq5Ny+WZal3797u/TJlyqhOnTqKjo72eI+0UqVKioiI0A8//OA+VtD7/uSTT9SwYUM1bdrUo9wdd9zhsb9582b99ttviouL8/gbuFwu9ezZU1u3btWpU6cK9sH8n1atWik+Pl7PPfectmzZUuiJhwryt/vggw9UoUIF9e3b16P/1157raKiogo1m/M5FStWVJcuXTyOffzxx2rQoEGu920HDx4sY4w+/vhjj+O9e/dWQMD//7/oa665RtLZUQB/du74oUOHCtS3V155RV988YVWrFihG264QQMHDtSiRYsKdmP/xxhz0TLn/jc4YMAAj+O33XZbvkOcb7311ovWm5SUpDNnzujOO+/0ON62bVvVqFHjotcDAEofAloAJcptt90mp9PpHja8atUqHTlyxGMyqCNHjuj9999XUFCQx9awYUNJ0i+//JJv/b/++mueM6ZWq1bNfV46+z5n9erVi+y+pLOTF11//fWaNWuWpLNB1cGDB/MczpuXsmXL5hqWHBwcrEqVKuUqGxwc7PGOY0Hv+9dff1VUVFSucucfO7d00m233Zbr7zBlyhQZY/Tbb78V6L7OWbJkieLi4vTvf/9bsbGxqlSpku6++26lpaV5VU9B/nZHjhzR8ePHFRwcnKv/aWlpF3yGLiavz7mgn/855/9Ng4ODL3j8Yu+znlO3bl21bNlSN910k/7zn/+oa9euGjZsmMd7vBdz7h9KzvU9L+fu5/wZycuUKaPKlSvneU1BZjI+V29BnlEAwOWBd2gBlCihoaH661//qjfeeEOpqal68803FRYW5p5sSZKqVKmiJk2a6Pnnn8+zjgv90K5cubJSU1NzHf/pp5/cdUtS1apV9eOPP17KreRp5MiRuv3227V9+3a9+uqruvrqq9W9e/cib+d8Bb3vypUr5xlAnn/sXPlXXnkl35mevV1eqUqVKpo+fbqmT5+uQ4cOaeXKlRozZoyOHj2qNWvWFLiegvztqlSposqVK+db76UswWNZVq5jBf38fa1Vq1Zas2aNfv755wL9vYwxev/991WuXDm1aNEi33LngtYjR47oiiuucB/Pzs7O953ovD63/OrN7xktyEgHAEDpQoYWQIkzZMgQ5eTk6KWXXtKqVav0l7/8xWPZkxtvvFFfffWVateurRYtWuTaLhTQdu3aVR9//LE7kDhnwYIFKlu2rDs469Wrl7799ttcQ0EvxuFwSDq77Ehebr75Zl155ZV65JFHtGHDBj344IMF+iF/qQp63507d9aePXu0c+dOj3Lnrw/crl07VahQQXv37s3zb9CiRQt39rAwrrzySg0fPlzdu3fX9u3bvbq2IH+7G2+8Ub/++qtycnLy7HtRTy7UtWtX7d27N9e9LFiwQJZlqXPnzkXaXkEYY5SYmKgKFSrkmzU938SJE7V3716NGjXqgpOYdejQQdLZrPuf/fe//y3QTOT5adOmjUJCQvTOO+94HN+8ebPHEHsAwOWDDC2AEqdFixZq0qSJpk+fLmNMrrVnn3nmGa1fv15t27bVyJEjVa9ePZ05c0YHDx7UqlWr9K9//SvfIafjx493v4P7j3/8Q5UqVdI777yjDz/8UC+++KKcTqck6aGHHtKSJUvUr18/jRkzRq1atdLvv/+uxMRE3XjjjfkGII0aNZIkvf766woLC1NISIhq1arlDhgCAwM1bNgwPfHEEypXrlyu5WaKizf3/eabb6pPnz567rnn3LMc/3m5G0kqX768XnnlFcXFxem3337TbbfdpoiICP3888/auXOnfv75Z82ePbvA/UtPT1fnzp11xx13qH79+goLC9PWrVu1Zs0a3XLLLV7da0H+dn/5y1/0zjvvqHfv3ho1apRatWqloKAg/fjjj/rkk0/Ur18/3XzzzV61eyEPP/ywFixYoD59+uiZZ55RjRo19OGHH+q1117T3//+d1199dVF1lZe+vXrp6ZNm+raa69V5cqV9dNPPyk+Pl6JiYmaNWtWrvdajx8/ri1btkiSTp06pX379mnx4sX69NNPNWDAAE2cOPGC7TVs2FB//etfNXXqVAUGBqpLly7as2ePpk6dKqfT6fF+sDcqVqyoRx99VM8995zuu+8+3X777UpJSdGECRMYcgwAlyt/zkgFAPmZMWOGkWQaNGiQ5/mff/7ZjBw50tSqVcsEBQWZSpUqmeuuu848+eST5uTJk+5yOm8WYmOM2b17t+nbt69xOp0mODjYNG3a1MybNy9XG8eOHTOjRo0yV155pQkKCjIRERGmT58+5ptvvrlg/dOnTze1atUygYGBRlKuug8ePGgkmaFDhxb484iLizPlypXLdbxjx46mYcOGuY7nNVNtQe977969pnv37iYkJMRUqlTJDBkyxKxYsSLP2ZsTExNNnz59TKVKlUxQUJC54oorTJ8+fcy7777rLlOQWY7PnDljhg4dapo0aWLCw8NNaGioqVevnhk/frw5deqUx+dwsVmO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AtdZqHdoXS6Xvv32W23atEkbN2702AAAAAAA/jN58mS1bNlSYWFhioiIUP/+/bVv374LXjN48GBZlpVra9iwobtMfHx8nmXOnDlToH7973//05o1a3T77bfnGcxKUrly5TRv3rwC36vXGdotW7bojjvu0A8//JDrZV3LspSTk+NtlT7hynFJ2S5/dwMAAAC4rLly7P+b3DJGlhcTFxVFe95ITEzUsGHD1LJlS2VnZ+vJJ59Ujx49tHfvXpUrVy7Pa2bMmKEXXnjBvZ+dna2mTZvq9ttv9ygXHh6eKzgOCQkpUL86d+6srVu3qnLlyh7Hjx8/rubNm+t///tfger5M68D2qFDh6pFixb68MMPFR0dLau0DOgGAAAAgFJgzZo1Hvvz5s1TRESEtm3blu/7qU6nU06n073/3nvv6dixY7rnnns8ylmWpaioqEL16+DBg3kmQDMzM3X48OFC1el1QLt//37997//VZ06dQrVIAAAAADYmnGd3XzZnqSMjAyPww6HQw6H46KXp6enS5IqVapU4Cbnzp2rbt26qUaNGh7HT548qRo1aignJ0fXXnutnn32WTVr1uyCda1cudL932vXrvUInHNycvTRRx+pZs2aBe7bn3kd0LZu3VrfffcdAS0AAAAA+FBMTIzH/vjx4zVhwoQLXmOM0ejRo9W+fXs1atSoQO2kpqZq9erVuZbOqV+/vuLj49W4cWNlZGRoxowZateunXbu3Km6devmW1///v0lnc3uxsXFeZwLCgpSzZo1NXXq1AL17XwFCmh37drl/u8RI0bokUceUVpamho3bpzrZd4mTZoUqiMAAAAAgPylpKQoPDzcvV+Q7Ozw4cO1a9cubdq0qcDtxMfHq0KFCu5A9Jw2bdqoTZs27v127dqpefPmeuWVVzRz5sx863O5zmaYa9Wqpa1bt6pKlSoF7svFFCigvfbaa2VZlsckUPfee6/7v8+dK8mTQgEAAABAUbCMS5YPhxyfays8PNwjoL2YESNGaOXKldq4caOqV69eoGuMMXrzzTc1aNAgBQcHX7BsQECAWrZsqf379xeo7gMHDhSonDcKFNAWR8MAAAAAgKJnjNGIESO0fPlyJSQkqFatWgW+NjExUd99952GDBlSoHaSk5PVuHHjfMvMnDlTDzzwgEJCQi6YxZWkkSNHFrif5xQooP3zi8AbN25U27Zt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qSNJatGihbZu3aoZM2boiSeekCSlpaUpOjraXf7o0aO5/jUqLy+//LImTZqkDRs2qEmTJu7jVapUUWBgYK5/oSxovSg5fP3s5KVcuXJq3Lix9u/ffwl3Al8rjmcnICDAXee1116rr7/+WpMnT1anTp343ilFfP3s5IXvHfspyufm+++/18GDB9W3b1/3MZfLJUkqU6aM9u3bp5iYGL5zSglfPzu1a9fOdR3fOSgqpf4d2nOMMcrMzFStWrUUFRWl9evXu89lZWUpMTFRbdu2vWAdL730kp599lmtWbNGLVq08DgXHBys6667zqNeSVq/fv1F60XJVtzPTl4yMzP19ddfe/yfCeynKJ6d/OqU+N4pzYr72ckL3zv2dynPTf369bV7924lJye7t5tuukmdO3dWcnKyYmJi+M4pxYr72ckL3zkoMj6ehMonxo4dazZu3GgOHDhgdu3aZcaNG2cCAgLMunXrjDFnpyN3Op1m2bJlZvfu3eavf/1rrunIBw0a5DFj35QpU0xwcLD573//6zHd+IkTJ9xlzk1lP3fuXLN3717z0EMPmXLlypmDBw/67uZxSfz17DzyyCMmISHB/O9//zNbtmwxN954owkLC+PZsZHieHYmTZpk1q1bZ77//nvz9ddfm6lTp5oyZcqYN954w12G7x3789ezw/eOvRXHc3O+vGaq5TvH/vz17PCdg+JSKgPae++919SoUcMEBwebqlWrmq5du7r/R2qMMS6Xy4wfP95ERUUZh8NhOnToYHbv3u1RR8eOHU1cXJx7v0aNGkZSrm38+PEe182aNcvddvPmzU1iYmJx3iqKmL+enXNrvAUFBZlq1aqZW265xezZs6e4bxdFqDienSeffNLUqVPHhISEmIoVK5rY2FizePHiXG3zvWNv/np2+N6xt+J4bs6XV1BiDN85duevZ4fvHBQXyxhj/JUdBgAAAACgsC6bd2gBAAAAAKULAS0AAAAAwJYIaAEAAAAAtkRACwAAAACwJQJaAAAAAIAtEdACAAAAAGyJgBYAAAAAYEsEtAAAAAAAWyKgBQDk6+DBg7IsS8nJycVSv2VZeu+99y65nqeffloPPPDABct06tRJDz300CW3VRK0bNlSy5Yt83c3AADwOwJaACihBg8erP79+/u1DzExMUpNTVWjRo0kSQkJCbIsS8ePH/drv/7syJEjmjFjhsaNG+fvrvjM008/rTFjxsjlcvm7KwAA+BUBLQAgX4GBgYqKilKZMmX83ZV8zZ07V7GxsapZs6a/u6I//vjDJ+306dNH6enpWrt2rU/aAwCgpCKgBQCbSkxMVKtWreRwOBQdHa0xY8YoOzvbfb5Tp04aOXKkHn/8cVWqVElRUVGaMGGCRx3ffPON2rdvr5CQEDVo0EAbNmzwGAb85yHHBw8eVOfOnSVJFStWlGVZGjx4sCSpZs2amj59ukfd1157rUd7+/fvV4cOHdxtrV+/Ptc9HT58WAMHDlTFihVVuXJl9evXTwcPHrzg57B48WLddNNNHsdOnTqlu+++W+XLl1d0dLSmTp2a67qsrCw9/vjjuuKKK1SuXDm1bt1aCQkJHmXeeOMNxcTEqGzZsrr55pv1z3/+UxUqVHCfnzBhgq699lq9+eabuuqqq+RwOGSMUXp6uh544AFFREQoPDxcXbp00c6dOz3qfv/993XdddcpJCREV111lSZOnOjx95swYYKuvPJKORwOVatWTSNHjnSfCwwMVO/evbVo0aILfjYAAJR2BLQAYEOHDx9W79691bJlS+3cuVOzZ8/W3Llz9dxzz3mUmz9/vsqVK6fPP/9cL774op555hl3IOlyudS/f3+VLVtWn3/+uV5//XU9+eST+bYZExOjpUuXSpL27dun1NRUzZgxo0D9dblcuuWWWxQYGKgtW7boX//6l5544gmPMqdPn1bnzp1Vvnx5bdy4UZs2bVL58uXVs2dPZWVl5VnvsWPH9NVXX6lFixYexx977DF98sknWr58udatW6eEhARt27bNo8w999yjzz77TIsXL9auXbt0++23q2fPntq/f78k6bPPPtPQoUM1atQoJScnq3v37nr++edz9eG7777Tf/7zHy1dutT9rnGfPn2UlpamVatWadu2bWrevLm6du2q3377TZK0du1a3XXXXRo5cqT27t2rOXPmKD4+3l3/f//7X02bNk1z5szR/v379d5776lx48Ye7bZq1UqffvppgT5/AABKLQMAKJHi4uJMv3798jw3btw4U69ePeNyudzHZs2aZcqXL29ycnKMMcZ07NjRtG/f3uO6li1bmieeeMIYY8zq1atNmTJlTGpqqvv8+vXrjSSzfPlyY4wxBw4cMJLMjh07jDHGfPLJJ0aSOXbsmEe9NWrUMNOmTfM41rRpUzN+/HhjjDFr1641gYGBJiUlxX1+9erVHm3NnTs31z1lZmaa0NBQs3bt2jw/hx07dhhJ5tChQ+5jJ06cMMHBwWbx4sXuY7/++qsJDQ01o0aNMsYY89133xnLsszhw4c96uvatasZO3asMcaYgQMHmj59+nicv/POO43T6XTvjx8/3gQFBZmjR4+6j3300UcmPDzcnDlzxuPa2rVrmzlz5hhjjLn++uvNpEmTPM6/9dZbJjo62hhjzNSpU83VV19tsrKy8rxvY4xZsWKFCQgIcP+9AQC4HJXcl6IAAPn6+uuvFRsbK8uy3MfatWunkydP6scff9SVV14pSWrSpInHddHR0Tp69Kiks1nWmJgYRUVFuc+3atWq2Pp75ZVXqnr16u5jsbGxHmW2bdum7777TmFhYR7Hz5w5o++//z7Pen///XdJUkhIiPvY999/r6ysLI/6K1WqpHr16rn3t2/fLmOMrr76ao/6MjMzVblyZUlnP5+bb77Z43yrVq30wQcfeByrUaOGqlat6nEfJ0+edNfz576eu49t27Zp69atHhnfnJwcnTlzRqdPn9btt9+u6dOn66qrrlLPnj3Vu3dv9e3b1+Nd5tDQULlcLmVmZio0NDTPzwcAgNKOgBYAbMgY4xHMnjsmyeN4UFCQRxnLstwz4+ZVR2EFBAS42z/nzxMknX/u/H5KZ4clX3fddXrnnXdylf1zwPhnVapUkXR26PG5Mnm1dT6Xy6XAwEBt27ZNgYGBHufKly/vrie/z/jPypUrl6vu6OjoXO/jSnK/f+tyuTRx4kTdcsstucqEhIQoJiZG+/bt0/r167VhwwY9+OCDeumll5SYmOj+m/72228qW7YswSwA4LJGQAsANtSgQQMtXbrUI+javHmzwsLCdMUVVxSojvr16+vQoUM6cuSIIiMjJUlbt2694DXBwcGSzmYT/6xq1apKTU1172dkZOjAgQMe/T106JB++uknVatWTZKUlJTkUUfz5s21ZMkS90RKBVG7dm2Fh4dr79697mxrnTp1FBQUpC1btrgz1ceOHdO3336rjh07SpKaNWumnJwcHT16VNdff32eddevX19ffPGFx7Evv/zyon1q3ry50tLSVKZMmXxnXm7evLn27dunOnXq5FtPaGiobrrpJt10000aNmyY6tevr927d6t58+aSpK+++sr93wAAXK6YFAoASrD09HQlJyd7bIcOHdKDDz6olJQUjRgxQt98841WrFih8ePHa/To0QoIKNhXe/fu3VW7dm3FxcVp165d+uyzz9yTQuWXua1Ro4Ysy9IHH3ygn3/+WSdPnpQkdenSRW+99ZY+/fRTffXVV4qLi/PIfHbr1k316tXT3XffrZ07d+rTTz/NNQHVnXfeqSpVqqhfv3769NNPdeDAASUmJmrUqFH68ccf8+xPQECAunXrpk2bNrmPlS9fXkOGDNFjjz2mjz76SF999ZUGDx7s8blcffXVuvPOO3X33Xdr2bJlOnDggLZu3aopU6Zo1apVkqQRI0Zo1apV+uc//6n9+/drzpw5Wr169UWz2t26dVNsbKz69++vtWvX6uDBg9q8ebOeeuopd0D8j3/8QwsWLNCECRO0Z88eff3111qyZImeeuopSVJ8fLzmzp2rr776Sv/73//01ltvKTQ0VDVq1HC38+mnn6pHjx4X7AsAAKWev17eBQBcWFxcnJGUa4uLizPGGJOQkGBatmxpgoODTVRUlHniiSfMH3/84b6+Y8eO7kmQzunXr5/7emOM+frrr027du1McHCwqV+/vnn//feNJLNmzRpjTO5JoYwx5plnnjFRUVHGsix3Xenp6WbAgAEmPDzcxMTEmPj4eI9JoYwxZt++faZ9+/YmODjYXH311WbNmjUek0IZY0xqaqq5++67TZUqVYzD4TBXXXWVuf/++016enq+n9OaNWvMFVdc4TE50okTJ8xdd91lypYtayIjI82LL76Y6/PIysoy//jHP0zNmjVNUFCQiYqKMjfffLPZtWuXu8zrr79urrjiChMaGmr69+9vnnvuORMVFeU+P378eNO0adNcfcrIyDAjRoww1apVM0FBQSYmJsbceeedHpNXrVmzxrRt29aEhoaa8PBw06pVK/P6668bY4xZvny5ad26tQkPDzflypUzbdq0MRs2bHBf++OPP5qgoCCPSbYAALgcWcYU4GUjAMBl4bPPPlP79u313XffqXbt2v7uToEYY9SmTRs99NBD+utf/1qsbd1///365ptv/L5czmOPPab09HS9/vrrfu0HAAD+xju0AHAZW758ucqXL6+6devqu+++06hRo9SuXTvbBLPS2eHRr7/+unbt2lXkdb/88svq3r27ypUrp9WrV2v+/Pl67bXXirwdb0VEROjRRx/1dzcAAPA7MrQAcBlbsGCBnn32WaWkpKhKlSrq1q2bpk6dmmvJmcvVgAEDlJCQoBMnTuiqq67SiBEjNHToUH93CwAA/B8CWgAAAACALTHLMQAAAADAlghoAQAAAAC2REALAAAAALAlAloAAAAAgC0R0AIAAAAAbImAFgAAAABgSwS0AAAAAABbIqAFAAAAANjS/wMjCL4MYlqP9QAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Select slice at first latitude index\n", "phase = \"S\"\n", "velocities_slice = velocity_model[phase][:, 0, :]\n", "\n", "# Show velocities\n", "fig = plt.figure(figsize=(12, 8))\n", "img = plt.pcolormesh(longitudes, depths, velocities_slice, cmap=\"RdBu\")\n", "cb = plt.colorbar(img)\n", "\n", "# Show stations\n", "plt.plot(network.longitude, network.depth, \"wv\")\n", "\n", "# Labels\n", "ax = plt.gca()\n", "ax.set_xlabel(\"Longitude (degrees)\")\n", "ax.set_ylabel(\"Depth (km)\")\n", "ax.set_title(\"Velocity model slice from 3D grid\")\n", "cb.set_label(f\"{phase} velocity (km/s)\")\n", "ax.invert_yaxis()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compute travel times\n", "\n", "The travel times are computed for every station with the Eikonal solver of `pykonal`. The travel times are then saved into a `h5` file for later use. \n", "\n", "**Warning**: For `pykonal`, we need to give the velocity grid in spherical coordinates $(r, \\theta, \\varphi)$, which is why we built the grid with decreasing depths and latitudes.\n", "\n", "Spherical coordinates:\n", "- $r$: Distance from center or Earth in km (= decreasing depth).\n", "- $\\theta$: Polar angle in radians (= co-latitude or, equivalently, decreasing latitude).\n", "- $\\varphi$: Azimuthal angle in radians (= longitude)." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Travel times P: 0%| | 0/8 [00:00" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "CONTOUR_LEVELS = 20\n", "SEISMIC_PHASE = \"S\"\n", "station = network.loc[\"DC06\"]\n", "\n", "# Show\n", "latitude_id = np.abs(latitudes - station.latitude).argmin()\n", "time_delays = travel_times[SEISMIC_PHASE][station.name]\n", "time_delays = time_delays[:, latitude_id, :]\n", "fig = plt.figure(figsize=(12, 8))\n", "img = plt.contourf(longitudes, depths, time_delays, cmap=\"RdPu\", levels=CONTOUR_LEVELS)\n", "\n", "# Colorbar\n", "cb = plt.colorbar(img)\n", "cb.set_label(f\"Travel times {SEISMIC_PHASE} (seconds)\")\n", "\n", "# Station\n", "plt.plot(station.longitude, station.depth, \"k.\")\n", "\n", "# Labels\n", "ax = plt.gca()\n", "ax.invert_yaxis()\n", "ax.set_xlabel(\"Longitude (degrees)\")\n", "ax.set_ylabel(\"Depth (km)\")\n", "ax.set_title(f\"Travel times from the seismic station {station.name}\")\n", "plt.show()\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.10.5 ('py310')", "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.10.4" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "312801dd0aa5461639464a6df6a6c417c90a144a1d808d7cfd3dc2851df10201" } } }, "nbformat": 4, "nbformat_minor": 2 }