JATIS Paper Published

Our newest paper: Keithly, Savransky, and Spohn, “Integration Time Adjusted Completeness” is now available as open access in the Journal of Astronomical Telescopes, Instruments, and Systems.  This paper updates the concept of completeness—the probability of detecting an exoplanet from some population with a specific instrument—to take into account the required integration time, showing that previous calculations of completeness have been overestimating these probabilities.

On Nutation Dampers

I’ve been teaching the theory of nutation dampers for years, and have finally gotten around to creating a good visualization of one.  Nutation dampers are really neat devices for rejecting disturbances on spin-stabilized spacecraft.  Essentially, a damper is any mechanical device with energy dissipation that is excited by spin about a transverse spacecraft axis.  The dissipation mechanism causes the non-symmetry axis spin to diminish over time, and the spacecraft returns to pure symmetry axis spin.  Physical implementations can range from spring-mass-damper systems to wheels mounted on a transverse spacecraft axis whose spin results in any sort of viscous damping.  Here’s an animation of the latter sort.  The spacecraft (blue cylinder) is a major-axis spinner, and experiences an angular impulse after five revolutions, which spins up the nutation damper (red wheel).  Over time, the spacecraft settles back into pure symmetry axis spin.

The plots show the time histories of the components of spacecraft angular velocity (\omega_2 is the spin about the symmetry axis) as well as the damper’s spin rate (\Omega).

Animation code at: https://github.com/dsavransky/MAE4060/blob/main/Animations/nutation_damper_animation.m  and a full derivation can be found at: https://nbviewer.jupyter.org/github/dsavransky/MAE4060/blob/main/Notebooks/Viscous%20Nutation%20Damper.ipynb

Automating Away Life’s Annoyances

For my CV, I like to include a table of citation metrics from multiple sources (currently Google Scholar, ADS and Web of Science).   Updating these manually, however, is torturous, and feels like something that should be trivially automatable.  I recently went down a rabbit hole of looking for ways to do this with Python, and found that it was trivial (Scholar), straightforward (ADS) and maddening (I’ll leave this as an exercise for the reader). Full notes available here.

An Aural Experiment

Every year or so, I update my ‘history of exoplanet exploration’ animation, which shows the detections of exoplanets in (roughly) the order of their discovery by plotting the host star locations in sequence.  This year, I decided that I wanted to try to add an audio track, but rather than just playing some copyright-free beats, I wanted the audio to carry additional information.  Based on feedback from astronomer friends (thanks Mark Marley (https://twitter.com/astromarkmarley) and Pauline Arriaga (https://twitter.com/ophiuchusdebris)), I settled on assigning each detection method (which are also plotted using different symbols) a unique note, and modifying each detection pitch by binning planet mass to octave (inversely, so that bigger planets had intuitively pleasing lower pitches).  Sounds super straightforward, until you start looking at the Python audio support landscape.  I dutifully went down the list of available codes from https://wiki.python.org/moin/PythonInMusic.  Most failed to work entirely on my os/python install, some were much too complex to learn just for my simple task, and the remainder didn’t do anything that I actually wanted.  Fine. But all I want is a bunch of sine waves – should be easy enough.  So I coded up a basic frequency generator and piano key mapper (https://github.com/dsavransky/miscpy/blob/main/miscpy/utils/audio.py).  Try it out, and, every single note ends in a loud pop.  This is a well-known phenomenon – you’re driving your computer speakers from something to nothing instantaneously, and they’re trying to comply but can’t.  The obvious solution is to apply a window function.  So I start looking around for what existing DSPs use, and they’re all implementing sines and Gaussians, and other things that don’t make a lot of sense.  What you want is something closely approximating a top-hat, but with smooth ramp up/down.  This is a known function called the Planck-taper window and is not implemented in numpy or scipy. (Loud screams).  Fine, we’ll add the window function to the audio class.  No more clicks.  The overall audio sounds a bit rough due to so many individual tones fighting it out, but a Gaussian filter works fine for smoothing that out.  Last step is to combine the audio and the video, which matplotlib animate seems incapable of, but ffmpeg handles it just fine, so that’s ok.  The final result:

Data was drawn from the NASA Exoplanet Archive (https://exoplanetarchive.ipac.caltech.edu/index.html) and the source code for the video is available at: https://github.com/dsavransky/miscpy/blob/main/miscpy/Animations/exoplanet_history_anim.py 

JATIS Paper Published

“Analytical model for starshade formation flying with applications to exoplanet direct imaging observation scheduling,” by Gabriel Soto, Dmitry Savransky, and Rhonda Morgan has been published in the Journal of Astronomical Telescopes, Instruments, and Systems, and is available via open access at: http://dx.doi.org/10.1117/1.JATIS.7.2.021209

On Proposals

At a recent group meeting, we discussed responding to funding opportunities from US funding agencies (mostly NASA).  A recording of the discussion is available below.  As always, all opinions are strictly my own.