diff --git a/Config/config.json b/Config/config.json index 4892d28..95253cc 100644 --- a/Config/config.json +++ b/Config/config.json @@ -1,7 +1,9 @@ { - "Number_of_cycles": 200, - "Amplitude_mm": 10, + "Number_of_cycles": 3, + "Amplitude_mm": 1, "Time_in_beam_s": 5, "Time_out_of_beam_s": 10, - "Exposure_time": 0.002 + "Exposure_time": 0.0004, + "Img_Processing": 1, + "pixel_size_mu": 0.275 } \ No newline at end of file diff --git a/Config/measurement.json b/Config/measurement.json index 0e184f0..d0f2a6f 100644 --- a/Config/measurement.json +++ b/Config/measurement.json @@ -1,4 +1,4 @@ {"std_test_mov": [-10, 10], -"std_test_wait": [10, 50], +"std_test_wait": [1, 5], "backlsh_meas_mov": [10, -10, -10, 10], "backlash_meas_wait": [1]} \ No newline at end of file diff --git a/Scripts/__pycache__/metrology_functions.cpython-313.pyc b/Scripts/__pycache__/metrology_functions.cpython-313.pyc index 2510133..5d6d8e6 100644 Binary files a/Scripts/__pycache__/metrology_functions.cpython-313.pyc and b/Scripts/__pycache__/metrology_functions.cpython-313.pyc differ diff --git a/Scripts/metrology_functions.py b/Scripts/metrology_functions.py index ed398e0..96619b0 100644 --- a/Scripts/metrology_functions.py +++ b/Scripts/metrology_functions.py @@ -5,7 +5,9 @@ import matplotlib.pyplot as plt from pathlib import Path import queue import sys +import scipy.ndimage as spnd import threading as th +from scipy.optimize import curve_fit #error chatchign and hard code catch stuff @@ -20,13 +22,9 @@ def check_path(path_str): print(f"Error: {e}") config_path = r"C:\Users\berti_r\Python_Projects\StagePerformaceDocu\Config\config.json" check_path(config_path) -def init_nr_of_cycles(): - config = myu.load_object(config_path) - return config.get("Number_of_cycles", 1) -def init_exposure_time(): - config = myu.load_object(config_path) - return config.get("Exposure_time") + + library_path = r"C:\Users\berti_r\Python_Projects\templates\motion_libs" check_path(library_path) sys.path.append(library_path) @@ -53,6 +51,47 @@ plc.connect() axis1 = mfl.axis(plc, 1) #insert try catch later +def init_nr_of_cycles(): + config = myu.load_object(config_path) + return config.get("Number_of_cycles", 1) +def init_exposure_time(): + config = myu.load_object(config_path) + return config.get("Exposure_time") + +def init_image_processing_yes_no(): + config = myu.load_object(config_path) + return config.get("Img_Processing",0) + +def gaussian_2d(coords, amplitude, x0, y0, sigma_x, sigma_y, offset): + x, y = coords + return amplitude * np.exp( + -(((x - x0) ** 2) / (2 * sigma_x ** 2) + ((y - y0) ** 2) / (2 * sigma_y ** 2)) + ) + offset + +def __process_img(img , retimg=0): + img = cv2.GaussianBlur(img,(5,5),0) + img = spnd.zoom(img, 4,order=3) + + z = np.array(img) + # Create a test image (e.g., 2D Gaussian) + x = np.linspace(0, z.shape[0], z.shape[0]) + y = np.linspace(0, z.shape[1], z.shape[1]) + x, y = np.meshgrid(x, y) + + # z = gaussian_2d((x, y), 10, 25, 25, 5, 5, 1) + np.random.normal(0, 0.2, x.shape) + + # Flatten and fit + x_gues, y_gues = image_center_of_mass(img, plot=False, verbose=False) + initial_guess = (180, x_gues, y_gues, 4, 4, 1) + popt, _ = curve_fit(gaussian_2d, (x.ravel(), y.ravel()), z.ravel(), p0=initial_guess) + + x = popt[1] + y = popt[2] + #ret1, th1 = cv2.threshold(img, 196, 255, cv2.THRESH_BINARY) + #x, y = image_center_of_mass(img, plot=False, verbose=False) + if retimg: + return x,y,img + return x, y def run_repeatability_series( motor_pv_prefix=0, ntries=100,save_images=True, run_analysis=False): @@ -104,8 +143,13 @@ def run_repeatability_series( sleep(0.1) im = camera.get_image() sleep(0.1) - ret1, th1 = cv2.threshold(im,196,255,cv2.THRESH_BINARY) - com_x, com_y = image_center_of_mass(th1, plot=False, verbose=False) + + if (1 == init_image_processing_yes_no()): + + com_x, com_y = __process_img(im) + else: + com_x, com_y = image_center_of_mass(im, plot=False, verbose=False) + data_str = " {:6d} {:18f} {:18f} {:8.3f} {:8.3f} {:14.3f}\n".format( i, start_pos_rbv, meas_pos_rbv, com_x, com_y, time.time()) print(data_str, end='') @@ -151,6 +195,7 @@ def analyze_repeatability(input_file, pixel_size, units='um'): """ + index, start_pos, meas_pos, com_x, com_y, ts = np.loadtxt( input_file, unpack=True) @@ -163,6 +208,8 @@ def analyze_repeatability(input_file, pixel_size, units='um'): t = ts - ts[0] + + def calc_repeatability(com_vals): mean_val = np.mean(com_vals) @@ -248,7 +295,7 @@ def analyze_repeatability(input_file, pixel_size, units='um'): print(f"Plot saved in {plot_file:s}") -#run_repeatability_series(0,1) + def image_test(motor_on_off=0): if os.getenv("EPICS_CA_ADDR_LIST") is not None: @@ -261,11 +308,12 @@ def image_test(motor_on_off=0): camera.start() im = camera.get_image() - ret2, th2 = cv2.threshold(im,196,255,cv2.THRESH_BINARY) + if (1 == init_image_processing_yes_no()): + x, y, im = __process_img(im,1) + else: + x, y = image_center_of_mass(im, plot=False, verbose=False) - # Coordinates (float, in pixels) - x, y = image_center_of_mass(im, plot=False, verbose=False) # Create a new figure and axis fig, ax = plt.subplots() ax.imshow(im) @@ -314,8 +362,11 @@ def static_test(motor_on_off=0): while not img_queue.empty(): i = i+1 im,tim = img_queue.get() - ret1, th1 = cv2.threshold(im , 196, 255, cv2.THRESH_BINARY) - com_x, com_y = image_center_of_mass(im, plot=False, verbose=False) + if (1 == init_image_processing_yes_no()): + + com_x, com_y = __process_img(im) + else: + com_x, com_y = image_center_of_mass(im, plot=False, verbose=False) data_str = " {:6d} {:18f} {:18f} {:8.3f} {:8.3f} {:14.3f}\n".format( i, 0, 0, com_x, com_y, tim) # -------------------------------------------Save---------------------------------------------------- @@ -324,6 +375,7 @@ def static_test(motor_on_off=0): fh.close() camera_thread.join() + def my_set_ev(): print("trying to set ev") if os.getenv("EPICS_CA_ADDR_LIST") is not None: @@ -333,7 +385,7 @@ def my_set_ev(): camera_seting = ad.AD() - while (camera_seting.get_exposure_time() != init_exposure_time()): + for i in range(10): camera_seting.set_ev_time(init_exposure_time()) sleep(1.2) diff --git a/data/data20250717_alignment_tests/20250717_105557_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_105557_static_0/static_0.dat new file mode 100644 index 0000000..1cafb9f --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_105557_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 23.956 38.655 1752742557.726 + 2 0.000000 0.000000 24.000 38.655 1752742557.781 + 3 0.000000 0.000000 23.978 38.706 1752742557.839 + 4 0.000000 0.000000 24.091 38.619 1752742557.896 + 5 0.000000 0.000000 24.109 38.831 1752742557.952 + 6 0.000000 0.000000 24.051 38.645 1752742558.009 + 7 0.000000 0.000000 24.017 38.713 1752742558.066 + 8 0.000000 0.000000 23.996 38.607 1752742558.122 + 9 0.000000 0.000000 23.952 38.674 1752742558.178 + 10 0.000000 0.000000 23.944 38.671 1752742558.235 + 11 0.000000 0.000000 24.043 38.717 1752742558.292 + 12 0.000000 0.000000 24.009 38.609 1752742558.349 + 13 0.000000 0.000000 23.943 38.678 1752742558.406 + 14 0.000000 0.000000 24.078 38.678 1752742558.462 + 15 0.000000 0.000000 23.922 38.688 1752742558.518 + 16 0.000000 0.000000 24.052 38.670 1752742558.574 + 17 0.000000 0.000000 23.987 38.715 1752742558.630 + 18 0.000000 0.000000 24.141 38.629 1752742558.686 + 19 0.000000 0.000000 24.021 38.584 1752742558.742 + 20 0.000000 0.000000 24.004 38.569 1752742558.797 + 21 0.000000 0.000000 23.916 38.708 1752742558.855 + 22 0.000000 0.000000 24.022 38.621 1752742558.910 + 23 0.000000 0.000000 23.905 38.680 1752742558.966 + 24 0.000000 0.000000 23.974 38.578 1752742559.024 + 25 0.000000 0.000000 23.987 38.655 1752742559.079 + 26 0.000000 0.000000 23.978 38.678 1752742559.135 + 27 0.000000 0.000000 24.057 38.709 1752742559.191 + 28 0.000000 0.000000 23.944 38.595 1752742559.247 + 29 0.000000 0.000000 24.098 38.632 1752742559.304 + 30 0.000000 0.000000 24.065 38.574 1752742559.359 + 31 0.000000 0.000000 23.987 38.710 1752742559.416 + 32 0.000000 0.000000 23.956 38.686 1752742559.472 + 33 0.000000 0.000000 23.966 38.757 1752742559.528 + 34 0.000000 0.000000 24.039 38.634 1752742559.585 + 35 0.000000 0.000000 23.978 38.659 1752742559.641 + 36 0.000000 0.000000 23.948 38.698 1752742559.699 + 37 0.000000 0.000000 23.991 38.564 1752742559.755 + 38 0.000000 0.000000 24.043 38.617 1752742559.812 + 39 0.000000 0.000000 24.053 38.618 1752742559.868 + 40 0.000000 0.000000 23.945 38.694 1752742559.925 + 41 0.000000 0.000000 24.017 38.638 1752742559.983 + 42 0.000000 0.000000 23.970 38.607 1752742560.039 + 43 0.000000 0.000000 23.956 38.744 1752742560.095 + 44 0.000000 0.000000 24.009 38.654 1752742560.152 + 45 0.000000 0.000000 24.108 38.716 1752742560.210 + 46 0.000000 0.000000 24.204 38.604 1752742560.266 + 47 0.000000 0.000000 24.058 38.580 1752742560.324 + 48 0.000000 0.000000 24.052 38.694 1752742560.380 + 49 0.000000 0.000000 24.074 38.726 1752742560.436 + 50 0.000000 0.000000 23.878 38.742 1752742560.493 + 51 0.000000 0.000000 24.113 38.831 1752742560.550 + 52 0.000000 0.000000 24.100 38.670 1752742560.607 + 53 0.000000 0.000000 24.091 38.593 1752742560.665 + 54 0.000000 0.000000 24.110 38.697 1752742560.721 + 55 0.000000 0.000000 23.974 38.641 1752742560.778 + 56 0.000000 0.000000 24.135 38.694 1752742560.834 + 57 0.000000 0.000000 24.060 38.631 1752742560.891 + 58 0.000000 0.000000 23.912 38.614 1752742560.948 + 59 0.000000 0.000000 24.009 38.726 1752742561.004 + 60 0.000000 0.000000 23.935 38.593 1752742561.062 + 61 0.000000 0.000000 24.009 38.590 1752742561.117 + 62 0.000000 0.000000 23.948 38.672 1752742561.174 + 63 0.000000 0.000000 23.983 38.693 1752742561.230 + 64 0.000000 0.000000 23.978 38.678 1752742561.287 + 65 0.000000 0.000000 24.031 38.693 1752742561.343 + 66 0.000000 0.000000 24.000 38.590 1752742561.399 + 67 0.000000 0.000000 24.056 38.727 1752742561.456 + 68 0.000000 0.000000 24.013 38.752 1752742561.513 + 69 0.000000 0.000000 24.100 38.642 1752742561.568 + 70 0.000000 0.000000 23.970 38.615 1752742561.625 + 71 0.000000 0.000000 24.022 38.700 1752742561.681 + 72 0.000000 0.000000 23.944 38.667 1752742561.736 + 73 0.000000 0.000000 24.004 38.583 1752742561.794 + 74 0.000000 0.000000 24.082 38.619 1752742561.850 + 75 0.000000 0.000000 23.991 38.623 1752742561.906 + 76 0.000000 0.000000 23.974 38.680 1752742561.962 + 77 0.000000 0.000000 24.078 38.595 1752742562.018 + 78 0.000000 0.000000 23.939 38.729 1752742562.074 + 79 0.000000 0.000000 24.043 38.563 1752742562.131 + 80 0.000000 0.000000 24.165 38.667 1752742562.187 + 81 0.000000 0.000000 23.879 38.693 1752742562.244 + 82 0.000000 0.000000 23.939 38.763 1752742562.303 + 83 0.000000 0.000000 24.043 38.750 1752742562.360 + 84 0.000000 0.000000 24.038 38.654 1752742562.417 + 85 0.000000 0.000000 24.145 38.562 1752742562.473 + 86 0.000000 0.000000 24.118 38.568 1752742562.529 + 87 0.000000 0.000000 23.930 38.743 1752742562.587 + 88 0.000000 0.000000 23.944 38.671 1752742562.644 + 89 0.000000 0.000000 24.022 38.658 1752742562.701 + 90 0.000000 0.000000 24.013 38.740 1752742562.758 + 91 0.000000 0.000000 24.086 38.644 1752742562.813 + 92 0.000000 0.000000 24.208 38.628 1752742562.870 + 93 0.000000 0.000000 24.017 38.657 1752742562.925 + 94 0.000000 0.000000 24.069 38.655 1752742562.982 + 95 0.000000 0.000000 24.022 38.622 1752742563.038 + 96 0.000000 0.000000 23.988 38.582 1752742563.093 + 97 0.000000 0.000000 24.034 38.667 1752742563.150 + 98 0.000000 0.000000 23.991 38.659 1752742563.207 + 99 0.000000 0.000000 24.053 38.709 1752742563.262 + 100 0.000000 0.000000 23.961 38.648 1752742563.319 diff --git a/data/data20250717_alignment_tests/20250717_110507_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_110507_static_0/static_0.dat new file mode 100644 index 0000000..c1d1276 --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_110507_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 23.961 38.272 1752743108.009 + 2 0.000000 0.000000 23.944 38.364 1752743108.067 + 3 0.000000 0.000000 24.031 38.206 1752743108.124 + 4 0.000000 0.000000 24.121 38.299 1752743108.181 + 5 0.000000 0.000000 23.943 38.360 1752743108.238 + 6 0.000000 0.000000 24.096 38.237 1752743108.293 + 7 0.000000 0.000000 23.960 38.320 1752743108.350 + 8 0.000000 0.000000 24.087 38.284 1752743108.406 + 9 0.000000 0.000000 24.004 38.294 1752743108.463 + 10 0.000000 0.000000 24.070 38.181 1752743108.520 + 11 0.000000 0.000000 24.131 38.194 1752743108.577 + 12 0.000000 0.000000 24.079 38.228 1752743108.633 + 13 0.000000 0.000000 24.026 38.258 1752743108.691 + 14 0.000000 0.000000 23.982 38.351 1752743108.747 + 15 0.000000 0.000000 24.022 38.322 1752743108.804 + 16 0.000000 0.000000 23.974 38.299 1752743108.861 + 17 0.000000 0.000000 24.044 38.092 1752743108.918 + 18 0.000000 0.000000 24.040 38.241 1752743108.974 + 19 0.000000 0.000000 24.136 38.200 1752743109.031 + 20 0.000000 0.000000 23.978 38.357 1752743109.087 + 21 0.000000 0.000000 24.074 38.209 1752743109.143 + 22 0.000000 0.000000 24.159 38.171 1752743109.199 + 23 0.000000 0.000000 24.052 38.247 1752743109.255 + 24 0.000000 0.000000 23.930 38.345 1752743109.311 + 25 0.000000 0.000000 23.970 38.279 1752743109.367 + 26 0.000000 0.000000 24.034 38.338 1752743109.423 + 27 0.000000 0.000000 24.073 38.293 1752743109.481 + 28 0.000000 0.000000 23.996 38.191 1752743109.537 + 29 0.000000 0.000000 23.987 38.301 1752743109.593 + 30 0.000000 0.000000 24.009 38.257 1752743109.649 + 31 0.000000 0.000000 24.013 38.380 1752743109.706 + 32 0.000000 0.000000 24.138 38.233 1752743109.762 + 33 0.000000 0.000000 24.028 38.233 1752743109.819 + 34 0.000000 0.000000 24.104 38.291 1752743109.876 + 35 0.000000 0.000000 24.222 38.157 1752743109.932 + 36 0.000000 0.000000 24.132 38.252 1752743109.989 + 37 0.000000 0.000000 24.026 38.358 1752743110.047 + 38 0.000000 0.000000 24.061 38.198 1752743110.104 + 39 0.000000 0.000000 24.100 38.277 1752743110.159 + 40 0.000000 0.000000 24.173 38.301 1752743110.216 + 41 0.000000 0.000000 24.168 38.276 1752743110.272 + 42 0.000000 0.000000 24.039 38.251 1752743110.328 + 43 0.000000 0.000000 24.053 38.260 1752743110.385 + 44 0.000000 0.000000 24.118 38.206 1752743110.441 + 45 0.000000 0.000000 23.996 38.319 1752743110.498 + 46 0.000000 0.000000 24.091 38.391 1752743110.558 + 47 0.000000 0.000000 23.888 38.384 1752743110.614 + 48 0.000000 0.000000 24.150 38.206 1752743110.671 + 49 0.000000 0.000000 24.208 38.196 1752743110.728 + 50 0.000000 0.000000 24.074 38.270 1752743110.785 + 51 0.000000 0.000000 24.004 38.310 1752743110.842 + 52 0.000000 0.000000 24.053 38.232 1752743110.898 + 53 0.000000 0.000000 24.044 38.175 1752743110.953 + 54 0.000000 0.000000 24.137 38.300 1752743111.011 + 55 0.000000 0.000000 24.031 38.314 1752743111.067 + 56 0.000000 0.000000 24.089 38.230 1752743111.123 + 57 0.000000 0.000000 24.092 38.218 1752743111.181 + 58 0.000000 0.000000 24.156 38.238 1752743111.237 + 59 0.000000 0.000000 24.097 38.165 1752743111.294 + 60 0.000000 0.000000 24.139 38.265 1752743111.349 + 61 0.000000 0.000000 24.113 38.348 1752743111.406 + 62 0.000000 0.000000 23.982 38.288 1752743111.462 + 63 0.000000 0.000000 23.976 38.166 1752743111.519 + 64 0.000000 0.000000 24.069 38.332 1752743111.577 + 65 0.000000 0.000000 24.100 38.156 1752743111.633 + 66 0.000000 0.000000 24.038 38.346 1752743111.690 + 67 0.000000 0.000000 24.108 38.220 1752743111.746 + 68 0.000000 0.000000 23.974 38.295 1752743111.803 + 69 0.000000 0.000000 24.135 38.259 1752743111.859 + 70 0.000000 0.000000 24.064 38.261 1752743111.916 + 71 0.000000 0.000000 24.078 38.233 1752743111.971 + 72 0.000000 0.000000 24.104 38.277 1752743112.028 + 73 0.000000 0.000000 24.075 38.351 1752743112.083 + 74 0.000000 0.000000 24.009 38.326 1752743112.139 + 75 0.000000 0.000000 24.197 38.303 1752743112.196 + 76 0.000000 0.000000 24.074 38.296 1752743112.252 + 77 0.000000 0.000000 23.948 38.326 1752743112.309 + 78 0.000000 0.000000 23.856 38.376 1752743112.366 + 79 0.000000 0.000000 24.114 38.253 1752743112.422 + 80 0.000000 0.000000 24.103 38.209 1752743112.478 + 81 0.000000 0.000000 24.199 38.127 1752743112.535 + 82 0.000000 0.000000 23.978 38.265 1752743112.592 + 83 0.000000 0.000000 24.060 38.349 1752743112.648 + 84 0.000000 0.000000 23.976 38.335 1752743112.705 + 85 0.000000 0.000000 24.079 38.238 1752743112.763 + 86 0.000000 0.000000 24.060 38.210 1752743112.819 + 87 0.000000 0.000000 24.198 38.221 1752743112.876 + 88 0.000000 0.000000 23.850 38.408 1752743112.932 + 89 0.000000 0.000000 24.004 38.333 1752743112.987 + 90 0.000000 0.000000 24.035 38.242 1752743113.045 + 91 0.000000 0.000000 24.008 38.264 1752743113.101 + 92 0.000000 0.000000 24.105 38.222 1752743113.158 + 93 0.000000 0.000000 24.047 38.341 1752743113.214 + 94 0.000000 0.000000 24.024 38.267 1752743113.271 + 95 0.000000 0.000000 24.043 38.276 1752743113.327 + 96 0.000000 0.000000 24.048 38.277 1752743113.384 + 97 0.000000 0.000000 24.073 38.259 1752743113.441 + 98 0.000000 0.000000 23.979 38.338 1752743113.497 + 99 0.000000 0.000000 23.982 38.303 1752743113.554 + 100 0.000000 0.000000 24.108 38.221 1752743113.610 diff --git a/data/data20250717_alignment_tests/20250717_110539_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_110539_static_0/static_0.dat new file mode 100644 index 0000000..a83af11 --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_110539_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 24.066 38.289 1752743140.195 + 2 0.000000 0.000000 24.149 38.104 1752743140.252 + 3 0.000000 0.000000 24.081 38.179 1752743140.308 + 4 0.000000 0.000000 24.337 38.194 1752743140.365 + 5 0.000000 0.000000 24.148 38.131 1752743140.421 + 6 0.000000 0.000000 24.214 38.249 1752743140.477 + 7 0.000000 0.000000 24.121 38.259 1752743140.534 + 8 0.000000 0.000000 24.175 38.155 1752743140.590 + 9 0.000000 0.000000 24.175 38.103 1752743140.647 + 10 0.000000 0.000000 24.221 38.248 1752743140.703 + 11 0.000000 0.000000 24.132 38.285 1752743140.779 + 12 0.000000 0.000000 24.260 38.236 1752743140.835 + 13 0.000000 0.000000 24.076 38.189 1752743140.913 + 14 0.000000 0.000000 24.188 38.271 1752743140.973 + 15 0.000000 0.000000 24.061 38.357 1752743141.029 + 16 0.000000 0.000000 24.125 38.349 1752743141.086 + 17 0.000000 0.000000 24.192 38.103 1752743141.141 + 18 0.000000 0.000000 24.113 38.157 1752743141.198 + 19 0.000000 0.000000 24.131 38.310 1752743141.254 + 20 0.000000 0.000000 24.068 38.179 1752743141.312 + 21 0.000000 0.000000 24.106 38.097 1752743141.368 + 22 0.000000 0.000000 24.120 38.221 1752743141.424 + 23 0.000000 0.000000 24.188 38.118 1752743141.480 + 24 0.000000 0.000000 24.152 38.204 1752743141.537 + 25 0.000000 0.000000 24.113 38.178 1752743141.593 + 26 0.000000 0.000000 24.116 38.205 1752743141.650 + 27 0.000000 0.000000 24.251 38.112 1752743141.706 + 28 0.000000 0.000000 24.241 38.162 1752743141.763 + 29 0.000000 0.000000 24.161 38.083 1752743141.820 + 30 0.000000 0.000000 24.124 38.182 1752743141.876 + 31 0.000000 0.000000 24.088 38.145 1752743141.932 + 32 0.000000 0.000000 24.267 38.108 1752743141.988 + 33 0.000000 0.000000 24.105 38.245 1752743142.044 + 34 0.000000 0.000000 24.284 38.064 1752743142.101 + 35 0.000000 0.000000 24.184 38.208 1752743142.158 + 36 0.000000 0.000000 24.131 38.236 1752743142.214 + 37 0.000000 0.000000 24.190 38.178 1752743142.272 + 38 0.000000 0.000000 24.102 38.221 1752743142.331 + 39 0.000000 0.000000 24.076 38.258 1752743142.387 + 40 0.000000 0.000000 24.261 38.205 1752743142.444 + 41 0.000000 0.000000 24.066 38.115 1752743142.500 + 42 0.000000 0.000000 24.039 38.200 1752743142.555 + 43 0.000000 0.000000 24.226 38.258 1752743142.611 + 44 0.000000 0.000000 24.161 38.097 1752743142.667 + 45 0.000000 0.000000 24.120 38.253 1752743142.724 + 46 0.000000 0.000000 24.257 38.068 1752743142.781 + 47 0.000000 0.000000 24.147 38.299 1752743142.837 + 48 0.000000 0.000000 24.068 38.200 1752743142.894 + 49 0.000000 0.000000 24.035 38.300 1752743142.952 + 50 0.000000 0.000000 24.140 38.176 1752743143.008 + 51 0.000000 0.000000 24.092 38.258 1752743143.065 + 52 0.000000 0.000000 24.065 38.322 1752743143.121 + 53 0.000000 0.000000 24.211 38.159 1752743143.178 + 54 0.000000 0.000000 24.249 38.149 1752743143.235 + 55 0.000000 0.000000 24.146 38.146 1752743143.290 + 56 0.000000 0.000000 24.178 38.134 1752743143.347 + 57 0.000000 0.000000 24.236 38.224 1752743143.404 + 58 0.000000 0.000000 24.159 38.328 1752743143.460 + 59 0.000000 0.000000 24.074 38.284 1752743143.517 + 60 0.000000 0.000000 24.105 38.258 1752743143.575 + 61 0.000000 0.000000 24.048 38.126 1752743143.630 + 62 0.000000 0.000000 24.060 38.224 1752743143.687 + 63 0.000000 0.000000 24.167 38.259 1752743143.744 + 64 0.000000 0.000000 24.204 38.170 1752743143.799 + 65 0.000000 0.000000 24.072 38.229 1752743143.856 + 66 0.000000 0.000000 24.039 38.272 1752743143.913 + 67 0.000000 0.000000 24.147 38.222 1752743143.969 + 68 0.000000 0.000000 24.096 38.184 1752743144.028 + 69 0.000000 0.000000 24.287 38.211 1752743144.083 + 70 0.000000 0.000000 24.265 38.096 1752743144.140 + 71 0.000000 0.000000 24.079 38.228 1752743144.197 + 72 0.000000 0.000000 24.175 38.264 1752743144.253 + 73 0.000000 0.000000 24.088 38.247 1752743144.310 + 74 0.000000 0.000000 24.061 38.195 1752743144.366 + 75 0.000000 0.000000 24.195 38.186 1752743144.424 + 76 0.000000 0.000000 24.022 38.253 1752743144.480 + 77 0.000000 0.000000 24.160 38.124 1752743144.537 + 78 0.000000 0.000000 24.133 38.155 1752743144.594 + 79 0.000000 0.000000 24.142 38.119 1752743144.650 + 80 0.000000 0.000000 24.299 38.052 1752743144.707 + 81 0.000000 0.000000 24.188 38.044 1752743144.763 + 82 0.000000 0.000000 24.061 38.177 1752743144.819 + 83 0.000000 0.000000 24.216 38.132 1752743144.876 + 84 0.000000 0.000000 24.195 38.186 1752743144.932 + 85 0.000000 0.000000 24.286 38.153 1752743144.989 + 86 0.000000 0.000000 24.123 38.219 1752743145.045 + 87 0.000000 0.000000 24.100 38.200 1752743145.101 + 88 0.000000 0.000000 24.271 38.133 1752743145.157 + 89 0.000000 0.000000 24.132 38.233 1752743145.214 + 90 0.000000 0.000000 24.114 38.162 1752743145.270 + 91 0.000000 0.000000 24.208 38.190 1752743145.327 + 92 0.000000 0.000000 24.143 38.103 1752743145.384 + 93 0.000000 0.000000 24.165 38.126 1752743145.440 + 94 0.000000 0.000000 24.135 38.293 1752743145.497 + 95 0.000000 0.000000 24.052 38.145 1752743145.552 + 96 0.000000 0.000000 24.222 38.093 1752743145.609 + 97 0.000000 0.000000 24.079 38.201 1752743145.667 + 98 0.000000 0.000000 24.109 38.222 1752743145.724 + 99 0.000000 0.000000 24.317 38.100 1752743145.780 + 100 0.000000 0.000000 24.159 38.229 1752743145.837 diff --git a/data/data20250717_alignment_tests/20250717_125725_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_125725_static_0/static_0.dat new file mode 100644 index 0000000..282da7f --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_125725_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 24.426 40.586 1752749845.398 + 2 0.000000 0.000000 24.277 40.771 1752749845.456 + 3 0.000000 0.000000 24.360 40.721 1752749845.511 + 4 0.000000 0.000000 24.187 40.768 1752749845.570 + 5 0.000000 0.000000 24.283 40.590 1752749845.626 + 6 0.000000 0.000000 24.230 40.734 1752749845.683 + 7 0.000000 0.000000 24.309 40.732 1752749845.739 + 8 0.000000 0.000000 24.281 40.735 1752749845.796 + 9 0.000000 0.000000 24.335 40.665 1752749845.851 + 10 0.000000 0.000000 24.142 40.653 1752749845.907 + 11 0.000000 0.000000 24.325 40.739 1752749845.963 + 12 0.000000 0.000000 24.325 40.752 1752749846.019 + 13 0.000000 0.000000 24.091 40.864 1752749846.075 + 14 0.000000 0.000000 24.156 40.885 1752749846.130 + 15 0.000000 0.000000 24.356 40.607 1752749846.187 + 16 0.000000 0.000000 24.021 40.781 1752749846.242 + 17 0.000000 0.000000 24.156 40.766 1752749846.299 + 18 0.000000 0.000000 24.352 40.762 1752749846.356 + 19 0.000000 0.000000 24.361 40.687 1752749846.411 + 20 0.000000 0.000000 24.025 40.743 1752749846.466 + 21 0.000000 0.000000 24.224 40.714 1752749846.523 + 22 0.000000 0.000000 24.096 40.879 1752749846.579 + 23 0.000000 0.000000 24.205 40.754 1752749846.636 + 24 0.000000 0.000000 24.049 40.675 1752749846.693 + 25 0.000000 0.000000 24.127 40.686 1752749846.749 + 26 0.000000 0.000000 24.291 40.829 1752749846.805 + 27 0.000000 0.000000 24.004 40.633 1752749846.862 + 28 0.000000 0.000000 24.250 40.565 1752749846.918 + 29 0.000000 0.000000 24.230 40.593 1752749846.975 + 30 0.000000 0.000000 24.198 40.790 1752749847.031 + 31 0.000000 0.000000 24.086 40.796 1752749847.087 + 32 0.000000 0.000000 24.220 40.691 1752749847.144 + 33 0.000000 0.000000 24.033 40.708 1752749847.200 + 34 0.000000 0.000000 24.183 40.733 1752749847.255 + 35 0.000000 0.000000 24.314 40.657 1752749847.312 + 36 0.000000 0.000000 24.070 40.617 1752749847.367 + 37 0.000000 0.000000 24.154 40.618 1752749847.424 + 38 0.000000 0.000000 24.166 40.798 1752749847.479 + 39 0.000000 0.000000 24.211 40.659 1752749847.535 + 40 0.000000 0.000000 24.069 40.780 1752749847.591 + 41 0.000000 0.000000 24.092 40.629 1752749847.648 + 42 0.000000 0.000000 24.099 40.723 1752749847.704 + 43 0.000000 0.000000 24.196 40.663 1752749847.759 + 44 0.000000 0.000000 24.122 40.692 1752749847.814 + 45 0.000000 0.000000 24.137 40.651 1752749847.870 + 46 0.000000 0.000000 24.045 40.938 1752749847.926 + 47 0.000000 0.000000 24.100 40.701 1752749847.981 + 48 0.000000 0.000000 24.021 40.780 1752749848.038 + 49 0.000000 0.000000 24.197 40.717 1752749848.092 + 50 0.000000 0.000000 24.266 40.694 1752749848.148 + 51 0.000000 0.000000 24.301 40.589 1752749848.204 + 52 0.000000 0.000000 24.173 40.867 1752749848.260 + 53 0.000000 0.000000 24.235 40.721 1752749848.316 + 54 0.000000 0.000000 24.185 40.757 1752749848.372 + 55 0.000000 0.000000 24.274 40.689 1752749848.429 + 56 0.000000 0.000000 24.151 40.804 1752749848.487 + 57 0.000000 0.000000 24.054 40.583 1752749848.543 + 58 0.000000 0.000000 24.114 40.691 1752749848.600 + 59 0.000000 0.000000 24.139 40.639 1752749848.656 + 60 0.000000 0.000000 24.206 40.623 1752749848.712 + 61 0.000000 0.000000 24.192 40.710 1752749848.769 + 62 0.000000 0.000000 24.176 40.648 1752749848.826 + 63 0.000000 0.000000 24.180 40.731 1752749848.882 + 64 0.000000 0.000000 24.165 40.806 1752749848.938 + 65 0.000000 0.000000 24.215 40.748 1752749848.994 + 66 0.000000 0.000000 24.025 40.657 1752749849.049 + 67 0.000000 0.000000 24.135 40.694 1752749849.105 + 68 0.000000 0.000000 23.966 40.689 1752749849.165 + 69 0.000000 0.000000 24.149 40.672 1752749849.220 + 70 0.000000 0.000000 24.272 40.671 1752749849.276 + 71 0.000000 0.000000 24.114 40.645 1752749849.331 + 72 0.000000 0.000000 24.045 40.550 1752749849.388 + 73 0.000000 0.000000 24.193 40.650 1752749849.445 + 74 0.000000 0.000000 24.130 40.576 1752749849.500 + 75 0.000000 0.000000 23.987 40.862 1752749849.557 + 76 0.000000 0.000000 24.081 40.593 1752749849.614 + 77 0.000000 0.000000 24.096 40.619 1752749849.670 + 78 0.000000 0.000000 24.233 40.735 1752749849.728 + 79 0.000000 0.000000 24.221 40.873 1752749849.784 + 80 0.000000 0.000000 24.293 40.622 1752749849.838 + 81 0.000000 0.000000 24.113 40.655 1752749849.895 + 82 0.000000 0.000000 24.233 40.718 1752749849.951 + 83 0.000000 0.000000 24.145 40.750 1752749850.007 + 84 0.000000 0.000000 24.132 40.632 1752749850.063 + 85 0.000000 0.000000 24.121 40.663 1752749850.119 + 86 0.000000 0.000000 24.078 40.702 1752749850.175 + 87 0.000000 0.000000 24.169 40.614 1752749850.231 + 88 0.000000 0.000000 24.167 40.629 1752749850.288 + 89 0.000000 0.000000 24.119 40.712 1752749850.344 + 90 0.000000 0.000000 24.106 40.722 1752749850.401 + 91 0.000000 0.000000 24.220 40.660 1752749850.457 + 92 0.000000 0.000000 24.214 40.802 1752749850.514 + 93 0.000000 0.000000 24.316 40.802 1752749850.572 + 94 0.000000 0.000000 24.091 40.650 1752749850.631 + 95 0.000000 0.000000 24.290 40.585 1752749850.686 + 96 0.000000 0.000000 24.220 40.612 1752749850.742 + 97 0.000000 0.000000 24.176 40.796 1752749850.799 + 98 0.000000 0.000000 24.071 40.671 1752749850.855 + 99 0.000000 0.000000 24.286 40.624 1752749850.910 + 100 0.000000 0.000000 24.090 40.571 1752749850.966 diff --git a/data/data20250717_alignment_tests/20250717_125837_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_125837_static_0/static_0.dat new file mode 100644 index 0000000..14ac788 --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_125837_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 24.163 40.663 1752749918.145 + 2 0.000000 0.000000 24.200 40.832 1752749918.201 + 3 0.000000 0.000000 24.134 40.780 1752749918.256 + 4 0.000000 0.000000 24.232 40.675 1752749918.313 + 5 0.000000 0.000000 24.230 40.709 1752749918.369 + 6 0.000000 0.000000 24.363 40.810 1752749918.426 + 7 0.000000 0.000000 24.319 40.815 1752749918.482 + 8 0.000000 0.000000 24.343 40.653 1752749918.539 + 9 0.000000 0.000000 24.219 40.777 1752749918.597 + 10 0.000000 0.000000 24.190 40.819 1752749918.654 + 11 0.000000 0.000000 24.074 40.708 1752749918.710 + 12 0.000000 0.000000 24.070 40.756 1752749918.766 + 13 0.000000 0.000000 24.107 40.689 1752749918.822 + 14 0.000000 0.000000 24.020 40.751 1752749918.878 + 15 0.000000 0.000000 24.158 40.718 1752749918.933 + 16 0.000000 0.000000 24.217 40.713 1752749918.990 + 17 0.000000 0.000000 24.092 40.665 1752749919.047 + 18 0.000000 0.000000 24.224 40.688 1752749919.104 + 19 0.000000 0.000000 24.321 40.716 1752749919.161 + 20 0.000000 0.000000 24.242 40.734 1752749919.218 + 21 0.000000 0.000000 23.992 40.790 1752749919.274 + 22 0.000000 0.000000 24.092 40.846 1752749919.330 + 23 0.000000 0.000000 24.089 40.733 1752749919.386 + 24 0.000000 0.000000 24.068 40.781 1752749919.442 + 25 0.000000 0.000000 24.078 40.792 1752749919.498 + 26 0.000000 0.000000 24.029 40.694 1752749919.554 + 27 0.000000 0.000000 24.269 40.690 1752749919.609 + 28 0.000000 0.000000 24.000 40.741 1752749919.667 + 29 0.000000 0.000000 24.152 40.668 1752749919.724 + 30 0.000000 0.000000 24.045 40.680 1752749919.779 + 31 0.000000 0.000000 23.971 40.794 1752749919.835 + 32 0.000000 0.000000 24.157 40.750 1752749919.891 + 33 0.000000 0.000000 24.234 40.593 1752749919.948 + 34 0.000000 0.000000 23.906 40.714 1752749920.004 + 35 0.000000 0.000000 24.058 40.711 1752749920.060 + 36 0.000000 0.000000 24.171 40.690 1752749920.116 + 37 0.000000 0.000000 24.065 40.757 1752749920.172 + 38 0.000000 0.000000 24.150 40.749 1752749920.228 + 39 0.000000 0.000000 24.181 40.699 1752749920.284 + 40 0.000000 0.000000 24.196 40.712 1752749920.339 + 41 0.000000 0.000000 23.996 40.778 1752749920.396 + 42 0.000000 0.000000 24.057 40.748 1752749920.452 + 43 0.000000 0.000000 23.983 40.793 1752749920.508 + 44 0.000000 0.000000 24.082 40.698 1752749920.564 + 45 0.000000 0.000000 24.317 40.626 1752749920.620 + 46 0.000000 0.000000 24.066 40.618 1752749920.677 + 47 0.000000 0.000000 24.078 40.624 1752749920.732 + 48 0.000000 0.000000 24.115 40.836 1752749920.787 + 49 0.000000 0.000000 24.141 40.734 1752749920.845 + 50 0.000000 0.000000 24.008 40.689 1752749920.904 + 51 0.000000 0.000000 23.941 40.720 1752749920.961 + 52 0.000000 0.000000 24.222 40.831 1752749921.017 + 53 0.000000 0.000000 24.131 40.722 1752749921.074 + 54 0.000000 0.000000 24.146 40.813 1752749921.130 + 55 0.000000 0.000000 24.207 40.630 1752749921.187 + 56 0.000000 0.000000 24.109 40.649 1752749921.242 + 57 0.000000 0.000000 24.000 40.776 1752749921.298 + 58 0.000000 0.000000 24.046 40.830 1752749921.354 + 59 0.000000 0.000000 24.192 40.699 1752749921.410 + 60 0.000000 0.000000 24.205 40.635 1752749921.467 + 61 0.000000 0.000000 24.309 40.610 1752749921.524 + 62 0.000000 0.000000 24.209 40.743 1752749921.580 + 63 0.000000 0.000000 24.184 40.832 1752749921.636 + 64 0.000000 0.000000 24.195 40.789 1752749921.692 + 65 0.000000 0.000000 24.240 40.740 1752749921.748 + 66 0.000000 0.000000 24.119 40.783 1752749921.804 + 67 0.000000 0.000000 24.243 40.674 1752749921.861 + 68 0.000000 0.000000 24.122 40.747 1752749921.917 + 69 0.000000 0.000000 24.128 40.679 1752749921.974 + 70 0.000000 0.000000 24.141 40.801 1752749922.031 + 71 0.000000 0.000000 24.205 40.725 1752749922.087 + 72 0.000000 0.000000 24.105 40.832 1752749922.144 + 73 0.000000 0.000000 24.233 40.550 1752749922.200 + 74 0.000000 0.000000 24.219 40.657 1752749922.256 + 75 0.000000 0.000000 24.153 40.595 1752749922.313 + 76 0.000000 0.000000 24.234 40.726 1752749922.372 + 77 0.000000 0.000000 24.187 40.829 1752749922.427 + 78 0.000000 0.000000 24.164 40.598 1752749922.483 + 79 0.000000 0.000000 24.045 40.700 1752749922.540 + 80 0.000000 0.000000 24.095 40.689 1752749922.596 + 81 0.000000 0.000000 24.172 40.684 1752749922.653 + 82 0.000000 0.000000 24.169 40.686 1752749922.708 + 83 0.000000 0.000000 24.156 40.774 1752749922.764 + 84 0.000000 0.000000 24.161 40.677 1752749922.820 + 85 0.000000 0.000000 24.161 40.636 1752749922.877 + 86 0.000000 0.000000 24.150 40.683 1752749922.933 + 87 0.000000 0.000000 24.286 40.763 1752749922.990 + 88 0.000000 0.000000 24.145 40.722 1752749923.046 + 89 0.000000 0.000000 24.049 40.737 1752749923.103 + 90 0.000000 0.000000 24.038 40.629 1752749923.160 + 91 0.000000 0.000000 24.272 40.617 1752749923.216 + 92 0.000000 0.000000 24.091 40.718 1752749923.273 + 93 0.000000 0.000000 24.223 40.644 1752749923.329 + 94 0.000000 0.000000 24.201 40.783 1752749923.385 + 95 0.000000 0.000000 24.179 40.626 1752749923.441 + 96 0.000000 0.000000 24.128 40.781 1752749923.496 + 97 0.000000 0.000000 24.208 40.633 1752749923.553 + 98 0.000000 0.000000 24.283 40.546 1752749923.609 + 99 0.000000 0.000000 24.139 40.808 1752749923.666 + 100 0.000000 0.000000 24.121 40.702 1752749923.723 diff --git a/data/data20250717_alignment_tests/20250717_125912_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_125912_static_0/static_0.dat new file mode 100644 index 0000000..c65c1ad --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_125912_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 nan nan 1752749952.313 + 2 0.000000 0.000000 nan nan 1752749952.369 + 3 0.000000 0.000000 nan nan 1752749952.425 + 4 0.000000 0.000000 nan nan 1752749952.482 + 5 0.000000 0.000000 nan nan 1752749952.540 + 6 0.000000 0.000000 nan nan 1752749952.596 + 7 0.000000 0.000000 nan nan 1752749952.652 + 8 0.000000 0.000000 nan nan 1752749952.708 + 9 0.000000 0.000000 nan nan 1752749952.765 + 10 0.000000 0.000000 nan nan 1752749952.821 + 11 0.000000 0.000000 nan nan 1752749952.877 + 12 0.000000 0.000000 nan nan 1752749952.933 + 13 0.000000 0.000000 nan nan 1752749952.989 + 14 0.000000 0.000000 nan nan 1752749953.045 + 15 0.000000 0.000000 nan nan 1752749953.102 + 16 0.000000 0.000000 nan nan 1752749953.157 + 17 0.000000 0.000000 nan nan 1752749953.214 + 18 0.000000 0.000000 nan nan 1752749953.270 + 19 0.000000 0.000000 nan nan 1752749953.326 + 20 0.000000 0.000000 nan nan 1752749953.383 + 21 0.000000 0.000000 nan nan 1752749953.440 + 22 0.000000 0.000000 nan nan 1752749953.496 + 23 0.000000 0.000000 nan nan 1752749953.552 + 24 0.000000 0.000000 nan nan 1752749953.608 + 25 0.000000 0.000000 nan nan 1752749953.664 + 26 0.000000 0.000000 nan nan 1752749953.721 + 27 0.000000 0.000000 nan nan 1752749953.777 + 28 0.000000 0.000000 nan nan 1752749953.832 + 29 0.000000 0.000000 nan nan 1752749953.889 + 30 0.000000 0.000000 nan nan 1752749953.943 + 31 0.000000 0.000000 nan nan 1752749954.000 + 32 0.000000 0.000000 nan nan 1752749954.057 + 33 0.000000 0.000000 nan nan 1752749954.112 + 34 0.000000 0.000000 nan nan 1752749954.169 + 35 0.000000 0.000000 nan nan 1752749954.226 + 36 0.000000 0.000000 nan nan 1752749954.282 + 37 0.000000 0.000000 nan nan 1752749954.339 + 38 0.000000 0.000000 nan nan 1752749954.397 + 39 0.000000 0.000000 nan nan 1752749954.455 + 40 0.000000 0.000000 nan nan 1752749954.511 + 41 0.000000 0.000000 nan nan 1752749954.568 + 42 0.000000 0.000000 nan nan 1752749954.623 + 43 0.000000 0.000000 nan nan 1752749954.679 + 44 0.000000 0.000000 nan nan 1752749954.736 + 45 0.000000 0.000000 nan nan 1752749954.791 + 46 0.000000 0.000000 nan nan 1752749954.847 + 47 0.000000 0.000000 nan nan 1752749954.904 + 48 0.000000 0.000000 nan nan 1752749954.961 + 49 0.000000 0.000000 nan nan 1752749955.017 + 50 0.000000 0.000000 nan nan 1752749955.072 + 51 0.000000 0.000000 nan nan 1752749955.129 + 52 0.000000 0.000000 nan nan 1752749955.185 + 53 0.000000 0.000000 nan nan 1752749955.241 + 54 0.000000 0.000000 nan nan 1752749955.297 + 55 0.000000 0.000000 nan nan 1752749955.353 + 56 0.000000 0.000000 nan nan 1752749955.410 + 57 0.000000 0.000000 nan nan 1752749955.467 + 58 0.000000 0.000000 nan nan 1752749955.523 + 59 0.000000 0.000000 nan nan 1752749955.579 + 60 0.000000 0.000000 nan nan 1752749955.636 + 61 0.000000 0.000000 nan nan 1752749955.693 + 62 0.000000 0.000000 nan nan 1752749955.749 + 63 0.000000 0.000000 nan nan 1752749955.805 + 64 0.000000 0.000000 nan nan 1752749955.862 + 65 0.000000 0.000000 nan nan 1752749955.918 + 66 0.000000 0.000000 nan nan 1752749955.974 + 67 0.000000 0.000000 nan nan 1752749956.030 + 68 0.000000 0.000000 nan nan 1752749956.086 + 69 0.000000 0.000000 nan nan 1752749956.142 + 70 0.000000 0.000000 nan nan 1752749956.199 + 71 0.000000 0.000000 nan nan 1752749956.255 + 72 0.000000 0.000000 nan nan 1752749956.311 + 73 0.000000 0.000000 nan nan 1752749956.367 + 74 0.000000 0.000000 nan nan 1752749956.423 + 75 0.000000 0.000000 nan nan 1752749956.480 + 76 0.000000 0.000000 nan nan 1752749956.536 + 77 0.000000 0.000000 nan nan 1752749956.604 + 78 0.000000 0.000000 nan nan 1752749956.660 + 79 0.000000 0.000000 nan nan 1752749956.716 + 80 0.000000 0.000000 nan nan 1752749956.772 + 81 0.000000 0.000000 nan nan 1752749956.829 + 82 0.000000 0.000000 nan nan 1752749956.884 + 83 0.000000 0.000000 nan nan 1752749956.940 + 84 0.000000 0.000000 nan nan 1752749956.996 + 85 0.000000 0.000000 nan nan 1752749957.052 + 86 0.000000 0.000000 nan nan 1752749957.108 + 87 0.000000 0.000000 nan nan 1752749957.164 + 88 0.000000 0.000000 nan nan 1752749957.220 + 89 0.000000 0.000000 nan nan 1752749957.276 + 90 0.000000 0.000000 nan nan 1752749957.333 + 91 0.000000 0.000000 nan nan 1752749957.389 + 92 0.000000 0.000000 nan nan 1752749957.445 + 93 0.000000 0.000000 nan nan 1752749957.501 + 94 0.000000 0.000000 nan nan 1752749957.557 + 95 0.000000 0.000000 nan nan 1752749957.614 + 96 0.000000 0.000000 nan nan 1752749957.670 + 97 0.000000 0.000000 nan nan 1752749957.726 + 98 0.000000 0.000000 nan nan 1752749957.783 + 99 0.000000 0.000000 nan nan 1752749957.841 + 100 0.000000 0.000000 nan nan 1752749957.897 diff --git a/data/data20250717_alignment_tests/20250717_130102_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_130102_static_0/static_0.dat new file mode 100644 index 0000000..4325f2f --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_130102_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 24.012 40.862 1752750062.372 + 2 0.000000 0.000000 23.938 40.930 1752750062.428 + 3 0.000000 0.000000 24.020 40.935 1752750062.485 + 4 0.000000 0.000000 23.879 40.854 1752750062.541 + 5 0.000000 0.000000 24.204 40.829 1752750062.597 + 6 0.000000 0.000000 24.138 40.858 1752750062.653 + 7 0.000000 0.000000 24.008 40.804 1752750062.709 + 8 0.000000 0.000000 24.270 40.770 1752750062.768 + 9 0.000000 0.000000 23.910 40.893 1752750062.824 + 10 0.000000 0.000000 24.129 40.851 1752750062.882 + 11 0.000000 0.000000 23.996 40.814 1752750062.939 + 12 0.000000 0.000000 24.173 40.771 1752750062.995 + 13 0.000000 0.000000 24.083 40.746 1752750063.051 + 14 0.000000 0.000000 24.284 40.638 1752750063.108 + 15 0.000000 0.000000 24.154 40.909 1752750063.165 + 16 0.000000 0.000000 24.298 40.756 1752750063.221 + 17 0.000000 0.000000 24.226 40.716 1752750063.280 + 18 0.000000 0.000000 24.161 40.827 1752750063.339 + 19 0.000000 0.000000 24.278 40.824 1752750063.395 + 20 0.000000 0.000000 24.096 40.964 1752750063.452 + 21 0.000000 0.000000 24.124 40.901 1752750063.508 + 22 0.000000 0.000000 24.293 40.772 1752750063.563 + 23 0.000000 0.000000 24.092 40.811 1752750063.621 + 24 0.000000 0.000000 24.149 40.855 1752750063.677 + 25 0.000000 0.000000 24.282 40.859 1752750063.734 + 26 0.000000 0.000000 24.097 40.752 1752750063.791 + 27 0.000000 0.000000 24.174 40.763 1752750063.847 + 28 0.000000 0.000000 24.152 40.803 1752750063.904 + 29 0.000000 0.000000 24.149 40.884 1752750063.959 + 30 0.000000 0.000000 24.070 40.826 1752750064.015 + 31 0.000000 0.000000 24.188 40.780 1752750064.072 + 32 0.000000 0.000000 24.146 40.818 1752750064.128 + 33 0.000000 0.000000 24.185 40.683 1752750064.185 + 34 0.000000 0.000000 24.062 40.794 1752750064.240 + 35 0.000000 0.000000 23.941 40.715 1752750064.296 + 36 0.000000 0.000000 24.057 40.829 1752750064.353 + 37 0.000000 0.000000 24.152 40.856 1752750064.409 + 38 0.000000 0.000000 24.203 40.850 1752750064.466 + 39 0.000000 0.000000 24.271 40.850 1752750064.522 + 40 0.000000 0.000000 24.166 40.664 1752750064.578 + 41 0.000000 0.000000 24.071 41.034 1752750064.635 + 42 0.000000 0.000000 24.249 40.680 1752750064.692 + 43 0.000000 0.000000 24.166 40.842 1752750064.748 + 44 0.000000 0.000000 23.959 40.942 1752750064.804 + 45 0.000000 0.000000 23.976 40.865 1752750064.860 + 46 0.000000 0.000000 24.258 40.891 1752750064.916 + 47 0.000000 0.000000 23.910 40.784 1752750064.973 + 48 0.000000 0.000000 24.080 40.872 1752750065.029 + 49 0.000000 0.000000 24.182 40.834 1752750065.086 + 50 0.000000 0.000000 24.171 40.845 1752750065.142 + 51 0.000000 0.000000 24.045 40.992 1752750065.198 + 52 0.000000 0.000000 24.004 40.913 1752750065.254 + 53 0.000000 0.000000 24.165 40.909 1752750065.311 + 54 0.000000 0.000000 24.256 40.788 1752750065.368 + 55 0.000000 0.000000 24.145 40.743 1752750065.424 + 56 0.000000 0.000000 24.286 40.702 1752750065.480 + 57 0.000000 0.000000 24.008 40.910 1752750065.537 + 58 0.000000 0.000000 24.053 40.840 1752750065.593 + 59 0.000000 0.000000 24.186 40.793 1752750065.650 + 60 0.000000 0.000000 24.274 40.645 1752750065.709 + 61 0.000000 0.000000 23.988 41.040 1752750065.764 + 62 0.000000 0.000000 24.025 40.759 1752750065.821 + 63 0.000000 0.000000 24.041 40.992 1752750065.877 + 64 0.000000 0.000000 23.900 40.774 1752750065.933 + 65 0.000000 0.000000 23.924 41.008 1752750065.990 + 66 0.000000 0.000000 24.083 40.825 1752750066.048 + 67 0.000000 0.000000 24.017 40.793 1752750066.104 + 68 0.000000 0.000000 24.058 40.724 1752750066.160 + 69 0.000000 0.000000 24.020 41.004 1752750066.217 + 70 0.000000 0.000000 24.169 40.815 1752750066.273 + 71 0.000000 0.000000 24.218 40.742 1752750066.329 + 72 0.000000 0.000000 23.980 40.944 1752750066.386 + 73 0.000000 0.000000 24.137 40.762 1752750066.442 + 74 0.000000 0.000000 24.091 40.798 1752750066.498 + 75 0.000000 0.000000 23.868 41.029 1752750066.554 + 76 0.000000 0.000000 23.917 40.929 1752750066.612 + 77 0.000000 0.000000 24.065 40.963 1752750066.669 + 78 0.000000 0.000000 24.017 40.715 1752750066.724 + 79 0.000000 0.000000 24.094 40.828 1752750066.782 + 80 0.000000 0.000000 24.081 40.874 1752750066.839 + 81 0.000000 0.000000 24.140 40.773 1752750066.895 + 82 0.000000 0.000000 24.232 40.817 1752750066.951 + 83 0.000000 0.000000 24.199 40.772 1752750067.008 + 84 0.000000 0.000000 24.000 40.984 1752750067.065 + 85 0.000000 0.000000 24.145 40.757 1752750067.121 + 86 0.000000 0.000000 24.053 40.885 1752750067.178 + 87 0.000000 0.000000 24.393 40.680 1752750067.234 + 88 0.000000 0.000000 24.133 40.936 1752750067.291 + 89 0.000000 0.000000 24.174 40.810 1752750067.348 + 90 0.000000 0.000000 24.283 40.795 1752750067.404 + 91 0.000000 0.000000 24.044 40.915 1752750067.460 + 92 0.000000 0.000000 24.000 40.851 1752750067.516 + 93 0.000000 0.000000 23.992 40.824 1752750067.572 + 94 0.000000 0.000000 24.021 40.871 1752750067.629 + 95 0.000000 0.000000 23.917 40.971 1752750067.687 + 96 0.000000 0.000000 24.112 40.834 1752750067.745 + 97 0.000000 0.000000 24.134 40.854 1752750067.802 + 98 0.000000 0.000000 24.041 40.926 1752750067.858 + 99 0.000000 0.000000 24.341 40.854 1752750067.915 + 100 0.000000 0.000000 24.074 40.922 1752750067.975 diff --git a/data/data20250717_alignment_tests/20250717_130157_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_130157_static_0/static_0.dat new file mode 100644 index 0000000..65d2c12 --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_130157_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 24.319 40.833 1752750117.237 + 2 0.000000 0.000000 24.274 40.889 1752750117.292 + 3 0.000000 0.000000 24.135 40.883 1752750117.348 + 4 0.000000 0.000000 24.116 40.929 1752750117.404 + 5 0.000000 0.000000 24.230 40.856 1752750117.461 + 6 0.000000 0.000000 24.130 40.911 1752750117.518 + 7 0.000000 0.000000 24.178 40.881 1752750117.574 + 8 0.000000 0.000000 24.178 40.881 1752750117.630 + 9 0.000000 0.000000 24.264 40.836 1752750117.686 + 10 0.000000 0.000000 24.215 40.863 1752750117.745 + 11 0.000000 0.000000 24.202 40.869 1752750117.801 + 12 0.000000 0.000000 24.215 40.863 1752750117.857 + 13 0.000000 0.000000 24.219 40.892 1752750117.914 + 14 0.000000 0.000000 24.211 40.889 1752750117.969 + 15 0.000000 0.000000 24.247 40.871 1752750118.027 + 16 0.000000 0.000000 24.281 40.891 1752750118.082 + 17 0.000000 0.000000 24.242 40.881 1752750118.138 + 18 0.000000 0.000000 24.230 40.856 1752750118.194 + 19 0.000000 0.000000 24.193 40.874 1752750118.251 + 20 0.000000 0.000000 24.137 40.838 1752750118.307 + 21 0.000000 0.000000 24.193 40.874 1752750118.363 + 22 0.000000 0.000000 24.130 40.904 1752750118.418 + 23 0.000000 0.000000 24.242 40.881 1752750118.475 + 24 0.000000 0.000000 24.203 40.838 1752750118.531 + 25 0.000000 0.000000 24.193 40.811 1752750118.586 + 26 0.000000 0.000000 24.249 40.874 1752750118.643 + 27 0.000000 0.000000 24.168 40.886 1752750118.699 + 28 0.000000 0.000000 24.166 40.886 1752750118.758 + 29 0.000000 0.000000 24.242 40.881 1752750118.815 + 30 0.000000 0.000000 24.215 40.863 1752750118.872 + 31 0.000000 0.000000 24.261 40.897 1752750118.928 + 32 0.000000 0.000000 24.251 40.867 1752750118.985 + 33 0.000000 0.000000 24.203 40.838 1752750119.041 + 34 0.000000 0.000000 24.262 40.937 1752750119.097 + 35 0.000000 0.000000 24.281 40.891 1752750119.152 + 36 0.000000 0.000000 24.247 40.871 1752750119.209 + 37 0.000000 0.000000 24.230 40.856 1752750119.265 + 38 0.000000 0.000000 24.171 40.885 1752750119.321 + 39 0.000000 0.000000 24.242 40.881 1752750119.378 + 40 0.000000 0.000000 24.242 40.875 1752750119.434 + 41 0.000000 0.000000 24.279 40.851 1752750119.489 + 42 0.000000 0.000000 24.237 40.819 1752750119.545 + 43 0.000000 0.000000 24.210 40.929 1752750119.602 + 44 0.000000 0.000000 24.242 40.881 1752750119.658 + 45 0.000000 0.000000 24.313 40.899 1752750119.715 + 46 0.000000 0.000000 24.290 40.888 1752750119.771 + 47 0.000000 0.000000 24.168 40.896 1752750119.826 + 48 0.000000 0.000000 24.213 40.907 1752750119.883 + 49 0.000000 0.000000 24.205 40.899 1752750119.938 + 50 0.000000 0.000000 24.219 40.892 1752750119.996 + 51 0.000000 0.000000 24.276 40.862 1752750120.062 + 52 0.000000 0.000000 24.274 40.889 1752750120.119 + 53 0.000000 0.000000 24.242 40.881 1752750120.175 + 54 0.000000 0.000000 24.247 40.873 1752750120.233 + 55 0.000000 0.000000 24.247 40.871 1752750120.289 + 56 0.000000 0.000000 24.183 40.910 1752750120.344 + 57 0.000000 0.000000 24.238 40.907 1752750120.400 + 58 0.000000 0.000000 24.235 40.846 1752750120.457 + 59 0.000000 0.000000 24.242 40.881 1752750120.512 + 60 0.000000 0.000000 24.178 40.881 1752750120.570 + 61 0.000000 0.000000 24.215 40.863 1752750120.626 + 62 0.000000 0.000000 24.242 40.881 1752750120.683 + 63 0.000000 0.000000 24.103 40.886 1752750120.741 + 64 0.000000 0.000000 24.274 40.889 1752750120.798 + 65 0.000000 0.000000 24.327 40.893 1752750120.854 + 66 0.000000 0.000000 24.205 40.899 1752750120.910 + 67 0.000000 0.000000 24.242 40.881 1752750120.968 + 68 0.000000 0.000000 24.242 40.881 1752750121.023 + 69 0.000000 0.000000 24.141 40.867 1752750121.080 + 70 0.000000 0.000000 24.308 40.872 1752750121.136 + 71 0.000000 0.000000 24.276 40.862 1752750121.192 + 72 0.000000 0.000000 24.380 40.815 1752750121.248 + 73 0.000000 0.000000 24.242 40.881 1752750121.303 + 74 0.000000 0.000000 24.263 40.893 1752750121.359 + 75 0.000000 0.000000 24.215 40.863 1752750121.417 + 76 0.000000 0.000000 24.242 40.881 1752750121.472 + 77 0.000000 0.000000 24.242 40.881 1752750121.528 + 78 0.000000 0.000000 24.212 40.929 1752750121.585 + 79 0.000000 0.000000 24.219 40.892 1752750121.640 + 80 0.000000 0.000000 24.243 40.937 1752750121.696 + 81 0.000000 0.000000 24.276 40.862 1752750121.754 + 82 0.000000 0.000000 24.230 40.856 1752750121.809 + 83 0.000000 0.000000 24.288 40.915 1752750121.866 + 84 0.000000 0.000000 24.244 40.937 1752750121.923 + 85 0.000000 0.000000 24.230 40.856 1752750121.979 + 86 0.000000 0.000000 24.322 40.896 1752750122.035 + 87 0.000000 0.000000 24.364 40.885 1752750122.091 + 88 0.000000 0.000000 24.252 40.900 1752750122.147 + 89 0.000000 0.000000 24.345 40.944 1752750122.203 + 90 0.000000 0.000000 24.279 40.918 1752750122.259 + 91 0.000000 0.000000 24.242 40.881 1752750122.315 + 92 0.000000 0.000000 24.313 40.899 1752750122.371 + 93 0.000000 0.000000 24.193 40.907 1752750122.427 + 94 0.000000 0.000000 24.328 40.874 1752750122.483 + 95 0.000000 0.000000 24.353 40.871 1752750122.539 + 96 0.000000 0.000000 24.215 40.863 1752750122.596 + 97 0.000000 0.000000 24.256 40.907 1752750122.652 + 98 0.000000 0.000000 24.256 40.907 1752750122.708 + 99 0.000000 0.000000 24.215 40.863 1752750122.764 + 100 0.000000 0.000000 24.307 40.906 1752750122.820 diff --git a/data/data20250717_alignment_tests/20250717_130226_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_130226_static_0/static_0.dat new file mode 100644 index 0000000..3679f0e --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_130226_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 26.220 39.831 1752750146.999 + 2 0.000000 0.000000 26.304 39.875 1752750147.054 + 3 0.000000 0.000000 26.304 39.875 1752750147.110 + 4 0.000000 0.000000 26.393 39.768 1752750147.167 + 5 0.000000 0.000000 26.368 39.842 1752750147.222 + 6 0.000000 0.000000 26.155 39.862 1752750147.279 + 7 0.000000 0.000000 26.304 39.875 1752750147.335 + 8 0.000000 0.000000 26.368 39.842 1752750147.391 + 9 0.000000 0.000000 26.368 39.842 1752750147.448 + 10 0.000000 0.000000 26.368 39.842 1752750147.505 + 11 0.000000 0.000000 26.368 39.842 1752750147.561 + 12 0.000000 0.000000 26.368 39.842 1752750147.618 + 13 0.000000 0.000000 26.393 39.768 1752750147.674 + 14 0.000000 0.000000 26.368 39.842 1752750147.731 + 15 0.000000 0.000000 26.304 39.875 1752750147.789 + 16 0.000000 0.000000 26.304 39.875 1752750147.845 + 17 0.000000 0.000000 26.368 39.842 1752750147.902 + 18 0.000000 0.000000 26.304 39.875 1752750147.959 + 19 0.000000 0.000000 26.393 39.768 1752750148.015 + 20 0.000000 0.000000 26.304 39.875 1752750148.072 + 21 0.000000 0.000000 26.304 39.875 1752750148.128 + 22 0.000000 0.000000 26.368 39.842 1752750148.184 + 23 0.000000 0.000000 26.155 39.862 1752750148.241 + 24 0.000000 0.000000 26.304 39.875 1752750148.297 + 25 0.000000 0.000000 26.304 39.875 1752750148.352 + 26 0.000000 0.000000 26.368 39.842 1752750148.408 + 27 0.000000 0.000000 26.368 39.842 1752750148.467 + 28 0.000000 0.000000 26.368 39.842 1752750148.523 + 29 0.000000 0.000000 26.304 39.875 1752750148.579 + 30 0.000000 0.000000 26.368 39.842 1752750148.635 + 31 0.000000 0.000000 26.368 39.842 1752750148.691 + 32 0.000000 0.000000 26.393 39.768 1752750148.747 + 33 0.000000 0.000000 26.368 39.842 1752750148.803 + 34 0.000000 0.000000 26.393 39.768 1752750148.858 + 35 0.000000 0.000000 26.368 39.842 1752750148.914 + 36 0.000000 0.000000 26.304 39.875 1752750148.971 + 37 0.000000 0.000000 26.368 39.842 1752750149.028 + 38 0.000000 0.000000 26.304 39.875 1752750149.085 + 39 0.000000 0.000000 26.393 39.768 1752750149.140 + 40 0.000000 0.000000 26.220 39.831 1752750149.196 + 41 0.000000 0.000000 26.368 39.842 1752750149.253 + 42 0.000000 0.000000 26.393 39.768 1752750149.310 + 43 0.000000 0.000000 26.304 39.875 1752750149.366 + 44 0.000000 0.000000 26.304 39.875 1752750149.422 + 45 0.000000 0.000000 26.304 39.875 1752750149.478 + 46 0.000000 0.000000 26.368 39.842 1752750149.533 + 47 0.000000 0.000000 26.368 39.842 1752750149.594 + 48 0.000000 0.000000 26.368 39.842 1752750149.651 + 49 0.000000 0.000000 26.368 39.842 1752750149.707 + 50 0.000000 0.000000 26.304 39.875 1752750149.763 + 51 0.000000 0.000000 26.304 39.875 1752750149.820 + 52 0.000000 0.000000 26.155 39.862 1752750149.877 + 53 0.000000 0.000000 26.368 39.842 1752750149.933 + 54 0.000000 0.000000 26.241 39.759 1752750149.989 + 55 0.000000 0.000000 26.368 39.842 1752750150.045 + 56 0.000000 0.000000 26.304 39.875 1752750150.103 + 57 0.000000 0.000000 26.304 39.875 1752750150.159 + 58 0.000000 0.000000 26.393 39.768 1752750150.216 + 59 0.000000 0.000000 26.368 39.842 1752750150.273 + 60 0.000000 0.000000 26.368 39.842 1752750150.329 + 61 0.000000 0.000000 26.304 39.875 1752750150.386 + 62 0.000000 0.000000 26.304 39.875 1752750150.445 + 63 0.000000 0.000000 26.304 39.875 1752750150.501 + 64 0.000000 0.000000 26.368 39.842 1752750150.559 + 65 0.000000 0.000000 26.393 39.768 1752750150.616 + 66 0.000000 0.000000 26.368 39.842 1752750150.673 + 67 0.000000 0.000000 26.368 39.842 1752750150.730 + 68 0.000000 0.000000 26.304 39.875 1752750150.786 + 69 0.000000 0.000000 26.220 39.831 1752750150.842 + 70 0.000000 0.000000 26.304 39.875 1752750150.899 + 71 0.000000 0.000000 26.368 39.842 1752750150.954 + 72 0.000000 0.000000 26.368 39.842 1752750151.011 + 73 0.000000 0.000000 26.220 39.831 1752750151.067 + 74 0.000000 0.000000 26.220 39.831 1752750151.124 + 75 0.000000 0.000000 26.393 39.768 1752750151.179 + 76 0.000000 0.000000 26.368 39.842 1752750151.235 + 77 0.000000 0.000000 26.368 39.842 1752750151.291 + 78 0.000000 0.000000 26.304 39.875 1752750151.347 + 79 0.000000 0.000000 26.207 39.759 1752750151.404 + 80 0.000000 0.000000 26.304 39.875 1752750151.460 + 81 0.000000 0.000000 26.368 39.842 1752750151.516 + 82 0.000000 0.000000 26.368 39.842 1752750151.572 + 83 0.000000 0.000000 26.368 39.842 1752750151.628 + 84 0.000000 0.000000 26.368 39.842 1752750151.685 + 85 0.000000 0.000000 26.304 39.875 1752750151.743 + 86 0.000000 0.000000 26.368 39.842 1752750151.800 + 87 0.000000 0.000000 26.368 39.842 1752750151.855 + 88 0.000000 0.000000 26.304 39.875 1752750151.912 + 89 0.000000 0.000000 26.368 39.842 1752750151.968 + 90 0.000000 0.000000 26.175 39.789 1752750152.024 + 91 0.000000 0.000000 26.368 39.842 1752750152.081 + 92 0.000000 0.000000 26.368 39.842 1752750152.138 + 93 0.000000 0.000000 26.368 39.842 1752750152.193 + 94 0.000000 0.000000 26.393 39.768 1752750152.250 + 95 0.000000 0.000000 26.368 39.842 1752750152.307 + 96 0.000000 0.000000 26.368 39.842 1752750152.363 + 97 0.000000 0.000000 26.368 39.842 1752750152.423 + 98 0.000000 0.000000 26.304 39.875 1752750152.478 + 99 0.000000 0.000000 26.368 39.842 1752750152.535 + 100 0.000000 0.000000 26.368 39.842 1752750152.590 diff --git a/data/data20250717_alignment_tests/20250717_132954_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_132954_static_0/static_0.dat new file mode 100644 index 0000000..6d62887 --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_132954_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 98.741 168.898 1752751794.771 + 2 0.000000 0.000000 98.785 168.963 1752751794.827 + 3 0.000000 0.000000 98.123 169.211 1752751794.883 + 4 0.000000 0.000000 98.014 169.176 1752751794.940 + 5 0.000000 0.000000 98.153 169.097 1752751794.997 + 6 0.000000 0.000000 98.493 169.155 1752751795.053 + 7 0.000000 0.000000 98.549 169.106 1752751795.108 + 8 0.000000 0.000000 98.099 169.326 1752751795.165 + 9 0.000000 0.000000 98.259 169.627 1752751795.221 + 10 0.000000 0.000000 98.020 169.298 1752751795.278 + 11 0.000000 0.000000 98.813 169.328 1752751795.335 + 12 0.000000 0.000000 98.241 168.969 1752751795.391 + 13 0.000000 0.000000 98.268 169.090 1752751795.447 + 14 0.000000 0.000000 98.547 169.243 1752751795.503 + 15 0.000000 0.000000 98.127 169.336 1752751795.559 + 16 0.000000 0.000000 98.697 168.740 1752751795.616 + 17 0.000000 0.000000 98.930 169.072 1752751795.671 + 18 0.000000 0.000000 98.785 169.125 1752751795.727 + 19 0.000000 0.000000 98.112 169.271 1752751795.783 + 20 0.000000 0.000000 98.082 169.400 1752751795.840 + 21 0.000000 0.000000 98.417 168.965 1752751795.896 + 22 0.000000 0.000000 97.935 169.120 1752751795.952 + 23 0.000000 0.000000 98.358 168.795 1752751796.009 + 24 0.000000 0.000000 97.576 169.303 1752751796.066 + 25 0.000000 0.000000 97.980 168.858 1752751796.122 + 26 0.000000 0.000000 98.374 169.657 1752751796.180 + 27 0.000000 0.000000 98.351 168.907 1752751796.236 + 28 0.000000 0.000000 97.981 169.214 1752751796.291 + 29 0.000000 0.000000 98.149 169.185 1752751796.348 + 30 0.000000 0.000000 98.374 169.315 1752751796.405 + 31 0.000000 0.000000 98.373 169.131 1752751796.465 + 32 0.000000 0.000000 98.939 169.037 1752751796.521 + 33 0.000000 0.000000 98.283 169.622 1752751796.578 + 34 0.000000 0.000000 97.760 169.405 1752751796.634 + 35 0.000000 0.000000 98.544 168.944 1752751796.691 + 36 0.000000 0.000000 98.448 169.127 1752751796.750 + 37 0.000000 0.000000 98.499 168.880 1752751796.806 + 38 0.000000 0.000000 98.415 169.494 1752751796.866 + 39 0.000000 0.000000 98.261 169.414 1752751796.922 + 40 0.000000 0.000000 98.461 169.366 1752751796.979 + 41 0.000000 0.000000 97.693 169.288 1752751797.035 + 42 0.000000 0.000000 98.525 169.538 1752751797.092 + 43 0.000000 0.000000 98.598 169.462 1752751797.149 + 44 0.000000 0.000000 98.022 169.322 1752751797.206 + 45 0.000000 0.000000 98.240 168.821 1752751797.262 + 46 0.000000 0.000000 97.703 169.113 1752751797.318 + 47 0.000000 0.000000 98.147 169.256 1752751797.375 + 48 0.000000 0.000000 98.376 169.579 1752751797.432 + 49 0.000000 0.000000 98.023 169.679 1752751797.488 + 50 0.000000 0.000000 98.609 169.481 1752751797.543 + 51 0.000000 0.000000 97.726 169.493 1752751797.599 + 52 0.000000 0.000000 98.283 169.311 1752751797.656 + 53 0.000000 0.000000 98.257 169.335 1752751797.712 + 54 0.000000 0.000000 98.422 168.810 1752751797.769 + 55 0.000000 0.000000 98.693 169.002 1752751797.825 + 56 0.000000 0.000000 97.994 168.931 1752751797.882 + 57 0.000000 0.000000 97.956 169.236 1752751797.938 + 58 0.000000 0.000000 98.532 169.437 1752751797.996 + 59 0.000000 0.000000 98.222 168.847 1752751798.052 + 60 0.000000 0.000000 98.039 168.821 1752751798.109 + 61 0.000000 0.000000 97.634 169.275 1752751798.165 + 62 0.000000 0.000000 98.084 169.060 1752751798.220 + 63 0.000000 0.000000 98.301 169.121 1752751798.279 + 64 0.000000 0.000000 98.627 169.174 1752751798.335 + 65 0.000000 0.000000 98.420 168.840 1752751798.392 + 66 0.000000 0.000000 98.216 169.399 1752751798.448 + 67 0.000000 0.000000 98.443 169.455 1752751798.504 + 68 0.000000 0.000000 97.810 169.378 1752751798.561 + 69 0.000000 0.000000 97.937 169.766 1752751798.617 + 70 0.000000 0.000000 97.916 169.637 1752751798.673 + 71 0.000000 0.000000 98.339 169.173 1752751798.730 + 72 0.000000 0.000000 97.855 169.423 1752751798.790 + 73 0.000000 0.000000 98.262 169.075 1752751798.846 + 74 0.000000 0.000000 98.029 169.220 1752751798.906 + 75 0.000000 0.000000 98.277 169.576 1752751798.962 + 76 0.000000 0.000000 98.038 169.625 1752751799.019 + 77 0.000000 0.000000 98.013 169.374 1752751799.076 + 78 0.000000 0.000000 97.961 168.987 1752751799.133 + 79 0.000000 0.000000 98.049 169.247 1752751799.189 + 80 0.000000 0.000000 97.817 169.274 1752751799.245 + 81 0.000000 0.000000 97.899 168.854 1752751799.301 + 82 0.000000 0.000000 97.906 169.462 1752751799.358 + 83 0.000000 0.000000 98.629 168.638 1752751799.416 + 84 0.000000 0.000000 98.220 169.034 1752751799.472 + 85 0.000000 0.000000 98.617 169.473 1752751799.529 + 86 0.000000 0.000000 98.357 168.916 1752751799.585 + 87 0.000000 0.000000 98.386 169.293 1752751799.641 + 88 0.000000 0.000000 98.122 169.456 1752751799.697 + 89 0.000000 0.000000 98.284 169.321 1752751799.754 + 90 0.000000 0.000000 97.854 169.647 1752751799.811 + 91 0.000000 0.000000 98.844 169.337 1752751799.869 + 92 0.000000 0.000000 97.973 169.287 1752751799.925 + 93 0.000000 0.000000 98.641 169.328 1752751799.981 + 94 0.000000 0.000000 97.911 168.669 1752751800.036 + 95 0.000000 0.000000 98.337 169.700 1752751800.093 + 96 0.000000 0.000000 98.313 169.736 1752751800.149 + 97 0.000000 0.000000 98.379 169.608 1752751800.204 + 98 0.000000 0.000000 97.987 169.407 1752751800.261 + 99 0.000000 0.000000 97.349 169.122 1752751800.319 + 100 0.000000 0.000000 98.955 169.247 1752751800.381 diff --git a/data/data20250717_alignment_tests/20250717_133048_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_133048_static_0/static_0.dat new file mode 100644 index 0000000..dc4766e --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_133048_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 98.540 168.962 1752751848.625 + 2 0.000000 0.000000 98.471 169.213 1752751848.682 + 3 0.000000 0.000000 97.980 169.680 1752751848.737 + 4 0.000000 0.000000 98.154 169.516 1752751848.794 + 5 0.000000 0.000000 97.740 169.917 1752751848.850 + 6 0.000000 0.000000 98.494 168.971 1752751848.906 + 7 0.000000 0.000000 97.892 169.556 1752751848.963 + 8 0.000000 0.000000 98.232 168.784 1752751849.020 + 9 0.000000 0.000000 97.843 169.370 1752751849.079 + 10 0.000000 0.000000 97.789 169.464 1752751849.140 + 11 0.000000 0.000000 97.697 169.805 1752751849.301 + 12 0.000000 0.000000 98.225 169.471 1752751849.358 + 13 0.000000 0.000000 98.397 169.109 1752751849.413 + 14 0.000000 0.000000 98.628 169.421 1752751849.470 + 15 0.000000 0.000000 98.058 168.893 1752751849.526 + 16 0.000000 0.000000 97.476 169.318 1752751849.583 + 17 0.000000 0.000000 98.005 168.858 1752751849.639 + 18 0.000000 0.000000 98.421 169.322 1752751849.695 + 19 0.000000 0.000000 98.128 169.312 1752751849.751 + 20 0.000000 0.000000 98.473 168.991 1752751849.808 + 21 0.000000 0.000000 97.099 169.114 1752751849.864 + 22 0.000000 0.000000 98.791 169.101 1752751849.919 + 23 0.000000 0.000000 97.846 169.246 1752751849.975 + 24 0.000000 0.000000 98.008 169.780 1752751850.031 + 25 0.000000 0.000000 97.110 169.562 1752751850.088 + 26 0.000000 0.000000 97.663 169.325 1752751850.145 + 27 0.000000 0.000000 98.470 168.892 1752751850.201 + 28 0.000000 0.000000 97.979 169.275 1752751850.257 + 29 0.000000 0.000000 98.672 168.965 1752751850.313 + 30 0.000000 0.000000 97.937 169.597 1752751850.370 + 31 0.000000 0.000000 97.878 169.198 1752751850.426 + 32 0.000000 0.000000 97.163 169.273 1752751850.483 + 33 0.000000 0.000000 98.021 169.191 1752751850.539 + 34 0.000000 0.000000 97.996 169.434 1752751850.596 + 35 0.000000 0.000000 97.719 169.331 1752751850.652 + 36 0.000000 0.000000 97.556 169.516 1752751850.708 + 37 0.000000 0.000000 98.173 169.618 1752751850.764 + 38 0.000000 0.000000 97.609 169.461 1752751850.820 + 39 0.000000 0.000000 97.571 169.632 1752751850.877 + 40 0.000000 0.000000 97.827 169.606 1752751850.931 + 41 0.000000 0.000000 98.022 169.264 1752751850.987 + 42 0.000000 0.000000 97.430 169.646 1752751851.044 + 43 0.000000 0.000000 97.730 169.061 1752751851.100 + 44 0.000000 0.000000 98.062 169.031 1752751851.156 + 45 0.000000 0.000000 97.901 169.439 1752751851.212 + 46 0.000000 0.000000 97.237 169.362 1752751851.268 + 47 0.000000 0.000000 98.322 169.092 1752751851.324 + 48 0.000000 0.000000 98.078 169.576 1752751851.379 + 49 0.000000 0.000000 97.980 169.271 1752751851.435 + 50 0.000000 0.000000 98.179 169.248 1752751851.492 + 51 0.000000 0.000000 97.858 169.697 1752751851.548 + 52 0.000000 0.000000 97.684 169.369 1752751851.605 + 53 0.000000 0.000000 98.278 169.354 1752751851.661 + 54 0.000000 0.000000 98.130 169.267 1752751851.719 + 55 0.000000 0.000000 97.552 169.397 1752751851.776 + 56 0.000000 0.000000 98.178 168.886 1752751851.832 + 57 0.000000 0.000000 97.524 169.326 1752751851.889 + 58 0.000000 0.000000 98.137 168.958 1752751851.946 + 59 0.000000 0.000000 97.706 169.408 1752751852.002 + 60 0.000000 0.000000 97.658 169.735 1752751852.059 + 61 0.000000 0.000000 98.113 169.265 1752751852.116 + 62 0.000000 0.000000 97.776 169.560 1752751852.172 + 63 0.000000 0.000000 97.309 168.975 1752751852.229 + 64 0.000000 0.000000 97.256 169.129 1752751852.284 + 65 0.000000 0.000000 97.890 169.543 1752751852.343 + 66 0.000000 0.000000 98.201 169.066 1752751852.399 + 67 0.000000 0.000000 97.619 169.632 1752751852.455 + 68 0.000000 0.000000 98.063 169.333 1752751852.512 + 69 0.000000 0.000000 98.352 169.713 1752751852.568 + 70 0.000000 0.000000 97.510 169.166 1752751852.624 + 71 0.000000 0.000000 97.422 169.596 1752751852.680 + 72 0.000000 0.000000 97.999 169.420 1752751852.736 + 73 0.000000 0.000000 97.873 169.453 1752751852.792 + 74 0.000000 0.000000 97.630 170.082 1752751852.848 + 75 0.000000 0.000000 97.565 169.231 1752751852.905 + 76 0.000000 0.000000 98.324 168.759 1752751852.961 + 77 0.000000 0.000000 97.640 169.021 1752751853.018 + 78 0.000000 0.000000 98.408 169.285 1752751853.073 + 79 0.000000 0.000000 97.675 169.417 1752751853.129 + 80 0.000000 0.000000 97.587 169.392 1752751853.186 + 81 0.000000 0.000000 97.881 169.726 1752751853.241 + 82 0.000000 0.000000 98.897 169.330 1752751853.297 + 83 0.000000 0.000000 98.035 169.615 1752751853.355 + 84 0.000000 0.000000 97.881 169.290 1752751853.411 + 85 0.000000 0.000000 98.076 169.488 1752751853.467 + 86 0.000000 0.000000 98.608 168.675 1752751853.524 + 87 0.000000 0.000000 97.980 169.816 1752751853.580 + 88 0.000000 0.000000 97.551 169.796 1752751853.636 + 89 0.000000 0.000000 97.431 169.160 1752751853.694 + 90 0.000000 0.000000 98.133 169.130 1752751853.752 + 91 0.000000 0.000000 98.401 169.085 1752751853.809 + 92 0.000000 0.000000 97.930 169.316 1752751853.867 + 93 0.000000 0.000000 97.724 169.407 1752751853.923 + 94 0.000000 0.000000 98.064 169.270 1752751853.979 + 95 0.000000 0.000000 97.986 168.945 1752751854.034 + 96 0.000000 0.000000 97.593 169.323 1752751854.090 + 97 0.000000 0.000000 97.542 169.487 1752751854.147 + 98 0.000000 0.000000 98.003 169.569 1752751854.204 + 99 0.000000 0.000000 97.720 169.546 1752751854.261 + 100 0.000000 0.000000 97.807 169.152 1752751854.318 diff --git a/data/data20250717_alignment_tests/20250717_133122_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_133122_static_0/static_0.dat new file mode 100644 index 0000000..ad239c5 --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_133122_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 24.078 41.942 1752751882.581 + 2 0.000000 0.000000 24.206 41.925 1752751882.639 + 3 0.000000 0.000000 23.984 41.821 1752751882.695 + 4 0.000000 0.000000 24.239 41.969 1752751882.752 + 5 0.000000 0.000000 24.159 41.868 1752751882.808 + 6 0.000000 0.000000 24.140 41.783 1752751882.865 + 7 0.000000 0.000000 24.250 41.918 1752751882.921 + 8 0.000000 0.000000 24.254 41.769 1752751882.977 + 9 0.000000 0.000000 24.063 41.925 1752751883.033 + 10 0.000000 0.000000 24.023 41.965 1752751883.089 + 11 0.000000 0.000000 24.206 42.042 1752751883.145 + 12 0.000000 0.000000 24.210 41.944 1752751883.202 + 13 0.000000 0.000000 24.112 41.969 1752751883.259 + 14 0.000000 0.000000 24.153 41.867 1752751883.314 + 15 0.000000 0.000000 24.307 41.720 1752751883.370 + 16 0.000000 0.000000 23.911 41.934 1752751883.426 + 17 0.000000 0.000000 24.251 41.922 1752751883.482 + 18 0.000000 0.000000 24.158 41.935 1752751883.538 + 19 0.000000 0.000000 24.043 41.785 1752751883.595 + 20 0.000000 0.000000 24.189 41.942 1752751883.652 + 21 0.000000 0.000000 24.242 41.941 1752751883.708 + 22 0.000000 0.000000 24.087 42.055 1752751883.764 + 23 0.000000 0.000000 24.115 41.838 1752751883.827 + 24 0.000000 0.000000 23.964 41.776 1752751883.882 + 25 0.000000 0.000000 24.051 41.925 1752751883.939 + 26 0.000000 0.000000 24.231 41.855 1752751883.995 + 27 0.000000 0.000000 24.076 41.935 1752751884.052 + 28 0.000000 0.000000 24.016 41.764 1752751884.107 + 29 0.000000 0.000000 24.166 41.902 1752751884.164 + 30 0.000000 0.000000 24.304 41.912 1752751884.220 + 31 0.000000 0.000000 24.222 41.774 1752751884.275 + 32 0.000000 0.000000 24.180 41.804 1752751884.331 + 33 0.000000 0.000000 23.937 42.004 1752751884.387 + 34 0.000000 0.000000 23.942 41.760 1752751884.443 + 35 0.000000 0.000000 24.118 41.992 1752751884.499 + 36 0.000000 0.000000 24.244 41.911 1752751884.556 + 37 0.000000 0.000000 24.042 41.912 1752751884.612 + 38 0.000000 0.000000 24.077 41.958 1752751884.670 + 39 0.000000 0.000000 24.137 42.020 1752751884.726 + 40 0.000000 0.000000 24.202 41.957 1752751884.783 + 41 0.000000 0.000000 24.161 41.933 1752751884.839 + 42 0.000000 0.000000 24.250 42.023 1752751884.896 + 43 0.000000 0.000000 24.263 41.931 1752751884.952 + 44 0.000000 0.000000 24.223 41.792 1752751885.009 + 45 0.000000 0.000000 24.108 41.821 1752751885.066 + 46 0.000000 0.000000 24.162 41.917 1752751885.122 + 47 0.000000 0.000000 24.113 41.873 1752751885.178 + 48 0.000000 0.000000 24.294 41.961 1752751885.234 + 49 0.000000 0.000000 24.166 41.726 1752751885.291 + 50 0.000000 0.000000 23.931 41.862 1752751885.347 + 51 0.000000 0.000000 24.129 41.796 1752751885.403 + 52 0.000000 0.000000 24.155 41.946 1752751885.460 + 53 0.000000 0.000000 24.141 41.887 1752751885.516 + 54 0.000000 0.000000 24.063 41.893 1752751885.571 + 55 0.000000 0.000000 24.063 42.020 1752751885.627 + 56 0.000000 0.000000 24.275 41.929 1752751885.683 + 57 0.000000 0.000000 24.413 42.000 1752751885.739 + 58 0.000000 0.000000 24.075 41.854 1752751885.797 + 59 0.000000 0.000000 24.190 41.905 1752751885.853 + 60 0.000000 0.000000 24.120 41.784 1752751885.911 + 61 0.000000 0.000000 23.969 41.980 1752751885.967 + 62 0.000000 0.000000 24.016 41.937 1752751886.024 + 63 0.000000 0.000000 24.202 41.921 1752751886.081 + 64 0.000000 0.000000 24.292 42.038 1752751886.137 + 65 0.000000 0.000000 24.129 42.000 1752751886.195 + 66 0.000000 0.000000 24.156 41.938 1752751886.251 + 67 0.000000 0.000000 24.112 41.942 1752751886.307 + 68 0.000000 0.000000 24.060 41.838 1752751886.363 + 69 0.000000 0.000000 24.134 41.759 1752751886.420 + 70 0.000000 0.000000 24.066 41.950 1752751886.476 + 71 0.000000 0.000000 24.012 41.853 1752751886.533 + 72 0.000000 0.000000 24.077 41.981 1752751886.588 + 73 0.000000 0.000000 24.145 41.754 1752751886.645 + 74 0.000000 0.000000 24.174 41.988 1752751886.701 + 75 0.000000 0.000000 24.122 41.871 1752751886.757 + 76 0.000000 0.000000 24.250 41.935 1752751886.814 + 77 0.000000 0.000000 24.028 41.884 1752751886.871 + 78 0.000000 0.000000 24.043 41.840 1752751886.927 + 79 0.000000 0.000000 24.065 41.897 1752751886.983 + 80 0.000000 0.000000 24.133 41.951 1752751887.039 + 81 0.000000 0.000000 23.964 41.764 1752751887.094 + 82 0.000000 0.000000 24.217 41.802 1752751887.151 + 83 0.000000 0.000000 24.144 41.883 1752751887.207 + 84 0.000000 0.000000 24.109 41.934 1752751887.263 + 85 0.000000 0.000000 24.217 41.756 1752751887.319 + 86 0.000000 0.000000 24.129 41.957 1752751887.375 + 87 0.000000 0.000000 24.098 41.890 1752751887.431 + 88 0.000000 0.000000 24.039 41.984 1752751887.487 + 89 0.000000 0.000000 24.187 41.714 1752751887.543 + 90 0.000000 0.000000 24.134 41.843 1752751887.599 + 91 0.000000 0.000000 24.098 41.742 1752751887.655 + 92 0.000000 0.000000 24.059 41.895 1752751887.711 + 93 0.000000 0.000000 24.160 41.868 1752751887.768 + 94 0.000000 0.000000 24.144 41.891 1752751887.824 + 95 0.000000 0.000000 24.150 41.909 1752751887.880 + 96 0.000000 0.000000 24.289 41.734 1752751887.936 + 97 0.000000 0.000000 24.099 41.913 1752751887.992 + 98 0.000000 0.000000 24.129 41.762 1752751888.048 + 99 0.000000 0.000000 24.122 41.844 1752751888.105 + 100 0.000000 0.000000 24.142 41.951 1752751888.161 diff --git a/data/data20250717_alignment_tests/20250717_134113_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_134113_static_0/static_0.dat new file mode 100644 index 0000000..9fb1d11 --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_134113_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 24.064 42.299 1752752473.634 + 2 0.000000 0.000000 23.930 42.309 1752752473.691 + 3 0.000000 0.000000 23.892 42.271 1752752473.746 + 4 0.000000 0.000000 24.000 42.267 1752752473.802 + 5 0.000000 0.000000 24.041 42.276 1752752473.858 + 6 0.000000 0.000000 24.146 42.329 1752752473.914 + 7 0.000000 0.000000 24.236 42.207 1752752473.970 + 8 0.000000 0.000000 24.108 42.229 1752752474.026 + 9 0.000000 0.000000 23.996 42.428 1752752474.083 + 10 0.000000 0.000000 23.984 42.288 1752752474.140 + 11 0.000000 0.000000 23.942 42.281 1752752474.197 + 12 0.000000 0.000000 24.062 42.240 1752752474.253 + 13 0.000000 0.000000 24.118 42.204 1752752474.309 + 14 0.000000 0.000000 24.081 42.316 1752752474.365 + 15 0.000000 0.000000 24.025 42.357 1752752474.422 + 16 0.000000 0.000000 23.951 42.228 1752752474.479 + 17 0.000000 0.000000 24.102 42.224 1752752474.534 + 18 0.000000 0.000000 24.050 42.442 1752752474.590 + 19 0.000000 0.000000 24.025 42.374 1752752474.647 + 20 0.000000 0.000000 23.992 42.387 1752752474.705 + 21 0.000000 0.000000 24.025 42.361 1752752474.762 + 22 0.000000 0.000000 23.963 42.252 1752752474.819 + 23 0.000000 0.000000 24.089 42.232 1752752474.875 + 24 0.000000 0.000000 24.157 42.278 1752752474.930 + 25 0.000000 0.000000 24.152 42.283 1752752474.987 + 26 0.000000 0.000000 23.988 42.286 1752752475.042 + 27 0.000000 0.000000 24.213 42.269 1752752475.099 + 28 0.000000 0.000000 24.089 42.285 1752752475.154 + 29 0.000000 0.000000 24.299 42.262 1752752475.211 + 30 0.000000 0.000000 24.257 42.274 1752752475.267 + 31 0.000000 0.000000 24.160 42.209 1752752475.323 + 32 0.000000 0.000000 24.077 42.323 1752752475.379 + 33 0.000000 0.000000 24.032 42.398 1752752475.436 + 34 0.000000 0.000000 23.945 42.439 1752752475.494 + 35 0.000000 0.000000 24.255 42.297 1752752475.550 + 36 0.000000 0.000000 23.902 42.422 1752752475.608 + 37 0.000000 0.000000 23.971 42.272 1752752475.665 + 38 0.000000 0.000000 24.161 42.376 1752752475.722 + 39 0.000000 0.000000 23.988 42.293 1752752475.779 + 40 0.000000 0.000000 24.102 42.233 1752752475.835 + 41 0.000000 0.000000 24.131 42.282 1752752475.891 + 42 0.000000 0.000000 24.103 42.374 1752752475.947 + 43 0.000000 0.000000 24.123 42.325 1752752476.004 + 44 0.000000 0.000000 24.053 42.269 1752752476.061 + 45 0.000000 0.000000 23.988 42.275 1752752476.118 + 46 0.000000 0.000000 24.059 42.439 1752752476.174 + 47 0.000000 0.000000 24.038 42.392 1752752476.230 + 48 0.000000 0.000000 24.126 42.259 1752752476.286 + 49 0.000000 0.000000 24.053 42.389 1752752476.343 + 50 0.000000 0.000000 24.194 42.166 1752752476.399 + 51 0.000000 0.000000 24.156 42.300 1752752476.454 + 52 0.000000 0.000000 24.041 42.390 1752752476.511 + 53 0.000000 0.000000 24.103 42.273 1752752476.567 + 54 0.000000 0.000000 24.154 42.194 1752752476.622 + 55 0.000000 0.000000 24.079 42.397 1752752476.679 + 56 0.000000 0.000000 24.110 42.392 1752752476.735 + 57 0.000000 0.000000 24.101 42.283 1752752476.792 + 58 0.000000 0.000000 24.295 42.191 1752752476.848 + 59 0.000000 0.000000 24.000 42.291 1752752476.904 + 60 0.000000 0.000000 24.091 42.426 1752752476.960 + 61 0.000000 0.000000 23.945 42.435 1752752477.015 + 62 0.000000 0.000000 24.067 42.424 1752752477.072 + 63 0.000000 0.000000 24.049 42.358 1752752477.129 + 64 0.000000 0.000000 24.041 42.449 1752752477.185 + 65 0.000000 0.000000 24.121 42.393 1752752477.241 + 66 0.000000 0.000000 24.055 42.193 1752752477.296 + 67 0.000000 0.000000 24.107 42.326 1752752477.352 + 68 0.000000 0.000000 24.174 42.224 1752752477.408 + 69 0.000000 0.000000 24.165 42.376 1752752477.465 + 70 0.000000 0.000000 23.983 42.306 1752752477.521 + 71 0.000000 0.000000 24.149 42.459 1752752477.577 + 72 0.000000 0.000000 24.040 42.339 1752752477.633 + 73 0.000000 0.000000 23.950 42.395 1752752477.690 + 74 0.000000 0.000000 24.152 42.342 1752752477.746 + 75 0.000000 0.000000 24.004 42.337 1752752477.801 + 76 0.000000 0.000000 24.102 42.393 1752752477.860 + 77 0.000000 0.000000 24.165 42.148 1752752477.916 + 78 0.000000 0.000000 24.331 42.257 1752752477.973 + 79 0.000000 0.000000 24.073 42.278 1752752478.029 + 80 0.000000 0.000000 24.183 42.286 1752752478.086 + 81 0.000000 0.000000 24.136 42.395 1752752478.143 + 82 0.000000 0.000000 23.893 42.352 1752752478.201 + 83 0.000000 0.000000 23.971 42.449 1752752478.257 + 84 0.000000 0.000000 24.095 42.285 1752752478.313 + 85 0.000000 0.000000 24.074 42.459 1752752478.370 + 86 0.000000 0.000000 24.057 42.437 1752752478.427 + 87 0.000000 0.000000 23.935 42.405 1752752478.484 + 88 0.000000 0.000000 24.046 42.481 1752752478.541 + 89 0.000000 0.000000 23.976 42.305 1752752478.598 + 90 0.000000 0.000000 24.045 42.287 1752752478.654 + 91 0.000000 0.000000 24.194 42.421 1752752478.710 + 92 0.000000 0.000000 24.231 42.367 1752752478.767 + 93 0.000000 0.000000 24.037 42.379 1752752478.822 + 94 0.000000 0.000000 24.256 42.339 1752752478.878 + 95 0.000000 0.000000 24.072 42.325 1752752478.935 + 96 0.000000 0.000000 24.087 42.408 1752752478.990 + 97 0.000000 0.000000 24.130 42.368 1752752479.047 + 98 0.000000 0.000000 24.067 42.300 1752752479.104 + 99 0.000000 0.000000 24.218 42.395 1752752479.160 + 100 0.000000 0.000000 24.149 42.537 1752752479.216 diff --git a/data/data20250717_alignment_tests/20250717_134906_repeatibility_0/im_00000.tif b/data/data20250717_alignment_tests/20250717_134906_repeatibility_0/im_00000.tif new file mode 100644 index 0000000..e78a714 Binary files /dev/null and b/data/data20250717_alignment_tests/20250717_134906_repeatibility_0/im_00000.tif differ diff --git a/data/data20250717_alignment_tests/20250717_134906_repeatibility_0/im_00001.tif b/data/data20250717_alignment_tests/20250717_134906_repeatibility_0/im_00001.tif new file mode 100644 index 0000000..aa1023f Binary files /dev/null and b/data/data20250717_alignment_tests/20250717_134906_repeatibility_0/im_00001.tif differ diff --git a/data/data20250717_alignment_tests/20250717_134906_repeatibility_0/im_00002.tif b/data/data20250717_alignment_tests/20250717_134906_repeatibility_0/im_00002.tif new file mode 100644 index 0000000..f8f59c3 Binary files /dev/null and b/data/data20250717_alignment_tests/20250717_134906_repeatibility_0/im_00002.tif differ diff --git a/data/data20250717_alignment_tests/20250717_134906_repeatibility_0/repeatibility_0.dat b/data/data20250717_alignment_tests/20250717_134906_repeatibility_0/repeatibility_0.dat new file mode 100644 index 0000000..b925a13 --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_134906_repeatibility_0/repeatibility_0.dat @@ -0,0 +1,3 @@ + 0 4.000000 5.000000 95.566 171.968 1752753018.088 + 1 4.000000 5.000000 94.987 172.607 1752753087.208 + 2 4.000000 5.000000 94.809 172.547 1752753156.287 diff --git a/data/data20250717_alignment_tests/20250717_141551_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_141551_static_0/static_0.dat new file mode 100644 index 0000000..f9ddf25 --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_141551_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 101.380 172.054 1752754551.336 + 2 0.000000 0.000000 101.562 171.871 1752754551.392 + 3 0.000000 0.000000 101.854 171.993 1752754551.450 + 4 0.000000 0.000000 101.830 171.873 1752754551.507 + 5 0.000000 0.000000 101.885 171.979 1752754551.563 + 6 0.000000 0.000000 101.791 171.836 1752754551.620 + 7 0.000000 0.000000 101.604 171.824 1752754551.677 + 8 0.000000 0.000000 101.930 172.003 1752754551.732 + 9 0.000000 0.000000 102.058 172.019 1752754551.789 + 10 0.000000 0.000000 102.322 171.868 1752754551.846 + 11 0.000000 0.000000 102.047 171.851 1752754551.902 + 12 0.000000 0.000000 102.120 171.887 1752754551.959 + 13 0.000000 0.000000 101.980 171.882 1752754552.016 + 14 0.000000 0.000000 102.331 171.841 1752754552.073 + 15 0.000000 0.000000 102.083 171.950 1752754552.128 + 16 0.000000 0.000000 101.902 171.942 1752754552.185 + 17 0.000000 0.000000 101.820 171.888 1752754552.242 + 18 0.000000 0.000000 101.707 172.086 1752754552.300 + 19 0.000000 0.000000 101.872 171.990 1752754552.357 + 20 0.000000 0.000000 102.216 171.877 1752754552.415 + 21 0.000000 0.000000 102.105 171.846 1752754552.471 + 22 0.000000 0.000000 102.007 171.656 1752754552.528 + 23 0.000000 0.000000 101.778 172.044 1752754552.585 + 24 0.000000 0.000000 101.906 171.912 1752754552.640 + 25 0.000000 0.000000 101.964 171.674 1752754552.697 + 26 0.000000 0.000000 101.643 171.937 1752754552.757 + 27 0.000000 0.000000 102.259 171.756 1752754552.813 + 28 0.000000 0.000000 101.654 171.904 1752754552.870 + 29 0.000000 0.000000 101.523 171.937 1752754552.927 + 30 0.000000 0.000000 101.348 171.993 1752754552.983 + 31 0.000000 0.000000 101.674 171.808 1752754553.040 + 32 0.000000 0.000000 102.015 171.942 1752754553.096 + 33 0.000000 0.000000 102.455 171.776 1752754553.153 + 34 0.000000 0.000000 102.373 171.715 1752754553.210 + 35 0.000000 0.000000 102.000 171.848 1752754553.266 + 36 0.000000 0.000000 101.405 171.802 1752754553.323 + 37 0.000000 0.000000 101.203 172.004 1752754553.380 + 38 0.000000 0.000000 101.245 172.140 1752754553.436 + 39 0.000000 0.000000 101.711 171.805 1752754553.493 + 40 0.000000 0.000000 102.013 171.934 1752754553.549 + 41 0.000000 0.000000 101.538 171.954 1752754553.605 + 42 0.000000 0.000000 101.096 172.092 1752754553.661 + 43 0.000000 0.000000 101.396 172.052 1752754553.717 + 44 0.000000 0.000000 101.707 171.699 1752754553.774 + 45 0.000000 0.000000 102.100 171.661 1752754553.831 + 46 0.000000 0.000000 102.351 171.666 1752754553.888 + 47 0.000000 0.000000 102.169 171.787 1752754553.946 + 48 0.000000 0.000000 102.075 171.882 1752754554.002 + 49 0.000000 0.000000 101.738 171.943 1752754554.058 + 50 0.000000 0.000000 101.138 171.866 1752754554.114 + 51 0.000000 0.000000 101.425 171.821 1752754554.171 + 52 0.000000 0.000000 101.901 171.889 1752754554.227 + 53 0.000000 0.000000 102.361 171.711 1752754554.284 + 54 0.000000 0.000000 102.222 171.720 1752754554.342 + 55 0.000000 0.000000 101.181 172.119 1752754554.401 + 56 0.000000 0.000000 101.115 171.999 1752754554.457 + 57 0.000000 0.000000 100.931 172.299 1752754554.514 + 58 0.000000 0.000000 101.358 171.961 1752754554.571 + 59 0.000000 0.000000 102.334 171.727 1752754554.628 + 60 0.000000 0.000000 100.894 172.288 1752754554.685 + 61 0.000000 0.000000 100.841 172.045 1752754554.740 + 62 0.000000 0.000000 101.709 171.931 1752754554.798 + 63 0.000000 0.000000 102.611 171.663 1752754554.854 + 64 0.000000 0.000000 102.597 171.483 1752754554.910 + 65 0.000000 0.000000 101.997 171.773 1752754554.966 + 66 0.000000 0.000000 101.144 172.141 1752754555.022 + 67 0.000000 0.000000 101.430 172.024 1752754555.078 + 68 0.000000 0.000000 101.800 171.870 1752754555.135 + 69 0.000000 0.000000 102.347 171.752 1752754555.191 + 70 0.000000 0.000000 101.379 172.106 1752754555.247 + 71 0.000000 0.000000 101.314 171.978 1752754555.303 + 72 0.000000 0.000000 102.042 171.726 1752754555.360 + 73 0.000000 0.000000 102.360 171.658 1752754555.416 + 74 0.000000 0.000000 102.169 171.746 1752754555.472 + 75 0.000000 0.000000 101.485 172.073 1752754555.528 + 76 0.000000 0.000000 101.195 171.936 1752754555.583 + 77 0.000000 0.000000 101.572 171.859 1752754555.639 + 78 0.000000 0.000000 102.148 171.841 1752754555.695 + 79 0.000000 0.000000 101.305 172.079 1752754555.751 + 80 0.000000 0.000000 101.286 171.814 1752754555.806 + 81 0.000000 0.000000 101.611 171.794 1752754555.863 + 82 0.000000 0.000000 102.059 171.765 1752754555.919 + 83 0.000000 0.000000 102.418 171.844 1752754555.980 + 84 0.000000 0.000000 101.985 171.819 1752754556.036 + 85 0.000000 0.000000 101.921 171.922 1752754556.092 + 86 0.000000 0.000000 101.229 172.148 1752754556.148 + 87 0.000000 0.000000 101.094 171.882 1752754556.203 + 88 0.000000 0.000000 101.361 171.937 1752754556.260 + 89 0.000000 0.000000 101.955 171.874 1752754556.316 + 90 0.000000 0.000000 101.492 171.959 1752754556.372 + 91 0.000000 0.000000 101.282 172.077 1752754556.428 + 92 0.000000 0.000000 101.410 171.896 1752754556.484 + 93 0.000000 0.000000 101.880 171.852 1752754556.541 + 94 0.000000 0.000000 101.903 171.911 1752754556.597 + 95 0.000000 0.000000 102.163 171.778 1752754556.652 + 96 0.000000 0.000000 101.753 171.779 1752754556.709 + 97 0.000000 0.000000 101.373 172.178 1752754556.766 + 98 0.000000 0.000000 101.721 171.877 1752754556.822 + 99 0.000000 0.000000 102.061 171.776 1752754556.878 + 100 0.000000 0.000000 102.043 171.654 1752754556.935 diff --git a/data/data20250717_alignment_tests/20250717_141824_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_141824_static_0/static_0.dat new file mode 100644 index 0000000..2d23452 --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_141824_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 23.482 43.208 1752754704.427 + 2 0.000000 0.000000 23.394 43.114 1752754704.482 + 3 0.000000 0.000000 23.225 43.193 1752754704.539 + 4 0.000000 0.000000 23.408 43.204 1752754704.595 + 5 0.000000 0.000000 23.318 43.219 1752754704.651 + 6 0.000000 0.000000 23.308 43.196 1752754704.708 + 7 0.000000 0.000000 23.364 43.142 1752754704.764 + 8 0.000000 0.000000 23.355 43.137 1752754704.820 + 9 0.000000 0.000000 23.288 43.152 1752754704.876 + 10 0.000000 0.000000 23.273 43.169 1752754704.932 + 11 0.000000 0.000000 23.395 43.193 1752754704.989 + 12 0.000000 0.000000 23.201 43.160 1752754705.045 + 13 0.000000 0.000000 23.442 43.190 1752754705.101 + 14 0.000000 0.000000 23.565 43.191 1752754705.158 + 15 0.000000 0.000000 23.248 43.199 1752754705.214 + 16 0.000000 0.000000 23.269 43.180 1752754705.270 + 17 0.000000 0.000000 23.478 43.227 1752754705.328 + 18 0.000000 0.000000 23.351 43.167 1752754705.384 + 19 0.000000 0.000000 23.476 43.105 1752754705.440 + 20 0.000000 0.000000 23.490 43.184 1752754705.497 + 21 0.000000 0.000000 23.304 43.142 1752754705.556 + 22 0.000000 0.000000 23.216 43.363 1752754705.612 + 23 0.000000 0.000000 23.397 43.277 1752754705.669 + 24 0.000000 0.000000 23.349 43.228 1752754705.725 + 25 0.000000 0.000000 23.206 43.235 1752754705.781 + 26 0.000000 0.000000 23.254 43.210 1752754705.838 + 27 0.000000 0.000000 23.235 43.154 1752754705.894 + 28 0.000000 0.000000 23.327 43.141 1752754705.951 + 29 0.000000 0.000000 23.314 43.335 1752754706.008 + 30 0.000000 0.000000 23.307 43.096 1752754706.063 + 31 0.000000 0.000000 23.065 43.158 1752754706.119 + 32 0.000000 0.000000 23.225 43.141 1752754706.177 + 33 0.000000 0.000000 23.318 43.149 1752754706.234 + 34 0.000000 0.000000 23.272 43.163 1752754706.290 + 35 0.000000 0.000000 23.525 43.079 1752754706.345 + 36 0.000000 0.000000 23.402 43.197 1752754706.402 + 37 0.000000 0.000000 23.243 43.350 1752754706.459 + 38 0.000000 0.000000 23.401 43.202 1752754706.517 + 39 0.000000 0.000000 23.398 43.221 1752754706.573 + 40 0.000000 0.000000 23.316 43.139 1752754706.629 + 41 0.000000 0.000000 23.428 43.120 1752754706.685 + 42 0.000000 0.000000 23.382 43.146 1752754706.742 + 43 0.000000 0.000000 23.373 43.020 1752754706.798 + 44 0.000000 0.000000 23.463 43.116 1752754706.854 + 45 0.000000 0.000000 23.475 43.094 1752754706.909 + 46 0.000000 0.000000 23.350 43.154 1752754706.967 + 47 0.000000 0.000000 23.311 43.227 1752754707.024 + 48 0.000000 0.000000 23.373 43.246 1752754707.084 + 49 0.000000 0.000000 23.229 43.208 1752754707.140 + 50 0.000000 0.000000 23.449 43.150 1752754707.197 + 51 0.000000 0.000000 23.316 43.225 1752754707.253 + 52 0.000000 0.000000 23.571 43.258 1752754707.308 + 53 0.000000 0.000000 23.333 43.179 1752754707.365 + 54 0.000000 0.000000 23.477 43.174 1752754707.422 + 55 0.000000 0.000000 23.287 43.242 1752754707.479 + 56 0.000000 0.000000 23.198 43.322 1752754707.535 + 57 0.000000 0.000000 23.488 43.122 1752754707.591 + 58 0.000000 0.000000 23.420 43.110 1752754707.647 + 59 0.000000 0.000000 23.179 43.000 1752754707.704 + 60 0.000000 0.000000 23.272 43.004 1752754707.760 + 61 0.000000 0.000000 23.411 43.149 1752754707.817 + 62 0.000000 0.000000 23.502 43.247 1752754707.873 + 63 0.000000 0.000000 23.398 43.215 1752754707.930 + 64 0.000000 0.000000 23.384 43.228 1752754707.988 + 65 0.000000 0.000000 23.375 43.097 1752754708.045 + 66 0.000000 0.000000 23.301 43.150 1752754708.103 + 67 0.000000 0.000000 23.287 43.101 1752754708.160 + 68 0.000000 0.000000 23.472 43.157 1752754708.216 + 69 0.000000 0.000000 23.247 43.024 1752754708.272 + 70 0.000000 0.000000 23.332 43.213 1752754708.329 + 71 0.000000 0.000000 23.132 43.174 1752754708.385 + 72 0.000000 0.000000 23.231 43.186 1752754708.441 + 73 0.000000 0.000000 23.317 43.296 1752754708.496 + 74 0.000000 0.000000 23.433 43.103 1752754708.552 + 75 0.000000 0.000000 23.403 43.218 1752754708.609 + 76 0.000000 0.000000 23.189 43.250 1752754708.665 + 77 0.000000 0.000000 23.404 43.192 1752754708.721 + 78 0.000000 0.000000 23.290 43.157 1752754708.779 + 79 0.000000 0.000000 23.266 43.131 1752754708.836 + 80 0.000000 0.000000 23.457 43.045 1752754708.893 + 81 0.000000 0.000000 23.435 43.217 1752754708.951 + 82 0.000000 0.000000 23.367 43.113 1752754709.008 + 83 0.000000 0.000000 23.577 43.212 1752754709.063 + 84 0.000000 0.000000 23.258 43.288 1752754709.120 + 85 0.000000 0.000000 23.217 43.234 1752754709.176 + 86 0.000000 0.000000 23.231 43.293 1752754709.233 + 87 0.000000 0.000000 23.298 43.335 1752754709.290 + 88 0.000000 0.000000 23.350 43.195 1752754709.346 + 89 0.000000 0.000000 23.215 43.271 1752754709.403 + 90 0.000000 0.000000 23.332 43.077 1752754709.461 + 91 0.000000 0.000000 23.286 43.153 1752754709.518 + 92 0.000000 0.000000 23.262 43.275 1752754709.575 + 93 0.000000 0.000000 23.275 43.044 1752754709.632 + 94 0.000000 0.000000 23.191 43.236 1752754709.687 + 95 0.000000 0.000000 23.351 43.140 1752754709.744 + 96 0.000000 0.000000 23.358 43.171 1752754709.800 + 97 0.000000 0.000000 23.288 43.251 1752754709.855 + 98 0.000000 0.000000 23.216 43.282 1752754709.912 + 99 0.000000 0.000000 23.385 43.211 1752754709.969 + 100 0.000000 0.000000 23.313 43.130 1752754710.024 diff --git a/data/data20250717_alignment_tests/20250717_142038_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_142038_static_0/static_0.dat new file mode 100644 index 0000000..dd71604 --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_142038_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 23.344 43.336 1752754838.569 + 2 0.000000 0.000000 23.377 43.225 1752754838.625 + 3 0.000000 0.000000 23.355 43.253 1752754838.681 + 4 0.000000 0.000000 23.488 43.351 1752754838.738 + 5 0.000000 0.000000 23.307 43.295 1752754838.794 + 6 0.000000 0.000000 23.298 43.233 1752754838.850 + 7 0.000000 0.000000 23.309 43.301 1752754838.907 + 8 0.000000 0.000000 23.193 43.000 1752754838.965 + 9 0.000000 0.000000 23.272 43.216 1752754839.021 + 10 0.000000 0.000000 23.537 43.220 1752754839.077 + 11 0.000000 0.000000 23.326 43.269 1752754839.133 + 12 0.000000 0.000000 23.170 43.353 1752754839.189 + 13 0.000000 0.000000 23.257 43.217 1752754839.245 + 14 0.000000 0.000000 23.264 43.228 1752754839.302 + 15 0.000000 0.000000 23.256 43.232 1752754839.358 + 16 0.000000 0.000000 23.311 43.118 1752754839.415 + 17 0.000000 0.000000 23.244 43.110 1752754839.471 + 18 0.000000 0.000000 23.252 43.228 1752754839.527 + 19 0.000000 0.000000 23.379 43.175 1752754839.583 + 20 0.000000 0.000000 23.362 43.243 1752754839.647 + 21 0.000000 0.000000 23.241 43.165 1752754839.704 + 22 0.000000 0.000000 23.544 43.073 1752754839.760 + 23 0.000000 0.000000 23.347 43.085 1752754839.818 + 24 0.000000 0.000000 23.205 43.418 1752754839.874 + 25 0.000000 0.000000 23.158 43.356 1752754839.931 + 26 0.000000 0.000000 23.324 43.164 1752754839.988 + 27 0.000000 0.000000 23.378 43.130 1752754840.044 + 28 0.000000 0.000000 23.367 43.052 1752754840.100 + 29 0.000000 0.000000 23.233 43.225 1752754840.156 + 30 0.000000 0.000000 23.148 43.259 1752754840.214 + 31 0.000000 0.000000 23.206 43.304 1752754840.273 + 32 0.000000 0.000000 23.318 43.167 1752754840.330 + 33 0.000000 0.000000 23.277 43.185 1752754840.386 + 34 0.000000 0.000000 23.324 43.239 1752754840.443 + 35 0.000000 0.000000 23.193 43.246 1752754840.499 + 36 0.000000 0.000000 23.310 43.121 1752754840.555 + 37 0.000000 0.000000 23.268 43.156 1752754840.611 + 38 0.000000 0.000000 23.385 43.225 1752754840.667 + 39 0.000000 0.000000 23.071 43.437 1752754840.725 + 40 0.000000 0.000000 23.313 43.218 1752754840.780 + 41 0.000000 0.000000 23.137 43.257 1752754840.837 + 42 0.000000 0.000000 23.365 43.104 1752754840.893 + 43 0.000000 0.000000 23.299 43.171 1752754840.948 + 44 0.000000 0.000000 23.427 43.085 1752754841.005 + 45 0.000000 0.000000 23.347 43.260 1752754841.060 + 46 0.000000 0.000000 23.179 43.325 1752754841.117 + 47 0.000000 0.000000 23.339 43.250 1752754841.173 + 48 0.000000 0.000000 23.172 43.410 1752754841.230 + 49 0.000000 0.000000 23.373 43.212 1752754841.287 + 50 0.000000 0.000000 23.363 43.141 1752754841.344 + 51 0.000000 0.000000 23.376 43.343 1752754841.400 + 52 0.000000 0.000000 23.339 43.258 1752754841.457 + 53 0.000000 0.000000 23.310 43.141 1752754841.513 + 54 0.000000 0.000000 23.464 43.148 1752754841.569 + 55 0.000000 0.000000 23.251 43.267 1752754841.625 + 56 0.000000 0.000000 23.176 43.347 1752754841.681 + 57 0.000000 0.000000 23.371 43.282 1752754841.737 + 58 0.000000 0.000000 23.181 43.365 1752754841.792 + 59 0.000000 0.000000 23.303 43.224 1752754841.849 + 60 0.000000 0.000000 23.322 43.302 1752754841.905 + 61 0.000000 0.000000 23.264 43.289 1752754841.961 + 62 0.000000 0.000000 23.443 43.164 1752754842.017 + 63 0.000000 0.000000 23.342 43.284 1752754842.073 + 64 0.000000 0.000000 23.423 43.253 1752754842.129 + 65 0.000000 0.000000 23.302 43.174 1752754842.185 + 66 0.000000 0.000000 23.516 43.093 1752754842.240 + 67 0.000000 0.000000 23.337 43.132 1752754842.298 + 68 0.000000 0.000000 23.490 43.060 1752754842.355 + 69 0.000000 0.000000 23.406 43.096 1752754842.411 + 70 0.000000 0.000000 23.304 43.182 1752754842.468 + 71 0.000000 0.000000 23.350 43.256 1752754842.525 + 72 0.000000 0.000000 23.342 43.399 1752754842.581 + 73 0.000000 0.000000 23.309 43.189 1752754842.637 + 74 0.000000 0.000000 23.514 43.086 1752754842.693 + 75 0.000000 0.000000 23.358 43.138 1752754842.750 + 76 0.000000 0.000000 23.440 43.087 1752754842.805 + 77 0.000000 0.000000 23.506 43.230 1752754842.862 + 78 0.000000 0.000000 23.332 43.258 1752754842.918 + 79 0.000000 0.000000 23.331 43.180 1752754842.974 + 80 0.000000 0.000000 23.304 43.152 1752754843.030 + 81 0.000000 0.000000 23.446 43.207 1752754843.087 + 82 0.000000 0.000000 23.599 43.182 1752754843.143 + 83 0.000000 0.000000 23.357 43.230 1752754843.200 + 84 0.000000 0.000000 23.242 43.361 1752754843.256 + 85 0.000000 0.000000 23.171 43.224 1752754843.312 + 86 0.000000 0.000000 23.163 43.159 1752754843.369 + 87 0.000000 0.000000 23.200 43.302 1752754843.425 + 88 0.000000 0.000000 23.583 43.219 1752754843.481 + 89 0.000000 0.000000 23.446 43.219 1752754843.538 + 90 0.000000 0.000000 23.257 43.044 1752754843.595 + 91 0.000000 0.000000 23.243 43.272 1752754843.651 + 92 0.000000 0.000000 23.297 43.199 1752754843.707 + 93 0.000000 0.000000 23.280 43.191 1752754843.763 + 94 0.000000 0.000000 23.411 43.194 1752754843.820 + 95 0.000000 0.000000 23.091 43.260 1752754843.875 + 96 0.000000 0.000000 23.412 43.135 1752754843.932 + 97 0.000000 0.000000 23.490 43.060 1752754843.988 + 98 0.000000 0.000000 23.410 43.145 1752754844.045 + 99 0.000000 0.000000 23.366 43.292 1752754844.100 + 100 0.000000 0.000000 23.290 43.302 1752754844.156 diff --git a/data/data20250717_alignment_tests/20250717_142058_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_142058_static_0/static_0.dat new file mode 100644 index 0000000..73dff2a --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_142058_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 23.409 43.283 1752754859.270 + 2 0.000000 0.000000 23.211 43.199 1752754859.328 + 3 0.000000 0.000000 23.272 43.285 1752754859.385 + 4 0.000000 0.000000 23.202 43.215 1752754859.441 + 5 0.000000 0.000000 23.440 43.153 1752754859.498 + 6 0.000000 0.000000 23.041 43.242 1752754859.555 + 7 0.000000 0.000000 23.402 43.205 1752754859.612 + 8 0.000000 0.000000 23.448 43.141 1752754859.668 + 9 0.000000 0.000000 23.410 43.299 1752754859.725 + 10 0.000000 0.000000 23.350 43.199 1752754859.781 + 11 0.000000 0.000000 23.240 43.142 1752754859.837 + 12 0.000000 0.000000 23.247 43.239 1752754859.895 + 13 0.000000 0.000000 23.421 43.150 1752754859.952 + 14 0.000000 0.000000 23.331 43.159 1752754860.009 + 15 0.000000 0.000000 23.348 43.252 1752754860.065 + 16 0.000000 0.000000 23.394 43.187 1752754860.121 + 17 0.000000 0.000000 23.363 43.282 1752754860.176 + 18 0.000000 0.000000 23.208 43.233 1752754860.232 + 19 0.000000 0.000000 23.465 43.242 1752754860.290 + 20 0.000000 0.000000 23.416 43.292 1752754860.345 + 21 0.000000 0.000000 23.226 43.234 1752754860.403 + 22 0.000000 0.000000 23.096 43.197 1752754860.459 + 23 0.000000 0.000000 23.554 43.112 1752754860.514 + 24 0.000000 0.000000 23.340 43.089 1752754860.570 + 25 0.000000 0.000000 23.176 43.290 1752754860.627 + 26 0.000000 0.000000 23.358 43.093 1752754860.684 + 27 0.000000 0.000000 23.395 43.169 1752754860.739 + 28 0.000000 0.000000 23.288 43.248 1752754860.795 + 29 0.000000 0.000000 23.339 43.294 1752754860.851 + 30 0.000000 0.000000 23.173 43.165 1752754860.907 + 31 0.000000 0.000000 23.527 43.261 1752754860.963 + 32 0.000000 0.000000 23.300 43.105 1752754861.019 + 33 0.000000 0.000000 23.218 43.243 1752754861.075 + 34 0.000000 0.000000 23.220 43.236 1752754861.133 + 35 0.000000 0.000000 23.358 43.263 1752754861.189 + 36 0.000000 0.000000 23.444 43.292 1752754861.245 + 37 0.000000 0.000000 23.313 43.313 1752754861.301 + 38 0.000000 0.000000 23.445 43.257 1752754861.358 + 39 0.000000 0.000000 23.403 43.136 1752754861.415 + 40 0.000000 0.000000 23.351 43.219 1752754861.471 + 41 0.000000 0.000000 23.393 43.160 1752754861.527 + 42 0.000000 0.000000 23.208 43.204 1752754861.583 + 43 0.000000 0.000000 23.230 43.202 1752754861.642 + 44 0.000000 0.000000 23.424 43.235 1752754861.699 + 45 0.000000 0.000000 23.281 43.285 1752754861.755 + 46 0.000000 0.000000 23.325 43.229 1752754861.812 + 47 0.000000 0.000000 23.509 43.005 1752754861.869 + 48 0.000000 0.000000 23.307 43.120 1752754861.926 + 49 0.000000 0.000000 23.176 43.388 1752754861.982 + 50 0.000000 0.000000 23.478 43.112 1752754862.039 + 51 0.000000 0.000000 23.129 43.349 1752754862.096 + 52 0.000000 0.000000 23.343 43.180 1752754862.153 + 53 0.000000 0.000000 23.202 43.160 1752754862.209 + 54 0.000000 0.000000 23.289 43.268 1752754862.265 + 55 0.000000 0.000000 23.371 43.143 1752754862.320 + 56 0.000000 0.000000 23.341 43.252 1752754862.376 + 57 0.000000 0.000000 23.423 43.106 1752754862.432 + 58 0.000000 0.000000 23.255 43.186 1752754862.489 + 59 0.000000 0.000000 23.488 43.189 1752754862.545 + 60 0.000000 0.000000 23.288 43.177 1752754862.602 + 61 0.000000 0.000000 23.238 43.111 1752754862.661 + 62 0.000000 0.000000 23.296 43.162 1752754862.717 + 63 0.000000 0.000000 23.348 43.357 1752754862.773 + 64 0.000000 0.000000 23.301 43.372 1752754862.828 + 65 0.000000 0.000000 23.478 43.227 1752754862.885 + 66 0.000000 0.000000 23.070 43.299 1752754862.941 + 67 0.000000 0.000000 23.370 43.098 1752754863.000 + 68 0.000000 0.000000 23.419 43.167 1752754863.055 + 69 0.000000 0.000000 23.344 43.146 1752754863.113 + 70 0.000000 0.000000 23.455 43.040 1752754863.170 + 71 0.000000 0.000000 23.165 43.391 1752754863.225 + 72 0.000000 0.000000 23.272 43.399 1752754863.281 + 73 0.000000 0.000000 23.287 43.225 1752754863.337 + 74 0.000000 0.000000 23.299 43.098 1752754863.393 + 75 0.000000 0.000000 23.385 43.194 1752754863.449 + 76 0.000000 0.000000 23.354 43.279 1752754863.505 + 77 0.000000 0.000000 23.190 43.285 1752754863.561 + 78 0.000000 0.000000 23.278 43.282 1752754863.618 + 79 0.000000 0.000000 23.416 43.100 1752754863.674 + 80 0.000000 0.000000 23.364 43.247 1752754863.735 + 81 0.000000 0.000000 23.291 43.271 1752754863.791 + 82 0.000000 0.000000 23.324 43.277 1752754863.847 + 83 0.000000 0.000000 23.444 43.081 1752754863.904 + 84 0.000000 0.000000 23.408 43.084 1752754863.961 + 85 0.000000 0.000000 23.416 43.265 1752754864.017 + 86 0.000000 0.000000 23.233 43.201 1752754864.072 + 87 0.000000 0.000000 23.211 43.194 1752754864.128 + 88 0.000000 0.000000 23.413 43.298 1752754864.184 + 89 0.000000 0.000000 23.317 43.115 1752754864.241 + 90 0.000000 0.000000 23.395 43.142 1752754864.297 + 91 0.000000 0.000000 23.358 43.417 1752754864.354 + 92 0.000000 0.000000 23.432 43.185 1752754864.410 + 93 0.000000 0.000000 23.467 43.279 1752754864.467 + 94 0.000000 0.000000 23.265 43.327 1752754864.523 + 95 0.000000 0.000000 23.286 43.230 1752754864.579 + 96 0.000000 0.000000 23.240 43.273 1752754864.635 + 97 0.000000 0.000000 23.292 43.300 1752754864.691 + 98 0.000000 0.000000 23.313 43.266 1752754864.747 + 99 0.000000 0.000000 23.274 43.266 1752754864.803 + 100 0.000000 0.000000 23.260 43.215 1752754864.860 diff --git a/data/data20250717_alignment_tests/20250717_142137_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_142137_static_0/static_0.dat new file mode 100644 index 0000000..a0d1784 --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_142137_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 95.005 175.097 1752754897.905 + 2 0.000000 0.000000 95.034 175.170 1752754897.962 + 3 0.000000 0.000000 94.924 174.743 1752754898.018 + 4 0.000000 0.000000 95.037 174.492 1752754898.074 + 5 0.000000 0.000000 94.639 175.064 1752754898.132 + 6 0.000000 0.000000 95.114 174.804 1752754898.189 + 7 0.000000 0.000000 94.790 174.827 1752754898.245 + 8 0.000000 0.000000 95.120 174.688 1752754898.301 + 9 0.000000 0.000000 94.662 174.809 1752754898.357 + 10 0.000000 0.000000 94.879 175.134 1752754898.413 + 11 0.000000 0.000000 94.915 174.832 1752754898.470 + 12 0.000000 0.000000 95.147 174.999 1752754898.527 + 13 0.000000 0.000000 94.365 174.856 1752754898.584 + 14 0.000000 0.000000 94.998 174.629 1752754898.641 + 15 0.000000 0.000000 95.039 174.765 1752754898.697 + 16 0.000000 0.000000 94.438 175.036 1752754898.754 + 17 0.000000 0.000000 95.054 174.666 1752754898.810 + 18 0.000000 0.000000 95.068 174.800 1752754898.867 + 19 0.000000 0.000000 94.831 174.618 1752754898.923 + 20 0.000000 0.000000 95.249 174.679 1752754898.979 + 21 0.000000 0.000000 94.729 174.938 1752754899.036 + 22 0.000000 0.000000 94.805 175.050 1752754899.093 + 23 0.000000 0.000000 94.378 174.908 1752754899.150 + 24 0.000000 0.000000 94.928 174.657 1752754899.207 + 25 0.000000 0.000000 95.147 174.805 1752754899.265 + 26 0.000000 0.000000 95.116 175.144 1752754899.321 + 27 0.000000 0.000000 94.733 174.851 1752754899.378 + 28 0.000000 0.000000 94.863 174.491 1752754899.435 + 29 0.000000 0.000000 94.872 174.785 1752754899.491 + 30 0.000000 0.000000 94.908 175.101 1752754899.548 + 31 0.000000 0.000000 94.801 174.824 1752754899.603 + 32 0.000000 0.000000 95.082 174.908 1752754899.660 + 33 0.000000 0.000000 95.093 174.867 1752754899.716 + 34 0.000000 0.000000 94.859 174.911 1752754899.772 + 35 0.000000 0.000000 95.107 174.172 1752754899.829 + 36 0.000000 0.000000 94.720 174.557 1752754899.886 + 37 0.000000 0.000000 95.068 174.587 1752754899.942 + 38 0.000000 0.000000 94.654 174.863 1752754899.999 + 39 0.000000 0.000000 94.870 175.040 1752754900.054 + 40 0.000000 0.000000 94.878 174.881 1752754900.111 + 41 0.000000 0.000000 94.462 174.950 1752754900.168 + 42 0.000000 0.000000 94.864 175.018 1752754900.224 + 43 0.000000 0.000000 94.815 174.565 1752754900.281 + 44 0.000000 0.000000 94.664 174.839 1752754900.337 + 45 0.000000 0.000000 94.922 175.172 1752754900.393 + 46 0.000000 0.000000 94.707 174.957 1752754900.450 + 47 0.000000 0.000000 94.901 175.337 1752754900.506 + 48 0.000000 0.000000 94.841 174.902 1752754900.561 + 49 0.000000 0.000000 94.777 174.714 1752754900.618 + 50 0.000000 0.000000 95.155 174.559 1752754900.674 + 51 0.000000 0.000000 95.063 174.670 1752754900.731 + 52 0.000000 0.000000 94.804 174.846 1752754900.788 + 53 0.000000 0.000000 95.062 174.590 1752754900.844 + 54 0.000000 0.000000 95.294 174.925 1752754900.901 + 55 0.000000 0.000000 94.534 174.835 1752754900.957 + 56 0.000000 0.000000 94.669 175.028 1752754901.014 + 57 0.000000 0.000000 94.769 174.815 1752754901.069 + 58 0.000000 0.000000 94.740 174.686 1752754901.127 + 59 0.000000 0.000000 95.012 174.563 1752754901.184 + 60 0.000000 0.000000 95.048 175.156 1752754901.240 + 61 0.000000 0.000000 94.828 174.876 1752754901.295 + 62 0.000000 0.000000 94.688 174.932 1752754901.351 + 63 0.000000 0.000000 95.261 174.635 1752754901.408 + 64 0.000000 0.000000 94.910 174.759 1752754901.464 + 65 0.000000 0.000000 95.098 175.326 1752754901.521 + 66 0.000000 0.000000 94.868 174.889 1752754901.577 + 67 0.000000 0.000000 94.673 174.764 1752754901.634 + 68 0.000000 0.000000 95.247 174.401 1752754901.691 + 69 0.000000 0.000000 94.748 174.482 1752754901.748 + 70 0.000000 0.000000 95.034 174.770 1752754901.804 + 71 0.000000 0.000000 94.641 175.144 1752754901.861 + 72 0.000000 0.000000 94.625 175.115 1752754901.917 + 73 0.000000 0.000000 94.523 175.067 1752754901.974 + 74 0.000000 0.000000 94.980 174.630 1752754902.030 + 75 0.000000 0.000000 95.016 174.792 1752754902.087 + 76 0.000000 0.000000 95.140 174.553 1752754902.142 + 77 0.000000 0.000000 94.695 174.752 1752754902.198 + 78 0.000000 0.000000 94.947 174.600 1752754902.254 + 79 0.000000 0.000000 94.689 175.106 1752754902.310 + 80 0.000000 0.000000 94.810 174.566 1752754902.367 + 81 0.000000 0.000000 94.931 174.912 1752754902.425 + 82 0.000000 0.000000 94.605 174.790 1752754902.481 + 83 0.000000 0.000000 95.070 174.991 1752754902.537 + 84 0.000000 0.000000 95.470 175.330 1752754902.593 + 85 0.000000 0.000000 94.826 174.773 1752754902.649 + 86 0.000000 0.000000 95.228 175.039 1752754902.705 + 87 0.000000 0.000000 94.470 174.893 1752754902.762 + 88 0.000000 0.000000 94.708 175.148 1752754902.819 + 89 0.000000 0.000000 94.938 174.584 1752754902.876 + 90 0.000000 0.000000 94.942 175.001 1752754902.932 + 91 0.000000 0.000000 95.127 174.965 1752754902.989 + 92 0.000000 0.000000 94.492 175.118 1752754903.044 + 93 0.000000 0.000000 94.529 174.846 1752754903.100 + 94 0.000000 0.000000 95.051 175.134 1752754903.157 + 95 0.000000 0.000000 94.744 174.702 1752754903.215 + 96 0.000000 0.000000 94.963 175.141 1752754903.272 + 97 0.000000 0.000000 94.748 175.080 1752754903.329 + 98 0.000000 0.000000 95.171 175.005 1752754903.385 + 99 0.000000 0.000000 94.667 174.991 1752754903.442 + 100 0.000000 0.000000 94.811 174.931 1752754903.500 diff --git a/data/data20250717_alignment_tests/20250717_142234_static_0/static_0.dat b/data/data20250717_alignment_tests/20250717_142234_static_0/static_0.dat new file mode 100644 index 0000000..e6be79a --- /dev/null +++ b/data/data20250717_alignment_tests/20250717_142234_static_0/static_0.dat @@ -0,0 +1,100 @@ + 1 0.000000 0.000000 101.452 172.493 1752754954.589 + 2 0.000000 0.000000 101.539 172.282 1752754954.645 + 3 0.000000 0.000000 101.462 172.260 1752754954.702 + 4 0.000000 0.000000 101.510 172.469 1752754954.758 + 5 0.000000 0.000000 101.606 172.222 1752754954.815 + 6 0.000000 0.000000 101.450 172.392 1752754954.872 + 7 0.000000 0.000000 101.504 172.285 1752754954.928 + 8 0.000000 0.000000 101.697 172.339 1752754954.985 + 9 0.000000 0.000000 101.564 172.274 1752754955.041 + 10 0.000000 0.000000 101.436 172.404 1752754955.097 + 11 0.000000 0.000000 101.439 172.364 1752754955.152 + 12 0.000000 0.000000 101.365 172.471 1752754955.208 + 13 0.000000 0.000000 101.792 172.277 1752754955.264 + 14 0.000000 0.000000 101.549 172.206 1752754955.320 + 15 0.000000 0.000000 101.658 172.399 1752754955.377 + 16 0.000000 0.000000 101.464 172.484 1752754955.435 + 17 0.000000 0.000000 101.436 172.473 1752754955.492 + 18 0.000000 0.000000 101.546 172.382 1752754955.548 + 19 0.000000 0.000000 101.747 172.466 1752754955.605 + 20 0.000000 0.000000 101.958 172.023 1752754955.662 + 21 0.000000 0.000000 101.892 172.110 1752754955.719 + 22 0.000000 0.000000 101.551 172.370 1752754955.775 + 23 0.000000 0.000000 101.270 172.567 1752754955.831 + 24 0.000000 0.000000 101.762 172.260 1752754955.887 + 25 0.000000 0.000000 101.634 172.276 1752754955.943 + 26 0.000000 0.000000 101.207 172.447 1752754955.999 + 27 0.000000 0.000000 101.568 172.505 1752754956.055 + 28 0.000000 0.000000 101.409 172.357 1752754956.112 + 29 0.000000 0.000000 101.555 172.171 1752754956.168 + 30 0.000000 0.000000 101.713 172.246 1752754956.224 + 31 0.000000 0.000000 101.672 172.495 1752754956.280 + 32 0.000000 0.000000 101.636 172.336 1752754956.337 + 33 0.000000 0.000000 101.472 172.267 1752754956.394 + 34 0.000000 0.000000 101.634 172.445 1752754956.450 + 35 0.000000 0.000000 101.471 172.341 1752754956.507 + 36 0.000000 0.000000 101.428 172.354 1752754956.563 + 37 0.000000 0.000000 101.497 172.240 1752754956.619 + 38 0.000000 0.000000 101.620 172.270 1752754956.676 + 39 0.000000 0.000000 101.547 172.210 1752754956.732 + 40 0.000000 0.000000 101.297 172.219 1752754956.789 + 41 0.000000 0.000000 101.485 172.200 1752754956.846 + 42 0.000000 0.000000 101.646 172.412 1752754956.902 + 43 0.000000 0.000000 101.552 172.234 1752754956.960 + 44 0.000000 0.000000 101.445 172.550 1752754957.018 + 45 0.000000 0.000000 101.470 172.501 1752754957.074 + 46 0.000000 0.000000 101.701 172.286 1752754957.131 + 47 0.000000 0.000000 101.348 172.383 1752754957.187 + 48 0.000000 0.000000 101.296 172.289 1752754957.243 + 49 0.000000 0.000000 101.661 172.210 1752754957.299 + 50 0.000000 0.000000 101.466 172.190 1752754957.355 + 51 0.000000 0.000000 101.350 172.281 1752754957.410 + 52 0.000000 0.000000 101.479 172.423 1752754957.466 + 53 0.000000 0.000000 101.422 172.379 1752754957.522 + 54 0.000000 0.000000 101.366 172.235 1752754957.578 + 55 0.000000 0.000000 101.659 172.374 1752754957.634 + 56 0.000000 0.000000 101.353 172.353 1752754957.690 + 57 0.000000 0.000000 101.346 172.351 1752754957.746 + 58 0.000000 0.000000 101.469 172.014 1752754957.802 + 59 0.000000 0.000000 101.299 172.470 1752754957.859 + 60 0.000000 0.000000 101.448 172.476 1752754957.917 + 61 0.000000 0.000000 101.341 172.410 1752754957.972 + 62 0.000000 0.000000 101.519 172.250 1752754958.029 + 63 0.000000 0.000000 101.436 172.381 1752754958.086 + 64 0.000000 0.000000 101.467 172.302 1752754958.142 + 65 0.000000 0.000000 101.344 172.281 1752754958.198 + 66 0.000000 0.000000 101.548 172.370 1752754958.254 + 67 0.000000 0.000000 101.260 172.346 1752754958.311 + 68 0.000000 0.000000 101.732 172.347 1752754958.367 + 69 0.000000 0.000000 101.367 172.487 1752754958.423 + 70 0.000000 0.000000 101.136 172.286 1752754958.481 + 71 0.000000 0.000000 101.247 172.280 1752754958.538 + 72 0.000000 0.000000 101.403 172.314 1752754958.594 + 73 0.000000 0.000000 101.619 172.501 1752754958.651 + 74 0.000000 0.000000 101.578 172.388 1752754958.708 + 75 0.000000 0.000000 101.297 172.412 1752754958.766 + 76 0.000000 0.000000 101.662 172.290 1752754958.824 + 77 0.000000 0.000000 101.210 172.380 1752754958.880 + 78 0.000000 0.000000 101.049 172.265 1752754958.936 + 79 0.000000 0.000000 101.642 172.307 1752754958.993 + 80 0.000000 0.000000 101.864 172.098 1752754959.048 + 81 0.000000 0.000000 101.917 172.067 1752754959.105 + 82 0.000000 0.000000 101.693 172.236 1752754959.161 + 83 0.000000 0.000000 101.294 172.555 1752754959.217 + 84 0.000000 0.000000 101.112 172.405 1752754959.273 + 85 0.000000 0.000000 101.901 171.900 1752754959.331 + 86 0.000000 0.000000 101.469 172.243 1752754959.387 + 87 0.000000 0.000000 101.373 172.265 1752754959.443 + 88 0.000000 0.000000 101.187 172.523 1752754959.499 + 89 0.000000 0.000000 101.298 172.366 1752754959.555 + 90 0.000000 0.000000 101.326 172.388 1752754959.612 + 91 0.000000 0.000000 101.716 172.018 1752754959.667 + 92 0.000000 0.000000 101.436 172.252 1752754959.724 + 93 0.000000 0.000000 101.298 172.271 1752754959.780 + 94 0.000000 0.000000 101.193 172.379 1752754959.836 + 95 0.000000 0.000000 101.278 172.294 1752754959.895 + 96 0.000000 0.000000 101.670 172.201 1752754959.954 + 97 0.000000 0.000000 101.790 172.298 1752754960.010 + 98 0.000000 0.000000 101.520 172.058 1752754960.109 + 99 0.000000 0.000000 101.483 172.130 1752754960.196 + 100 0.000000 0.000000 101.545 172.511 1752754960.253 diff --git a/notebooks/sample.ipynb b/notebooks/sample.ipynb index f828969..5f6bea2 100644 --- a/notebooks/sample.ipynb +++ b/notebooks/sample.ipynb @@ -26,7 +26,7 @@ "\n", "## Improved image prcesing for optical position measurement\n", "\n", - "I found that the lense flair effects the center of mass considerably. To fix that I implemented a threshhold.\n", + "I found that the lense flair effects the center of mass considerably. To fix that I implemented a threshhold. this introduces an undesiarable descritisation effect sinc pixels suddenly get added remove when passing the threshhold, another option would be to ron a gradient decent optimizer at a lover exposure time with som gausian blur for preprocesing. this would work great under the assumption the intencity distribution gausian\n", "\n", "| Befor | After |\n", "|:----------------------------------------:|:----------------------------------------:|\n", @@ -81,12 +81,13 @@ "source_hidden": true }, "ExecuteTime": { - "end_time": "2025-07-17T08:24:45.640478Z", - "start_time": "2025-07-17T08:24:45.332300Z" + "end_time": "2025-07-17T12:22:27.266605Z", + "start_time": "2025-07-17T12:22:27.024282Z" } }, "source": [ "import sys\n", + "from time import sleep\n", "\n", "# Imports\n", "\n", @@ -131,6 +132,7 @@ "#TODO: mirror struct from jason\n", "\n", "#local includes\n", + "import matplotlib.dates as mdates\n", "import metrology_functions as mf\n", "import myutility as myu\n", "from matplotlib.widgets import Cursor\n", @@ -158,6 +160,10 @@ "\n", " return config.get(\"Exposure_time\")\n", "\n", + "def init_image_processing_yes_no():\n", + " config = myu.load_object(config_path)\n", + " return config.get(\"Img_Processing\",0)==1\n", + "\n", "\n", "\n", "\n", @@ -176,16 +182,24 @@ "\n", "# Dropdown menu to choose measurement function\n", "measurement_options = {\n", - " \"Image Test\": mf.image_test,\"Repeatability Test\": mf.run_repeatability_series,\n", + " \"Image Test\": mf.image_test,\n", + " \"Repeatability Test\": mf.run_repeatability_series,\n", " \"Static Test\": mf.static_test\n", "}\n", "\n", "dropdown = widgets.Dropdown(\n", " options=list(measurement_options.keys()),\n", - " value=\"Repeatability Test\",\n", + " value=\"Image Test\",\n", " description=\"Test Type:\",\n", " disabled=False,\n", ")\n", + "# Toggle button for processing state\n", + "processing_toggle = widgets.ToggleButton(\n", + " value=init_image_processing_yes_no(),\n", + " description='Processing',\n", + " button_style='', # 'success', 'info', 'warning', 'danger' or ''\n", + " tooltip='Toggle processing on/off'\n", + ")\n", "\n", "exposure_input = widgets.Text(value=str(init_exposure_time()), description='Exposure [s]:')\n", "# --------------------------------------------------Output chanels-----------------------------------------------\n", @@ -194,7 +208,7 @@ "output3 = widgets.Output()\n", "output4 = widgets.Output()\n", "output5 = widgets.Output()\n", - "\n", + "output6 = widgets.Output()\n", "# --------------------------------------------------IRQs-----------------------------------------------\n", "def start_measurement(b):\n", " with output1:\n", @@ -208,6 +222,7 @@ "\n", " # Call the selected test function\n", " test_function()\n", + " print(f\"Measurement '{selected_test}' completed\")\n", "\n", "# Set number of cycles and save to config\n", "def set_nr_of_cycles(change):\n", @@ -236,20 +251,41 @@ " with output4:\n", " clear_output()\n", " print(\"Invalid input. Please enter a number.\")\n", - "def load_ev_time_to_cam():\n", + "\n", + "def load_ev_time_to_cam(c):\n", " with output5:\n", " clear_output()\n", " mf.my_set_ev()\n", + " sleep(2)\n", + " clear_output()\n", + "\n", + "# Update processing value in the JSON config\n", + "def set_processing_state(change_p):\n", + " new_state_p = 1 if change_p['new'] else 0\n", + " config_processing = myu.load_object(config_path)\n", + " config_processing['Img_Processing'] = new_state_p\n", + " if change_p['new']:\n", + " config_processing['pixel_size_mu'] = 0.275\n", + " else:\n", + " config_processing['pixel_size_mu'] = 1.1\n", + " myu.save_config(config_path,config_processing)\n", + "\n", + " with output6:\n", + " clear_output()\n", + " print(f\"Processing state set to: {new_state_p}\")\n", + "\n", "# --------------------------------------------------Unmask IRQs-----------------------------------------------\n", "nr_of_cycles.observe(set_nr_of_cycles, names='value')\n", "start_button.on_click(start_measurement)\n", - "ev_button.on_click(load_ev_time_to_cam,output5)\n", + "ev_button.on_click(load_ev_time_to_cam)\n", "exposure_input.observe(set_exposure_time, names='value')\n", + "processing_toggle.observe(set_processing_state, names='value')\n", "\n", "# --------------------------------------------------Display-----------------------------------------------\n", "display(dropdown,output3)\n", "display(nr_of_cycles, output2)\n", "display(exposure_input, output4)\n", + "display(processing_toggle, output6)\n", "display(ev_button,output5)\n", "display(start_button, output1)\n", "\n", @@ -269,21 +305,20 @@ "Connect to PLC\n", "is_open()=True\n", "get_local_address()=None\n", - "read_device_info()=('Plc30 App', )\n", + "read_device_info()=('Plc30 App', )\n", "GVL_APP.nAXIS_NUM=3\n", - "Constructor for axis\n", - "0.006\n" + "Constructor for axis\n" ] }, { "data": { "text/plain": [ - "Dropdown(description='Test Type:', index=1, options=('Image Test', 'Repeatability Test', 'Static Test'), value…" + "Dropdown(description='Test Type:', options=('Image Test', 'Repeatability Test', 'Static Test'), value='Image T…" ], "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "9a684efad38f4a87b5e2e46ba7086576" + "model_id": "ee7a768801c342a283cdda86bd2e8368" } }, "metadata": {}, @@ -297,7 +332,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "24d9b5ab4e344644bd87b584e9ef061f" + "model_id": "b5005de3a509443f963f4a91304bddd0" } }, "metadata": {}, @@ -306,12 +341,12 @@ { "data": { "text/plain": [ - "BoundedIntText(value=200, description='Nr of cycles:', max=1000, min=1)" + "BoundedIntText(value=3, description='Nr of cycles:', max=1000, min=1)" ], "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "71befd61b3d24c2cb6d179ad4e529429" + "model_id": "2152eb158c4943d784735cf3387b0523" } }, "metadata": {}, @@ -325,7 +360,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "37eaf9aa950e40a49668bb642f6710b0" + "model_id": "bfc8bfe33c2a4d3f9d9fb17736a7ea0a" } }, "metadata": {}, @@ -334,12 +369,12 @@ { "data": { "text/plain": [ - "Text(value='0.002', description='Exposure [s]:')" + "Text(value='0.0004', description='Exposure [s]:')" ], "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "140a8daecf834fa89e7e545a9470a4c6" + "model_id": "2d05026ce82f4bc4bf166a4a8e63e345" } }, "metadata": {}, @@ -353,7 +388,35 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "0a7bac91ac9f4ac5bf97a894ea2a29f3" + "model_id": "9263ba886ff34919b1a2b1b6d1194235" + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "ToggleButton(value=True, description='Processing', tooltip='Toggle processing on/off')" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "024d95ea936a42c4a1b6e8e36a33e41c" + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "Output()" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "ce91e4efd9b54f94a488a46b8db4470d" } }, "metadata": {}, @@ -367,7 +430,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "e47f92cd2d224606b7ef0133b89f14ce" + "model_id": "d19fed7882dc47748ecf83a0077e7be5" } }, "metadata": {}, @@ -381,7 +444,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "7d0fb4a326734eab9d39719ce5d2d5cc" + "model_id": "765501f547cc4b86b76c0914f95e7b47" } }, "metadata": {}, @@ -395,7 +458,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "86d9ae24158146158b01ba359d080dbd" + "model_id": "b018496eab1e4d1e9831a9ed54a016b1" } }, "metadata": {}, @@ -409,14 +472,14 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "f148b73a58f14c8ba69795dc48434d5e" + "model_id": "498f339cd2a54e17a7fb2cb9c151857a" } }, "metadata": {}, "output_type": "display_data" } ], - "execution_count": 1 + "execution_count": 2 }, { "cell_type": "markdown", @@ -471,7 +534,7 @@ "data_folder = r'C:\\Users\\berti_r\\Python_Projects\\StagePerformaceDocu\\data\\Temp'\n", "%matplotlib widget\n", "\n", - "import matplotlib.dates as mdates\n", + "\n", "# Load the newest file\n", "\n", "# Load file\n", @@ -554,10 +617,15 @@ }, "source": [ "# Load latest file from folder\n", + "def get_pixel_size():\n", + " config = myu.load_object(config_path)\n", + " return config.get(\"pixel_size_mu\")\n", + "\n", "data_folder = myu.get_latest_measurement_dir()\n", "file_path = myu.find_newest_dat_file(data_folder)\n", "x_vals, y_vals, times = myu.load_xy_data(file_path)\n", - "\n", + "x_vals = x_vals*get_pixel_size()\n", + "y_vals = y_vals*get_pixel_size()\n", "fig2, (ax1, ax2) = plt.subplots(2, 1, sharex=True, figsize=(10, 6))\n", "fig2.subplots_adjust(hspace=0.3)\n", "\n", @@ -647,19 +715,31 @@ "metadata": { "jupyter": { "source_hidden": true + }, + "ExecuteTime": { + "end_time": "2025-07-17T12:22:46.372238Z", + "start_time": "2025-07-17T12:22:46.156314Z" } }, "source": [ + "\n", + "\n", + "def get_pixel_size():\n", + " config = myu.load_object(config_path)\n", + " return config.get(\"pixel_size_mu\")\n", + "\n", "\n", "axis_path_1 = myu.get_latest_measurement_dir(1)\n", "print(axis_path_1)\n", - "axis_path_1 = r\"C:\\Users\\berti_r\\Python_Projects\\StagePerformaceDocu\\data\\data20250717_alignment_tests\\20250717_085115_static_0\" #uncomment for specific path\n", + "#axis_path_1 = r\"C:\\Users\\berti_r\\Python_Projects\\StagePerformaceDocu\\data\\data20250717_alignment_tests\\20250717_085115_static_0\" #uncomment for specific path\n", "axis_data_file_path_1 = myu.find_newest_dat_file(axis_path_1)\n", "print(axis_data_file_path_1)\n", "#mf.analyze_repeatability(axis_data_file_path_1,1.1)\n", "\n", "\n", "x_vals, y_vals, times = myu.load_xy_data(axis_data_file_path_1)\n", + "x_vals = x_vals*get_pixel_size()\n", + "y_vals = y_vals*get_pixel_size()\n", "\n", "#Calc statistics\n", "rms_x = np.sqrt(np.mean(np.square(x_vals)))\n", @@ -749,8 +829,32 @@ "plt.tight_layout()\n", "plt.show()\n" ], - "outputs": [], - "execution_count": null + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using daily folder: C:\\Users\\berti_r\\Python_Projects\\StagePerformaceDocu\\data\\data20250717_alignment_tests\n", + "C:\\Users\\berti_r\\Python_Projects\\StagePerformaceDocu\\data\\data20250717_alignment_tests\\20250717_142234_static_0\n", + "C:\\Users\\berti_r\\Python_Projects\\StagePerformaceDocu\\data\\data20250717_alignment_tests\\20250717_142234_static_0\\static_0.dat\n", + "Statistics| X | Y |\n", + " STD |0.05|0.04|\n", + " P2V |0.45|0.38|\n", + " \n" + ] + }, + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "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Vljk3YdOHR8AQLCRXg4A8I0HHnjAtMxqGvSuXbvkwQcfNKnY48aNk1KlSoX934yMDHnvvffkrLPOko4dO0r58uXlrbfeyrWMtvzmTRleu3atSX0eOHBggenlv//+u9x8880mRbpFixZy1VVXRZTmXhhNM1d//vln9nMfffSRqXBo1aqVnHbaaabVNWcK+r59+2TIkCFy+umnm//XluMXX3yxwPTyUCu36tChQ3ZKed70ct2/muqt+6pZs2Zy4YUXyjvvvJNrW/V/tIJgxIgRcuqpp5r9dOONN8qvv/4a9jg888wz0q5du1wBd86g99FHHzWt3RqcK007v+OOO/Ite8kll8gtt9yS/fjzzz83+0m3V/eTrmfv3r3Zr+uxO+ecc2TixInSpk0bsw0lSeXPWVZC+/jbb781mQy6L7S7wL/+9S/TPaJPnz7m+GmF0SuvvJJrPdu3bzfHVPehbnvXrl3NegAAwUDQDQDwjQoVKsioUaNMENOzZ0/55JNP5JFHHpEjjzyyyP+dP3++bNmyxbSkli1b1qSZT58+PVcfcQ1CL774YnnuuedMsH3o0CG59957pWbNmjJo0KB868zMzDSt5n///beMHDlSnn76aalataoJBLUVvTh++eUX8zv0mXSd2oqvraoa4N52222mP7oGdhpsq8cff9x8Pk2v12BbP4duz7vvvptv/RoIhgJVDT5vvfXWfMvoert16yYzZ840fa51G1q3bm32wbPPPptr2cmTJ5u0fQ3QNcj98ccfw6b5r1q1yhwHDdgL06BBA5O9oJUgSo+JVmRo6neIHp+ff/7ZBN5Kt1X3Tf369eWpp54yQe77779vPl/OnnRamaHr0ooarXyoUqWKOEmPlX42LUP16tUzXQi0rB577LFmP2owrvvqhx9+yG5Jv/baa81nveuuu8wx0UwK3e8E3gAQDKSXAwB8RVsLNYjRNHNthdXgORLawqt9ubUlUWmLqLbcagCrA7TlbE1fsGCB6cer6c4aJGoqtAb8eaWnp5uAUwM7bcFUGlRp4FTQgG85aSCoQX2ItrguWrTItALrZ9QWa31OH2vLp7aEhujn6N69uwmq9bf+n7bsav9opa3u2pKfkpKS732rVauW3W+7cePG2X268+6r//znP/Lmm2+abVHt27c326uBow5Gp5ULSvti63NJSUnZLf/a+qst1Ycddli+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6tbH+pPT7NmzCwzaAQAAAACIhYQsnZcLRlqavSPjxYrWcaSmVmJfwDOUQXiNMggbUA7hNcogvJbggzIY2saiJMZkawAAAAAAiEME3QAAAAAAuISgGwAAAAAAlxB0AwAAAADgEoJuAAAAAABcQtANAAAAAIBLCLoBAAAAAHBJslsr9iOdZy3ehfYB+wJeoQzCa5RB2IByCK9RBuG1BB+UwUi3LSEry9apxgEAAAAA8DfSywEAAAAAcAlBNwAAAAAALiHoBgAAAADAJQTdAAAAAAC4hKAbAAAAAACXEHQDAAAAAOASgm4AAAAAAFxC0A0AAAAAgEsIugEAAAAAcAlBtw8dOHBALrzwQlm4cGG+13bt2iXt27eXadOmhf3/ESNGyOmnny4nnXSS3HbbbbJx48bs1zdt2iR33HGHtGnTxqxr2LBhsn///kLX9/7778t5550nzZs3l3/84x/yww8/5Hr9xBNPlIYNG+b62bNnT7E/P7zntzL4ySefmNdbtmwpN9xwg2zYsKHYnx328FM5zHsODP289957JdoH8JafymBWVpZMmDAh+7369u0rW7duLdHnh/f8VgZffPFFOfvss8294f3338/9YEDYVg5D/vjjD2nVqlW+7XrllVfMevS1gQMHyt9//y1uI+j2GS1g/fr1k9WrVxf4+qhRo2Tz5s1h1zF+/Hj5/PPPZfTo0fLGG2/IoUOHpE+fPuZkqD9aqLXwTZ06VcaNGydz586VJ554osB1LV68WAYNGiS33nqrfPjhh6bw3nTTTdknUf2S6JdN3++rr77K/ilfvrwDewNe8FsZXLJkidx9991y/fXXmxN+6dKlzfbD3/xWDnOe//SnV69eUrt2benQoYMDewNe8FsZfOutt+Sdd94x76Xr023T5eFffiyDEydONNus76X3iHp9hr/ZVg5zGjJkiOzduzfXc7NmzTLl8OGHH5ZXX31Vli9fbrbRdVnwjdWrV2ddfPHFWRdddFHWcccdl7VgwYJcr3/33XdZ55xzTtZpp52W9e677xa6nlNPPTXrww8/zH68adMms75ffvkla82aNebvLVu2ZL8+c+bMrHbt2hW4ro8++ijr6aefzn68a9cu8//Lly83j7/++muzPQgGP5bB2267Leu+++7Lfv3333/POuuss7LS09OLuRfgNT+Ww5y0DDZr1sycH+FPfiyDN998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8YS5HuvovTpasJ4XORfGFy/LoLZ0aku4BlYadF9yySXSv3//GH56xEM5LErnzp1NOdTAWwdP05ZwjVfclqA55q6/CwAAAAAAcYj5cgAAAAAAcAlBNwAAAAAALiHoBgAAAADAJQTdAAAAAAC4hKAbAAAAAACXEHQDAAAAAOASgm4AAAAAAFxC0A0AAAAAgEuS3VoxAACwx3333SfTp08Pu8zs2bOlTp06MdsmAADiQUJWVlaW1xsBAADctWvXLtm3b5/5+6OPPpKXXnpJ3nnnHfM4MzNTMjIypGbNmpKUlOTxlgIAECy0dAMAEAcqVapkfkJ/a3BdvXp1rzcLAIDAo083AABx7o8//pCGDRua30r//vjjj+WCCy6QFi1aSL9+/WT9+vXSs2dP87hbt26yadOm7P//7LPPpFOnTua1K664QhYtWuThpwEAwC4E3QAAIJ/x48fL8OHD5bnnnpNPP/1Urr76avPz5ptvypYtW+SFF14wy/38888yYMAAueWWW+T999+Xiy++WG666Sb57bffvP4IAABYgfRyAACQz3XXXWdarlXjxo2lXr16puVbnXvuuSbYVi+++KJ07dpVLrroIvNYW8O/++47eeONN8zgbQAAxDuCbgAAkM+RRx6Z/XfZsmWldu3auR4fOHDA/L127VqTiv7WW29lv37w4EFp165djLcYAAA7EXQDAIB88o5inphYcI80HfVc08kvvfTSXM9rYA4AAOjTDQAASkDTznUAtrp162b/aKv3/Pnzvd40AACsQNANAABK1Pdb5/2ePHmy/P777/LKK6+Yn6OPPtrrTQMAwAoE3QAAoNhatmwpI0eOlNdff91MG/b222/LmDFj5KSTTvJ60wAAsEJCVlZWltcbAQAAAABAENHSDQAAAACASwi6AQAAAABwCUE3AAAAAAAuIegGAAAAAMAlBN0AAAAAALiEoBsAAAAAAJcQdAMAAAAA4BKCbgAAAAAAXELQDQAAAACASwi6AQAAAABwCUE3AAAAAADijv8D8E+n8GhFhJAAAAAASUVORK5CYII=" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 3 }, { "cell_type": "code", @@ -820,6 +924,63 @@ ], "outputs": [], "execution_count": null + }, + { + "metadata": {}, + "cell_type": "code", + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from scipy.optimize import curve_fit\n", + "from scipy.stats import multivariate_normal\n", + "from PIL import Image\n", + "import tifffile as tiff\n", + "\n", + "# Simulate or load image data\n", + "def gaussian_2d(coords, amplitude, x0, y0, sigma_x, sigma_y, offset):\n", + " x, y = coords\n", + " return amplitude * np.exp(\n", + " -(((x - x0) ** 2) / (2 * sigma_x ** 2) + ((y - y0) ** 2) / (2 * sigma_y ** 2))\n", + " ) + offset\n", + "img = Image.open(r\"C:\\Users\\berti_r\\Python_Projects\\StagePerformaceDocu\\data\\data20250717_alignment_tests\\20250717_134906_repeatibility_0\\im_00001.tif\")\n", + "img = img.convert('L')\n", + "z = np.array(img)\n", + "# Create a test image (e.g., 2D Gaussian)\n", + "x = np.linspace(0, z.shape[0], z.shape[0])\n", + "y = np.linspace(0, z.shape[1],z.shape[1])\n", + "x, y = np.meshgrid(x, y)\n", + "\n", + "#z = gaussian_2d((x, y), 10, 25, 25, 5, 5, 1) + np.random.normal(0, 0.2, x.shape)\n", + "\n", + "# Flatten and fit\n", + "initial_guess = (180, 23, 42, 4, 4, 1)\n", + "popt, _ = curve_fit(gaussian_2d, (x.ravel(), y.ravel()), z.ravel(), p0=initial_guess)\n", + "\n", + "# High-res grid\n", + "x_hr = np.linspace(0, z.shape[0], z.shape[0]*2)\n", + "y_hr = np.linspace(0, z.shape[1], z.shape[1]*2)\n", + "x_hr, y_hr = np.meshgrid(x_hr, y_hr)\n", + "z_hr = gaussian_2d((x_hr, y_hr), *popt)\n", + "print(popt)\n", + "# Plot\n", + "fig, axs = plt.subplots(1, 2, figsize=(10, 4))\n", + "axs[0].imshow(z, cmap='viridis')\n", + "axs[0].set_title(\"Original\")\n", + "axs[1].imshow(z_hr, cmap='viridis')\n", + "axs[1].set_title(\"Interpolated (Gaussian Fit)\")\n", + "plt.show()" + ], + "id": "10b9be6ae1a6c914", + "outputs": [], + "execution_count": null + }, + { + "metadata": {}, + "cell_type": "code", + "source": "", + "id": "9b599b5f636c8832", + "outputs": [], + "execution_count": null } ], "metadata": {