Miles Lucas

About Me

I am originally from Denver, Colorado, but spent most of my life growing up in Eastern Iowa. I completed my undergraduate degree in physics with minors in astronomy and computer science at Iowa State University in 2019. Currently I am a Ph.D. student at the Institute for Astronomy at University of Hawai’i at Mānoa.

Research Interests

I enjoy using programming to solve astronomical problems and provide tools for other astronomers. Check out some of the code I’ve written at in my projects. Some of my research interests include stellar astrophysics, Bayesian analysis, and machine learning. I have recently become very interested in high-contrast imaging (HCI), which pushes the limits of our best telescopes and statistical methods to image planets around other stars.

Outside of research, I enjoy drumming, hiking, camping, playing video games, and photography. You can see a selection of some of my favorite photos in my portfolio. I’ve even been featured in NASA’s Astronomy Photo of the Day (APOD) for this star trails photo at the Very Large Array (VLA).


Today I dug a little deeper than I expected into some regex parsing for the AstroAngles.jl package. I wanted to detail the way I approached the problem and the solution I landed on (in hopes that someone will come along and tell me how much better it could have been). Sexagisimal and Angles In astronomy, we represent the coordinates of things on the sky using angles. This is convenient because we can essentially look at the sky as a big sphere with us at the middle and form a coordinate system similar to our latitude and longitude system.
6 min read
Recently I’ve been thinking about the LogSumExp trick since it is used in the integration step of nested sampling. I won’t go over too much of the math here, but the reason this trick exists is to greatly increase the numerical stability of the operation $$ \log \sum_i \exp x_i $$ via the identity $$ a + \log \sum_i \exp\left(x_i - a\right) $$ Naive implementations In Julia we can implement a naive logsumexp with logsumexp_naive(X) = log(sum(exp, X)) let’s test the numerical accuracy against Julia’s BigFloat for some very large numbers
3 min read