def test_sites(vs30file=None): vs30file = os.path.join(shakedir, 'tests/data/Vs30_test.grd') cx = -118.2 cy = 34.1 dx = 0.0083 dy = 0.0083 xspan = 0.0083 * 5 yspan = 0.0083 * 5 mysite = Sites.fromCenter(cx, cy, xspan, yspan, dx, dy, vs30File=vs30file, padding=True, resample=False) grd = mysite.getVs30Grid().getData() grd_target = np.array([[ 426.64892578, 398.89712524, 428.88549805, 428.78335571, 428.58578491, 430.54354858, 433.59750366], [ 426.20635986, 425.57946777, 428.21954346, 426.06726074, 421.86233521, 423.53192139, 426.25296021], [ 428.14602661, 430.05944824, 429.3427124 , 426.13626099, 409.76391602, 383.07299805, 372.39117432], [ 432.64077759, 434.55209351, 432.21600342, 395.53771973, 419.31866455, 421.67749023, 426.23449707], [ 345.14605713, 403.78097534, 385.49118042, 413.04779053, 428.22869873, 427.00268555, 426.8951416 ], [ 336.48217773, 347.82220459, 425.96798706, 432.0640564 , 429.40097046, 427.74179077, 427.00006104], [ 330.57504272, 392.33255005, 430.33862305, 432.01391602, 429.43969727, 427.30435181, 425.96151733]]) np.testing.assert_allclose(grd, grd_target) sc = mysite.getSitesContext() scr = mysite.getSitesContext(rock_vs30 = 760.0) grd = sc.backarc grdt = np.array([[False, False, False, False, False, False, False], [False, False, False, False, False, False, False], [False, False, False, False, False, False, False], [False, False, False, False, False, False, False], [False, False, False, False, False, False, False], [False, False, False, False, False, False, False], [False, False, False, False, False, False, False]], dtype=bool) np.testing.assert_allclose(grd, grdt) grd = sc.lats grdt = np.array([ 34.075 , 34.08333333, 34.09166667, 34.1 , 34.10833333, 34.11666667, 34.125 ]) np.testing.assert_allclose(grd, grdt) grd = sc.lons grdt = np.array([-118.225 , -118.21666667, -118.20833333, -118.2 , -118.19166667, -118.18333333, -118.175 ]) np.testing.assert_allclose(grd, grdt) grd = sc.vs30 grdt = np.array([[ 426.64892578, 398.89712524, 428.88549805, 428.78335571, 428.58578491, 430.54354858, 433.59750366], [ 426.20635986, 425.57946777, 428.21954346, 426.06726074, 421.86233521, 423.53192139, 426.25296021], [ 428.14602661, 430.05944824, 429.3427124 , 426.13626099, 409.76391602, 383.07299805, 372.39117432], [ 432.64077759, 434.55209351, 432.21600342, 395.53771973, 419.31866455, 421.67749023, 426.23449707], [ 345.14605713, 403.78097534, 385.49118042, 413.04779053, 428.22869873, 427.00268555, 426.8951416 ], [ 336.48217773, 347.82220459, 425.96798706, 432.0640564 , 429.40097046, 427.74179077, 427.00006104], [ 330.57504272, 392.33255005, 430.33862305, 432.01391602, 429.43969727, 427.30435181, 425.96151733]]) np.testing.assert_allclose(grd, grdt) grd = scr.vs30 grdt = np.array([[ 760., 760., 760., 760., 760., 760., 760.], [ 760., 760., 760., 760., 760., 760., 760.], [ 760., 760., 760., 760., 760., 760., 760.], [ 760., 760., 760., 760., 760., 760., 760.], [ 760., 760., 760., 760., 760., 760., 760.], [ 760., 760., 760., 760., 760., 760., 760.], [ 760., 760., 760., 760., 760., 760., 760.]]) np.testing.assert_allclose(grd, grdt) grd = sc.vs30measured grdt = np.array([[False, False, False, False, False, False, False], [False, False, False, False, False, False, False], [False, False, False, False, False, False, False], [False, False, False, False, False, False, False], [False, False, False, False, False, False, False], [False, False, False, False, False, False, False], [False, False, False, False, False, False, False]], dtype=bool) np.testing.assert_allclose(grd, grdt) grd = sc.z1pt0_ask14_cal grdt = np.array([[ 335.06579012, 366.39725582, 332.4593083 , 332.57855835, 332.80916279, 330.52077553, 326.93706615], [ 335.58036296, 336.30856215, 333.23643861, 335.74201097, 340.60915547, 338.68122322, 335.52619949], [ 333.32217548, 331.08730312, 331.92526979, 335.66183031, 354.37798647, 383.19730994, 394.00166561], [ 328.06152136, 325.81357093, 328.56025522, 370.03738338, 343.53423548, 340.82221914, 335.54765968], [ 419.3225465 , 361.03999163, 380.68893324, 350.67806177, 333.2257608 , 334.65418562, 334.77934134], [ 426.64586941, 416.9870982 , 335.85735317, 328.73858131, 331.85719411, 333.79341356, 334.65724021], [ 431.42758271, 373.4746626 , 330.76064671, 328.79741743, 331.81193751, 334.30299304, 335.86486938]]) np.testing.assert_allclose(grd, grdt) grd = sc.z1pt0_cy08 grdt = np.array([[ 183.2043947 , 217.27787758, 180.56690603, 180.68687904, 180.91907101, 178.625999 , 175.08452094], [ 183.72884833, 184.47314285, 181.34994816, 183.89385557, 188.91901585, 186.91536614, 183.67358657], [ 181.43651087, 179.19139187, 180.03044953, 183.81199342, 203.71493023, 237.03939223, 250.05192732], [ 176.18920323, 173.98674225, 176.68107716, 221.49002942, 191.99154431, 189.14149784, 183.69548028], [ 280.25774719, 211.16371072, 234.04298229, 199.65723106, 181.33916991, 182.78577761, 182.91298179], [ 288.5669674 , 277.54780981, 184.01166928, 176.85723522, 179.96216197, 181.91290358, 182.78888133], [ 293.80330679, 225.506479 , 178.86520526, 176.91538893, 179.91677656, 182.42922842, 184.01934871]]) np.testing.assert_allclose(grd, grdt) grd = sc.z1pt0_cy14_cal grdt = np.array([[ 322.09231215, 357.07647045, 319.22097485, 319.3522119 , 319.60603217, 317.08933532, 313.15733537], [ 322.65987959, 323.46347258, 320.07644714, 322.83822344, 328.21884905, 326.08502532, 322.60012698], [ 320.17085962, 317.71195569, 318.63340828, 322.74975843, 343.55342441, 376.19315199, 388.62006436], [ 314.38985785, 311.92697475, 314.93687894, 361.19727923, 331.46256533, 328.4548676 , 322.62380134], [ 418.15243574, 351.03313981, 373.32295288, 339.41631214, 320.0646893 , 321.63848529, 321.7764637 ], [ 426.80110483, 415.40447342, 322.96549285, 315.13252356, 318.55852723, 320.68989724, 321.64185267], [ 432.47426567, 365.09924657, 317.35292206, 315.19707981, 318.50874868, 321.25138528, 322.9737867 ]]) np.testing.assert_allclose(grd, grdt) grd = sc.z2pt5_cb07 grdt = np.array([[ 1177.61979893, 1300.11396989, 1168.13802718, 1168.56933015, 1169.4040603 , 1161.16046639, 1148.4288528 ], [ 1179.50520975, 1182.18094855, 1170.95306363, 1180.09841078, 1198.16386197, 1190.96074128, 1179.30654372], [ 1171.26425658, 1163.19305376, 1166.20946607, 1179.80411634, 1251.35517419, 1371.15661506, 1417.9366787 ], [ 1152.40018562, 1144.48233838, 1154.16847239, 1315.25665576, 1209.20960179, 1198.96368474, 1179.3852516 ], [ 1526.52660116, 1278.13354004, 1360.38452132, 1236.76774567, 1170.91431583, 1176.11487052, 1176.57216955], [ 1556.3982478 , 1516.78437627, 1180.52195107, 1154.8017606 , 1165.96397227, 1172.97688837, 1176.12602836], [ 1575.22288791, 1329.69579201, 1162.02041292, 1155.01082322, 1165.80081172, 1174.83307617, 1180.5495586 ]]) np.testing.assert_allclose(grd, grdt) grd = sc.z2pt5_cb14_cal grdt = np.array([[ 1.17466154, 1.26861168, 1.1676564 , 1.16797461, 1.16859058, 1.16251358, 1.15315136], [ 1.17605704, 1.17803908, 1.16973403, 1.17649629, 1.18992131, 1.18455663, 1.17590996], [ 1.16996381, 1.16401074, 1.166234 , 1.17627836, 1.230198 , 1.32873844, 1.37243028], [ 1.15606906, 1.15025389, 1.15736893, 1.2809454 , 1.19818264, 1.19051805, 1.17596823], [ 1.49705669, 1.25107322, 1.31920733, 1.21901552, 1.16970542, 1.1735483 , 1.17388652], [ 1.54123541, 1.48388699, 1.17680997, 1.15783457, 1.16605299, 1.17122878, 1.17355655], [ 1.57278236, 1.29292406, 1.1631469 , 1.1579883 , 1.16593269, 1.17260055, 1.17683042]]) np.testing.assert_allclose(grd, grdt) lldict = {'lats':np.array([34.1, 34.111]), 'lons':np.array([-118.2, -118.222])} scsamp = mysite.getSitesContext(lldict) vs30 = scsamp.vs30 vs30t = np.array([ 395.53771973, 428.14602661]) np.testing.assert_allclose(vs30, vs30t) lldict = {'lats':np.array([34.1, 34.111]), 'lons':np.array([-118.2, -118.222])} scrsamp = mysite.getSitesContext(lldict, rock_vs30=760) vs30 = scrsamp.vs30 vs30t = np.array([ 760., 760.]) np.testing.assert_allclose(vs30, vs30t) lats = np.array([34.1, 34.111]) lons = np.array([-118.2, -118.222]) lldict = {'lats':lats, 'lons':lons} scsamp = mysite.getSitesContext(lldict) grd = scsamp.vs30measured grdt = np.array([False, False], dtype=bool) np.testing.assert_allclose(grd, grdt) with pytest.raises(Exception) as e: scsamp = mysite.getSitesContextFromLatLon( np.array([34.1, 34.111, 34.5]), np.array([-118.2, -118.222])) mysite = Sites.fromCenter(cx, cy, xspan, yspan, dx, dy, vs30File=None, padding=True, resample=False) grd = mysite.getVs30Grid().getData() grd_target = np.array( [[ 686., 686., 686., 686., 686., 686.], [ 686., 686., 686., 686., 686., 686.], [ 686., 686., 686., 686., 686., 686.], [ 686., 686., 686., 686., 686., 686.], [ 686., 686., 686., 686., 686., 686.], [ 686., 686., 686., 686., 686., 686.]]) np.testing.assert_allclose(grd, grd_target) xmin = -118.2 xmax = -118.12 ymin = 34.05 ymax = 34.1 dx = 0.0083 dy = 0.0083 mysite = Sites.fromBounds(xmin, xmax, ymin, ymax, dx, dy, vs30File=vs30file, padding=False, resample=False) grd = mysite.getVs30Grid().getData() grd_target = np.array([[ 395.53771973, 419.31866455, 421.67749023, 426.23449707, 427.32818604, 424.84860229, 415.17590332, 407.5760498 , 404.54788208, 402.28500366], [ 413.04779053, 428.22869873, 427.00268555, 426.8951416 , 425.62023926, 419.60952759, 411.7961731 , 407.53509521, 406.22122192, 405.31622314], [ 432.0640564 , 429.40097046, 427.74179077, 427.00006104, 419.5062561 , 411.10830688, 407.48901367, 406.53305054, 406.59658813, 406.24887085], [ 432.01391602, 429.43969727, 427.30435181, 425.96151733, 426.15856934, 427.56121826, 397.67102051, 399.21054077, 404.54968262, 407.18515015], [ 426.76913452, 428.86270142, 425.99606323, 423.5692749 , 423.59835815, 425.92758179, 408.44885254, 406.55810547, 409.06945801, 413.75210571], [ 423.1892395 , 427.91104126, 424.53796387, 419.47485352, 418.177948 , 424.14065552, 428.57913208, 432.95300293, 427.77731323, 431.46524048], [ 410.56729126, 423.15557861, 424.48355103, 419.27658081, 418.60211182, 423.86721802, 428.06176758, 432.42089844, 438.54446411, 448.37237549]]) np.testing.assert_allclose(grd, grd_target) mysite = Sites.fromBounds(xmin, xmax, ymin, ymax, dx, dy, vs30File=None, padding=False, resample=False) grd = mysite.getVs30Grid().getData() grd_target = np.array([[ 686., 686., 686., 686., 686., 686., 686., 686., 686., 686., 686.], [ 686., 686., 686., 686., 686., 686., 686., 686., 686., 686., 686.], [ 686., 686., 686., 686., 686., 686., 686., 686., 686., 686., 686.], [ 686., 686., 686., 686., 686., 686., 686., 686., 686., 686., 686.], [ 686., 686., 686., 686., 686., 686., 686., 686., 686., 686., 686.], [ 686., 686., 686., 686., 686., 686., 686., 686., 686., 686., 686.], [ 686., 686., 686., 686., 686., 686., 686., 686., 686., 686., 686.], [ 686., 686., 686., 686., 686., 686., 686., 686., 686., 686., 686.]]) np.testing.assert_allclose(grd, grd_target)