Gallifray is a geometric modelling and parameter estimation framework for Black hole images from EHT including VLBI. Gallifray has been developed for the purpose of utilizing the Event Horizon Telescope results to perform analysis. Its uses can be extended to general radio interferometry. This acts as a bridge between the user-defined models and model fitting via a template provided to do the necessary changes allowing one to simply use their model (phenomenological or geometrical) or the ones pre-defined in the library itself to directly fit with the VLBI datasets (synthetic/observational). The framework utilizes eht-imaging library for radio interferometric synthetic data manipulation.
This version of the library is an early release, so please feel free to open an issue or submit a pull request.
Gallifray also the following Python packages:
- NumPy
- Astropy
- Matplotlib
- SciPy
eht-imaging: python library for simulating and manipulating VLBI data (To be installed manually)
emcee: the python ensemble sampling toolkit for affine-invariant MCMC
seaborn: for fancy plotting
The most recent and stable version can be installed manually, by cloning the repository and installing using pip:
$ git clone https://github.com/Relativist1/Gallifray.git
$ cd Gallifray
$ pip install -r requirements.txt
$ pip install .
Coming soon....
Included Geometric Models
Model | Parameters |
---|---|
sym_gauss | I0, A |
asym_gauss | I0, A, S, phi |
disk | I0, R |
crescent | I0, R_p, psi, tau, phi |
xsring | I0, R_p, R_n, ecn, f, phi |
xsringauss | I0, R_p, R_n, ecn, f,gax, aq, gq, phi |
Example scripts have been provided in the example_scripts/ folder. It contains examples for fitting a geometric model and a raytracing model with ipole.
$ python example_scripts/example_gauss.py
# samples are either imported or directly used after mcmc sampler
import gallifray as gr
m_true = -0.9594
b_true = 4.294
f_true = 0.534
truths = [m_true, b_true, f_true]
labels = [r"$m_{true}$", r"$b_{true}$",r"$f_{true}$"]
# if Emcee ensemble.sampler is used
samples = sampler.get_chain(flat=True)
gr.Tardis(samples, truths=truths, labels =labels,
savefig='new1.png', diag_shade_color='red',
shade=True, truth1d=True, truth2d = False)
- New Models with parameterizations
- User input models
- Inclusion of more sample datasets
- Space-VLBI simulations
- Addition of more models
If you use Gallifray in your publication, please cite Saurabh. et. al 2022 <https://ui.adsabs.harvard.edu/abs/2022arXiv221206827S/abstract>
.
If you have any issues or want any help, feel free to drop an email at [email protected]
Gallifray is licensed under GPLv3. See LICENSE.txt for more details.