Case Study: 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

A telescope the size of the earth

The Event Horizon telescope (EHT) is an array of eight ground-based radio telescopes forming a computational telescope the size of the earth, studing the universe with unprecedented sensitivity and resolution. The huge virtual telescope, which uses a technique called very-long-baseline interferometry (VLBI), has 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

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. When results proved consistent, they were combined to yield the first-of-a-kind image of the black hole.

Their work illustrates the role the scientific Python ecosystem plays in advancing science 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, are part of 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.


The efficient and adaptable n-dimensional array that is NumPy’s central feature enabled researchers to manipulate large numerical datasets, providing a foundation for the first-ever image of a black hole. A landmark moment in science, it gives stunning visual evidence of Einstein’s theory. The achievement encompasses not only technological breakthroughs but also international collaboration among over 200 scientists and some of the world’s best radio observatories. Innovative algorithms and data processing techniques, improving upon existing astronomical models, helped unfold a mystery of the universe.

numpy benefits

Key NumPy Capabilities utilized