def test_hpc_hgs(Tx, Ty): hpc = Helioprojective(Tx, Ty) hgs = hpc.transform_to(HeliographicStonyhurst) lon, lat = wcs.convert_hpc_hg(Tx.value, Ty.value, angle_units='arcsec', b0_deg=hpc.B0.to(u.deg).value, l0_deg=hpc.L0.to(u.deg).value, dsun_meters=hpc.D0.to(u.m)) assert_quantity_allclose(lon*u.deg, hgs.lon) assert_quantity_allclose(lat*u.deg, hgs.lat)
def test_hgs_hpc(lon, lat): hgs = HeliographicStonyhurst(lon, lat) hpc = hgs.transform_to(Helioprojective) Tx, Ty = wcs.convert_hg_hpc(lon.value, lat.value, angle_units='arcsec', b0_deg=hpc.B0.to(u.deg).value, l0_deg=hpc.L0.to(u.deg).value, dsun_meters=hpc.D0.to(u.m)) assert_quantity_allclose(Tx*u.arcsec, hpc.Tx) assert_quantity_allclose(Ty*u.arcsec, hpc.Ty)
def test_apparent_longitude(): assert_quantity_allclose(sun.apparent_longitude("2012/11/11"), 228.994 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.apparent_longitude("2014/05/27"), 65.648 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.apparent_longitude("2134/02/12"), 323.066 * u.deg, atol=1e-3 * u.deg)
def test_true_rightasenscion(): assert_quantity_allclose(sun.true_rightascension("2012/11/11"), 226.550 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_rightascension("2142/02/03"), 316.466 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_rightascension("2013/12/11"), 258.150 * u.deg, atol=1e-3 * u.deg)
def test_solar_semidiameter_angular_size(): assert_quantity_allclose(sun.solar_semidiameter_angular_size("2012/11/11"), 968.383 * u.arcsec, atol=1e-3 * u.arcsec) assert_quantity_allclose(sun.solar_semidiameter_angular_size("2043/03/01"), 968.274 * u.arcsec, atol=1e-3 * u.arcsec) assert_quantity_allclose(sun.solar_semidiameter_angular_size("2001/07/21"), 943.706 * u.arcsec, atol=1e-3 * u.arcsec)
def test_solar_cycle_number(): assert_quantity_allclose(sun.solar_cycle_number("2012/11/11"), 5, atol=1e-1) #76 assert_quantity_allclose(sun.solar_cycle_number("2011/2/22"), 4, atol=1e-1) #23 assert_quantity_allclose(sun.solar_cycle_number("2034/1/15"), 27, atol=1e-1)
def test_equation_of_center(): assert_quantity_allclose(sun.equation_of_center("2012/11/11"), -1.559 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.equation_of_center("2014/05/27"), 1.203 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.equation_of_center("2134/01/01"), -0.194 * u.deg, atol=1e-3 * u.deg)
def test_mean_ecliptic_longitude(): assert_quantity_allclose(sun.mean_ecliptic_longitude("2012/11/11"), 229.558 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.mean_ecliptic_longitude("2101/04/29"), 35.824 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.mean_ecliptic_longitude("2003/09/15"), 172.568 * u.deg, atol=3 * u.deg)
def test_apparent_longitude(): assert_quantity_allclose(sun.apparent_longitude("2012/11/11"), 227.989 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.apparent_longitude("2014/05/27"), 64.687 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.apparent_longitude("2134/02/12"), 322.053 * u.deg, atol=1e-3 * u.deg)
def test_true_anomaly(): assert_quantity_allclose(sun.true_anomaly("2012/11/11"), 304.837 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_anomaly("2242/06/29"), 169.055 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_anomaly("2020/01/01"), 355.715 * u.deg, atol=1e-3 * u.deg)
def test_true_rightasenscion(): assert_quantity_allclose(sun.true_rightascension("2012/11/11"), 359.318 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_rightascension("2142/02/03"), 359.328 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_rightascension("2013/12/11"), 359.102 * u.deg, atol=1e-3 * u.deg)
def test_mean_ecliptic_longitude(): assert_quantity_allclose(sun.mean_ecliptic_longitude("2012/11/11"), 230.544 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.mean_ecliptic_longitude("2101/04/29"), 36.811 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.mean_ecliptic_longitude("2003/09/15"), 173.554 * u.deg, atol=1e-3 * u.deg)
def test_apparent_obliquity_of_ecliptic(): assert_quantity_allclose(sun.apparent_obliquity_of_ecliptic("2012/11/11"), 23.435 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.apparent_obliquity_of_ecliptic("2014/05/27"), 23.438 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.apparent_obliquity_of_ecliptic("2412/02/26"), 23.388 * u.deg, atol=1e-3 * u.deg)
def test_true_declination(): assert_quantity_allclose(sun.true_declination("2012/11/11"), -0.669 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_declination("2245/12/01"), -0.380 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_declination("2014/05/27"), 0.427 * u.deg, atol=1e-3 * u.deg)
def test_apparent_rightascension(): assert_quantity_allclose(sun.apparent_rightascension("2012/11/11"), 15.035 * u.hourangle, atol=1e-3 * u.hourangle) assert_quantity_allclose(sun.apparent_rightascension("2013/12/13"), 17.282 * u.hourangle, atol=1e-3 * u.hourangle) assert_quantity_allclose(sun.apparent_rightascension("2512/04/09"), 1.134 * u.hourangle, atol=1e-3 * u.hourangle)
def test_solar_north(): assert_quantity_allclose(sun.solar_north("2012/11/11"), 15.149 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.solar_north("2019/10/10"), -1.693 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.solar_north("2542/02/20"), 41.351 * u.deg, atol=1e-3 * u.deg)
def test_hpc_hcc(Tx, Ty): hpc = Helioprojective(Tx, Ty) hcc = hpc.transform_to(Heliocentric) x, y, z = wcs.convert_hpc_hcc(Tx.value, Ty.value, angle_units='arcsec', dsun_meters=hpc.D0.to(u.m), z=True) assert_quantity_allclose(x*u.m, hcc.x) assert_quantity_allclose(y*u.m, hcc.y) assert_quantity_allclose(z*u.m, hcc.z)
def test_solar_north(): assert_quantity_allclose(sun.solar_north("2012/11/11"), 22.346 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.solar_north("2019/10/10"), 26.260 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.solar_north("2542/02/20"), -17.981 * u.deg, atol=1e-3 * u.deg)
def test_true_obliquity_of_ecliptic(): assert_quantity_allclose(sun.true_obliquity_of_ecliptic("2012/11/11"), 23.437 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_obliquity_of_ecliptic("2132/12/29"), 23.421 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_obliquity_of_ecliptic("2002/03/15"), 23.438 * u.deg, atol=1e-3 * u.deg)
def test_true_anomaly(): assert_quantity_allclose(sun.true_anomaly("2012/11/11"), 305.842 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_anomaly("2242/06/29"), 170.010 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_anomaly("2020/01/01"), 356.735 * u.deg, atol=1e-3 * u.deg)
def test_true_declination(): assert_quantity_allclose(sun.true_declination("2012/11/11"), -17.467 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_declination("2245/12/01"), -21.717 * u.deg, atol=1e-3 * u.deg) assert_quantity_allclose(sun.true_declination("2014/05/27"), 21.245 * u.deg, atol=1e-3 * u.deg)
def test_hgs_hcc(lon, lat): hgs = HeliographicStonyhurst(lon, lat) hcc = hgs.transform_to(Heliocentric) x, y, z = wcs.convert_hg_hcc(lon.value, lat.value, r=hgs.radius.to(u.m).value, z=True) assert_quantity_allclose(x*u.m, hcc.x) assert_quantity_allclose(y*u.m, hcc.y) assert_quantity_allclose(z*u.m, hcc.z)
def test_true_longitude(): # source: http://www.satellite-calculations.com/Satellite/suncalc.htm # values are deviating a little because of lack of time parameter in # true_longitude function assert_quantity_allclose(sun.true_longitude("2002/12/23"), 270.978 * u.deg, atol=1.1 * u.deg) assert_quantity_allclose(sun.true_longitude("2003/01/29"), 308.661 * u.deg, atol=1.1 * u.deg) assert_quantity_allclose(sun.true_longitude("2004/05/12"), 51.617 * u.deg, atol=1.1 * u.deg) assert_quantity_allclose(sun.true_longitude("2006/07/04"), 101.910 * u.deg, atol=1.1 * u.deg) assert_quantity_allclose(sun.true_longitude("2007/09/16"), 172.767 * u.deg, atol=1.1 * u.deg) assert_quantity_allclose(sun.true_longitude("2009/02/11"), 322.394 * u.deg, atol=1.1 * u.deg)
def test_apparent_declination(): assert_quantity_allclose(sun.apparent_declination("2002/12/22"), -22.964 * u.deg, atol=1 * u.deg) assert_quantity_allclose(sun.apparent_declination("2003/1/12"), -21.743 * u.deg, atol=1 * u.deg) assert_quantity_allclose(sun.apparent_declination("2004/02/13"), -13.478 * u.deg, atol=1 * u.deg) assert_quantity_allclose(sun.apparent_declination("2005/12/3"), -22.152 * u.deg, atol=1 * u.deg) assert_quantity_allclose(sun.apparent_declination("2013/02/26"), -8.547 * u.deg, atol=1 * u.deg) assert_quantity_allclose(sun.apparent_declination("2014/05/1"), 15.141 * u.deg, atol=1 * u.deg)
def test_sunearth_distance(): # Source for these values # wolframalpha.com # http://www.wolframalpha.com/input/?i=earth-sun+distance+on+2010%2F02%2F04 assert_quantity_allclose(sun.sunearth_distance("2010/02/04"), 0.9858 * u.AU, atol=1e-3 * u.AU) assert_quantity_allclose(sun.sunearth_distance("2009/04/13"), 1.003 * u.AU, atol=1e-3 * u.AU) assert_quantity_allclose(sun.sunearth_distance("2008/06/20"), 1.016 * u.AU, atol=1e-3 * u.AU) assert_quantity_allclose(sun.sunearth_distance("2007/08/15"), 1.013 * u.AU, atol=1e-3 * u.AU) assert_quantity_allclose(sun.sunearth_distance("2007/10/02"), 1.001 * u.AU, atol=1e-3 * u.AU) assert_quantity_allclose(sun.sunearth_distance("2006/12/27"), 0.9834 * u.AU, atol=1e-3 * u.AU)
def test_array(seconds_per_day): rot = diff_rot(10 * seconds_per_day, np.linspace(-70, 70, 2) * u.deg) assert_quantity_allclose(rot, Longitude(np.array([110.2725, 110.2725]) * u.deg))
def test_mean_anomaly(): assert_quantity_allclose(sun.mean_anomaly("2002/12/12"), 337.538 * u.deg, atol=1 * u.deg) assert_quantity_allclose(sun.mean_anomaly("2003/03/25"), 79.055 * u.deg, atol=1 * u.deg) assert_quantity_allclose(sun.mean_anomaly("2005/06/05"), 150.492 * u.deg, atol=1 * u.deg) assert_quantity_allclose(sun.mean_anomaly("2006/11/17"), 312.860 * u.deg, atol=1 * u.deg) assert_quantity_allclose(sun.mean_anomaly("2008/07/29"), 203.933 * u.deg, atol=1 * u.deg) assert_quantity_allclose(sun.mean_anomaly("2011/01/31"), 26.742 * u.deg, atol=1 * u.deg)
def test_array(): rot = diff_rot(10, np.linspace(-70, 70, 2) * u.deg) assert_quantity_allclose(rot, Longitude(np.array([110.2725, 110.2725]) * u.deg))