From 5aff2bfbcfbf9a77252fc488986f67a94faa3c6e Mon Sep 17 00:00:00 2001 From: thijs snijder <snijder@astron.nl> Date: Thu, 27 Jan 2022 16:54:41 +0100 Subject: [PATCH] worked on tests --- .../tangostationcontrol/beam/old_test.py | 82 ++++++++++++------- .../tangostationcontrol/beam/test_delays.py | 74 +++++------------ 2 files changed, 74 insertions(+), 82 deletions(-) diff --git a/tangostationcontrol/tangostationcontrol/beam/old_test.py b/tangostationcontrol/tangostationcontrol/beam/old_test.py index 3de4e65e4..d58c2dcce 100644 --- a/tangostationcontrol/tangostationcontrol/beam/old_test.py +++ b/tangostationcontrol/tangostationcontrol/beam/old_test.py @@ -80,33 +80,33 @@ if __name__ == '__main__': # print the delays print(f"Direction: {direction}: {delays}, diff: {diff}") - # # create a frame tied to the reference position - reference_itrf = [3826577.066, 461022.948, 5064892.786] # CS002LBA, in ITRF2005 epoch 2012.5 - d = delay_calculator(reference_itrf) - - # set the antenna position identical to the reference position - speed_of_light = 299792458.0 - antenna_itrf = [[reference_itrf[0], reference_itrf[1], reference_itrf[2]]] # CS001LBA, in ITRF2005 epoch 2012.5 - - for i in range(24): - # # set the timestamp to solve for - timestamp = datetime.datetime(2022, 1, 27, i, 28, 0) # sunrise this particular day - d.set_measure_time(timestamp) - - # compute the delays for an antennas w.r.t. the reference position - - # # obtain the direction vector for a specific pointing - direction = "SUN", "0deg", "0deg" - - # calculate the delays based on the set reference position, the set time and now the set direction and antenna positions. - pointing = d.measure.direction(*direction) - dir = d.get_direction_vector(pointing) - - if i == 9: - print("sunrise") - print(f"time: {i:2}:28,\tdirection: {dir}" ) - - self.assertTrue() + # # # create a frame tied to the reference position + # reference_itrf = [3826577.066, 461022.948, 5064892.786] # CS002LBA, in ITRF2005 epoch 2012.5 + # d = delay_calculator(reference_itrf) + # + # # set the antenna position identical to the reference position + # speed_of_light = 299792458.0 + # antenna_itrf = [[reference_itrf[0], reference_itrf[1], reference_itrf[2]]] # CS001LBA, in ITRF2005 epoch 2012.5 + # + # for i in range(24): + # # # set the timestamp to solve for + # timestamp = datetime.datetime(2022, 1, 27, i, 28, 0) # sunrise this particular day + # d.set_measure_time(timestamp) + # + # # compute the delays for an antennas w.r.t. the reference position + # + # # # obtain the direction vector for a specific pointing + # direction = "SUN", "0deg", "0deg" + # + # # calculate the delays based on the set reference position, the set time and now the set direction and antenna positions. + # pointing = d.measure.direction(*direction) + # dir = d.get_direction_vector(pointing) + # + # if i == 9: + # print("sunrise") + # print(f"time: {i:2}:28,\tdirection: {dir}" ) + # + # print(d.measure.epoch()) """" ############################################################ @@ -129,4 +129,30 @@ if __name__ == '__main__': # # calculate the delays based on the set reference position, the set time and now the set direction and antenna positions. # delays = d.convert(direction, antenna_itrf) # - # print(delays) \ No newline at end of file + # print(delays) + # # create a frame tied to the reference position + reference_itrf = [3826577.066, 461022.948, 5064892.786] # CS002LBA, in ITRF2005 epoch 2012.5 + d = delay_calculator(reference_itrf) + + # # set the timestamp to solve for + timestamp = datetime.datetime(2000, 1, 1, 0, 0, 0) + d.set_measure_time(timestamp) + + # # obtain the direction vector for a specific pointing + direction = "J2000", "0deg", "0deg" + + speed_of_light = 299792458.0 + antenna_itrf = [[reference_itrf[0], reference_itrf[1] - speed_of_light, reference_itrf[2]]] # CS001LBA, in ITRF2005 epoch 2012.5 + + # calculate the delays based on the set reference position, the set time and now the set direction and antenna positions. + delays = d.convert(direction, antenna_itrf) + + print("One second delay: ", delays) + + antenna_itrf = [[reference_itrf[0], reference_itrf[1] - speed_of_light - speed_of_light, reference_itrf[2]]] # CS001LBA, in ITRF2005 epoch 2012.5 + + + # calculate the delays based on the set reference position, the set time and now the set direction and antenna positions. + delays = d.convert(direction, antenna_itrf) + + print("Two second delay: ", delays) \ No newline at end of file diff --git a/tangostationcontrol/tangostationcontrol/beam/test_delays.py b/tangostationcontrol/tangostationcontrol/beam/test_delays.py index 7680fdf95..fc5d8a41d 100644 --- a/tangostationcontrol/tangostationcontrol/beam/test_delays.py +++ b/tangostationcontrol/tangostationcontrol/beam/test_delays.py @@ -1,3 +1,5 @@ +import datetime + from delays import * from math import sqrt, pow @@ -11,63 +13,28 @@ import mock class TestAttributeTypes(base.TestCase): - def setUp(self): - # # create a frame tied to the reference position - self.reference_itrf = [3826577.066, 461022.948, 5064892.786] # CS002LBA, in ITRF2005 epoch 2012.5 - self.d = delay_calculator(self.reference_itrf) + def test_init(self): + """ + Fail condition is simply the object creation failing + """ - # # set the timestamp to solve for - self.timestamp = datetime.datetime(2021, 1, 1, 0, 0, 5) - self.d.set_measure_time(self.timestamp) + reference_itrf = [3826577.066, 461022.948, 5064892.786] # CS002LBA, in ITRF2005 epoch 2012.5 + d = delay_calculator(reference_itrf) - # compute the delays for an antennas w.r.t. the reference position - self.antenna_itrf = [[3826923.546, 460915.441, 5064643.489]] # CS001LBA, in ITRF2005 epoch 2012.5 (XYZ from centre of the earth in metres) + def test_set_measure_time(self): + """ - # # obtain the direction vector for a specific pointing - self.direction = "J2000", "0deg", "0deg" # sky at 1 jan 00:00 2000, right ascension, declination + """ + # # create a frame tied to the reference position + reference_itrf = [3826577.066, 461022.948, 5064892.786] # CS002LBA, in ITRF2005 epoch 2012.5 + d = delay_calculator(reference_itrf) - def test_time_change(self): # # set the timestamp to solve for - for i in range(10): - self.timestamp = datetime.datetime(2021, 1, 1, 0, i, 5) - self.d.set_measure_time(self.timestamp) - - delays = self.d.convert(self.direction, self.antenna_itrf) - - # print the delays - print(f"Timestamp: {self.timestamp}: {delays}") - - def test_direction_change(self): - # test changing the direction - - self.antenna_itrf = [[3826923.546, 460915.441, 5064643.489]] # CS001LBA, in ITRF2005 epoch 2012.5 - print(f"Changing direction test.\nBase parametres: Time: {self.timestamp} , position: {self.antenna_itrf}") - - for i in range(10): - self.direction = "J2000", f"{i}deg", "0deg" - - delays = self.d.convert(self.direction, self.antenna_itrf) - - # print the delays - print(f"Direction: {self.direction}: {delays}") - - def test_position_change(self): - # test changing the antenna position - print(f"Changing Antenna position test.\nBase parametres: Time: {self.timestamp} Direction: {self.direction}") - for i in range(10): - self.antenna_itrf = [[3826577.066 + i, 461022.948, 5064892.786]] # CS002LBA, in ITRF2005 epoch 2012.5 - - delays = self.d.convert(self.direction, self.antenna_itrf) - - # print the delays - print(f"Antenna position: {self.antenna_itrf}: {delays}") + timestamp = datetime.datetime(2000, 1, 1, 0, 0, 5) + d.set_measure_time(timestamp) - def test_set_measure_time(self): - """" - create a measure object, set a time and check that it is what we set it to. - """ def test_azul(self): # # create a frame tied to the reference position @@ -87,9 +54,6 @@ class TestAttributeTypes(base.TestCase): # calculate the delays based on the set reference position, the set time and now the set direction and antenna positions. delays = d.convert(direction, antenna_itrf) - def test_init(self): - pass - def test_sun(self): # # create a frame tied to the reference position reference_itrf = [3826577.066, 461022.948, 5064892.786] # CS002LBA, in ITRF2005 epoch 2012.5 @@ -137,7 +101,7 @@ class TestAttributeTypes(base.TestCase): # calculate the delays based on the set reference position, the set time and now the set direction and antenna positions. delays = d.convert(direction, antenna_itrf) - print("identical location delay: ", delays) + self.assertTrue(delays == [0.0]) def test_light_second_delay(self): # # create a frame tied to the reference position @@ -145,7 +109,7 @@ class TestAttributeTypes(base.TestCase): d = delay_calculator(reference_itrf) # set the antenna position identical to the reference position - speed_of_light = 299792458.0 + speed_of_light = 304389329.123#299792458.0 antenna_itrf = [[reference_itrf[0], reference_itrf[1] - speed_of_light, reference_itrf[2]]] # CS001LBA, in ITRF2005 epoch 2012.5 # # set the timestamp to solve for @@ -162,3 +126,5 @@ class TestAttributeTypes(base.TestCase): print("One second delay: ", delays) + self.assertTrue(0.98 <= delays[0] <= 1.02) + -- GitLab