2024-06-11

06:00PM

For the last year I have been on the fence about pursuing the observation of variable stars. I'm concerned that the repeated viewing of the same target will grow tedious; especially if the variation in apparent magnitude is minimal or slow to change. I've been trying to find a way to observe them in a way that could make the process more rewarding, as I want my limited time under the stars to remain enjoyable.

I would not plan to sketch these targets unless it's a monumental event (the upcoming T CrB nova), but I still want something tangible produced from the observations.

The AAVSO maintains a database of variable stars and tracks their apparent magnitudes (and more). They encourage anyone to contribute by submitting their own apparent magnitude estimates. This seems like a cool opportunity, and for some reason my account was already assigned observer code "WROH" (I thought it had to be requested?)

This got me thinking that maybe I can track my own visual magnitude estimates within org-mode using gnuplot. I could graph the light curve the same way that AAVSO does. For the last few weeks, I've been testing ways to do this, and hit upon the following method.

I created a capture group to capture the star, date, and apparent magnitude. Storing all of the data into an org table in a new org file. A few babel configurations were also necessary to recognize gnuplot:

(setq org-capture-templates
      `(("v" "Variable Star" table-line
         (file+headline ,(expand-file-name "variablestars.org" my/org-directory) "Variable Stars")
         "|%?| | |")
        ))

(setq org-babel-gnuplot-command "/usr/bin/gnuplot")
(org-babel-do-load-languages
 'org-babel-load-languages
 '((gnuplot . t)))

Next, I began writing the gnuplot script in such a way as to be reusable. I wanted to pass in the data, the star, and an "until" date as parameters to filter the plotting information. The following is added as an embedded script in my stargazing journal org file:

#+NAME: variableStarPlot
#+BEGIN_SRC gnuplot :var data=VariableStars :var star=none :var until=none :results output :session none
 last = (strptime('%Y-%m-%d', until) + (86400 * 3))
 unset tics
 set offsets 1, 1, 1, 1
 set xtics border out
 set ytics border out
 set term dumb size 80,20
 set xdata time
 set timefmt '%Y-%m-%d'
 set format x '%m%d'
 set xlabel "Date"
 set ylabel "M\na\ng"
 set xrange [*:last]
 plot data using 2:(stringcolumn(1) eq star?$3:1/0) notitle with points pointtype "o"

+END_SRC

Now, with a variable star org table that looks something like this (test data):

#+NAME: VariableStars
| Star   |       Date |  Mag |
|--------+------------+------|
| T CrB  | 2024-05-01 |  1.3 |
| SS Cyg | 2024-05-02 | 10.1 |
| T CrB  | 2024-05-06 |  3.0 |
| SS Cyg | 2024-05-09 |  5.8 |
| T CrB  | 2024-05-10 |  4.4 |
| SS Cyg | 2024-06-11 |  8.2 |
| T CrB  | 2024-07-01 |  6.9 |
| SS Cyg | 2024-07-02 | 10.2 |
| T CrB  | 2024-07-06 |  7.0 |
| SS Cyg | 2024-08-09 |  5.8 |
| T CrB  | 2024-09-10 |  9.4 |
| SS Cyg | 2024-10-11 |  8.2 |

I can at will, call the embedded script:

#+CALL: variableStarPlot(star="T CrB", until="2024-07-01")

And produce an ascii graph within my org journal which plots the light curve of the chosen star:

#+RESULTS:
    8 +-+------------------------------------------------------------------+   
        |                                                                  |   
    7 +-|                                                               o  |   
    6 +-|                                                                  |   
        |                                                                  |   
    5 +-|                                                                  |   
        |             o                                                    |   
 M  4 +-|                                                                  |   
 a      |                                                                  |   
 g  3 +-|          o                                                       |   
    2 +-|                                                                  |   
        |                                                                  |   
    1 +-|     o                                                            |   
        |                                                                  |   
    0 +-+------------------------------------------------------------------+   
        +      +     +      +      +     +      +      +      +     +      +   
      0425   0502  0509   0516   0523  0530   0606   0613   0620  0627   0704  
                                       Date                                    

Tracking this information might be rewarding enough to keep up a pursuit of variable stars (I guess time will tell). If I do this I'll likely submit my observations to AAVSO too; it looks like they have an API available, so I might be able to automate the process.

Since T CrB is a large upcoming event, it might be fun to track its light curve to test this method out. I'll do SS Cyg also, since its variations occur more frequently.