Unverified Commit d2422660 authored by Akke Viitanen's avatar Akke Viitanen
Browse files

Use trapz from util as a numpy version mismatch workaround

parent 783ee600
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -389,7 +389,7 @@ class CatalogAGN:

        def hopkins04(x, alpha, n):
            y = 1 / (1 + (x * alpha) ** n)
            return y / np.trapezoid(y, x)
            return y / util.my_trapezoid(y, x)

        ebv = np.empty(self.catalog.size)

+3 −3
Original line number Diff line number Diff line
@@ -64,19 +64,19 @@ def get_flux_band(lam, flux, band, filter_db):
    is_narrow_band = np.max(lam_filter) - np.min(lam_filter) < 1e-3
    if is_narrow_band:
        flux_filter = np.interp(lam_filter, lam, flux, left=0, right=0)
        ret1 = np.trapezoid(flux_filter * res_filter, x=lam_filter)
        ret1 = util.my_trapezoid(flux_filter * res_filter, x=lam_filter)
        return ret1

    # Estimate and renormalize the filter at the datapoints
    res_filter = np.interp(lam, lam_filter, res_filter, left=0, right=0)
    norm = np.trapezoid(res_filter, lam)
    norm = util.my_trapezoid(res_filter, lam)

    # NOTE: no overlap between wavelengths and filter lambda?
    if norm == 0:
        return 0

    res_filter /= norm
    ret2 = np.trapezoid(flux * res_filter, x=lam)
    ret2 = util.my_trapezoid(flux * res_filter, x=lam)
    return ret2


+7 −0
Original line number Diff line number Diff line
@@ -804,3 +804,10 @@ def read_table(filename: str, *args, **kwargs):
        warnings.simplefilter("ignore", UnitsWarning)
        table = Table.read(filename, *args, **kwargs)
    return table


def my_trapezoid(*args, **kwargs):
    try:
        return np.trapezoid(*args, **kwargs)
    except AttributeError:
        return np.trapz(*args, **kwargs)
+4 −4
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ from scipy import interpolate
from scipy.optimize import minimize_scalar
from scipy.special import gamma, gammaincc

from lsst_inaf_agile import ueda2014
from lsst_inaf_agile import ueda2014, util

# NOTE: refer to Zou+2024 dataset readme on the grid parameters

@@ -274,7 +274,7 @@ def get_xray_luminosity_function(
    _m, _z = np.meshgrid(log_mstar, z[0, :, None])
    y2 = fun_phi_star(_m, _z, t)

    return np.squeeze(np.trapezoid(y1 * y2, log_mstar, axis=-1))
    return np.squeeze(util.my_trapezoid(y1 * y2, log_mstar, axis=-1))


def get_specific_accretion_rate_distribution_function(loglambda, log_mstar, z, t="all", dlog_mstar=0.10):
@@ -324,7 +324,7 @@ def get_log_plambda_ctk(loglambda, m, z, t, test_integral=True, *args, **kwargs)
    # NOTE: safety assertion that p_agn is still a probability measure
    # within l \in loglambda
    if test_integral:
        test = np.trapezoid(10**log_p_ctn + 10**log_p_ctk, loglambda)
        test = util.my_trapezoid(10**log_p_ctn + 10**log_p_ctk, loglambda)
        assert np.all(test <= 1.00), (test, m, z, t)

    return log_p_ctk
@@ -408,7 +408,7 @@ def get_fraction_agn(xmin, mstar, z, t, add_ctk=True, *args, **kwargs):
    # NOTE: attempt to fix a possible shape mismatch between loglambda and mstar
    try:
        y = get_p_tot(x)
        ret = np.trapezoid(y, x)
        ret = util.my_trapezoid(y, x)
    except ValueError:
        y = get_p_tot(x[:, None])
        ret = np.sum(y * dX, axis=0)