Case Study: The First Image of a Black Hole

black hole image

Black Hole M87 (Image Credits: Event Horizon Telescope Collaboration)

Imaging the M87 Black Hole is like trying to see something that is by definition impossible to see.

—Katie Bouman, Assistant Professor, Computing & Mathematical Sciences, Caltech

About The Event Horizon Telescope

The Event Horizon telescope (EHT), is an array of eight ground-based radio telescopes forming a computational telescope the size of the earth, designed to study extreme objects in the universe with unprecedented sensitivity and resolution. The worldwide network of radio telescopes comprises a virtual telescope based on a technique called very-long-baseline interferometry (VLBI). Using this technique, the EHT is able to achieve an angular resolution of 20 micro-arcseconds — enough to read a newspaper in New York from a sidewalk café in Paris!

Key Goals and Results

The Challenges

data pipeline

EHT Data Processing Pipeline (Diagram Credits: The Astrophysical Journal, Event Horizon Telescope Collaboration)

NumPy’s Role in Black Hole Imaging

While collecting, curating, and processing the data from the EHT facilities represents a monumental challenge, it is only the first step in generating an image from the data. There are many approaches to image reconstruction, each incorporating unique assumptions and constraints in order to solve the ill-posed problem of recovering an image of the black hole from the collected data. But how can anyone be confident that the image that’s produced is correct? What if there’s a problem with the data? Or perhaps an algorithm relies too heavily on a particular assumption? Will the image change drastically if a single parameter is changed? The EHT collaboration met these challenges by having independent teams evaluate the data using both established and cutting-edge image reconstruction techniques to verify that the resulting images were consistent. Results from these independent teams of researchers were combined to yield the first-of-a-kind image of the black hole. This approach is a powerful example of the importance of reproducibility and collaboration to modern scientific discovery and illustrates the role that the scientific Python ecosystem plays in supporting scientific advancement through collaborative data analysis.

role of numpy

The role of NumPy in Black Hole imaging

For example, the eht-imaging Python package provides tools for simulating and performing image reconstruction on VLBI data. NumPy is at the core of array data processing used in this package as illustrated by the partial software dependency chart below.

ehtim dependency map highlighting numpy

Software dependency chart of ehtim package highlighting NumPy

Besides NumPy, many other packages such as SciPy and Pandas were used in the data processing pipeline for imaging the black hole. The standard astronomical file formats and time/coordinate transformations were handled by Astropy while Matplotlib was used in visualizing data throughout the analysis pipeline, including the generation of the final image of the black hole.


NumPy enabled researchers to manipulate large numerical datasets through its efficient and generic n-dimensional array, providing a foundation for the software used to generate the first ever image of a black hole. The direct imaging of a black hole is a major scientific accomplishment providing stunning, visual evidence of Einstein’s general theory of relativity. This achievement encompasses not only technological breakthroughs, but international-scale scientific collaboration between over 200 scientists and some of the world’s best radio observatories. They used innovative algorithms and data processing techniques improving upon existing astronomical models to help unfold some of the mysteries of the universe.

numpy benefits

Key NumPy Capabilities utilized