How Python Saw the First Black Hole

On April 10, 2019, the news broke out that NASA scientists obtained the image of a black hole first time in the history of humanity. In this blog, we will be gaining knowledge about how our python programming language and its various tools contributed to obtaining this historic victory.

However, before jumping to the technical aspects of programming, you must know about EHT(Event Horizon telescope). It is said that EHT is computationally a telescope the size of the earth. It has an angular resolution of 20 micro-arcseconds that is enough to read a magazine in New Delhi from a park in Tokyo.

Challenges faced

EHT was trained on a highly massive black hole studied for over 100 years, present at the center of the M87 galaxy having mass 6.5 times the Sun’s but never observed before visually. Having this powerful device bought the following challenges to them.

  • Massive Data pre-processing
  • Rapid atmospheric phase fluctuations
  • Large recording bandwidth

EHT produce 350 TB of observations that makes reducing the volume and complexity of data extremely difficult

 Below you can see how the EHT data pre-processing pipeline looks like

Use of Python and its tools

The diagram below illustrates the role of the scientific python ecosystem in the data analysis of data produced by EHT.

A python package ‘eht. imaging’ uses Numpy, scipy, matplotlib, astropy, scikit-image as its core of array data pre-processing responsible for performing simulation and image reconstruction on data. Below is the dependency chart of ‘eht. imaging’ package(see the leaf nodes).

Key Python capabilities used

  1. Numpy’s and adaptable n-dimensional array helped researchers manipulate large and numerical data sets providing the foundation for the image of a black hole.
  2. Scaling a vast volume of data of 350 TB per day involved in EHT imaging.
  3. The complexity of data correlation from telescopes all across the globe with data synchronization.
  4. Speed for fast analysis capability to quickly image, manipulate datasets with corrections.


We all have witnessed the increasing popularity of Python in the past many years. Using Python from e-commerce to social media, there is nothing Python cannot do if used properly. Nevertheless, after seeing the usage of Python in advanced science, creating history is an achievement for this beautiful language.