def test_basevectors_apex_array(): A = Apex(date=2000, refh=300) f1, f2, f3, g1, g2, g3, d1, d2, d3, e1, e2, e3 = A.basevectors_apex([0, 30], 15, 100, coords='geo') _, _, _, _, f1_1, f2_1, _, d1_1, d2_1, d3_1, _, e1_1, e2_1, e3_1 = A._geo2apexall(0, 15, 100) _, _, _, _, f1_2, f2_2, _, d1_2, d2_2, d3_2, _, e1_2, e2_2, e3_2 = A._geo2apexall(30, 15, 100) assert_allclose(f1[:, 0], f1_1) assert_allclose(f2[:, 0], f2_1) assert_allclose(d1[:, 0], d1_1) assert_allclose(d2[:, 0], d2_1) assert_allclose(d3[:, 0], d3_1) assert_allclose(e1[:, 0], e1_1) assert_allclose(e2[:, 0], e2_1) assert_allclose(e3[:, 0], e3_1) assert_allclose(f3[:, 0], np.array([0.092637, -0.245951, 0.938848]), rtol=1e-4) assert_allclose(g1[:, 0], np.array([0.939012, 0.073416, -0.07342]), rtol=1e-4) assert_allclose(g2[:, 0], np.array([0.055389, 1.004155, 0.257594]), rtol=1e-4) assert_allclose(g3[:, 0], np.array([0, 0, 1.065135]), rtol=1e-4) assert_allclose(f1[:, 1], f1_2) assert_allclose(f2[:, 1], f2_2) assert_allclose(d1[:, 1], d1_2) assert_allclose(d2[:, 1], d2_2) assert_allclose(d3[:, 1], d3_2) assert_allclose(e1[:, 1], e1_2) assert_allclose(e2[:, 1], e2_2) assert_allclose(e3[:, 1], e3_2) assert_allclose(f3[:, 1], np.array([-0.036618, -0.071019, 0.861604]), rtol=1e-4) assert_allclose(g1[:, 1], np.array([0.844391, 0.015353, 0.037152]), rtol=1e-4) assert_allclose(g2[:, 1], np.array([0.050808, 1.02131, 0.086342]), rtol=1e-4) assert_allclose(g3[:, 1], np.array([0, 0, 1.160625]), rtol=1e-4)
def test_basevectors_apex_array(): apex_out = Apex(date=2000, refh=300) (f1, f2, f3, g1, g2, g3, d1, d2, d3, e1, e2, e3) = apex_out.basevectors_apex([0, 30], 15, 100, coords='geo') (_, _, _, _, f1_1, f2_1, _, d1_1, d2_1, d3_1, _, e1_1, e2_1, e3_1) = apex_out._geo2apexall(0, 15, 100) (_, _, _, _, f1_2, f2_2, _, d1_2, d2_2, d3_2, _, e1_2, e2_2, e3_2) = apex_out._geo2apexall(30, 15, 100) assert_allclose(f1[:, 0], f1_1) assert_allclose(f2[:, 0], f2_1) assert_allclose(d1[:, 0], d1_1) assert_allclose(d2[:, 0], d2_1) assert_allclose(d3[:, 0], d3_1) assert_allclose(e1[:, 0], e1_1) assert_allclose(e2[:, 0], e2_1) assert_allclose(e3[:, 0], e3_1) assert_allclose(f3[:, 0], np.array([0.092637, -0.245951, 0.938848]), rtol=1e-4) assert_allclose(g1[:, 0], np.array([0.939012, 0.073416, -0.07342]), rtol=1e-4) assert_allclose(g2[:, 0], np.array([0.055389, 1.004155, 0.257594]), rtol=1e-4) assert_allclose(g3[:, 0], np.array([0, 0, 1.065135]), rtol=1e-4) assert_allclose(f1[:, 1], f1_2) assert_allclose(f2[:, 1], f2_2) assert_allclose(d1[:, 1], d1_2) assert_allclose(d2[:, 1], d2_2) assert_allclose(d3[:, 1], d3_2) assert_allclose(e1[:, 1], e1_2) assert_allclose(e2[:, 1], e2_2) assert_allclose(e3[:, 1], e3_2) assert_allclose(f3[:, 1], np.array([-0.036618, -0.071019, 0.861604]), rtol=1e-4) assert_allclose(g1[:, 1], np.array([0.844391, 0.015353, 0.037152]), rtol=1e-4) assert_allclose(g2[:, 1], np.array([0.050808, 1.02131, 0.086342]), rtol=1e-4) assert_allclose(g3[:, 1], np.array([0, 0, 1.160625]), rtol=1e-4)
def test_basevectors_apex_vectorization_height(): apex_out = Apex(date=2000, refh=0) (f1, f2, f3, g1, g2, g3, d1, d2, d3, e1, e2, e3) = apex_out.basevectors_apex(60, 15, [200, 400], coords='geo') (_, _, _, _, f1_1, f2_1, _, d1_1, d2_1, d3_1, _, e1_1, e2_1, e3_1) = apex_out._geo2apexall(60, 15, 200) (_, _, _, _, f1_2, f2_2, _, d1_2, d2_2, d3_2, _, e1_2, e2_2, e3_2) = apex_out._geo2apexall(60, 15, 400) assert_allclose(f1[:, 0], f1_1) assert_allclose(f2[:, 0], f2_1) assert_allclose(d1[:, 0], d1_1) assert_allclose(d2[:, 0], d2_1) assert_allclose(d3[:, 0], d3_1) assert_allclose(e1[:, 0], e1_1) assert_allclose(e2[:, 0], e2_1) assert_allclose(e3[:, 0], e3_1) assert_allclose(f3[:, 0], np.array([-0.088671, -0.018272, 0.993576]), rtol=1e-4) assert_allclose(g1[:, 0], np.array([0.903098, 0.245273, 0.085107]), rtol=1e-4) assert_allclose(g2[:, 0], np.array([-0.103495, 1.072078, 0.01048]), rtol=1e-4) assert_allclose(g3[:, 0], np.array([0, 0, 1.006465]), rtol=1e-4) assert_allclose(f1[:, 1], f1_2) assert_allclose(f2[:, 1], f2_2) assert_allclose(d1[:, 1], d1_2) assert_allclose(d2[:, 1], d2_2) assert_allclose(d3[:, 1], d3_2) assert_allclose(e1[:, 1], e1_2) assert_allclose(e2[:, 1], e2_2) assert_allclose(e3[:, 1], e3_2) assert_allclose(f3[:, 1], np.array([-0.085415, -0.021176, 0.989645]), rtol=1e-4) assert_allclose(g1[:, 1], np.array([0.902695, 0.246919, 0.083194]), rtol=1e-4) assert_allclose(g2[:, 1], np.array([-0.11051, 1.066094, 0.013274]), rtol=1e-4) assert_allclose(g3[:, 1], np.array([0, 0, 1.010463]), rtol=1e-4)
def test_basevectors_apex_vectorization_height(): A = Apex(date=2000, refh=0) f1, f2, f3, g1, g2, g3, d1, d2, d3, e1, e2, e3 = A.basevectors_apex(60, 15, [200, 400], coords='geo') _, _, _, _, f1_1, f2_1, _, d1_1, d2_1, d3_1, _, e1_1, e2_1, e3_1 = A._geo2apexall(60, 15, 200) _, _, _, _, f1_2, f2_2, _, d1_2, d2_2, d3_2, _, e1_2, e2_2, e3_2 = A._geo2apexall(60, 15, 400) assert_allclose(f1[:, 0], f1_1) assert_allclose(f2[:, 0], f2_1) assert_allclose(d1[:, 0], d1_1) assert_allclose(d2[:, 0], d2_1) assert_allclose(d3[:, 0], d3_1) assert_allclose(e1[:, 0], e1_1) assert_allclose(e2[:, 0], e2_1) assert_allclose(e3[:, 0], e3_1) assert_allclose(f3[:, 0], np.array([-0.088671, -0.018272, 0.993576]), rtol=1e-4) assert_allclose(g1[:, 0], np.array([0.903098, 0.245273, 0.085107]), rtol=1e-4) assert_allclose(g2[:, 0], np.array([-0.103495, 1.072078, 0.01048]), rtol=1e-4) assert_allclose(g3[:, 0], np.array([0, 0, 1.006465]), rtol=1e-4) assert_allclose(f1[:, 1], f1_2) assert_allclose(f2[:, 1], f2_2) assert_allclose(d1[:, 1], d1_2) assert_allclose(d2[:, 1], d2_2) assert_allclose(d3[:, 1], d3_2) assert_allclose(e1[:, 1], e1_2) assert_allclose(e2[:, 1], e2_2) assert_allclose(e3[:, 1], e3_2) assert_allclose(f3[:, 1], np.array([-0.085415, -0.021176, 0.989645]), rtol=1e-4) assert_allclose(g1[:, 1], np.array([0.902695, 0.246919, 0.083194]), rtol=1e-4) assert_allclose(g2[:, 1], np.array([-0.11051, 1.066094, 0.013274]), rtol=1e-4) assert_allclose(g3[:, 1], np.array([0, 0, 1.010463]), rtol=1e-4)
def test__geo2apexall_scalar(): A = Apex(date=2000, refh=300) for lat in [0, 30, 60, 89]: for lon in [-179, -90, 0, 90, 180]: ret1 = A._geo2apexall(lat, lon, 100) ret2 = fa.apxg2all(lat, lon, 100, 300, 1) for r1, r2 in zip(ret1, ret2): assert_allclose(r1, r2)
def test__geo2apexall_scalar(): apex_out = Apex(date=2000, refh=300) for lat in [0, 30, 60, 89]: for lon in [-179, -90, 0, 90, 180]: ret1 = apex_out._geo2apexall(lat, lon, 100) ret2 = fa.apxg2all(lat, lon, 100, 300, 1) for r1, r2 in zip(ret1, ret2): assert_allclose(r1, r2)
def test_basevectors_apex_scalar_geo(): A = Apex(date=2000, refh=300) f1, f2, f3, g1, g2, g3, d1, d2, d3, e1, e2, e3 = A.basevectors_apex(60, 15, 100, coords='geo') _, _, _, _, f1_, f2_, _, d1_, d2_, d3_, _, e1_, e2_, e3_ = A._geo2apexall(60, 15, 100) assert_allclose(f1, f1_) assert_allclose(f2, f2_) assert_allclose(d1, d1_) assert_allclose(d2, d2_) assert_allclose(d3, d3_) assert_allclose(e1, e1_) assert_allclose(e2, e2_) assert_allclose(e3, e3_)
def test_basevectors_apex_scalar_qd(): A = Apex(date=2000, refh=300) f1, f2, f3, g1, g2, g3, d1, d2, d3, e1, e2, e3 = A.basevectors_apex(60, 15, 100, coords='qd', precision=1e-2) glat, glon, _ = A.qd2geo(60, 15, 100, precision=1e-2) _, _, _, _, f1_, f2_, _, d1_, d2_, d3_, _, e1_, e2_, e3_ = A._geo2apexall(glat, glon, 100) assert_allclose(f1, f1_) assert_allclose(f2, f2_) assert_allclose(d1, d1_) assert_allclose(d2, d2_) assert_allclose(d3, d3_) assert_allclose(e1, e1_) assert_allclose(e2, e2_) assert_allclose(e3, e3_)
def test__geo2apexall_array(): A = Apex(date=2000, refh=300) ret = A._geo2apexall([[0, 30], [60, 90]], 15, [[100, 200], [300, 400]]) ret1 = fa.apxg2all(0, 15, 100, 300, 1) ret2 = fa.apxg2all(30, 15, 200, 300, 1) ret3 = fa.apxg2all(60, 15, 300, 300, 1) ret4 = fa.apxg2all(90, 15, 400, 300, 1) for i in range(len(ret)): try: # ret[i] is array of floats assert_allclose(ret[i].astype(float), np.array([[ret1[i], ret2[i]], [ret3[i], ret4[i]]], dtype=float)) except: # ret[i] is array of arrays assert_allclose(ret[i][0, 0], ret1[i]) assert_allclose(ret[i][0, 1], ret2[i]) assert_allclose(ret[i][1, 0], ret3[i]) assert_allclose(ret[i][1, 1], ret4[i])
def test_basevectors_apex_scalar_geo(): apex_out = Apex(date=2000, refh=300) (f1, f2, f3, g1, g2, g3, d1, d2, d3, e1, e2, e3) = apex_out.basevectors_apex(60, 15, 100, coords='geo') (_, _, _, _, f1_, f2_, _, d1_, d2_, d3_, _, e1_, e2_, e3_) = apex_out._geo2apexall(60, 15, 100) assert_allclose(f1, f1_) assert_allclose(f2, f2_) assert_allclose(d1, d1_) assert_allclose(d2, d2_) assert_allclose(d3, d3_) assert_allclose(e1, e1_) assert_allclose(e2, e2_) assert_allclose(e3, e3_)
def test_basevectors_apex_scalar_qd(): apex_out = Apex(date=2000, refh=300) (f1, f2, f3, g1, g2, g3, d1, d2, d3, e1, e2, e3) = apex_out.basevectors_apex(60, 15, 100, coords='qd', precision=1e-2) glat, glon, _ = apex_out.qd2geo(60, 15, 100, precision=1e-2) (_, _, _, _, f1_, f2_, _, d1_, d2_, d3_, _, e1_, e2_, e3_) = apex_out._geo2apexall(glat, glon, 100) assert_allclose(f1, f1_) assert_allclose(f2, f2_) assert_allclose(d1, d1_) assert_allclose(d2, d2_) assert_allclose(d3, d3_) assert_allclose(e1, e1_) assert_allclose(e2, e2_) assert_allclose(e3, e3_)
def test_basevectors_apex_scalar(): A = Apex(date=2000, refh=300) f1, f2, f3, g1, g2, g3, d1, d2, d3, e1, e2, e3 = A.basevectors_apex(0, 15, 100, coords='geo') _, _, _, _, f1_1, f2_1, _, d1_1, d2_1, d3_1, _, e1_1, e2_1, e3_1 = A._geo2apexall(0, 15, 100) assert_allclose(f1, f1_1) assert_allclose(f2, f2_1) assert_allclose(d1, d1_1) assert_allclose(d2, d2_1) assert_allclose(d3, d3_1) assert_allclose(e1, e1_1) assert_allclose(e2, e2_1) assert_allclose(e3, e3_1) assert_allclose(f3, np.array([0.092637, -0.245951, 0.938848]), rtol=1e-4) assert_allclose(g1, np.array([0.939012, 0.073416, -0.07342]), rtol=1e-4) assert_allclose(g2, np.array([0.055389, 1.004155, 0.257594]), rtol=1e-4) assert_allclose(g3, np.array([0, 0, 1.065135]), rtol=1e-4)
def test__geo2apexall_array(): A = Apex(date=2000, refh=300) ret = A._geo2apexall([[0, 30], [60, 90]], 15, [[100, 200], [300, 400]]) ret1 = fa.apxg2all(0, 15, 100, 300, 1) ret2 = fa.apxg2all(30, 15, 200, 300, 1) ret3 = fa.apxg2all(60, 15, 300, 300, 1) ret4 = fa.apxg2all(90, 15, 400, 300, 1) for i in range(len(ret)): try: # ret[i] is array of floats assert_allclose( ret[i].astype(float), np.array([[ret1[i], ret2[i]], [ret3[i], ret4[i]]], dtype=float)) except: # ret[i] is array of arrays assert_allclose(ret[i][0, 0], ret1[i]) assert_allclose(ret[i][0, 1], ret2[i]) assert_allclose(ret[i][1, 0], ret3[i]) assert_allclose(ret[i][1, 1], ret4[i])
def test_basevectors_apex_scalar(): apex_out = Apex(date=2000, refh=300) (f1, f2, f3, g1, g2, g3, d1, d2, d3, e1, e2, e3) = apex_out.basevectors_apex(0, 15, 100, coords='geo') (_, _, _, _, f1_1, f2_1, _, d1_1, d2_1, d3_1, _, e1_1, e2_1, e3_1) = apex_out._geo2apexall(0, 15, 100) assert_allclose(f1, f1_1) assert_allclose(f2, f2_1) assert_allclose(d1, d1_1) assert_allclose(d2, d2_1) assert_allclose(d3, d3_1) assert_allclose(e1, e1_1) assert_allclose(e2, e2_1) assert_allclose(e3, e3_1) assert_allclose(f3, np.array([0.092637, -0.245951, 0.938848]), rtol=1e-4) assert_allclose(g1, np.array([0.939012, 0.073416, -0.07342]), rtol=1e-4) assert_allclose(g2, np.array([0.055389, 1.004155, 0.257594]), rtol=1e-4) assert_allclose(g3, np.array([0, 0, 1.065135]), rtol=1e-4)