From 76d8bcc8288aaf13322a58544c9aed0f11f9935b Mon Sep 17 00:00:00 2001 From: Andrew Chael Date: Fri, 19 Apr 2024 18:12:09 -0400 Subject: [PATCH] updated README --- README.rst | 26 +++++++++++++++----------- ehtim/features/rex.py | 19 +++++++++++-------- ehtim/image.py | 3 ++- setup.py | 2 +- 4 files changed, 29 insertions(+), 21 deletions(-) diff --git a/README.rst b/README.rst index 018832f1..455c17cb 100644 --- a/README.rst +++ b/README.rst @@ -10,7 +10,7 @@ The package contains several primary classes for loading, simulating, and manipu Installation ------------ -The latest stable version (`1.2.7 `_) is available on `PyPi `_. Simply install pip and run +The latest stable version (`1.2.8 `_) is available on `PyPi `_. Simply install pip and run .. code-block:: bash @@ -86,16 +86,8 @@ Let us know if you use ehtim in your publication and we'll list it here! - First M87 Event Horizon Telescope Results IV: Imaging the Central Supermassive Black Hole, `EHTC et al. 2019 `_ -- VLBI Imaging of black holes via second moment regularization, `Issaoun et al. 2019b `_ - -- Using evolutionary algorithms to model relativistic jets: Application to NGC 1052, `Fromm et al. 2019 `_ - - EHT-HOPS Pipeline for Millimeter VLBI Data Reduction, `Blackburn et al. 2019 `_ -- Multi-wavelength torus-jet model for Sagittarius A*, `Vincent et al. 2019 `_ - -- How to tell an accreting boson star from a black hole, `Olivares et al. 2020 `_ - - Discriminating Accretion States via Rotational Symmetry in Simulated Polarimetric Images of M87, `Palumbo et al. 2020 `_ - SYMBA: An end-to-end VLBI synthetic data generation pipeline, `Roelofs et al. 2020 `_ @@ -114,8 +106,6 @@ Let us know if you use ehtim in your publication and we'll list it here! - A D-term Modeling Code (DMC) for Simultaneous Calibration and Full-Stokes Imaging of VLBI Data, `Pesce et al. 2021 `_ -- Polarization Images of Accretion Flows around Supermassive BLack Holes: Imprints of Toroidal Field Structure, `Tsunetoe et al. 2021 `_ - - Using space-VLBI to probe gravity around Sgr A*, `Fromm et al. 2021 `_ - Persistent Non-Gaussian Structure in the Image of Sagittarius A* at 86 GHz, `Issaoun et al. 2021 `_ @@ -128,6 +118,20 @@ Let us know if you use ehtim in your publication and we'll list it here! - Unravelling the Innermost Jet Structure of OJ 287 with the First GMVA+ALMA Observations, `Zhao et al. 2022 `_ +- First Sagittarius A* Event Horizon Telescope Results. III: Imaging of the Galactic Center Supermassive Black Hole, `EHTC et al. 2022 `_ + +- Resolving the Inner Parsec of the Blazar J1924-2914 with the Event Horizon Telescope, `Issaoun et al. 2022 `_ + +- The Event Horizon Telescope Image of the Quasar NRAO 530, `Jorstad et al. 2023 `_ + +- First M87 Event Horizon Telescope Results. IX. Detection of Near-horizon Circular Polarization, `EHTC et al. 2023 `_ + +- Filamentary structures as the origin of blazar jet radio variability, `Fuentes et al. 2023 `_ + +- The persistent shadow of the supermassive black hole of M 87. I. Observations, calibration, imaging, and analysis, `EHTC et al. 2023 `_ + +- Parsec-scale evolution of the gigahertz-peaked spectrum quasar PKS 0858-279, `Kosogorov et al. 2024 `_ + oifits Documentation -------------------- diff --git a/ehtim/features/rex.py b/ehtim/features/rex.py index c12e727c..62fafd31 100644 --- a/ehtim/features/rex.py +++ b/ehtim/features/rex.py @@ -75,7 +75,8 @@ class Profiles(object): - def __init__(self, im, x0, y0, profs, thetas, rmin=RMIN, rmax=RMAX, flux_norm=NORMFLUX, + def __init__(self, im, x0, y0, profs, thetas, rmin=RMIN, rmax=RMAX, + interptype='cubic',flux_norm=NORMFLUX, profsQ=[], profsU=[]): self.x0 = x0 @@ -103,7 +104,7 @@ def __init__(self, im, x0, y0, profs, thetas, rmin=RMIN, rmax=RMAX, flux_norm=NO self.xs = np.arange(im.xdim)*im.psize/ehc.RADPERUAS self.ys = np.arange(im.ydim)*im.psize/ehc.RADPERUAS - self.interp = scipy.interpolate.interp2d(self.ys, self.xs, self.imarr, kind='cubic') + self.interp = scipy.interpolate.interp2d(self.ys, self.xs, self.imarr, kind=interptype) self.profiles = np.array(profs) self.profilesQ = np.array(profsQ) @@ -709,7 +710,8 @@ def quad_interp_radius(r_max, dr, val_list): def compute_ring_profile(im, x0, y0, title="", nrays=NRAYS, nrs=NRS, rmin=RMIN, rmax=RMAX, - flux_norm=NORMFLUX, pol_profs=False): + flux_norm=NORMFLUX, pol_profs=False, + interptype='cubic'): """compute a ring profile given a center location """ @@ -722,7 +724,7 @@ def compute_ring_profile(im, x0, y0, title="", ys = np.arange(im.ydim)*im.psize/ehc.RADPERUAS # TODO: test fiducial images with linear? - interp = scipy.interpolate.interp2d(ys, xs, imarr, kind='cubic') + interp = scipy.interpolate.interp2d(ys, xs, imarr, kind=interptype) def ringVals(theta): xxs = x0 - rs*np.sin(theta) @@ -742,8 +744,8 @@ def ringVals(theta): if len(im.qvec) > 0 and len(im.uvec > 0) and pol_profs: qarr = im.qvec.reshape(im.ydim, im.xdim)[::-1] * factor # in brightness temperature K uarr = im.uvec.reshape(im.ydim, im.xdim)[::-1] * factor # in brightness temperature K - interpQ = scipy.interpolate.interp2d(ys, xs, qarr, kind='cubic') - interpU = scipy.interpolate.interp2d(ys, xs, uarr, kind='cubic') + interpQ = scipy.interpolate.interp2d(ys, xs, qarr, kind=interptype) + interpU = scipy.interpolate.interp2d(ys, xs, uarr, kind=interptype) def ringValsQ(theta): xxs = x0 - rs*np.sin(theta) @@ -765,8 +767,9 @@ def ringValsU(theta): valsU = ringValsU(thetas[j]) profsU.append(valsU) - profiles = Profiles(im, x0, y0, profs, thetas, rmin=rmin, rmax=rmax, flux_norm=flux_norm, - profsQ=profsQ, profsU=profsU) + + profiles = Profiles(im, x0, y0, profs, thetas, rmin=rmin, rmax=rmax, interptype=interptype, + flux_norm=flux_norm,profsQ=profsQ, profsU=profsU) return profiles diff --git a/ehtim/image.py b/ehtim/image.py index a40ef93a..90e98664 100644 --- a/ehtim/image.py +++ b/ehtim/image.py @@ -2563,7 +2563,8 @@ def observe(self, array, tint, tadv, tstart, tstop, bw, stabilize_scan_phase (bool): if True, random phase errors are constant over scans stabilize_scan_amp (bool): if True, random amplitude errors are constant over scans neggains (bool): if True, force the applied gains to be <1 - + + tau (float): the base opacity at all sites, or a dict giving one opacity per site taup (float): the fractional std. dev. of the random error on the opacities gainp (float): the fractional std. dev. of the random error on the gains or a dict giving one std. dev. per site diff --git a/setup.py b/setup.py index 6df6362c..73b50c19 100755 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ def read(fname): if __name__ == "__main__": setup(name="ehtim", - version = "1.2.7", + version = "1.2.8", author = "Andrew Chael", author_email = "achael@princeton.edu",