Skip to content

Instantly share code, notes, and snippets.

@granttremblay
Created May 9, 2022 20:49
Show Gist options
  • Save granttremblay/03d91255846670bfc8d81ed30ac631bd to your computer and use it in GitHub Desktop.
Save granttremblay/03d91255846670bfc8d81ed30ac631bd to your computer and use it in GitHub Desktop.
Angular sizes
#!/usr/bin/env python
import numpy as np
from astropy import units as u
from astropy import constants as const
@u.quantity_input # input validation decorator
def photon_ring_angular_size(mass: u.Msun, dist: u.pc):
r_g = const.G * mass / const.c**2 # event horizon radius for a Schwarzschild (i.e., a=0) black hole
# For Kerr BH, photon ring has diameter (approx):
l = 10.4 * r_g # Johannsen & Psaltis 2010, basically independent of spin/inclination
# small angle approx, so it's just theta_ring = l / dist
angular_size = (l / dist).to(u.microarcsecond,equivalencies=u.dimensionless_angles())
return np.round(angular_size,2)
sgrA_bh_dist = 8178 * u.pc # GRAVITY collab 2019 distance to Sgr A* is 8178 \pm 13(stat.) \pm 22(sys.) pc
sgrA_bh_mass = 4.154 * 1e6 * u.Msun # GRAVITY collab 2019 down-sampled mass is (4.154\pm0.014) x 10^6 Msol
m87_bh_dist = 16.8 * 1e6 * u.pc # EHT2019 adopted M87* dist is 16.8 \pm 0.8 Mpc
m87_bh_mass = 6.5 * 1e9 * u.Msun # EHT2019 adopted M87* mass is (6.5\pm0.7) x 10^9 Msol
print(f'Sgr A* Photon Ring angular size is {photon_ring_angular_size(sgrA_bh_mass, sgrA_bh_dist)}')
print(f'M87* Photon Ring angular size is {photon_ring_angular_size(m87_bh_mass, m87_bh_dist)}')
print(f"In other words, while Sgr A* is {np.round(m87_bh_dist / sgrA_bh_dist, 2)} times closer to Earth than the black hole in M87, its event horizon is {np.round(m87_bh_mass / sgrA_bh_mass)} times smaller, and so the two black holes subtend almost the same angular size on the sky. ")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment