442 lines
147 KiB
Plaintext
442 lines
147 KiB
Plaintext
|
|
{
|
|||
|
|
"cells": [
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"# notebook for create init and true test model"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 1,
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "stdout",
|
|||
|
|
"output_type": "stream",
|
|||
|
|
"text": [
|
|||
|
|
"depminmax 10.0 -10.0\n"
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"import numpy as np\n",
|
|||
|
|
"import math\n",
|
|||
|
|
"\n",
|
|||
|
|
"# grid\n",
|
|||
|
|
"R_earth = 6371.0\n",
|
|||
|
|
"\n",
|
|||
|
|
"rr1=6361 \n",
|
|||
|
|
"rr2=6381\n",
|
|||
|
|
"tt1=(38.0-0.3)/180*math.pi\n",
|
|||
|
|
"tt2=(42.0+0.3)/180*math.pi\n",
|
|||
|
|
"pp1=(23.0-0.3)/180*math.pi\n",
|
|||
|
|
"pp2=(27.0+0.3)/180*math.pi\n",
|
|||
|
|
"\n",
|
|||
|
|
"n_rtp = [50,50,50]\n",
|
|||
|
|
"dr = (rr2-rr1)/(n_rtp[0]-1)\n",
|
|||
|
|
"dt = (tt2-tt1)/(n_rtp[1]-1)\n",
|
|||
|
|
"dp = (pp2-pp1)/(n_rtp[2]-1)\n",
|
|||
|
|
"rr = np.array([rr1 + x*dr for x in range(n_rtp[0])])\n",
|
|||
|
|
"tt = np.array([tt1 + x*dt for x in range(n_rtp[1])])\n",
|
|||
|
|
"pp = np.array([pp1 + x*dp for x in range(n_rtp[2])])\n",
|
|||
|
|
"\n",
|
|||
|
|
"# initial model\n",
|
|||
|
|
"gamma = 0.0\n",
|
|||
|
|
"s0 = 1.0/6.0\n",
|
|||
|
|
"slow_p=0.06\n",
|
|||
|
|
"ani_p=0.04\n",
|
|||
|
|
"n_sign_rtp = [1,2,2] # number of sign wave in each direction\n",
|
|||
|
|
"\n",
|
|||
|
|
"eta_init = np.zeros(n_rtp)\n",
|
|||
|
|
"xi_init = np.zeros(n_rtp)\n",
|
|||
|
|
"zeta_init = np.zeros(n_rtp)\n",
|
|||
|
|
"fun_init = np.zeros(n_rtp)\n",
|
|||
|
|
"vel_init = np.zeros(n_rtp)\n",
|
|||
|
|
"\n",
|
|||
|
|
"# true model\n",
|
|||
|
|
"eta_true = np.zeros(n_rtp)\n",
|
|||
|
|
"xi_true = np.zeros(n_rtp)\n",
|
|||
|
|
"zeta_true = np.zeros(n_rtp)\n",
|
|||
|
|
"fun_true = np.zeros(n_rtp)\n",
|
|||
|
|
"vel_true = np.zeros(n_rtp)\n",
|
|||
|
|
"\n",
|
|||
|
|
"\n",
|
|||
|
|
"def make_1d_sign_wave(n_sign_rtp, rr, tt, pp):\n",
|
|||
|
|
" \"\"\"\n",
|
|||
|
|
" make 1d sign wave for each direction following n_sign_rtp\n",
|
|||
|
|
" n_sign_rtp: frequency of sign wave in each direction\n",
|
|||
|
|
" \"\"\"\n",
|
|||
|
|
"\n",
|
|||
|
|
" n_r = rr.shape[0]\n",
|
|||
|
|
" n_t = tt.shape[0]\n",
|
|||
|
|
" n_p = pp.shape[0]\n",
|
|||
|
|
"\n",
|
|||
|
|
" r_1d = np.zeros(n_r)\n",
|
|||
|
|
" t_1d = np.zeros(n_t)\n",
|
|||
|
|
" p_1d = np.zeros(n_p)\n",
|
|||
|
|
"\n",
|
|||
|
|
" for ir in range(n_r):\n",
|
|||
|
|
" r_1d[ir] = math.sin(2.*n_sign_rtp[0]*math.pi*ir/(n_r-1))\n",
|
|||
|
|
"\n",
|
|||
|
|
" for it in range(n_t):\n",
|
|||
|
|
" t_1d[it] = math.sin(2.*n_sign_rtp[1]*math.pi*it/(n_t-1))\n",
|
|||
|
|
"\n",
|
|||
|
|
" for ip in range(n_p):\n",
|
|||
|
|
" p_1d[ip] = math.sin(2.*n_sign_rtp[2]*math.pi*ip/(n_p-1))\n",
|
|||
|
|
" \n",
|
|||
|
|
" \n",
|
|||
|
|
"\n",
|
|||
|
|
" # plot 1d sign wave\n",
|
|||
|
|
" import matplotlib.pyplot as plt\n",
|
|||
|
|
" plt.figure()\n",
|
|||
|
|
" plt.plot(r_1d)\n",
|
|||
|
|
" plt.figure()\n",
|
|||
|
|
" plt.plot(t_1d)\n",
|
|||
|
|
" plt.figure()\n",
|
|||
|
|
" plt.plot(p_1d)\n",
|
|||
|
|
" plt.show()\n",
|
|||
|
|
"\n",
|
|||
|
|
" return r_1d, t_1d, p_1d\n",
|
|||
|
|
"\n",
|
|||
|
|
"# make 1d sign wave for each direction following n_sign_rtp\n",
|
|||
|
|
"r_1d, t_1d, p_1d = make_1d_sign_wave(n_sign_rtp, rr, tt, pp)\n",
|
|||
|
|
"\n",
|
|||
|
|
"for ir in range(n_rtp[0]):\n",
|
|||
|
|
" for it in range(n_rtp[1]):\n",
|
|||
|
|
" for ip in range(n_rtp[2]):\n",
|
|||
|
|
" # already initialized above\n",
|
|||
|
|
" #eta_init[ir,it,ip] = 0.0\n",
|
|||
|
|
" #xi_init[ir,it,ip] = 0.0\n",
|
|||
|
|
" zeta_init[ir,it,ip] = gamma*math.sqrt(eta_init[ir,it,ip]**2 + xi_init[ir,it,ip]**2)\n",
|
|||
|
|
" fun_init[ir,it,ip] = s0\n",
|
|||
|
|
" vel_init[ir,it,ip] = 1.0/s0\n",
|
|||
|
|
"\n",
|
|||
|
|
" # true model\n",
|
|||
|
|
" sigma = r_1d[ir]*t_1d[it]*p_1d[ip] \n",
|
|||
|
|
"\n",
|
|||
|
|
" if sigma < 0:\n",
|
|||
|
|
" psi = 60.0/180.0*math.pi\n",
|
|||
|
|
" elif sigma > 0:\n",
|
|||
|
|
" psi = 120.0/180.0*math.pi\n",
|
|||
|
|
" else:\n",
|
|||
|
|
" psi = 0.0\n",
|
|||
|
|
"\n",
|
|||
|
|
" eta_true[ir,it,ip] = ani_p*abs(sigma)*math.sin(2.0*psi)\n",
|
|||
|
|
" xi_true[ir,it,ip] = ani_p*abs(sigma)*math.cos(2.0*psi)\n",
|
|||
|
|
" zeta_true[ir,it,ip] = gamma*math.sqrt(eta_true[ir,it,ip]**2 + xi_true[ir,it,ip]**2)\n",
|
|||
|
|
" fun_true[ir,it,ip] = s0/(1.0+sigma*slow_p)\n",
|
|||
|
|
" vel_true[ir,it,ip] = 1.0/fun_true[ir,it,ip] \n",
|
|||
|
|
"\n",
|
|||
|
|
"\n",
|
|||
|
|
"#r_earth = 6378.1370\n",
|
|||
|
|
"print(\"depminmax {} {}\".format(R_earth-rr1,R_earth-rr2))\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 2,
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [],
|
|||
|
|
"source": [
|
|||
|
|
"# write out in hdf5 format\n",
|
|||
|
|
"import h5py\n",
|
|||
|
|
"\n",
|
|||
|
|
"fout_init = h5py.File('test_model_init.h5', 'w')\n",
|
|||
|
|
"fout_true = h5py.File('test_model_true.h5', 'w')\n",
|
|||
|
|
"\n",
|
|||
|
|
"# write out the arrays eta_init, xi_init, zeta_init, fun_init, a_init, b_init, c_init, f_init\n",
|
|||
|
|
"fout_init.create_dataset('eta', data=eta_init)\n",
|
|||
|
|
"fout_init.create_dataset('xi', data=xi_init)\n",
|
|||
|
|
"fout_init.create_dataset('zeta', data=zeta_init)\n",
|
|||
|
|
"fout_init.create_dataset('vel', data=vel_init)\n",
|
|||
|
|
"\n",
|
|||
|
|
"# writeout the arrays eta_true, xi_true, zeta_true, fun_true, a_true, b_true, c_true, f_true\n",
|
|||
|
|
"fout_true.create_dataset('eta', data=eta_true)\n",
|
|||
|
|
"fout_true.create_dataset('xi', data=xi_true)\n",
|
|||
|
|
"fout_true.create_dataset('zeta', data=zeta_true)\n",
|
|||
|
|
"fout_true.create_dataset('vel', data=vel_true)\n",
|
|||
|
|
"\n",
|
|||
|
|
"fout_init.close()\n",
|
|||
|
|
"fout_true.close()\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"# prepare src station file\n",
|
|||
|
|
"\n",
|
|||
|
|
"The following code creates a src_rec_file for the inversion, which describes the source and receiver positions and arrival times.\n",
|
|||
|
|
"Format is as follows:\n",
|
|||
|
|
"\n",
|
|||
|
|
"```\n",
|
|||
|
|
" 26 1992 1 1 2 43 56.900 1.8000 98.9000 137.00 2.80 8 305644 <- src : id_src year month day hour min sec lat lon dep_km mag num_recs id_event\n",
|
|||
|
|
" 26 1 PCBI 1.8900 98.9253 1000.0000 P 10.40 18.000 <- arrival : id_src id_rec name_rec lat lon elevation_m phase epicentral_distance_km arrival_time_sec\n",
|
|||
|
|
" 26 2 MRPI 1.6125 99.3172 1100.0000 P 50.84 19.400\n",
|
|||
|
|
" 26 3 HUTI 2.3153 98.9711 1600.0000 P 57.84 19.200\n",
|
|||
|
|
" ....\n",
|
|||
|
|
"\n",
|
|||
|
|
"```"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 48,
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [],
|
|||
|
|
"source": [
|
|||
|
|
"import random\n",
|
|||
|
|
"random.seed(1145141919810)\n",
|
|||
|
|
"\n",
|
|||
|
|
"# dummys\n",
|
|||
|
|
"year_dummy = 1998\n",
|
|||
|
|
"month_dummy = 1\n",
|
|||
|
|
"day_dummy = 1\n",
|
|||
|
|
"hour_dummy = 0\n",
|
|||
|
|
"minute_dummy = 0\n",
|
|||
|
|
"second_dummy = 0\n",
|
|||
|
|
"mag_dummy = 3.0\n",
|
|||
|
|
"id_dummy = 1000\n",
|
|||
|
|
"st_name_dummy = 'AAAA'\n",
|
|||
|
|
"phase_dummy = 'P'\n",
|
|||
|
|
"dist_dummy = 100.0\n",
|
|||
|
|
"arriv_t_dummy = 0.0\n",
|
|||
|
|
"\n",
|
|||
|
|
"tt1deg = tt1 * 180.0/math.pi\n",
|
|||
|
|
"tt2deg = tt2 * 180.0/math.pi\n",
|
|||
|
|
"pp1deg = pp1 * 180.0/math.pi\n",
|
|||
|
|
"pp2deg = pp2 * 180.0/math.pi\n",
|
|||
|
|
"\n",
|
|||
|
|
"\n",
|
|||
|
|
"n_srcs = [10,20,20]\n",
|
|||
|
|
"n_src = n_srcs[0]*n_srcs[1]*n_srcs[2]\n",
|
|||
|
|
"n_recs = [10,10]\n",
|
|||
|
|
"n_rec = n_recs[0]*n_recs[1]\n",
|
|||
|
|
"\n",
|
|||
|
|
"lines = []\n",
|
|||
|
|
"\n",
|
|||
|
|
"pos_src=[]\n",
|
|||
|
|
"pos_rec=[]\n",
|
|||
|
|
"\n",
|
|||
|
|
"\n",
|
|||
|
|
"# create receiver coordinates\n",
|
|||
|
|
"elev_recs=[]\n",
|
|||
|
|
"lon_recs=[]\n",
|
|||
|
|
"lat_recs=[]\n",
|
|||
|
|
"rec_names=[]\n",
|
|||
|
|
"n_rec_2 = 0\n",
|
|||
|
|
"for i in range(n_recs[0]):\n",
|
|||
|
|
" for j in range(n_recs[1]):\n",
|
|||
|
|
"\n",
|
|||
|
|
" if (i >= n_recs[0]/4 or j >= n_recs[1]/4) and (j % 4 != 0 or i % 4 != 0):\n",
|
|||
|
|
" continue\n",
|
|||
|
|
"\n",
|
|||
|
|
" n_rec_2 += 1\n",
|
|||
|
|
"\n",
|
|||
|
|
" id_rec = i*n_recs[1]+j\n",
|
|||
|
|
" #elev_recs.append(random.uniform(-100.0,-100.0)) # elevation in m\n",
|
|||
|
|
" #elev_recs.append(0) # elevation in m\n",
|
|||
|
|
" #lon_recs .append(random.uniform(pp1deg*1.1,pp2deg*0.9))\n",
|
|||
|
|
" #lat_recs .append(random.uniform(tt1deg*1.1,tt2deg*0.9))\n",
|
|||
|
|
" rec_names.append(id_rec)\n",
|
|||
|
|
" # regularly\n",
|
|||
|
|
" elev_recs.append(0.0)\n",
|
|||
|
|
" lon_recs.append(pp1deg + i*(pp2deg-pp1deg)/n_recs[0])\n",
|
|||
|
|
" lat_recs.append(tt1deg + j*(tt2deg-tt1deg)/n_recs[1])\n",
|
|||
|
|
"\n",
|
|||
|
|
"\n",
|
|||
|
|
"\n",
|
|||
|
|
"# create source coordinates\n",
|
|||
|
|
"c=0\n",
|
|||
|
|
"for ir in range(n_srcs[0]):\n",
|
|||
|
|
" for it in range(n_srcs[1]):\n",
|
|||
|
|
" for ip in range(n_srcs[2]):\n",
|
|||
|
|
"\n",
|
|||
|
|
" # make the number of sources one-fourth if the position is right hand side\n",
|
|||
|
|
" if (ip >= n_srcs[2]/4 or it >=n_srcs[1]/4) and (ip%4 != 0 or it%4 != 0):\n",
|
|||
|
|
" continue\n",
|
|||
|
|
" \n",
|
|||
|
|
" if ir == 0:\n",
|
|||
|
|
" c+=1\n",
|
|||
|
|
"\n",
|
|||
|
|
" i_src = ir*n_srcs[1]*n_srcs[2] + it*n_srcs[2] + ip\n",
|
|||
|
|
" # define one point in the domain (rr1 bottom, rr2 top)\n",
|
|||
|
|
" # random\n",
|
|||
|
|
" #dep = random.uniform((R_earth-rr1)*0.5,(R_earth-rr1)*0.98)\n",
|
|||
|
|
" #lon = random.uniform(pp1deg,pp2deg)\n",
|
|||
|
|
" #lat = random.uniform(tt1deg,tt2deg)\n",
|
|||
|
|
"\n",
|
|||
|
|
" # regular\n",
|
|||
|
|
" dep = (R_earth-rr1)/n_srcs[0]*ir\n",
|
|||
|
|
" lon = pp1deg + ip*(pp2deg-pp1deg)/n_srcs[2]\n",
|
|||
|
|
" lat = tt1deg + it*(tt2deg-tt1deg)/n_srcs[1]\n",
|
|||
|
|
"\n",
|
|||
|
|
" \n",
|
|||
|
|
" src = [i_src, year_dummy, month_dummy, day_dummy, hour_dummy, minute_dummy, second_dummy, lat, lon, dep, mag_dummy, n_rec_2, id_dummy]\n",
|
|||
|
|
" lines.append(src)\n",
|
|||
|
|
"\n",
|
|||
|
|
" pos_src.append([lon,lat,dep])\n",
|
|||
|
|
"\n",
|
|||
|
|
"\n",
|
|||
|
|
" # create dummy station\n",
|
|||
|
|
" for i_rec in range(n_rec_2):\n",
|
|||
|
|
" \n",
|
|||
|
|
" elev_rec = elev_recs[i_rec]\n",
|
|||
|
|
" lon_rec = lon_recs[i_rec]\n",
|
|||
|
|
" lat_rec = lat_recs[i_rec]\n",
|
|||
|
|
" st_name_dummy = rec_names[i_rec]\n",
|
|||
|
|
" \n",
|
|||
|
|
" rec = [i_src, i_rec, st_name_dummy, lat_rec, lon_rec, elev_rec, phase_dummy, dist_dummy, arriv_t_dummy]\n",
|
|||
|
|
" lines.append(rec)\n",
|
|||
|
|
" \n",
|
|||
|
|
" pos_rec.append([lon_rec,lat_rec,elev_rec])\n",
|
|||
|
|
"\n",
|
|||
|
|
"\n",
|
|||
|
|
"# write out ev_arrivals file\n",
|
|||
|
|
"fname = 'src_rec_test.dat'\n",
|
|||
|
|
"\n",
|
|||
|
|
"with open(fname, 'w') as f:\n",
|
|||
|
|
" for line in lines:\n",
|
|||
|
|
" for elem in line:\n",
|
|||
|
|
" f.write('{} '.format(elem))\n",
|
|||
|
|
" f.write('\\n')\n",
|
|||
|
|
" "
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 49,
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"# draw src and rec positions\n",
|
|||
|
|
"import matplotlib.pyplot as plt\n",
|
|||
|
|
"\n",
|
|||
|
|
"n_src_2d = c#n_srcs[0]*n_srcs[1]*n_srcs[2]\n",
|
|||
|
|
"\n",
|
|||
|
|
"for i_src in range(n_src_2d):\n",
|
|||
|
|
" plt.scatter(pos_src[i_src][1],pos_src[i_src][0],c='r',marker='o')"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 50,
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"# plot receivers\n",
|
|||
|
|
"for i_rec in range(n_rec_2):\n",
|
|||
|
|
" plt.scatter(pos_rec[i_rec][1],pos_rec[i_rec][0],c='b',marker='o')"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 51,
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"text/plain": [
|
|||
|
|
"17"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"execution_count": 51,
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "execute_result"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"n_rec_2"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"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.10.8"
|
|||
|
|
},
|
|||
|
|
"orig_nbformat": 4,
|
|||
|
|
"vscode": {
|
|||
|
|
"interpreter": {
|
|||
|
|
"hash": "c8112a80bcc57e66f52aa6c921b20667122cfa5e8b1ad09e9dfbd3a3ba336bd6"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"nbformat": 4,
|
|||
|
|
"nbformat_minor": 2
|
|||
|
|
}
|