Animating Subframes#

  • ECHOSTAR 2 #24313 (65/66)
0
0
0
0
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
0
0
0
0
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99

import os
from glob import glob

import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

from mirage.photo import background_subtract, load_fits, plot_fits

ds = [
    '/Users/liamrobinson/Library/CloudStorage/OneDrive-purdue.edu/pogs/2025/2025_02_25/echostar 2 1s/*',
    '/Users/liamrobinson/Library/CloudStorage/OneDrive-purdue.edu/pogs/2025/2025_03_01/delta-1-3s/*',
]

target_fps = 7

for d in ds:
    fits_files = glob(d)
    fits_files = sorted(fits_files, key=lambda x: int(x.split('/')[-1].split('.')[0]))

    if 'echo' in d:
        fits_files = fits_files[::7]

    obj_name = fits_files[0].split('/')[-1].split('.')[1][2:-1].replace('_', ' ')

    fig = plt.figure(figsize=(5, 5))
    fig.patch.set_facecolor('w')

    def animate(i: int) -> None:
        print(i)
        plt.cla()
        plt.title(f'{obj_name} ({i}/{len(fits_files)})', color='k')
        return [plot_fits(background_subtract(load_fits(fits_files[i])[1])[0])]

    animate(0)
    plt.tight_layout()

    interval = 1000 / target_fps

    anim = FuncAnimation(
        plt.gcf(), animate, frames=len(fits_files), interval=interval, blit=True
    )
    anim.save(
        os.path.join(
            '/Users/liamrobinson/Documents/maintained-research/mirage/examples/15-attitude-sdc-2025/out',
            f'{obj_name}.mp4',
        ),
        writer='ffmpeg',
        fps=target_fps,
    )

    plt.show()

Total running time of the script: (1 minutes 54.912 seconds)

Gallery generated by Sphinx-Gallery