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
Corey Yells About Computer Stuff
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.
Congratulations to Zvonimir Stojanovski on Passing his A Exam
Zvonimir Stojanovski successfully passed his A exam on 11/16/2020, marking the entrance into the dissertation phase of his degree program. The presentation can be viewed below, and the slides are available here.
Congratulations Dr. Shapiro!
Congratulations to Jacob Shapiro for successfully completing his B exam. A copy of his talk, titled “Using Modern Mathematical and Computational Tools for Image Processing”, is available here, or watch his presentation below.
MAE Seminar
I had the privilege of giving the MAE department seminar on October 20th, titled “Engineering the Search for New Worlds.” A recording of the talk is available below, and the slides can be accessed here.
Fun with Git
I’ve been exploring use of some slightly more advanced git functionality to help with project organization, and have sketched out some notes for cool things you can do with git submodules, and my personal associated use cases:
Gabe’s Masterpiece
As a going away present, I would like to bequeath my magnum opus.