From 71f8e952673df38bc303454d415a64d0656773cb Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Tue, 9 Jul 2024 22:14:01 +0800 Subject: [PATCH 01/44] Update utils.py --- src/jimgw/single_event/utils.py | 153 ++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) diff --git a/src/jimgw/single_event/utils.py b/src/jimgw/single_event/utils.py index c0b14b7a..b149bcf4 100644 --- a/src/jimgw/single_event/utils.py +++ b/src/jimgw/single_event/utils.py @@ -143,6 +143,159 @@ def ra_dec_to_theta_phi(ra: Float, dec: Float, gmst: Float) -> tuple[Float, Floa theta = jnp.pi / 2 - dec return theta, phi +def rotate_y(angle: Float, x: Float, y: Float, z: Float) -> tuple[Float, Float, Float]: + """ + Rotate the vector (x, y, z) about y-axis + """ + x_new = x * jnp.cos(angle) + z * jnp.sin(angle) + z_new = - (x * jnp.sin(angle)) + z * jnp.cos(angle) + return x_new, y, z_new + + +def rotate_z(angle: Float, x: Float, y: Float, z: Float) -> tuple[Float, Float, Float]: + """ + Rotate the vector (x, y, z) about z-axis + """ + x_new = x * jnp.cos(angle) - y * jnp.sin(angle) + y_new = x * jnp.sin(angle) + y * jnp.cos(angle) + return x_new, y_new, z + + +def spin_to_spin( + thetaJN: Float, + phiJL: Float, + theta1: Float, + theta2: Float, + phi12: Float, + chi1: Float, + chi2: Float, + M_c: Float, + eta: Float, + fRef: Float, + phiRef: Float +) -> tuple[Float, Float, Float, Float, Float, Float, Float]: +""" + Transforming the spin parameters + + Parameters: + ------- + thetaJN: Float + Zenith angle between the total angular momentum and the line of sight + phiJL: Float + Difference between total and orbital angular momentum azimuthal angles + theta1: Float + Zenith angle between the spin and orbital angular momenta for the primary object + theta2: Float + Zenith angle between the spin and orbital angular momenta for the secondary object + phi12: Float + Difference between the azimuthal angles of the individual spin vector projections + onto the orbital plane + chi1: Float + Primary object aligned spin: + chi2: Float + Secondary object aligned spin: + M_c: Float + The chirp mass + eta: Float + The symmetric mass ratio + fRef: Float + The reference frequency + phiRef: Float + Binary phase at a reference frequency + + Returns: + ------- + iota: Float + Zenith angle between the orbital angular momentum and the line of sight + S1x: Float + The x-component of the primary spin + S1y: Float + The y-component of the primary spin + S1z: Float + The z-component of the primary spin + S2x: Float + The x-component of the secondary spin + S2y: Float + The y-component of the secondary spin + S2z: Float + The z-component of the secondary spin +""" + + LNhx = 0. + LNhy = 0. + LNhz = 1. + + s1hatx = jnp.sin(theta1)*jnp.cos(phiRef) + s1haty = jnp.sin(theta1)*jnp.sin(phiRef) + s1hatz = jnp.cos(theta1) + s2hatx = jnp.sin(theta2) * jnp.cos(phi12+phiRef) + s2haty = jnp.sin(theta2) * jnp.sin(phi12+phiRef) + s2hatz = jnp.cos(theta2) + + temp = (1 / eta / 2 - 1) + q = temp - (temp ** 2 - 1) ** 0.5 + m1, m2 = Mc_q_to_m1m2(M_c, q) + MTsun_SI = 4.925490947641266978197229498498379006e-6 + v0 = jnp.cbrt((m1+m2) * MTsun_SI * jnp.pi * fRef) + + Lmag = ((m1+m2)*(m1+m2)*eta/v0) * (1.0 + v0*v0*(1.5 + eta/6.0)) + s1x = m1 * m1 * chi1 * s1hatx + s1y = m1 * m1 * chi1 * s1haty + s1z = m1 * m1 * chi1 * s1hatz + s2x = m2 * m2 * chi2 * s2hatx + s2y = m2 * m2 * chi2 * s2haty + s2z = m2 * m2 * chi2 * s2hatz + Jx = s1x + s2x + Jy = s1y + s2y + Jz = Lmag + s1z + s2z + + + Jnorm = jnp.sqrt( Jx*Jx + Jy*Jy + Jz*Jz) + Jhatx = Jx / Jnorm + Jhaty = Jy / Jnorm + Jhatz = Jz / Jnorm + theta0 = jnp.arccos(Jhatz) + phi0 = jnp.arctan2(Jhaty, Jhatx) + + s1hatx, s1haty, s1hatz = rotate_z(-phi0, s1hatx, s1haty, s1hatz) + s2hatx, s2haty, s2hatz = rotate_z(-phi0, s2hatx, s2haty, s2hatz) + + LNhx, LNhy, LNhz = rotate_y(-theta0, LNhx, LNhy, LNhz) + s1hatx, s1haty, s1hatz = rotate_y(-theta0, s1hatx, s1haty, s1hatz) + s2hatx, s2haty, s2hatz = rotate_y(-theta0, s2hatx, s2haty, s2hatz) + + LNhx, LNhy, LNhz = rotate_z(phiJL - jnp.pi, LNhx, LNhy, LNhz) + s1hatx, s1haty, s1hatz = rotate_z(phiJL - jnp.pi, s1hatx, s1haty, s1hatz) + s2hatx, s2haty, s2hatz = rotate_z(phiJL - jnp.pi, s2hatx, s2haty, s2hatz) + + Nx=0.0 + Ny=jnp.sin(thetaJN) + Nz=jnp.cos(thetaJN) + iota=jnp.arccos(Nx*LNhx+Ny*LNhy+Nz*LNhz) + + thetaLJ = jnp.arccos(LNhz) + phiL = jnp.arctan2(LNhy, LNhx) + + s1hatx, s1haty, s1hatz = rotate_z(-phiL, s1hatx, s1haty, s1hatz) + s2hatx, s2haty, s2hatz = rotate_z(-phiL, s2hatx, s2haty, s2hatz) + Nx, Ny, Nz = rotate_z(-phiL, Nx, Ny, Nz) + + s1hatx, s1haty, s1hatz = rotate_y(-thetaLJ, s1hatx, s1haty, s1hatz) + s2hatx, s2haty, s2hatz = rotate_y(-thetaLJ, s2hatx, s2haty, s2hatz) + Nx, Ny, Nz = rotate_y(-thetaLJ, Nx, Ny, Nz) + + phiN = jnp.arctan2(Ny, Nx) + s1hatx, s1haty, s1hatz = rotate_z(jnp.pi/2.-phiN-phiRef, s1hatx, s1haty, s1hatz) + s2hatx, s2haty, s2hatz = rotate_z(jnp.pi/2.-phiN-phiRef, s2hatx, s2haty, s2hatz) + + S1x = s1hatx*chi1 + S1y = s1haty*chi1 + S1z = s1hatz*chi1 + S2x = s2hatx*chi2 + S2y = s2haty*chi2 + S2z = s2hatz*chi2 + + return iota, S1x, S1y, S1z, S2x, S2y, S2z def log_i0(x): """ From 722cff0355474da394a02341b56d4017e4bf275b Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Wed, 24 Jul 2024 07:38:02 -0400 Subject: [PATCH 02/44] Update utils.py --- src/jimgw/single_event/utils.py | 34 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/jimgw/single_event/utils.py b/src/jimgw/single_event/utils.py index b149bcf4..82ee357c 100644 --- a/src/jimgw/single_event/utils.py +++ b/src/jimgw/single_event/utils.py @@ -142,23 +142,6 @@ def ra_dec_to_theta_phi(ra: Float, dec: Float, gmst: Float) -> tuple[Float, Floa phi = ra - gmst theta = jnp.pi / 2 - dec return theta, phi - -def rotate_y(angle: Float, x: Float, y: Float, z: Float) -> tuple[Float, Float, Float]: - """ - Rotate the vector (x, y, z) about y-axis - """ - x_new = x * jnp.cos(angle) + z * jnp.sin(angle) - z_new = - (x * jnp.sin(angle)) + z * jnp.cos(angle) - return x_new, y, z_new - - -def rotate_z(angle: Float, x: Float, y: Float, z: Float) -> tuple[Float, Float, Float]: - """ - Rotate the vector (x, y, z) about z-axis - """ - x_new = x * jnp.cos(angle) - y * jnp.sin(angle) - y_new = x * jnp.sin(angle) + y * jnp.cos(angle) - return x_new, y_new, z def spin_to_spin( @@ -220,7 +203,22 @@ def spin_to_spin( S2z: Float The z-component of the secondary spin """ - + def rotate_y(angle: Float, x: Float, y: Float, z: Float) -> tuple[Float, Float, Float]: + """ + Rotate the vector (x, y, z) about y-axis + """ + x_new = x * jnp.cos(angle) + z * jnp.sin(angle) + z_new = - (x * jnp.sin(angle)) + z * jnp.cos(angle) + return x_new, y, z_new + + def rotate_z(angle: Float, x: Float, y: Float, z: Float) -> tuple[Float, Float, Float]: + """ + Rotate the vector (x, y, z) about z-axis + """ + x_new = x * jnp.cos(angle) - y * jnp.sin(angle) + y_new = x * jnp.sin(angle) + y * jnp.cos(angle) + return x_new, y_new, z + LNhx = 0. LNhy = 0. LNhz = 1. From dcd4662e6e380b734cf83910a3cc6c5d8095cba8 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:22:16 -0400 Subject: [PATCH 03/44] Update utils.py --- src/jimgw/single_event/utils.py | 158 ++++++++++++++++---------------- 1 file changed, 81 insertions(+), 77 deletions(-) diff --git a/src/jimgw/single_event/utils.py b/src/jimgw/single_event/utils.py index 9e756070..c37c8408 100644 --- a/src/jimgw/single_event/utils.py +++ b/src/jimgw/single_event/utils.py @@ -198,97 +198,101 @@ def spin_to_spin( S2z: Float The z-component of the secondary spin """ - def rotate_y(angle: Float, x: Float, y: Float, z: Float) -> tuple[Float, Float, Float]: + def rotate_y(angle, vec): """ Rotate the vector (x, y, z) about y-axis """ - x_new = x * jnp.cos(angle) + z * jnp.sin(angle) - z_new = - (x * jnp.sin(angle)) + z * jnp.cos(angle) - return x_new, y, z_new - - def rotate_z(angle: Float, x: Float, y: Float, z: Float) -> tuple[Float, Float, Float]: + cos_angle = jnp.cos(angle) + sin_angle = jnp.sin(angle) + rotation_matrix = np.array([ + [cos_angle, 0, sin_angle], + [0, 1, 0], + [-sin_angle, 0, cos_angle] + ]) + rotated_vec = jnp.dot(rotation_matrix, vec) + return rotated_vec + + def rotate_z(angle, vec): """ Rotate the vector (x, y, z) about z-axis """ - x_new = x * jnp.cos(angle) - y * jnp.sin(angle) - y_new = x * jnp.sin(angle) + y * jnp.cos(angle) - return x_new, y_new, z - - LNhx = 0. - LNhy = 0. - LNhz = 1. - - s1hatx = jnp.sin(theta1)*jnp.cos(phiRef) - s1haty = jnp.sin(theta1)*jnp.sin(phiRef) - s1hatz = jnp.cos(theta1) - s2hatx = jnp.sin(theta2) * jnp.cos(phi12+phiRef) - s2haty = jnp.sin(theta2) * jnp.sin(phi12+phiRef) - s2hatz = jnp.cos(theta2) - + cos_angle = jnp.cos(angle) + sin_angle = jnp.sin(angle) + rotation_matrix = jnp.array([ + [cos_angle, -sin_angle, 0], + [sin_angle, cos_angle, 0], + [0, 0, 1] + ]) + rotated_vec = jnp.dot(rotation_matrix, vec) + return rotated_vec + + LNh = jnp.array([0., 0., 1.]) + + s1hat = jnp.array([ + jnp.sin(theta1)*jnp.cos(phiRef), + jnp.sin(theta1)*jnp.sin(phiRef), + jnp.cos(theta1) + ]) + s2hat = jnp.array([ + jnp.sin(theta2) * jnp.cos(phi12+phiRef), + jnp.sin(theta2) * jnp.sin(phi12+phiRef), + jnp.cos(theta2) + ]) + temp = (1 / eta / 2 - 1) q = temp - (temp ** 2 - 1) ** 0.5 m1, m2 = Mc_q_to_m1m2(M_c, q) - MTsun_SI = 4.925490947641266978197229498498379006e-6 v0 = jnp.cbrt((m1+m2) * MTsun_SI * jnp.pi * fRef) - + Lmag = ((m1+m2)*(m1+m2)*eta/v0) * (1.0 + v0*v0*(1.5 + eta/6.0)) - s1x = m1 * m1 * chi1 * s1hatx - s1y = m1 * m1 * chi1 * s1haty - s1z = m1 * m1 * chi1 * s1hatz - s2x = m2 * m2 * chi2 * s2hatx - s2y = m2 * m2 * chi2 * s2haty - s2z = m2 * m2 * chi2 * s2hatz - Jx = s1x + s2x - Jy = s1y + s2y - Jz = Lmag + s1z + s2z - - - Jnorm = jnp.sqrt( Jx*Jx + Jy*Jy + Jz*Jz) - Jhatx = Jx / Jnorm - Jhaty = Jy / Jnorm - Jhatz = Jz / Jnorm - theta0 = jnp.arccos(Jhatz) - phi0 = jnp.arctan2(Jhaty, Jhatx) - - s1hatx, s1haty, s1hatz = rotate_z(-phi0, s1hatx, s1haty, s1hatz) - s2hatx, s2haty, s2hatz = rotate_z(-phi0, s2hatx, s2haty, s2hatz) - - LNhx, LNhy, LNhz = rotate_y(-theta0, LNhx, LNhy, LNhz) - s1hatx, s1haty, s1hatz = rotate_y(-theta0, s1hatx, s1haty, s1hatz) - s2hatx, s2haty, s2hatz = rotate_y(-theta0, s2hatx, s2haty, s2hatz) + s1 = m1 * m1 * chi1 * s1hat + s2 = m2 * m2 * chi2 * s2hat + J = s1 + s2 + jnp.array([0., 0., Lmag]) + + Jhat = J / jnp.linalg.norm(J) + theta0 = jnp.arccos(Jhat[2]) + phi0 = jnp.arctan2(Jhat[1], Jhat[0]) + + # Rotation 1: + s1hat = rotate_z(-phi0, s1hat) + s2hat = rotate_z(-phi0, s2hat) + + # Rotation 2: + LNh = rotate_y(-theta0, LNh) + s1hat = rotate_y(-theta0, s1hat) + s2hat = rotate_y(-theta0, s2hat) + + # Rotation 3: + LNh = rotate_z(phiJL - jnp.pi, LNh) + s1hat = rotate_z(phiJL - jnp.pi, s1hat) + s2hat = rotate_z(phiJL - jnp.pi, s2hat) + + # Compute iota + N = jnp.array([0.0, jnp.sin(thetaJN), jnp.cos(thetaJN)]) + iota = jnp.arccos(jnp.dot(N, LNh)) - LNhx, LNhy, LNhz = rotate_z(phiJL - jnp.pi, LNhx, LNhy, LNhz) - s1hatx, s1haty, s1hatz = rotate_z(phiJL - jnp.pi, s1hatx, s1haty, s1hatz) - s2hatx, s2haty, s2hatz = rotate_z(phiJL - jnp.pi, s2hatx, s2haty, s2hatz) - - Nx=0.0 - Ny=jnp.sin(thetaJN) - Nz=jnp.cos(thetaJN) - iota=jnp.arccos(Nx*LNhx+Ny*LNhy+Nz*LNhz) - - thetaLJ = jnp.arccos(LNhz) - phiL = jnp.arctan2(LNhy, LNhx) - - s1hatx, s1haty, s1hatz = rotate_z(-phiL, s1hatx, s1haty, s1hatz) - s2hatx, s2haty, s2hatz = rotate_z(-phiL, s2hatx, s2haty, s2hatz) - Nx, Ny, Nz = rotate_z(-phiL, Nx, Ny, Nz) + thetaLJ = jnp.arccos(LNh[2]) + phiL = jnp.arctan2(LNh[1], LNh[0]) - s1hatx, s1haty, s1hatz = rotate_y(-thetaLJ, s1hatx, s1haty, s1hatz) - s2hatx, s2haty, s2hatz = rotate_y(-thetaLJ, s2hatx, s2haty, s2hatz) - Nx, Ny, Nz = rotate_y(-thetaLJ, Nx, Ny, Nz) - - phiN = jnp.arctan2(Ny, Nx) - s1hatx, s1haty, s1hatz = rotate_z(jnp.pi/2.-phiN-phiRef, s1hatx, s1haty, s1hatz) - s2hatx, s2haty, s2hatz = rotate_z(jnp.pi/2.-phiN-phiRef, s2hatx, s2haty, s2hatz) - - S1x = s1hatx*chi1 - S1y = s1haty*chi1 - S1z = s1hatz*chi1 - S2x = s2hatx*chi2 - S2y = s2haty*chi2 - S2z = s2hatz*chi2 + # Rotation 4: + s1hat = rotate_z(-phiL, s1hat) + s2hat = rotate_z(-phiL, s2hat) + N = rotate_z(-phiL, N) - return iota, S1x, S1y, S1z, S2x, S2y, S2z + # Rotation 5: + s1hat = rotate_y(-thetaLJ, s1hat) + s2hat = rotate_y(-thetaLJ, s2hat) + N = rotate_y(-thetaLJ, N) + + # Rotation 6: + phiN = jnp.arctan2(N[1], N[0]) + s1hat = rotate_z(jnp.pi/2.-phiN-phiRef, s1hat) + s2hat = rotate_z(jnp.pi/2.-phiN-phiRef, s2hat) + + S1 = s1hat * chi1 + S2 = s2hat * chi2 + return iota, S1[0], S1[1], S1[2], S2[0], S2[1], S2[2] + def euler_rotation(delta_x: Float[Array, " 3"]): """ From 3a92fd62a5ffbaa0e6e1da5dd630cd01d9686cb5 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:26:59 -0400 Subject: [PATCH 04/44] Update utils.py --- src/jimgw/single_event/utils.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/jimgw/single_event/utils.py b/src/jimgw/single_event/utils.py index c37c8408..29db462b 100644 --- a/src/jimgw/single_event/utils.py +++ b/src/jimgw/single_event/utils.py @@ -3,6 +3,8 @@ from jax.scipy.special import i0e from jaxtyping import Array, Float +from jimgw.constants import Msun + def inner_product( h1: Float[Array, " n_sample"], @@ -139,7 +141,7 @@ def ra_dec_to_theta_phi(ra: Float, dec: Float, gmst: Float) -> tuple[Float, Floa return theta, phi -def spin_to_spin( +def spin_to_cartesian_spin( thetaJN: Float, phiJL: Float, theta1: Float, @@ -154,6 +156,9 @@ def spin_to_spin( ) -> tuple[Float, Float, Float, Float, Float, Float, Float]: """ Transforming the spin parameters + + The code is based on the approach used in LALsimulation: + https://lscsoft.docs.ligo.org/lalsuite/lalsimulation/group__lalsimulation__inference.html Parameters: ------- @@ -242,7 +247,7 @@ def rotate_z(angle, vec): temp = (1 / eta / 2 - 1) q = temp - (temp ** 2 - 1) ** 0.5 m1, m2 = Mc_q_to_m1m2(M_c, q) - v0 = jnp.cbrt((m1+m2) * MTsun_SI * jnp.pi * fRef) + v0 = jnp.cbrt((m1+m2) * Msun * jnp.pi * fRef) Lmag = ((m1+m2)*(m1+m2)*eta/v0) * (1.0 + v0*v0*(1.5 + eta/6.0)) s1 = m1 * m1 * chi1 * s1hat From b1be7079cf5fcccee6a5bf1833a0aa227ed3a685 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:29:16 -0400 Subject: [PATCH 05/44] Update utils.py --- src/jimgw/single_event/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/jimgw/single_event/utils.py b/src/jimgw/single_event/utils.py index 29db462b..43aa133e 100644 --- a/src/jimgw/single_event/utils.py +++ b/src/jimgw/single_event/utils.py @@ -154,7 +154,7 @@ def spin_to_cartesian_spin( fRef: Float, phiRef: Float ) -> tuple[Float, Float, Float, Float, Float, Float, Float]: -""" + """ Transforming the spin parameters The code is based on the approach used in LALsimulation: @@ -202,7 +202,7 @@ def spin_to_cartesian_spin( The y-component of the secondary spin S2z: Float The z-component of the secondary spin -""" + """ def rotate_y(angle, vec): """ Rotate the vector (x, y, z) about y-axis From f4cfd7faa79bd030df4f4efe987f71feba7acd6d Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:32:03 -0400 Subject: [PATCH 06/44] Update utils.py --- src/jimgw/single_event/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jimgw/single_event/utils.py b/src/jimgw/single_event/utils.py index 43aa133e..9b9dea87 100644 --- a/src/jimgw/single_event/utils.py +++ b/src/jimgw/single_event/utils.py @@ -209,7 +209,7 @@ def rotate_y(angle, vec): """ cos_angle = jnp.cos(angle) sin_angle = jnp.sin(angle) - rotation_matrix = np.array([ + rotation_matrix = jnp.array([ [cos_angle, 0, sin_angle], [0, 1, 0], [-sin_angle, 0, cos_angle] From f7e287f61053f1965cc999d928bcfe38cc32b2e2 Mon Sep 17 00:00:00 2001 From: "Yu On (Ben) Xu" Date: Wed, 24 Jul 2024 11:59:17 -0400 Subject: [PATCH 07/44] Updated utils.py --- src/jimgw/single_event/utils.py | 103 ++++++++++++++++---------------- 1 file changed, 52 insertions(+), 51 deletions(-) diff --git a/src/jimgw/single_event/utils.py b/src/jimgw/single_event/utils.py index 9b9dea87..557a79ea 100644 --- a/src/jimgw/single_event/utils.py +++ b/src/jimgw/single_event/utils.py @@ -139,27 +139,27 @@ def ra_dec_to_theta_phi(ra: Float, dec: Float, gmst: Float) -> tuple[Float, Floa phi = ra - gmst theta = jnp.pi / 2 - dec return theta, phi - + def spin_to_cartesian_spin( - thetaJN: Float, - phiJL: Float, - theta1: Float, - theta2: Float, - phi12: Float, - chi1: Float, - chi2: Float, - M_c: Float, + thetaJN: Float, + phiJL: Float, + theta1: Float, + theta2: Float, + phi12: Float, + chi1: Float, + chi2: Float, + M_c: Float, eta: Float, - fRef: Float, - phiRef: Float + fRef: Float, + phiRef: Float, ) -> tuple[Float, Float, Float, Float, Float, Float, Float]: """ Transforming the spin parameters The code is based on the approach used in LALsimulation: https://lscsoft.docs.ligo.org/lalsuite/lalsimulation/group__lalsimulation__inference.html - + Parameters: ------- thetaJN: Float @@ -185,7 +185,7 @@ def spin_to_cartesian_spin( The reference frequency phiRef: Float Binary phase at a reference frequency - + Returns: ------- iota: Float @@ -203,56 +203,57 @@ def spin_to_cartesian_spin( S2z: Float The z-component of the secondary spin """ + def rotate_y(angle, vec): """ Rotate the vector (x, y, z) about y-axis """ cos_angle = jnp.cos(angle) sin_angle = jnp.sin(angle) - rotation_matrix = jnp.array([ - [cos_angle, 0, sin_angle], - [0, 1, 0], - [-sin_angle, 0, cos_angle] - ]) + rotation_matrix = jnp.array( + [[cos_angle, 0, sin_angle], [0, 1, 0], [-sin_angle, 0, cos_angle]] + ) rotated_vec = jnp.dot(rotation_matrix, vec) return rotated_vec - + def rotate_z(angle, vec): """ Rotate the vector (x, y, z) about z-axis """ cos_angle = jnp.cos(angle) sin_angle = jnp.sin(angle) - rotation_matrix = jnp.array([ - [cos_angle, -sin_angle, 0], - [sin_angle, cos_angle, 0], - [0, 0, 1] - ]) + rotation_matrix = jnp.array( + [[cos_angle, -sin_angle, 0], [sin_angle, cos_angle, 0], [0, 0, 1]] + ) rotated_vec = jnp.dot(rotation_matrix, vec) return rotated_vec - - LNh = jnp.array([0., 0., 1.]) - - s1hat = jnp.array([ - jnp.sin(theta1)*jnp.cos(phiRef), - jnp.sin(theta1)*jnp.sin(phiRef), - jnp.cos(theta1) - ]) - s2hat = jnp.array([ - jnp.sin(theta2) * jnp.cos(phi12+phiRef), - jnp.sin(theta2) * jnp.sin(phi12+phiRef), - jnp.cos(theta2) - ]) - - temp = (1 / eta / 2 - 1) - q = temp - (temp ** 2 - 1) ** 0.5 + + LNh = jnp.array([0.0, 0.0, 1.0]) + + s1hat = jnp.array( + [ + jnp.sin(theta1) * jnp.cos(phiRef), + jnp.sin(theta1) * jnp.sin(phiRef), + jnp.cos(theta1), + ] + ) + s2hat = jnp.array( + [ + jnp.sin(theta2) * jnp.cos(phi12 + phiRef), + jnp.sin(theta2) * jnp.sin(phi12 + phiRef), + jnp.cos(theta2), + ] + ) + + temp = 1 / eta / 2 - 1 + q = temp - (temp**2 - 1) ** 0.5 m1, m2 = Mc_q_to_m1m2(M_c, q) - v0 = jnp.cbrt((m1+m2) * Msun * jnp.pi * fRef) - - Lmag = ((m1+m2)*(m1+m2)*eta/v0) * (1.0 + v0*v0*(1.5 + eta/6.0)) + v0 = jnp.cbrt((m1 + m2) * Msun * jnp.pi * fRef) + + Lmag = ((m1 + m2) * (m1 + m2) * eta / v0) * (1.0 + v0 * v0 * (1.5 + eta / 6.0)) s1 = m1 * m1 * chi1 * s1hat s2 = m2 * m2 * chi2 * s2hat - J = s1 + s2 + jnp.array([0., 0., Lmag]) + J = s1 + s2 + jnp.array([0.0, 0.0, Lmag]) Jhat = J / jnp.linalg.norm(J) theta0 = jnp.arccos(Jhat[2]) @@ -266,24 +267,24 @@ def rotate_z(angle, vec): LNh = rotate_y(-theta0, LNh) s1hat = rotate_y(-theta0, s1hat) s2hat = rotate_y(-theta0, s2hat) - + # Rotation 3: LNh = rotate_z(phiJL - jnp.pi, LNh) s1hat = rotate_z(phiJL - jnp.pi, s1hat) s2hat = rotate_z(phiJL - jnp.pi, s2hat) - + # Compute iota N = jnp.array([0.0, jnp.sin(thetaJN), jnp.cos(thetaJN)]) iota = jnp.arccos(jnp.dot(N, LNh)) - + thetaLJ = jnp.arccos(LNh[2]) phiL = jnp.arctan2(LNh[1], LNh[0]) - + # Rotation 4: s1hat = rotate_z(-phiL, s1hat) s2hat = rotate_z(-phiL, s2hat) N = rotate_z(-phiL, N) - + # Rotation 5: s1hat = rotate_y(-thetaLJ, s1hat) s2hat = rotate_y(-thetaLJ, s2hat) @@ -291,8 +292,8 @@ def rotate_z(angle, vec): # Rotation 6: phiN = jnp.arctan2(N[1], N[0]) - s1hat = rotate_z(jnp.pi/2.-phiN-phiRef, s1hat) - s2hat = rotate_z(jnp.pi/2.-phiN-phiRef, s2hat) + s1hat = rotate_z(jnp.pi / 2.0 - phiN - phiRef, s1hat) + s2hat = rotate_z(jnp.pi / 2.0 - phiN - phiRef, s2hat) S1 = s1hat * chi1 S2 = s2hat * chi2 From 4f3be7043e5df159336b5427f80bf50b2e657828 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Wed, 24 Jul 2024 14:29:05 -0400 Subject: [PATCH 08/44] Updated runManager.py --- src/jimgw/single_event/runManager.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index 3f65166d..aa8d0dc7 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -71,7 +71,9 @@ class SingleEventRun: str, dict[str, Union[str, float, int, bool]] ] # Transform cannot be included in this way, add it to preset if used often. jim_parameters: dict[str, Union[str, float, int, bool, dict]] - injection_parameters: dict[str, float] + injection_parameters: dict[str, float] = field( + default_factory=lambda: {} + ) injection: bool = False likelihood_parameters: dict[str, Union[str, float, int, bool, PyTree]] = field( default_factory=lambda: {"name": "TransientLikelihoodFD"} @@ -123,6 +125,9 @@ def __init__(self, **kwargs): print("Neither run instance nor path provided.") raise ValueError + if self.run.injection and not self.run.injection_parameters: + raise ValueError("Injection mode requires injection parameters.") + local_prior = self.initialize_prior() local_likelihood = self.initialize_likelihood(local_prior) self.jim = Jim(local_likelihood, local_prior, **self.run.jim_parameters) From 6b09d72086230889363d12ad68641caa9b2e56e4 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Wed, 24 Jul 2024 14:42:12 -0400 Subject: [PATCH 09/44] updated SingleEventRun --- src/jimgw/single_event/runManager.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index 3f65166d..bb687814 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -71,7 +71,9 @@ class SingleEventRun: str, dict[str, Union[str, float, int, bool]] ] # Transform cannot be included in this way, add it to preset if used often. jim_parameters: dict[str, Union[str, float, int, bool, dict]] - injection_parameters: dict[str, float] + injection_parameters: dict[str, float] = field( + default_factory=lambda: {} + ) injection: bool = False likelihood_parameters: dict[str, Union[str, float, int, bool, PyTree]] = field( default_factory=lambda: {"name": "TransientLikelihoodFD"} @@ -122,6 +124,9 @@ def __init__(self, **kwargs): else: print("Neither run instance nor path provided.") raise ValueError + + if self.run.injection and not self.run.injection_parameters: + raise ValueError("Injection mode requires injection parameters.") local_prior = self.initialize_prior() local_likelihood = self.initialize_likelihood(local_prior) From 79b07fc563452071cbbaae3b580f584678ad947d Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Wed, 24 Jul 2024 15:36:48 -0400 Subject: [PATCH 10/44] Update the runManager --- example/Single_event_runManager.py | 19 ++++++++++--------- src/jimgw/single_event/runManager.py | 20 +++++++++++++++++++- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/example/Single_event_runManager.py b/example/Single_event_runManager.py index c0878afc..80bffda5 100644 --- a/example/Single_event_runManager.py +++ b/example/Single_event_runManager.py @@ -31,19 +31,18 @@ run = SingleEventRun( seed=0, - path="test_data/GW150914/", detectors=["H1", "L1"], priors={ - "M_c": {"name": "Uniform", "xmin": 10.0, "xmax": 80.0}, + "M_c": {"name": "Unconstrained_Uniform", "xmin": 10.0, "xmax": 80.0}, "q": {"name": "MassRatio"}, - "s1_z": {"name": "Uniform", "xmin": -1.0, "xmax": 1.0}, - "s2_z": {"name": "Uniform", "xmin": -1.0, "xmax": 1.0}, - "d_L": {"name": "Uniform", "xmin": 0.0, "xmax": 2000.0}, - "t_c": {"name": "Uniform", "xmin": -0.05, "xmax": 0.05}, - "phase_c": {"name": "Uniform", "xmin": 0.0, "xmax": 2 * jnp.pi}, + "s1_z": {"name": "Unconstrained_Uniform", "xmin": -1.0, "xmax": 1.0}, + "s2_z": {"name": "Unconstrained_Uniform", "xmin": -1.0, "xmax": 1.0}, + "d_L": {"name": "Unconstrained_Uniform", "xmin": 0.0, "xmax": 2000.0}, + "t_c": {"name": "Unconstrained_Uniform", "xmin": -0.05, "xmax": 0.05}, + "phase_c": {"name": "Unconstrained_Uniform", "xmin": 0.0, "xmax": 2 * jnp.pi}, "cos_iota": {"name": "CosIota"}, - "psi": {"name": "Uniform", "xmin": 0.0, "xmax": jnp.pi}, - "ra": {"name": "Uniform", "xmin": 0.0, "xmax": 2 * jnp.pi}, + "psi": {"name": "Unconstrained_Uniform", "xmin": 0.0, "xmax": jnp.pi}, + "ra": {"name": "Unconstrained_Uniform", "xmin": 0.0, "xmax": 2 * jnp.pi}, "sin_dec": {"name": "SinDec"}, }, waveform_parameters={"name": "RippleIMRPhenomD", "f_ref": 20.0}, @@ -91,3 +90,5 @@ ) run_manager = SingleEventPERunManager(run=run) +run_manager.jim.sample(jax.random.PRNGKey(42)) +run_manager.jim.get_samples() diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index bb687814..f079dee3 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -65,7 +65,8 @@ def jaxarray_representer(dumper: yaml.Dumper, data: ArrayImpl): @dataclass class SingleEventRun: seed: int - + path: str = "./experiment" + detectors: list[str] priors: dict[ str, dict[str, Union[str, float, int, bool]] @@ -356,3 +357,20 @@ def plot_data(self, path: str): plt.ylabel("Amplitude") plt.legend() plt.savefig(path) + + def sample(self): + self.jim.sample(jax.random.PRNGKey(self.run.seed)) + + def get_samples(self): + return self.jim.get_samples() + + def plot_samples(self, figure_name: str="corner.png"): + import corner + import matplotlib.pyplot as plt + samples = self.jim.get_samples() + param_names = list(samples.keys()) + samples = jnp.array(list(samples.values())).reshape(int(len(param_names)), -1).T + corner.corner(samples, labels=param_names, plot_datapoints=False, title_quantiles=[0.16, 0.5, 0.84], show_titles=True, title_fmt='g', use_math_text=True) + plt.savefig(figure_name) + plt.close() + From 9e282b798f5d7ada64af3cf4a26d934d8c085854 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Wed, 24 Jul 2024 15:43:00 -0400 Subject: [PATCH 11/44] Updated runManager.py --- src/jimgw/single_event/runManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index f079dee3..0575dc92 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -65,13 +65,13 @@ def jaxarray_representer(dumper: yaml.Dumper, data: ArrayImpl): @dataclass class SingleEventRun: seed: int - path: str = "./experiment" detectors: list[str] priors: dict[ str, dict[str, Union[str, float, int, bool]] ] # Transform cannot be included in this way, add it to preset if used often. jim_parameters: dict[str, Union[str, float, int, bool, dict]] + path: str = "./experiment" injection_parameters: dict[str, float] = field( default_factory=lambda: {} ) From 182824337b59131b510a13d3cec4224cf0aea7d9 Mon Sep 17 00:00:00 2001 From: Thomas Ng Date: Wed, 24 Jul 2024 15:47:31 -0400 Subject: [PATCH 12/44] Create verify_transform.py --- test/verify_transform.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 test/verify_transform.py diff --git a/test/verify_transform.py b/test/verify_transform.py new file mode 100644 index 00000000..8531c985 --- /dev/null +++ b/test/verify_transform.py @@ -0,0 +1,21 @@ +import numpy as np + +class VerifyTransform: + def verify_sky_location_transform(self): + from bilby.gw.utils import zenith_azimuth_to_ra_dec as bilby_earth_to_sky + from bilby.gw.detector.networks import InterferometerList + + from jimgw.single_event.utils import zenith_azimuth_to_ra_dec as jimgw_earth_to_sky + from jimgw.single_event.detector import detector_preset + from astropy.time import Time + + ifos = ["H1", "L1"] + geocent_time = 1000000000 + + import matplotlib.pyplot as plt + + for zenith in np.linspace(0, np.pi, 5): + for azimuth in np.linspace(0, 2*np.pi, 5): + bilby_sky_location = np.array(bilby_earth_to_sky(zenith, azimuth, geocent_time, InterferometerList(ifos))) + jimgw_sky_location = np.array(jimgw_earth_to_sky(zenith, azimuth, Time(geocent_time, format="gps").sidereal_time("apparent", "greenwich").rad, detector_preset[ifos[0]].vertex - detector_preset[ifos[1]].vertex)) + assert np.allclose(bilby_sky_location, jimgw_sky_location, atol=1e-4) From c66c872691977bfa7e2db1434a110f50ec63e487 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Wed, 24 Jul 2024 16:12:26 -0400 Subject: [PATCH 13/44] Updated runManager.py --- src/jimgw/single_event/runManager.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index 0575dc92..c63bc2de 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -364,13 +364,18 @@ def sample(self): def get_samples(self): return self.jim.get_samples() - def plot_samples(self, figure_name: str="corner.png"): + def plot_samples(self, figure_name: str="corner.png", **kwargs): import corner import matplotlib.pyplot as plt + import numpy as np + + title_quantiles = kwargs.get("title_quantiles", [0.16, 0.5, 0.84]) + title_fmt = kwargs.get("title_fmt", "g") + samples = self.jim.get_samples() param_names = list(samples.keys()) - samples = jnp.array(list(samples.values())).reshape(int(len(param_names)), -1).T - corner.corner(samples, labels=param_names, plot_datapoints=False, title_quantiles=[0.16, 0.5, 0.84], show_titles=True, title_fmt='g', use_math_text=True) + samples = np.array(list(samples.values())).reshape(int(len(param_names)), -1).T + corner.corner(samples, labels=param_names, plot_datapoints=False, title_quantiles=title_quantiles, show_titles=True, title_fmt=title_fmt, use_math_text=True, **kwargs) plt.savefig(figure_name) plt.close() From c3446b75389e94efeb0a57b2effba24d4f834358 Mon Sep 17 00:00:00 2001 From: Thomas Ng Date: Wed, 24 Jul 2024 16:29:46 -0400 Subject: [PATCH 14/44] Add test for spin transform --- test/verify_transform.py | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/test/verify_transform.py b/test/verify_transform.py index 8531c985..8da7f40d 100644 --- a/test/verify_transform.py +++ b/test/verify_transform.py @@ -1,4 +1,5 @@ import numpy as np +import jax.numpy as jnp class VerifyTransform: def verify_sky_location_transform(self): @@ -14,8 +15,36 @@ def verify_sky_location_transform(self): import matplotlib.pyplot as plt - for zenith in np.linspace(0, np.pi, 5): - for azimuth in np.linspace(0, 2*np.pi, 5): + for zenith in np.linspace(0, np.pi, 10): + for azimuth in np.linspace(0, 2*np.pi, 10): bilby_sky_location = np.array(bilby_earth_to_sky(zenith, azimuth, geocent_time, InterferometerList(ifos))) jimgw_sky_location = np.array(jimgw_earth_to_sky(zenith, azimuth, Time(geocent_time, format="gps").sidereal_time("apparent", "greenwich").rad, detector_preset[ifos[0]].vertex - detector_preset[ifos[1]].vertex)) assert np.allclose(bilby_sky_location, jimgw_sky_location, atol=1e-4) + + def verify_spin_transform(self): + from bilby.gw.conversion import bilby_to_lalsimulation_spins as bilby_spin_transform + from bilby.gw.conversion import symmetric_mass_ratio_to_mass_ratio, chirp_mass_and_mass_ratio_to_component_masses + from jimgw.constants import Msun + + from jimgw.single_event.utils import spin_to_cartesian_spin as jimgw_spin_transform + + for _ in range(100): + thetaJN = jnp.array(np.random.uniform(0, np.pi)) + phiJL = jnp.array(np.random.uniform(0, np.pi)) + theta1 = jnp.array(np.random.uniform(0, np.pi)) + theta2 = jnp.array(np.random.uniform(0, np.pi)) + phi12 = jnp.array(np.random.uniform(0, np.pi)) + chi1 = jnp.array(np.random.uniform(0, 1)) + chi2 = jnp.array(np.random.uniform(0, 1)) + M_c = jnp.array(np.random.uniform(1, 100)) + eta = jnp.array(np.random.uniform(0.1, 0.25)) + fRef = jnp.array(np.random.uniform(10, 1000)) + phiRef = jnp.array(np.random.uniform(0, 2*np.pi)) + + q = symmetric_mass_ratio_to_mass_ratio(eta) + m1, m2 = chirp_mass_and_mass_ratio_to_component_masses(M_c, q) + bilby_spin = jnp.array(bilby_spin_transform(thetaJN, phiJL, theta1, theta2, phi12, chi1, chi2, m1*Msun, m2*Msun, fRef, phiRef)) + jimgw_spin = jnp.array(jimgw_spin_transform(thetaJN, phiJL, theta1, theta2, phi12, chi1, chi2, M_c, eta, fRef, phiRef)) + assert np.allclose(bilby_spin, jimgw_spin) + +# VerifyTransform().verify_spin_transform() From 0c9028e7f49315fa8e7f0801f99207e9cc5357ec Mon Sep 17 00:00:00 2001 From: Thomas Ng Date: Wed, 24 Jul 2024 16:35:34 -0400 Subject: [PATCH 15/44] Finish spin transform test --- test/verify_transform.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/test/verify_transform.py b/test/verify_transform.py index 8da7f40d..08cd6ff2 100644 --- a/test/verify_transform.py +++ b/test/verify_transform.py @@ -24,7 +24,6 @@ def verify_sky_location_transform(self): def verify_spin_transform(self): from bilby.gw.conversion import bilby_to_lalsimulation_spins as bilby_spin_transform from bilby.gw.conversion import symmetric_mass_ratio_to_mass_ratio, chirp_mass_and_mass_ratio_to_component_masses - from jimgw.constants import Msun from jimgw.single_event.utils import spin_to_cartesian_spin as jimgw_spin_transform @@ -43,8 +42,7 @@ def verify_spin_transform(self): q = symmetric_mass_ratio_to_mass_ratio(eta) m1, m2 = chirp_mass_and_mass_ratio_to_component_masses(M_c, q) - bilby_spin = jnp.array(bilby_spin_transform(thetaJN, phiJL, theta1, theta2, phi12, chi1, chi2, m1*Msun, m2*Msun, fRef, phiRef)) + MsunInkg = 1.9884e30 + bilby_spin = jnp.array(bilby_spin_transform(thetaJN, phiJL, theta1, theta2, phi12, chi1, chi2, m1*MsunInkg, m2*MsunInkg, fRef, phiRef)) jimgw_spin = jnp.array(jimgw_spin_transform(thetaJN, phiJL, theta1, theta2, phi12, chi1, chi2, M_c, eta, fRef, phiRef)) assert np.allclose(bilby_spin, jimgw_spin) - -# VerifyTransform().verify_spin_transform() From 374f2483a4d36cc37bdf41b693177cfcdcf39818 Mon Sep 17 00:00:00 2001 From: Thomas Ng Date: Wed, 24 Jul 2024 16:45:36 -0400 Subject: [PATCH 16/44] Add likelihood name check --- src/jimgw/single_event/runManager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index 3f65166d..50a591cd 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -150,6 +150,7 @@ def initialize_likelihood(self, prior: prior.Prior) -> SingleEventLiklihood: waveform = self.initialize_waveform() name = self.run.likelihood_parameters["name"] assert isinstance(name, str), "Likelihood name must be a string." + assert name in likelihood_presets, f"Likelihood {name} not recognized." if self.run.injection: freqs = jnp.linspace( self.run.data_parameters["f_min"], From 0c49b23cebac8bb43b1b0dfe102f4292a7cdabf1 Mon Sep 17 00:00:00 2001 From: Thomas Ng Date: Wed, 24 Jul 2024 16:47:06 -0400 Subject: [PATCH 17/44] Rename test file --- test/{verify_transform.py => test_transform.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/{verify_transform.py => test_transform.py} (100%) diff --git a/test/verify_transform.py b/test/test_transform.py similarity index 100% rename from test/verify_transform.py rename to test/test_transform.py From d866fae021aa332033156a47bb74106dfb933468 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Wed, 24 Jul 2024 17:04:07 -0400 Subject: [PATCH 18/44] Updated runManager.py --- src/jimgw/single_event/runManager.py | 52 ++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index c63bc2de..a3080e68 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -4,6 +4,8 @@ import jax import jax.numpy as jnp import matplotlib.pyplot as plt +import corner +import numpy as np import yaml from astropy.time import Time from jaxlib.xla_extension import ArrayImpl @@ -364,18 +366,56 @@ def sample(self): def get_samples(self): return self.jim.get_samples() - def plot_samples(self, figure_name: str="corner.png", **kwargs): - import corner - import matplotlib.pyplot as plt - import numpy as np - + def plot_corner(self, figure_name: str="corner.png", **kwargs): + """ + plot corner plot of the samples. + """ + plot_datapoint = kwargs.get("plot_datapoints", False) title_quantiles = kwargs.get("title_quantiles", [0.16, 0.5, 0.84]) + show_titles = kwargs.get("show_titles", True) title_fmt = kwargs.get("title_fmt", "g") + use_math_text = kwargs.get("use_math_text", True) samples = self.jim.get_samples() param_names = list(samples.keys()) samples = np.array(list(samples.values())).reshape(int(len(param_names)), -1).T - corner.corner(samples, labels=param_names, plot_datapoints=False, title_quantiles=title_quantiles, show_titles=True, title_fmt=title_fmt, use_math_text=True, **kwargs) + corner.corner(samples, labels=param_names, plot_datapoints=plot_datapoint, title_quantiles=title_quantiles, show_titles=show_titles, title_fmt=title_fmt, use_math_text=use_math_text, **kwargs) + plt.savefig(figure_name) + plt.close() + + def plot_diagnostic(self, figure_name: str="diagnostic.png", **kwargs): + """ + plot diagnostic plot of the samples. + """ + summary = self.jim.Sampler.get_sampler_state(training=True) + chains, log_prob, local_accs, global_accs, loss_vals = summary.values() + log_prob = np.array(log_prob) + + plt.figure(figsize=(6, 6)) + axs = [plt.subplot(2, 2, i + 1) for i in range(4)] + plt.sca(axs[0]) + plt.title("log probability") + for i in range(log_prob.shape[0]): + axs[0].plot(log_prob[i], linewidth=0.05) + plt.xlabel("iteration") + + plt.sca(axs[1]) + plt.title("NF loss") + plt.plot(loss_vals.reshape(-1)) + plt.xlabel("iteration") + + plt.sca(axs[2]) + plt.title("Local Acceptance") + plt.plot(local_accs.mean(0)) + plt.xlabel("iteration") + + plt.sca(axs[3]) + plt.title("Global Acceptance") + plt.plot(global_accs.mean(0)) + plt.xlabel("iteration") + plt.tight_layout() + plt.savefig(figure_name) plt.close() + From 1ca24210c941d8bfa4da5b2f58dd52201627f94d Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:38:28 -0400 Subject: [PATCH 19/44] Updated runManager.py and Single_event_runManager.py --- example/Single_event_runManager.py | 2 ++ src/jimgw/single_event/runManager.py | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/example/Single_event_runManager.py b/example/Single_event_runManager.py index 80bffda5..3a89b561 100644 --- a/example/Single_event_runManager.py +++ b/example/Single_event_runManager.py @@ -91,4 +91,6 @@ run_manager = SingleEventPERunManager(run=run) run_manager.jim.sample(jax.random.PRNGKey(42)) +run_manager.plot_corner() +run_manager.plot_diagnostic() run_manager.jim.get_samples() diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index a3080e68..db90dd77 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -366,7 +366,7 @@ def sample(self): def get_samples(self): return self.jim.get_samples() - def plot_corner(self, figure_name: str="corner.png", **kwargs): + def plot_corner(self, path: str="corner.png", **kwargs): """ plot corner plot of the samples. """ @@ -380,10 +380,10 @@ def plot_corner(self, figure_name: str="corner.png", **kwargs): param_names = list(samples.keys()) samples = np.array(list(samples.values())).reshape(int(len(param_names)), -1).T corner.corner(samples, labels=param_names, plot_datapoints=plot_datapoint, title_quantiles=title_quantiles, show_titles=show_titles, title_fmt=title_fmt, use_math_text=use_math_text, **kwargs) - plt.savefig(figure_name) + plt.savefig(path) plt.close() - def plot_diagnostic(self, figure_name: str="diagnostic.png", **kwargs): + def plot_diagnostic(self, path: str="diagnostic.png", **kwargs): """ plot diagnostic plot of the samples. """ @@ -415,7 +415,7 @@ def plot_diagnostic(self, figure_name: str="diagnostic.png", **kwargs): plt.xlabel("iteration") plt.tight_layout() - plt.savefig(figure_name) + plt.savefig(path) plt.close() From 227fc983c53db406499cf82ddd3d49b4ac668322 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:59:32 -0400 Subject: [PATCH 20/44] Updated runManager.py --- src/jimgw/single_event/runManager.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index db90dd77..124e9de5 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -366,7 +366,7 @@ def sample(self): def get_samples(self): return self.jim.get_samples() - def plot_corner(self, path: str="corner.png", **kwargs): + def plot_corner(self, path: str="corner.jpeg", **kwargs): """ plot corner plot of the samples. """ @@ -383,7 +383,7 @@ def plot_corner(self, path: str="corner.png", **kwargs): plt.savefig(path) plt.close() - def plot_diagnostic(self, path: str="diagnostic.png", **kwargs): + def plot_diagnostic(self, path: str="diagnostic.jpeg", **kwargs): """ plot diagnostic plot of the samples. """ @@ -395,8 +395,7 @@ def plot_diagnostic(self, path: str="diagnostic.png", **kwargs): axs = [plt.subplot(2, 2, i + 1) for i in range(4)] plt.sca(axs[0]) plt.title("log probability") - for i in range(log_prob.shape[0]): - axs[0].plot(log_prob[i], linewidth=0.05) + plt.plot(log_prob.mean(0)) plt.xlabel("iteration") plt.sca(axs[1]) From 27998caceb4f77b5bb85d9bba2f5a8e6d0862ab7 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Thu, 25 Jul 2024 09:05:09 -0400 Subject: [PATCH 21/44] Reformatted files --- example/Single_event_runManager.py | 5 ++-- src/jimgw/single_event/runManager.py | 41 ++++++++++++++++------------ 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/example/Single_event_runManager.py b/example/Single_event_runManager.py index 3a89b561..5c678b22 100644 --- a/example/Single_event_runManager.py +++ b/example/Single_event_runManager.py @@ -28,7 +28,6 @@ ] ) - run = SingleEventRun( seed=0, detectors=["H1", "L1"], @@ -91,6 +90,8 @@ run_manager = SingleEventPERunManager(run=run) run_manager.jim.sample(jax.random.PRNGKey(42)) + +# plot the corner plot and diagnostic plot run_manager.plot_corner() run_manager.plot_diagnostic() -run_manager.jim.get_samples() + diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index 124e9de5..66790c1d 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -67,16 +67,14 @@ def jaxarray_representer(dumper: yaml.Dumper, data: ArrayImpl): @dataclass class SingleEventRun: seed: int - + detectors: list[str] priors: dict[ str, dict[str, Union[str, float, int, bool]] ] # Transform cannot be included in this way, add it to preset if used often. jim_parameters: dict[str, Union[str, float, int, bool, dict]] path: str = "./experiment" - injection_parameters: dict[str, float] = field( - default_factory=lambda: {} - ) + injection_parameters: dict[str, float] = field(default_factory=lambda: {}) injection: bool = False likelihood_parameters: dict[str, Union[str, float, int, bool, PyTree]] = field( default_factory=lambda: {"name": "TransientLikelihoodFD"} @@ -127,7 +125,7 @@ def __init__(self, **kwargs): else: print("Neither run instance nor path provided.") raise ValueError - + if self.run.injection and not self.run.injection_parameters: raise ValueError("Injection mode requires injection parameters.") @@ -359,14 +357,14 @@ def plot_data(self, path: str): plt.ylabel("Amplitude") plt.legend() plt.savefig(path) - + def sample(self): self.jim.sample(jax.random.PRNGKey(self.run.seed)) - + def get_samples(self): return self.jim.get_samples() - - def plot_corner(self, path: str="corner.jpeg", **kwargs): + + def plot_corner(self, path: str = "corner.jpeg", **kwargs): """ plot corner plot of the samples. """ @@ -375,29 +373,38 @@ def plot_corner(self, path: str="corner.jpeg", **kwargs): show_titles = kwargs.get("show_titles", True) title_fmt = kwargs.get("title_fmt", "g") use_math_text = kwargs.get("use_math_text", True) - + samples = self.jim.get_samples() param_names = list(samples.keys()) samples = np.array(list(samples.values())).reshape(int(len(param_names)), -1).T - corner.corner(samples, labels=param_names, plot_datapoints=plot_datapoint, title_quantiles=title_quantiles, show_titles=show_titles, title_fmt=title_fmt, use_math_text=use_math_text, **kwargs) + corner.corner( + samples, + labels=param_names, + plot_datapoints=plot_datapoint, + title_quantiles=title_quantiles, + show_titles=show_titles, + title_fmt=title_fmt, + use_math_text=use_math_text, + **kwargs, + ) plt.savefig(path) plt.close() - - def plot_diagnostic(self, path: str="diagnostic.jpeg", **kwargs): + + def plot_diagnostic(self, path: str = "diagnostic.jpeg", **kwargs): """ plot diagnostic plot of the samples. """ summary = self.jim.Sampler.get_sampler_state(training=True) chains, log_prob, local_accs, global_accs, loss_vals = summary.values() log_prob = np.array(log_prob) - + plt.figure(figsize=(6, 6)) axs = [plt.subplot(2, 2, i + 1) for i in range(4)] plt.sca(axs[0]) plt.title("log probability") plt.plot(log_prob.mean(0)) plt.xlabel("iteration") - + plt.sca(axs[1]) plt.title("NF loss") plt.plot(loss_vals.reshape(-1)) @@ -413,8 +420,6 @@ def plot_diagnostic(self, path: str="diagnostic.jpeg", **kwargs): plt.plot(global_accs.mean(0)) plt.xlabel("iteration") plt.tight_layout() - + plt.savefig(path) plt.close() - - From 94e5dfac77c80f2de9d30fbfb6dd08ed4f45c5f0 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Thu, 25 Jul 2024 12:05:53 -0400 Subject: [PATCH 22/44] Updated runManager.py --- src/jimgw/single_event/runManager.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index 66790c1d..6a3b3091 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -398,27 +398,31 @@ def plot_diagnostic(self, path: str = "diagnostic.jpeg", **kwargs): chains, log_prob, local_accs, global_accs, loss_vals = summary.values() log_prob = np.array(log_prob) - plt.figure(figsize=(6, 6)) + plt.figure(figsize=(10, 10)) axs = [plt.subplot(2, 2, i + 1) for i in range(4)] plt.sca(axs[0]) plt.title("log probability") plt.plot(log_prob.mean(0)) plt.xlabel("iteration") + plt.xlim(0, None) plt.sca(axs[1]) plt.title("NF loss") plt.plot(loss_vals.reshape(-1)) plt.xlabel("iteration") + plt.xlim(0, None) plt.sca(axs[2]) plt.title("Local Acceptance") plt.plot(local_accs.mean(0)) plt.xlabel("iteration") + plt.xlim(0, None) plt.sca(axs[3]) plt.title("Global Acceptance") plt.plot(global_accs.mean(0)) plt.xlabel("iteration") + plt.xlim(0, None) plt.tight_layout() plt.savefig(path) From 4267d97835242a90a16d5afeb58e88aa801b7e80 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Thu, 25 Jul 2024 12:11:04 -0400 Subject: [PATCH 23/44] Changed corner plot default setting --- src/jimgw/single_event/runManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index 6a3b3091..36312498 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -371,7 +371,7 @@ def plot_corner(self, path: str = "corner.jpeg", **kwargs): plot_datapoint = kwargs.get("plot_datapoints", False) title_quantiles = kwargs.get("title_quantiles", [0.16, 0.5, 0.84]) show_titles = kwargs.get("show_titles", True) - title_fmt = kwargs.get("title_fmt", "g") + title_fmt = kwargs.get("title_fmt", ".2E") use_math_text = kwargs.get("use_math_text", True) samples = self.jim.get_samples() From dd27330d115e4b8abac2e34b9f31f7a24926c347 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Fri, 26 Jul 2024 13:47:03 -0400 Subject: [PATCH 24/44] Updated Test files --- test/test_prior.py | 2 +- test/test_transform.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/test_prior.py b/test/test_prior.py index 53b065da..8b137891 100644 --- a/test/test_prior.py +++ b/test/test_prior.py @@ -1 +1 @@ -from jimgw.prior import Composite, Unconstrained_Uniform, Uniform + diff --git a/test/test_transform.py b/test/test_transform.py index 08cd6ff2..5d9fe464 100644 --- a/test/test_transform.py +++ b/test/test_transform.py @@ -1,8 +1,8 @@ import numpy as np import jax.numpy as jnp -class VerifyTransform: - def verify_sky_location_transform(self): +class TestTransform: + def test_sky_location_transform(self): from bilby.gw.utils import zenith_azimuth_to_ra_dec as bilby_earth_to_sky from bilby.gw.detector.networks import InterferometerList @@ -21,7 +21,7 @@ def verify_sky_location_transform(self): jimgw_sky_location = np.array(jimgw_earth_to_sky(zenith, azimuth, Time(geocent_time, format="gps").sidereal_time("apparent", "greenwich").rad, detector_preset[ifos[0]].vertex - detector_preset[ifos[1]].vertex)) assert np.allclose(bilby_sky_location, jimgw_sky_location, atol=1e-4) - def verify_spin_transform(self): + def test_spin_transform(self): from bilby.gw.conversion import bilby_to_lalsimulation_spins as bilby_spin_transform from bilby.gw.conversion import symmetric_mass_ratio_to_mass_ratio, chirp_mass_and_mass_ratio_to_component_masses @@ -45,4 +45,4 @@ def verify_spin_transform(self): MsunInkg = 1.9884e30 bilby_spin = jnp.array(bilby_spin_transform(thetaJN, phiJL, theta1, theta2, phi12, chi1, chi2, m1*MsunInkg, m2*MsunInkg, fRef, phiRef)) jimgw_spin = jnp.array(jimgw_spin_transform(thetaJN, phiJL, theta1, theta2, phi12, chi1, chi2, M_c, eta, fRef, phiRef)) - assert np.allclose(bilby_spin, jimgw_spin) + assert np.allclose(bilby_spin, jimgw_spin, atol=1e-4) From 450772f72f914e9c5b49c2ef9e66d6b56e0b3a62 Mon Sep 17 00:00:00 2001 From: Thibeau Wouters Date: Sat, 17 Aug 2024 01:36:45 -0700 Subject: [PATCH 25/44] Added code to create and reverse transforms for more flexibility --- src/jimgw/single_event/transforms.py | 202 ++++++++--------------- src/jimgw/transforms.py | 51 ++++++ test/integration/.gitignore | 2 + test/integration/test_GW150914_D.py | 37 +++-- test/integration/test_mass_transforms.py | 127 ++++++++++++++ 5 files changed, 271 insertions(+), 148 deletions(-) create mode 100644 test/integration/.gitignore create mode 100644 test/integration/test_mass_transforms.py diff --git a/src/jimgw/single_event/transforms.py b/src/jimgw/single_event/transforms.py index c3e77846..49f01457 100644 --- a/src/jimgw/single_event/transforms.py +++ b/src/jimgw/single_event/transforms.py @@ -4,7 +4,12 @@ from astropy.time import Time from jimgw.single_event.detector import GroundBased2G -from jimgw.transforms import BijectiveTransform, NtoNTransform +from jimgw.transforms import ( + BijectiveTransform, + NtoNTransform, + reverse_bijective_transform, + create_bijective_transform, +) from jimgw.single_event.utils import ( m1_m2_to_Mc_q, Mc_q_to_m1_m2, @@ -20,100 +25,65 @@ @jaxtyped(typechecker=typechecker) -class ComponentMassesToChirpMassMassRatioTransform(BijectiveTransform): +class SpinToCartesianSpinTransform(NtoNTransform): """ - Transform chirp mass and mass ratio to component masses - - Parameters - ---------- - name_mapping : tuple[list[str], list[str]] - The name mapping between the input and output dictionary. + Spin to Cartesian spin transformation """ + freq_ref: Float + def __init__( self, name_mapping: tuple[list[str], list[str]], + freq_ref: Float, ): super().__init__(name_mapping) - assert ( - "m_1" in name_mapping[0] - and "m_2" in name_mapping[0] - and "M_c" in name_mapping[1] - and "q" in name_mapping[1] - ) - - def named_transform(x): - Mc, q = m1_m2_to_Mc_q(x["m_1"], x["m_2"]) - return {"M_c": Mc, "q": q} - - self.transform_func = named_transform - - def named_inverse_transform(x): - m1, m2 = Mc_q_to_m1_m2(x["M_c"], x["q"]) - return {"m_1": m1, "m_2": m2} - - self.inverse_transform_func = named_inverse_transform - - -@jaxtyped(typechecker=typechecker) -class ComponentMassesToChirpMassSymmetricMassRatioTransform(BijectiveTransform): - """ - Transform mass ratio to symmetric mass ratio - - Parameters - ---------- - name_mapping : tuple[list[str], list[str]] - The name mapping between the input and output dictionary. - """ + self.freq_ref = freq_ref - def __init__( - self, - name_mapping: tuple[list[str], list[str]], - ): - super().__init__(name_mapping) assert ( - "m_1" in name_mapping[0] - and "m_2" in name_mapping[0] - and "M_c" in name_mapping[1] - and "eta" in name_mapping[1] + "theta_jn" in name_mapping[0] + and "phi_jl" in name_mapping[0] + and "theta_1" in name_mapping[0] + and "theta_2" in name_mapping[0] + and "phi_12" in name_mapping[0] + and "a_1" in name_mapping[0] + and "a_2" in name_mapping[0] + and "iota" in name_mapping[1] + and "s1_x" in name_mapping[1] + and "s1_y" in name_mapping[1] + and "s1_z" in name_mapping[1] + and "s2_x" in name_mapping[1] + and "s2_y" in name_mapping[1] + and "s2_z" in name_mapping[1] ) def named_transform(x): - Mc, eta = m1_m2_to_Mc_eta(x["m_1"], x["m_2"]) - return {"M_c": Mc, "eta": eta} + iota, s1x, s1y, s1z, s2x, s2y, s2z = spin_to_cartesian_spin( + x["theta_jn"], + x["phi_jl"], + x["theta_1"], + x["theta_2"], + x["phi_12"], + x["a_1"], + x["a_2"], + x["M_c"], + x["q"], + self.freq_ref, + x["phase_c"], + ) + return { + "iota": iota, + "s1_x": s1x, + "s1_y": s1y, + "s1_z": s1z, + "s2_x": s2x, + "s2_y": s2y, + "s2_z": s2z, + } self.transform_func = named_transform - def named_inverse_transform(x): - m1, m2 = Mc_eta_to_m1_m2(x["M_c"], x["q"]) - return {"m_1": m1, "m_2": m2} - - self.inverse_transform_func = named_inverse_transform - - -@jaxtyped(typechecker=typechecker) -class MassRatioToSymmetricMassRatioTransform(BijectiveTransform): - """ - Transform mass ratio to symmetric mass ratio - - Parameters - ---------- - name_mapping : tuple[list[str], list[str]] - The name mapping between the input and output dictionary. - - """ - - def __init__( - self, - name_mapping: tuple[list[str], list[str]], - ): - super().__init__(name_mapping) - assert "q" == name_mapping[0][0] and "eta" == name_mapping[1][0] - - self.transform_func = lambda x: {"eta": q_to_eta(x["q"])} - self.inverse_transform_func = lambda x: {"q": eta_to_q(x["eta"])} - @jaxtyped(typechecker=typechecker) class SkyFrameToDetectorFrameSkyPositionTransform(BijectiveTransform): @@ -170,62 +140,24 @@ def named_inverse_transform(x): self.inverse_transform_func = named_inverse_transform -@jaxtyped(typechecker=typechecker) -class SpinToCartesianSpinTransform(NtoNTransform): - """ - Spin to Cartesian spin transformation - """ - - freq_ref: Float - - def __init__( - self, - name_mapping: tuple[list[str], list[str]], - freq_ref: Float, - ): - super().__init__(name_mapping) - - self.freq_ref = freq_ref - - assert ( - "theta_jn" in name_mapping[0] - and "phi_jl" in name_mapping[0] - and "theta_1" in name_mapping[0] - and "theta_2" in name_mapping[0] - and "phi_12" in name_mapping[0] - and "a_1" in name_mapping[0] - and "a_2" in name_mapping[0] - and "iota" in name_mapping[1] - and "s1_x" in name_mapping[1] - and "s1_y" in name_mapping[1] - and "s1_z" in name_mapping[1] - and "s2_x" in name_mapping[1] - and "s2_y" in name_mapping[1] - and "s2_z" in name_mapping[1] - ) +# Pre-made bijective transforms: +ComponentMassesToChirpMassMassRatioTransform = create_bijective_transform( + (["m_1", "m_2"], ["M_c", "q"]), m1_m2_to_Mc_q, Mc_q_to_m1_m2 +) +ChirpMassMassRatioToComponentMassesTransform = reverse_bijective_transform( + ComponentMassesToChirpMassMassRatioTransform +) - def named_transform(x): - iota, s1x, s1y, s1z, s2x, s2y, s2z = spin_to_cartesian_spin( - x["theta_jn"], - x["phi_jl"], - x["theta_1"], - x["theta_2"], - x["phi_12"], - x["a_1"], - x["a_2"], - x["M_c"], - x["q"], - self.freq_ref, - x["phase_c"], - ) - return { - "iota": iota, - "s1_x": s1x, - "s1_y": s1y, - "s1_z": s1z, - "s2_x": s2x, - "s2_y": s2y, - "s2_z": s2z, - } +ComponentMassesToChirpMassSymmetricMassRatioTransform = create_bijective_transform( + (["m_1", "m_2"], ["M_c", "eta"]), m1_m2_to_Mc_eta, Mc_eta_to_m1_m2 +) +ChirpMassSymmetricMassRatioToComponentMassesTransform = reverse_bijective_transform( + ComponentMassesToChirpMassSymmetricMassRatioTransform +) - self.transform_func = named_transform +MassRatioToSymmetricMassRatioTransform = create_bijective_transform( + (["q"], ["eta"]), q_to_eta, eta_to_q +) +SymmetricMassRatioToMassRatioTransform = reverse_bijective_transform( + MassRatioToSymmetricMassRatioTransform +) diff --git a/src/jimgw/transforms.py b/src/jimgw/transforms.py index 715d49de..44f2837c 100644 --- a/src/jimgw/transforms.py +++ b/src/jimgw/transforms.py @@ -445,3 +445,54 @@ def __init__( ) for i in range(len(name_mapping[1])) } + + +def create_bijective_transform( + name_mapping: tuple[list[str], list[str]], + transform_func_array: Callable[[Float], Float], + inverse_transform_func_array: Callable[[Float], Float], +) -> BijectiveTransform: + """ + Utility function to create a BijectiveTransform object given a name_mapping and the forward and backward transform functions which take arrays as input, e.g. coming from the utils module. + + Args: + name_mapping (tuple[list[str], list[str]]): The name_mapping to be used in the named transforms. + transform_func_array (Callable[[Float], Float]): The forward function method taking an array as input. + inverse_transform_func_array (Callable[[Float], Float]): The inverse function method taking an array as input. + + Returns: + BijectiveTransform: The BijectiveTransform object. + """ + + def named_transform_func(x_named: dict[str, Float]) -> dict[str, Float]: + x_array = jnp.array([x_named[key] for key in name_mapping[0]]) + y_array = transform_func_array(*x_array) + y_named = dict(zip(name_mapping[1], y_array)) + return y_named + + def named_inverse_transform_func(y_named: dict[str, Float]) -> dict[str, Float]: + y_array = jnp.array([y_named[key] for key in name_mapping[1]]) + x_array = inverse_transform_func_array(*y_array) + x_named = dict(zip(name_mapping[0], x_array)) + return x_named + + new_transform = BijectiveTransform(name_mapping) + new_transform.transform_func = named_transform_func + new_transform.inverse_transform_func = named_inverse_transform_func + + return new_transform + + +def reverse_bijective_transform( + original_transform: BijectiveTransform, +) -> BijectiveTransform: + + reversed_name_mapping = ( + original_transform.name_mapping[1], + original_transform.name_mapping[0], + ) + reversed_transform = BijectiveTransform(name_mapping=reversed_name_mapping) + reversed_transform.transform_func = original_transform.inverse_transform_func + reversed_transform.inverse_transform_func = original_transform.transform_func + + return reversed_transform diff --git a/test/integration/.gitignore b/test/integration/.gitignore new file mode 100644 index 00000000..a7f7ef0e --- /dev/null +++ b/test/integration/.gitignore @@ -0,0 +1,2 @@ +outdir/ +figures/ diff --git a/test/integration/test_GW150914_D.py b/test/integration/test_GW150914_D.py index e1eee9ac..d3c5c0e8 100644 --- a/test/integration/test_GW150914_D.py +++ b/test/integration/test_GW150914_D.py @@ -1,3 +1,7 @@ +import os +os.environ["CUDA_VISIBLE_DEVICES"] = "0" +os.environ["XLA_PYTHON_CLIENT_MEM_FRACTION"] = "0.10" + import jax import jax.numpy as jnp @@ -10,6 +14,8 @@ from jimgw.single_event.transforms import ComponentMassesToChirpMassSymmetricMassRatioTransform, SkyFrameToDetectorFrameSkyPositionTransform, ComponentMassesToChirpMassMassRatioTransform from jimgw.single_event.utils import Mc_q_to_m1_m2 from flowMC.strategy.optimization import optimization_Adam +from flowMC.utils.postprocessing import plot_summary +import optax jax.config.update("jax_enable_x64", True) @@ -62,7 +68,7 @@ ) sample_transforms = [ - ComponentMassesToChirpMassMassRatioTransform(name_mapping=[["m_1", "m_2"], ["M_c", "q"]]), + ComponentMassesToChirpMassMassRatioTransform, BoundToUnbound(name_mapping = [["M_c"], ["M_c_unbounded"]], original_lower_bound=M_c_min, original_upper_bound=M_c_max), BoundToUnbound(name_mapping = [["q"], ["q_unbounded"]], original_lower_bound=q_min, original_upper_bound=q_max), BoundToUnbound(name_mapping = [["s1_z"], ["s1_z_unbounded"]] , original_lower_bound=-1.0, original_upper_bound=1.0), @@ -78,7 +84,7 @@ ] likelihood_transforms = [ - ComponentMassesToChirpMassSymmetricMassRatioTransform(name_mapping=[["m_1", "m_2"], ["M_c", "eta"]]), + ComponentMassesToChirpMassSymmetricMassRatioTransform, ] likelihood = TransientLikelihoodFD( @@ -97,10 +103,14 @@ Adam_optimizer = optimization_Adam(n_steps=5, learning_rate=0.01, noise_level=1) -n_epochs = 2 -n_loop_training = 1 -learning_rate = 1e-4 +n_epochs = 20 +n_loop_training = 10 +total_epochs = n_epochs * n_loop_training +start = total_epochs//10 +learning_rate = optax.polynomial_schedule( + 1e-3, 5e-4, 4.0, total_epochs - start, transition_begin=start +) jim = Jim( likelihood, @@ -108,19 +118,19 @@ sample_transforms=sample_transforms, likelihood_transforms=likelihood_transforms, n_loop_training=n_loop_training, - n_loop_production=1, - n_local_steps=5, - n_global_steps=5, - n_chains=4, + n_loop_production=4, + n_local_steps=10, + n_global_steps=1000, + n_chains=500, n_epochs=n_epochs, learning_rate=learning_rate, - n_max_examples=30, - n_flow_samples=100, + n_max_examples=30000, + n_flow_samples=100000, momentum=0.9, - batch_size=100, + batch_size=30000, use_global=True, train_thinning=1, - output_thinning=1, + output_thinning=10, local_sampler_arg=local_sampler_arg, strategies=[Adam_optimizer, "default"], ) @@ -128,3 +138,4 @@ jim.sample(jax.random.PRNGKey(42)) jim.get_samples() jim.print_summary() +plot_summary(jim.sampler) \ No newline at end of file diff --git a/test/integration/test_mass_transforms.py b/test/integration/test_mass_transforms.py new file mode 100644 index 00000000..ec7631cb --- /dev/null +++ b/test/integration/test_mass_transforms.py @@ -0,0 +1,127 @@ +import os +os.environ["CUDA_VISIBLE_DEVICES"] = "2" +os.environ["XLA_PYTHON_CLIENT_MEM_FRACTION"] = "0.10" + +import numpy as np +import matplotlib.pyplot as plt +import corner +import jax +import jax.numpy as jnp +from jaxtyping import Float + +from jimgw.prior import UniformPrior, CombinePrior +from jimgw.single_event.transforms import ChirpMassMassRatioToComponentMassesTransform +from jimgw.base import LikelihoodBase +from jimgw.jim import Jim + +params = {"axes.grid": True, + "text.usetex" : True, + "font.family" : "serif", + "ytick.color" : "black", + "xtick.color" : "black", + "axes.labelcolor" : "black", + "axes.edgecolor" : "black", + "font.serif" : ["Computer Modern Serif"], + "xtick.labelsize": 16, + "ytick.labelsize": 16, + "axes.labelsize": 16, + "legend.fontsize": 16, + "legend.title_fontsize": 16, + "figure.titlesize": 16} + +plt.rcParams.update(params) + +# Improved corner kwargs +default_corner_kwargs = dict(bins=40, + smooth=1., + show_titles=False, + label_kwargs=dict(fontsize=16), + title_kwargs=dict(fontsize=16), + color="blue", + # quantiles=[], + # levels=[0.9], + plot_density=True, + plot_datapoints=False, + fill_contours=True, + max_n_ticks=4, + min_n_ticks=3, + truth_color = "red", + save=False) + +# Likelihood for this test: + +class MyLikelihood(LikelihoodBase): + """Simple toy likelihood: Gaussian centered on the true component masses""" + + true_m1: Float + true_m2: Float + + def __init__(self, + true_m1: Float, + true_m2: Float): + + self.true_m1 = true_m1 + self.true_m2 = true_m2 + + def evaluate(self, params: dict[str, Float], data: dict) -> Float: + m1, m2 = params['m_1'], params['m_2'] + m1_std = 0.1 + m2_std = 0.1 + return -0.5 * (((m1 - self.true_m1) / m1_std)**2 + ((m2 - self.true_m2) / m2_std)**2) + +# Setup +true_m1 = 1.6 +true_m2 = 1.4 +true_mc = (true_m1 * true_m2)**(3/5) / (true_m1 + true_m2)**(1/5) +true_q = true_m2 / true_m1 + +# Priors +eps = 0.5 # half of width of the chirp mass prior +mc_prior = UniformPrior(true_mc - eps, true_mc + eps, parameter_names=['M_c']) +q_prior = UniformPrior(0.125, 1.0, parameter_names=['q']) +combine_prior = CombinePrior([mc_prior, q_prior]) + +# Likelihood and transform +likelihood = MyLikelihood(true_m1, true_m2) +mass_transform = ChirpMassMassRatioToComponentMassesTransform + +print(mass_transform.name_mapping) + +# Other stuff we have to give to Jim to make it work +step = 5e-3 +local_sampler_arg = {"step_size": step * jnp.eye(2)} + +# Jim: +jim = Jim(likelihood, + combine_prior, + likelihood_transforms=[mass_transform], + n_chains = 200, + parameter_names=['M_c', 'q'], + n_loop_training=20, + n_loop_production=5, + local_sampler_arg=local_sampler_arg) + +jim.sample(jax.random.PRNGKey(0)) +jim.print_summary() + +# Go from Mc, q samples to m1, m2 samples +chains_named = jim.get_samples() +m1m2_named = mass_transform.forward(chains_named) +m1, m2 = m1m2_named['m_1'], m1m2_named['m_2'] + +### Prior space: +chains = np.array([chains_named['M_c'], chains_named['q']]).T +chains = np.reshape(chains, (-1, 2)) +corner.corner(chains, truths = np.array([true_mc, true_q]), **default_corner_kwargs) + +plt.savefig("./figures/test_mass_transform_before.png", bbox_inches = 'tight') +plt.close() + +### Transformed space: +chains = np.array([m1, m2]).T +chains = np.reshape(chains, (-1, 2)) + +corner.corner(chains, truths = np.array([true_m1, true_m2]), **default_corner_kwargs) + +plt.savefig("./figures/test_mass_transform_after.png", bbox_inches = 'tight') +plt.close() \ No newline at end of file From 83b0d14246ed9a71b1900920123813763bca8e8e Mon Sep 17 00:00:00 2001 From: Thibeau Wouters Date: Sun, 18 Aug 2024 00:38:56 -0700 Subject: [PATCH 26/44] Make sure 1d transforms are created correctly --- src/jimgw/transforms.py | 4 ++-- test/integration/test_GW150914_Pv2.py | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/jimgw/transforms.py b/src/jimgw/transforms.py index 44f2837c..268bfd5c 100644 --- a/src/jimgw/transforms.py +++ b/src/jimgw/transforms.py @@ -467,13 +467,13 @@ def create_bijective_transform( def named_transform_func(x_named: dict[str, Float]) -> dict[str, Float]: x_array = jnp.array([x_named[key] for key in name_mapping[0]]) y_array = transform_func_array(*x_array) - y_named = dict(zip(name_mapping[1], y_array)) + y_named = dict(zip(name_mapping[1], jnp.atleast_1d(y_array))) return y_named def named_inverse_transform_func(y_named: dict[str, Float]) -> dict[str, Float]: y_array = jnp.array([y_named[key] for key in name_mapping[1]]) x_array = inverse_transform_func_array(*y_array) - x_named = dict(zip(name_mapping[0], x_array)) + x_named = dict(zip(name_mapping[0], jnp.atleast_1d(x_array))) return x_named new_transform = BijectiveTransform(name_mapping) diff --git a/test/integration/test_GW150914_Pv2.py b/test/integration/test_GW150914_Pv2.py index c9d83a5e..e155237d 100644 --- a/test/integration/test_GW150914_Pv2.py +++ b/test/integration/test_GW150914_Pv2.py @@ -1,3 +1,7 @@ +import os +os.environ["CUDA_VISIBLE_DEVICES"] = "0" +os.environ["XLA_PYTHON_CLIENT_MEM_FRACTION"] = "0.10" + import time import jax @@ -12,6 +16,8 @@ from jimgw.single_event.transforms import MassRatioToSymmetricMassRatioTransform, SpinToCartesianSpinTransform from flowMC.strategy.optimization import optimization_Adam +from flowMC.utils.postprocessing import plot_summary + jax.config.update("jax_enable_x64", True) ########################################### @@ -90,7 +96,7 @@ likelihood_transforms = [ SpinToCartesianSpinTransform(name_mapping=[["theta_jn", "phi_jl", "theta_1", "theta_2", "phi_12", "a_1", "a_2"], ["iota", "s1_x", "s1_y", "s1_z", "s2_x", "s2_y", "s2_z"]], freq_ref=20.0), - MassRatioToSymmetricMassRatioTransform(name_mapping=[["q"], ["eta"]]), + MassRatioToSymmetricMassRatioTransform, ] likelihood = TransientLikelihoodFD( @@ -140,3 +146,5 @@ jim.sample(jax.random.PRNGKey(42)) jim.get_samples() jim.print_summary() + +plot_summary(jim.sampler) \ No newline at end of file From c6605f68996834e5e914a3be229801ea9389978b Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Thu, 22 Aug 2024 02:34:35 +0800 Subject: [PATCH 27/44] Update transforms.py --- src/jimgw/transforms.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/jimgw/transforms.py b/src/jimgw/transforms.py index 715d49de..ac56a1e1 100644 --- a/src/jimgw/transforms.py +++ b/src/jimgw/transforms.py @@ -89,7 +89,7 @@ def transform(self, x: dict[str, Float]) -> tuple[dict[str, Float], Float]: output_params = self.transform_func(transform_params) jacobian = jax.jacfwd(self.transform_func)(transform_params) jacobian = jnp.array(jax.tree.leaves(jacobian)) - jacobian = jnp.log(jnp.linalg.det(jacobian.reshape(self.n_dim, self.n_dim))) + jacobian = jnp.log(jnp.absolute(jnp.linalg.det(jacobian.reshape(self.n_dim, self.n_dim)))) jax.tree.map( lambda key: x_copy.pop(key), self.name_mapping[0], @@ -126,7 +126,7 @@ def inverse(self, y: dict[str, Float]) -> tuple[dict[str, Float], Float]: output_params = self.inverse_transform_func(transform_params) jacobian = jax.jacfwd(self.inverse_transform_func)(transform_params) jacobian = jnp.array(jax.tree.leaves(jacobian)) - jacobian = jnp.log(jnp.linalg.det(jacobian.reshape(self.n_dim, self.n_dim))) + jacobian = jnp.log(jnp.absolute(jnp.linalg.det(jacobian.reshape(self.n_dim, self.n_dim)))) jax.tree.map( lambda key: y_copy.pop(key), self.name_mapping[1], From 59dd222e8cb1f67dad80e7d4119f7c505bea11d8 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Thu, 22 Aug 2024 02:45:23 +0800 Subject: [PATCH 28/44] Update runManager.py --- src/jimgw/single_event/runManager.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index aa8d0dc7..e23c5396 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -71,9 +71,7 @@ class SingleEventRun: str, dict[str, Union[str, float, int, bool]] ] # Transform cannot be included in this way, add it to preset if used often. jim_parameters: dict[str, Union[str, float, int, bool, dict]] - injection_parameters: dict[str, float] = field( - default_factory=lambda: {} - ) + injection_parameters: dict[str, float] injection: bool = False likelihood_parameters: dict[str, Union[str, float, int, bool, PyTree]] = field( default_factory=lambda: {"name": "TransientLikelihoodFD"} @@ -125,9 +123,6 @@ def __init__(self, **kwargs): print("Neither run instance nor path provided.") raise ValueError - if self.run.injection and not self.run.injection_parameters: - raise ValueError("Injection mode requires injection parameters.") - local_prior = self.initialize_prior() local_likelihood = self.initialize_likelihood(local_prior) self.jim = Jim(local_likelihood, local_prior, **self.run.jim_parameters) From 702ee20a6104b8a9561f2ba115809472985c49a0 Mon Sep 17 00:00:00 2001 From: xuyuon <116078673+xuyuon@users.noreply.github.com> Date: Thu, 22 Aug 2024 02:45:58 +0800 Subject: [PATCH 29/44] Update runManager.py --- src/jimgw/single_event/runManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jimgw/single_event/runManager.py b/src/jimgw/single_event/runManager.py index e23c5396..3f65166d 100644 --- a/src/jimgw/single_event/runManager.py +++ b/src/jimgw/single_event/runManager.py @@ -71,7 +71,7 @@ class SingleEventRun: str, dict[str, Union[str, float, int, bool]] ] # Transform cannot be included in this way, add it to preset if used often. jim_parameters: dict[str, Union[str, float, int, bool, dict]] - injection_parameters: dict[str, float] + injection_parameters: dict[str, float] injection: bool = False likelihood_parameters: dict[str, Union[str, float, int, bool, PyTree]] = field( default_factory=lambda: {"name": "TransientLikelihoodFD"} From b621dc907eb661a1d1993f39fecac8c8b6d56bc5 Mon Sep 17 00:00:00 2001 From: Thibeau Wouters Date: Wed, 21 Aug 2024 23:24:25 -0700 Subject: [PATCH 30/44] Making the tests lightweight again --- test/integration/test_GW150914_D.py | 31 +++++++------------ .../integration/test_GW150914_D_heterodyne.py | 2 +- test/integration/test_GW150914_Pv2.py | 12 ++----- test/integration/test_mass_transforms.py | 30 +++--------------- 4 files changed, 19 insertions(+), 56 deletions(-) diff --git a/test/integration/test_GW150914_D.py b/test/integration/test_GW150914_D.py index d3c5c0e8..2bb536a2 100644 --- a/test/integration/test_GW150914_D.py +++ b/test/integration/test_GW150914_D.py @@ -95,7 +95,6 @@ post_trigger_duration=2, ) - mass_matrix = jnp.eye(11) mass_matrix = mass_matrix.at[1, 1].set(1e-3) mass_matrix = mass_matrix.at[5, 5].set(1e-3) @@ -103,14 +102,9 @@ Adam_optimizer = optimization_Adam(n_steps=5, learning_rate=0.01, noise_level=1) - -n_epochs = 20 -n_loop_training = 10 -total_epochs = n_epochs * n_loop_training -start = total_epochs//10 -learning_rate = optax.polynomial_schedule( - 1e-3, 5e-4, 4.0, total_epochs - start, transition_begin=start -) +n_epochs = 2 +n_loop_training = 1 +learning_rate = 1e-4 jim = Jim( likelihood, @@ -118,24 +112,23 @@ sample_transforms=sample_transforms, likelihood_transforms=likelihood_transforms, n_loop_training=n_loop_training, - n_loop_production=4, - n_local_steps=10, - n_global_steps=1000, - n_chains=500, + n_loop_production=1, + n_local_steps=5, + n_global_steps=5, + n_chains=4, n_epochs=n_epochs, learning_rate=learning_rate, - n_max_examples=30000, - n_flow_samples=100000, + n_max_examples=30, + n_flow_samples=100, momentum=0.9, - batch_size=30000, + batch_size=100, use_global=True, train_thinning=1, - output_thinning=10, + output_thinning=1, local_sampler_arg=local_sampler_arg, strategies=[Adam_optimizer, "default"], ) jim.sample(jax.random.PRNGKey(42)) jim.get_samples() -jim.print_summary() -plot_summary(jim.sampler) \ No newline at end of file +jim.print_summary() \ No newline at end of file diff --git a/test/integration/test_GW150914_D_heterodyne.py b/test/integration/test_GW150914_D_heterodyne.py index bf97efdb..6d139dc8 100644 --- a/test/integration/test_GW150914_D_heterodyne.py +++ b/test/integration/test_GW150914_D_heterodyne.py @@ -132,4 +132,4 @@ jim.sample(jax.random.PRNGKey(42)) jim.get_samples() -jim.print_summary() +jim.print_summary() \ No newline at end of file diff --git a/test/integration/test_GW150914_Pv2.py b/test/integration/test_GW150914_Pv2.py index e155237d..3d8e9f20 100644 --- a/test/integration/test_GW150914_Pv2.py +++ b/test/integration/test_GW150914_Pv2.py @@ -1,7 +1,3 @@ -import os -os.environ["CUDA_VISIBLE_DEVICES"] = "0" -os.environ["XLA_PYTHON_CLIENT_MEM_FRACTION"] = "0.10" - import time import jax @@ -16,8 +12,6 @@ from jimgw.single_event.transforms import MassRatioToSymmetricMassRatioTransform, SpinToCartesianSpinTransform from flowMC.strategy.optimization import optimization_Adam -from flowMC.utils.postprocessing import plot_summary - jax.config.update("jax_enable_x64", True) ########################################### @@ -96,7 +90,7 @@ likelihood_transforms = [ SpinToCartesianSpinTransform(name_mapping=[["theta_jn", "phi_jl", "theta_1", "theta_2", "phi_12", "a_1", "a_2"], ["iota", "s1_x", "s1_y", "s1_z", "s2_x", "s2_y", "s2_z"]], freq_ref=20.0), - MassRatioToSymmetricMassRatioTransform, + MassRatioToSymmetricMassRatioTransform(name_mapping=[["q"], ["eta"]]), ] likelihood = TransientLikelihoodFD( @@ -145,6 +139,4 @@ jim.sample(jax.random.PRNGKey(42)) jim.get_samples() -jim.print_summary() - -plot_summary(jim.sampler) \ No newline at end of file +jim.print_summary() \ No newline at end of file diff --git a/test/integration/test_mass_transforms.py b/test/integration/test_mass_transforms.py index ec7631cb..f8056d0c 100644 --- a/test/integration/test_mass_transforms.py +++ b/test/integration/test_mass_transforms.py @@ -95,33 +95,11 @@ def evaluate(self, params: dict[str, Float], data: dict) -> Float: jim = Jim(likelihood, combine_prior, likelihood_transforms=[mass_transform], - n_chains = 200, + n_chains = 50, parameter_names=['M_c', 'q'], - n_loop_training=20, - n_loop_production=5, + n_loop_training=2, + n_loop_production=2, local_sampler_arg=local_sampler_arg) jim.sample(jax.random.PRNGKey(0)) -jim.print_summary() - -# Go from Mc, q samples to m1, m2 samples -chains_named = jim.get_samples() -m1m2_named = mass_transform.forward(chains_named) -m1, m2 = m1m2_named['m_1'], m1m2_named['m_2'] - -### Prior space: -chains = np.array([chains_named['M_c'], chains_named['q']]).T -chains = np.reshape(chains, (-1, 2)) -corner.corner(chains, truths = np.array([true_mc, true_q]), **default_corner_kwargs) - -plt.savefig("./figures/test_mass_transform_before.png", bbox_inches = 'tight') -plt.close() - -### Transformed space: -chains = np.array([m1, m2]).T -chains = np.reshape(chains, (-1, 2)) - -corner.corner(chains, truths = np.array([true_m1, true_m2]), **default_corner_kwargs) - -plt.savefig("./figures/test_mass_transform_after.png", bbox_inches = 'tight') -plt.close() \ No newline at end of file +jim.print_summary() \ No newline at end of file From c66c65ca35b925734877850da4f88d023bf26b7d Mon Sep 17 00:00:00 2001 From: Thibeau Wouters Date: Wed, 21 Aug 2024 23:38:12 -0700 Subject: [PATCH 31/44] Reverted some src code and updated tests accordingly --- src/jimgw/single_event/transforms.py | 112 ++++++++++++++++++++--- src/jimgw/transforms.py | 36 -------- test/integration/test_GW150914_D.py | 4 +- test/integration/test_mass_transforms.py | 2 +- 4 files changed, 101 insertions(+), 53 deletions(-) diff --git a/src/jimgw/single_event/transforms.py b/src/jimgw/single_event/transforms.py index 49f01457..31d41dfc 100644 --- a/src/jimgw/single_event/transforms.py +++ b/src/jimgw/single_event/transforms.py @@ -8,7 +8,6 @@ BijectiveTransform, NtoNTransform, reverse_bijective_transform, - create_bijective_transform, ) from jimgw.single_event.utils import ( m1_m2_to_Mc_q, @@ -139,25 +138,110 @@ def named_inverse_transform(x): self.inverse_transform_func = named_inverse_transform +@jaxtyped(typechecker=typechecker) +class ComponentMassesToChirpMassMassRatioTransform(BijectiveTransform): + """ + Transform chirp mass and mass ratio to component masses + + Parameters + ---------- + name_mapping : tuple[list[str], list[str]] + The name mapping between the input and output dictionary. + """ + + def __init__( + self, + name_mapping: tuple[list[str], list[str]], + ): + super().__init__(name_mapping) + assert ( + "m_1" in name_mapping[0] + and "m_2" in name_mapping[0] + and "M_c" in name_mapping[1] + and "q" in name_mapping[1] + ) + + def named_transform(x): + Mc, q = m1_m2_to_Mc_q(x["m_1"], x["m_2"]) + return {"M_c": Mc, "q": q} + + self.transform_func = named_transform + + def named_inverse_transform(x): + m1, m2 = Mc_q_to_m1_m2(x["M_c"], x["q"]) + return {"m_1": m1, "m_2": m2} + + self.inverse_transform_func = named_inverse_transform + + +@jaxtyped(typechecker=typechecker) +class ComponentMassesToChirpMassSymmetricMassRatioTransform(BijectiveTransform): + """ + Transform mass ratio to symmetric mass ratio + + Parameters + ---------- + name_mapping : tuple[list[str], list[str]] + The name mapping between the input and output dictionary. + + """ + + def __init__( + self, + name_mapping: tuple[list[str], list[str]], + ): + super().__init__(name_mapping) + assert ( + "m_1" in name_mapping[0] + and "m_2" in name_mapping[0] + and "M_c" in name_mapping[1] + and "eta" in name_mapping[1] + ) + + def named_transform(x): + Mc, eta = m1_m2_to_Mc_eta(x["m_1"], x["m_2"]) + return {"M_c": Mc, "eta": eta} + + self.transform_func = named_transform + + def named_inverse_transform(x): + m1, m2 = Mc_eta_to_m1_m2(x["M_c"], x["q"]) + return {"m_1": m1, "m_2": m2} + + self.inverse_transform_func = named_inverse_transform + + +@jaxtyped(typechecker=typechecker) +class MassRatioToSymmetricMassRatioTransform(BijectiveTransform): + """ + Transform mass ratio to symmetric mass ratio + + Parameters + ---------- + name_mapping : tuple[list[str], list[str]] + The name mapping between the input and output dictionary. + + """ + + def __init__( + self, + name_mapping: tuple[list[str], list[str]], + ): + super().__init__(name_mapping) + assert "q" == name_mapping[0][0] and "eta" == name_mapping[1][0] + + self.transform_func = lambda x: {"eta": q_to_eta(x["q"])} + self.inverse_transform_func = lambda x: {"q": eta_to_q(x["eta"])} + -# Pre-made bijective transforms: -ComponentMassesToChirpMassMassRatioTransform = create_bijective_transform( - (["m_1", "m_2"], ["M_c", "q"]), m1_m2_to_Mc_q, Mc_q_to_m1_m2 -) ChirpMassMassRatioToComponentMassesTransform = reverse_bijective_transform( - ComponentMassesToChirpMassMassRatioTransform + ComponentMassesToChirpMassMassRatioTransform(name_mapping=(["m_1", "m_2"], ["M_c", "q"])) ) -ComponentMassesToChirpMassSymmetricMassRatioTransform = create_bijective_transform( - (["m_1", "m_2"], ["M_c", "eta"]), m1_m2_to_Mc_eta, Mc_eta_to_m1_m2 -) ChirpMassSymmetricMassRatioToComponentMassesTransform = reverse_bijective_transform( - ComponentMassesToChirpMassSymmetricMassRatioTransform + ComponentMassesToChirpMassSymmetricMassRatioTransform(name_mapping=(["m_1", "m_2"], ["M_c", "eta"])) ) -MassRatioToSymmetricMassRatioTransform = create_bijective_transform( - (["q"], ["eta"]), q_to_eta, eta_to_q -) SymmetricMassRatioToMassRatioTransform = reverse_bijective_transform( - MassRatioToSymmetricMassRatioTransform + MassRatioToSymmetricMassRatioTransform(name_mapping=(["q"], ["eta"])) ) diff --git a/src/jimgw/transforms.py b/src/jimgw/transforms.py index 268bfd5c..768c82c4 100644 --- a/src/jimgw/transforms.py +++ b/src/jimgw/transforms.py @@ -447,42 +447,6 @@ def __init__( } -def create_bijective_transform( - name_mapping: tuple[list[str], list[str]], - transform_func_array: Callable[[Float], Float], - inverse_transform_func_array: Callable[[Float], Float], -) -> BijectiveTransform: - """ - Utility function to create a BijectiveTransform object given a name_mapping and the forward and backward transform functions which take arrays as input, e.g. coming from the utils module. - - Args: - name_mapping (tuple[list[str], list[str]]): The name_mapping to be used in the named transforms. - transform_func_array (Callable[[Float], Float]): The forward function method taking an array as input. - inverse_transform_func_array (Callable[[Float], Float]): The inverse function method taking an array as input. - - Returns: - BijectiveTransform: The BijectiveTransform object. - """ - - def named_transform_func(x_named: dict[str, Float]) -> dict[str, Float]: - x_array = jnp.array([x_named[key] for key in name_mapping[0]]) - y_array = transform_func_array(*x_array) - y_named = dict(zip(name_mapping[1], jnp.atleast_1d(y_array))) - return y_named - - def named_inverse_transform_func(y_named: dict[str, Float]) -> dict[str, Float]: - y_array = jnp.array([y_named[key] for key in name_mapping[1]]) - x_array = inverse_transform_func_array(*y_array) - x_named = dict(zip(name_mapping[0], jnp.atleast_1d(x_array))) - return x_named - - new_transform = BijectiveTransform(name_mapping) - new_transform.transform_func = named_transform_func - new_transform.inverse_transform_func = named_inverse_transform_func - - return new_transform - - def reverse_bijective_transform( original_transform: BijectiveTransform, ) -> BijectiveTransform: diff --git a/test/integration/test_GW150914_D.py b/test/integration/test_GW150914_D.py index 2bb536a2..9d3ba827 100644 --- a/test/integration/test_GW150914_D.py +++ b/test/integration/test_GW150914_D.py @@ -68,7 +68,7 @@ ) sample_transforms = [ - ComponentMassesToChirpMassMassRatioTransform, + ComponentMassesToChirpMassMassRatioTransform(name_mapping=(["m_1", "m_2"], ["M_c", "q"])), BoundToUnbound(name_mapping = [["M_c"], ["M_c_unbounded"]], original_lower_bound=M_c_min, original_upper_bound=M_c_max), BoundToUnbound(name_mapping = [["q"], ["q_unbounded"]], original_lower_bound=q_min, original_upper_bound=q_max), BoundToUnbound(name_mapping = [["s1_z"], ["s1_z_unbounded"]] , original_lower_bound=-1.0, original_upper_bound=1.0), @@ -84,7 +84,7 @@ ] likelihood_transforms = [ - ComponentMassesToChirpMassSymmetricMassRatioTransform, + ComponentMassesToChirpMassSymmetricMassRatioTransform(name_mapping=(["m_1", "m_2"], ["M_c", "eta"])), ] likelihood = TransientLikelihoodFD( diff --git a/test/integration/test_mass_transforms.py b/test/integration/test_mass_transforms.py index f8056d0c..1a85ac0d 100644 --- a/test/integration/test_mass_transforms.py +++ b/test/integration/test_mass_transforms.py @@ -95,7 +95,7 @@ def evaluate(self, params: dict[str, Float], data: dict) -> Float: jim = Jim(likelihood, combine_prior, likelihood_transforms=[mass_transform], - n_chains = 50, + n_chains = 10, parameter_names=['M_c', 'q'], n_loop_training=2, n_loop_production=2, From f0bca2f6dcbe5de38dfc8877131d183d109c8322 Mon Sep 17 00:00:00 2001 From: Thibeau Wouters Date: Wed, 21 Aug 2024 23:38:42 -0700 Subject: [PATCH 32/44] Formatting --- src/jimgw/single_event/transforms.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/jimgw/single_event/transforms.py b/src/jimgw/single_event/transforms.py index 31d41dfc..bf43a7d5 100644 --- a/src/jimgw/single_event/transforms.py +++ b/src/jimgw/single_event/transforms.py @@ -138,6 +138,7 @@ def named_inverse_transform(x): self.inverse_transform_func = named_inverse_transform + @jaxtyped(typechecker=typechecker) class ComponentMassesToChirpMassMassRatioTransform(BijectiveTransform): """ @@ -235,11 +236,15 @@ def __init__( ChirpMassMassRatioToComponentMassesTransform = reverse_bijective_transform( - ComponentMassesToChirpMassMassRatioTransform(name_mapping=(["m_1", "m_2"], ["M_c", "q"])) + ComponentMassesToChirpMassMassRatioTransform( + name_mapping=(["m_1", "m_2"], ["M_c", "q"]) + ) ) ChirpMassSymmetricMassRatioToComponentMassesTransform = reverse_bijective_transform( - ComponentMassesToChirpMassSymmetricMassRatioTransform(name_mapping=(["m_1", "m_2"], ["M_c", "eta"])) + ComponentMassesToChirpMassSymmetricMassRatioTransform( + name_mapping=(["m_1", "m_2"], ["M_c", "eta"]) + ) ) SymmetricMassRatioToMassRatioTransform = reverse_bijective_transform( From 1d4bb21b82d4b5eb2dcec86c5222ee3111660ba7 Mon Sep 17 00:00:00 2001 From: Thibeau Wouters Date: Tue, 27 Aug 2024 01:21:31 -0700 Subject: [PATCH 33/44] Updated the tests to the new transforms --- test/integration/corner.jpeg | Bin 0 -> 414068 bytes test/integration/diagnostic.jpeg | Bin 0 -> 82859 bytes .../single_event_runrun_manager_summary.txt | 36 ++++++++++++++++++ test/integration/test_GW150914_D.py | 6 +-- .../integration/test_GW150914_D_heterodyne.py | 6 +-- test/integration/test_GW150914_Pv2.py | 4 +- test/integration/test_mass_transforms.py | 5 ++- 7 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 test/integration/corner.jpeg create mode 100644 test/integration/diagnostic.jpeg create mode 100644 test/integration/single_event_runrun_manager_summary.txt diff --git a/test/integration/corner.jpeg b/test/integration/corner.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..08fa8f4eb7ced4f7b6a222d649c850fe7cbf31cc GIT binary patch literal 414068 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:U-8WNe=x?mP)w6k# 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 Pzq=Uz!{0~#`tkn(yPs1z literal 0 HcmV?d00001 diff --git a/test/integration/single_event_runrun_manager_summary.txt b/test/integration/single_event_runrun_manager_summary.txt new file mode 100644 index 00000000..e9782a2a --- /dev/null +++ b/test/integration/single_event_runrun_manager_summary.txt @@ -0,0 +1,36 @@ +Training summary +========== +dec: 1.220 +/- 0.662 +ra: 1.921 +/- 1.016 +psi: 1.620 +/- 0.999 +iota: 1.795 +/- 0.476 +phase_c: 3.246 +/- 1.320 +t_c: -0.025 +/- 0.014 +d_L: 1275.296 +/- 587.710 +s2_z: 0.456 +/- 0.274 +s1_z: -0.647 +/- 0.287 +q: 0.515 +/- 0.104 +M_c: 43.083 +/- 21.050 +Log probability: nan +/- nan +Local acceptance: 0.625 +/- 0.484 +Global acceptance: 0.188 +/- 0.390 +Max loss: 17.043, Min loss: 16.057 +Production summary +========== +dec: 1.214 +/- 0.660 +ra: 1.921 +/- 1.012 +psi: 1.557 +/- 0.996 +iota: 1.739 +/- 0.466 +phase_c: 2.765 +/- 0.979 +t_c: -0.021 +/- 0.013 +d_L: 1253.182 +/- 568.411 +s2_z: 0.425 +/- 0.176 +s1_z: -0.651 +/- 0.273 +q: 0.489 +/- 0.082 +M_c: 42.606 +/- 20.566 +Log probability: nan +/- nan +Local acceptance: 0.750 +/- 0.433 +Global acceptance: 0.062 +/- 0.242 +SNR of detector H1 is 29.763917711763696 +SNR of detector L1 is 51.11730418963541 +network SNR is 59.15124331041875 diff --git a/test/integration/test_GW150914_D.py b/test/integration/test_GW150914_D.py index 9d3ba827..5103e5d8 100644 --- a/test/integration/test_GW150914_D.py +++ b/test/integration/test_GW150914_D.py @@ -68,7 +68,7 @@ ) sample_transforms = [ - ComponentMassesToChirpMassMassRatioTransform(name_mapping=(["m_1", "m_2"], ["M_c", "q"])), + ComponentMassesToChirpMassMassRatioTransform, BoundToUnbound(name_mapping = [["M_c"], ["M_c_unbounded"]], original_lower_bound=M_c_min, original_upper_bound=M_c_max), BoundToUnbound(name_mapping = [["q"], ["q_unbounded"]], original_lower_bound=q_min, original_upper_bound=q_max), BoundToUnbound(name_mapping = [["s1_z"], ["s1_z_unbounded"]] , original_lower_bound=-1.0, original_upper_bound=1.0), @@ -78,13 +78,13 @@ BoundToUnbound(name_mapping = [["phase_c"], ["phase_c_unbounded"]] , original_lower_bound=0.0, original_upper_bound=2 * jnp.pi), BoundToUnbound(name_mapping = [["iota"], ["iota_unbounded"]], original_lower_bound=0., original_upper_bound=jnp.pi), BoundToUnbound(name_mapping = [["psi"], ["psi_unbounded"]], original_lower_bound=0.0, original_upper_bound=jnp.pi), - SkyFrameToDetectorFrameSkyPositionTransform(name_mapping = [["ra", "dec"], ["zenith", "azimuth"]], gps_time=gps, ifos=ifos), + SkyFrameToDetectorFrameSkyPositionTransform(gps_time=gps, ifos=ifos), BoundToUnbound(name_mapping = [["zenith"], ["zenith_unbounded"]], original_lower_bound=0.0, original_upper_bound=jnp.pi), BoundToUnbound(name_mapping = [["azimuth"], ["azimuth_unbounded"]], original_lower_bound=0.0, original_upper_bound=2 * jnp.pi), ] likelihood_transforms = [ - ComponentMassesToChirpMassSymmetricMassRatioTransform(name_mapping=(["m_1", "m_2"], ["M_c", "eta"])), + ComponentMassesToChirpMassSymmetricMassRatioTransform, ] likelihood = TransientLikelihoodFD( diff --git a/test/integration/test_GW150914_D_heterodyne.py b/test/integration/test_GW150914_D_heterodyne.py index 6d139dc8..cbac1788 100644 --- a/test/integration/test_GW150914_D_heterodyne.py +++ b/test/integration/test_GW150914_D_heterodyne.py @@ -62,7 +62,7 @@ ) sample_transforms = [ - ComponentMassesToChirpMassMassRatioTransform(name_mapping=[["m_1", "m_2"], ["M_c", "q"]]), + ComponentMassesToChirpMassMassRatioTransform, BoundToUnbound(name_mapping = [["M_c"], ["M_c_unbounded"]], original_lower_bound=M_c_min, original_upper_bound=M_c_max), BoundToUnbound(name_mapping = [["q"], ["q_unbounded"]], original_lower_bound=q_min, original_upper_bound=q_max), BoundToUnbound(name_mapping = [["s1_z"], ["s1_z_unbounded"]] , original_lower_bound=-1.0, original_upper_bound=1.0), @@ -72,13 +72,13 @@ BoundToUnbound(name_mapping = [["phase_c"], ["phase_c_unbounded"]] , original_lower_bound=0.0, original_upper_bound=2 * jnp.pi), BoundToUnbound(name_mapping = [["iota"], ["iota_unbounded"]], original_lower_bound=0., original_upper_bound=jnp.pi), BoundToUnbound(name_mapping = [["psi"], ["psi_unbounded"]], original_lower_bound=0.0, original_upper_bound=jnp.pi), - SkyFrameToDetectorFrameSkyPositionTransform(name_mapping = [["ra", "dec"], ["zenith", "azimuth"]], gps_time=gps, ifos=ifos), + SkyFrameToDetectorFrameSkyPositionTransform(gps_time=gps, ifos=ifos), BoundToUnbound(name_mapping = [["zenith"], ["zenith_unbounded"]], original_lower_bound=0.0, original_upper_bound=jnp.pi), BoundToUnbound(name_mapping = [["azimuth"], ["azimuth_unbounded"]], original_lower_bound=0.0, original_upper_bound=2 * jnp.pi), ] likelihood_transforms = [ - ComponentMassesToChirpMassSymmetricMassRatioTransform(name_mapping=[["m_1", "m_2"], ["M_c", "eta"]]), + ComponentMassesToChirpMassSymmetricMassRatioTransform, ] likelihood = HeterodynedTransientLikelihoodFD( diff --git a/test/integration/test_GW150914_Pv2.py b/test/integration/test_GW150914_Pv2.py index 3d8e9f20..9892058d 100644 --- a/test/integration/test_GW150914_Pv2.py +++ b/test/integration/test_GW150914_Pv2.py @@ -89,8 +89,8 @@ ] likelihood_transforms = [ - SpinToCartesianSpinTransform(name_mapping=[["theta_jn", "phi_jl", "theta_1", "theta_2", "phi_12", "a_1", "a_2"], ["iota", "s1_x", "s1_y", "s1_z", "s2_x", "s2_y", "s2_z"]], freq_ref=20.0), - MassRatioToSymmetricMassRatioTransform(name_mapping=[["q"], ["eta"]]), + SpinToCartesianSpinTransform(freq_ref=20.0), + MassRatioToSymmetricMassRatioTransform, ] likelihood = TransientLikelihoodFD( diff --git a/test/integration/test_mass_transforms.py b/test/integration/test_mass_transforms.py index 1a85ac0d..65b95244 100644 --- a/test/integration/test_mass_transforms.py +++ b/test/integration/test_mass_transforms.py @@ -1,5 +1,5 @@ import os -os.environ["CUDA_VISIBLE_DEVICES"] = "2" +os.environ["CUDA_VISIBLE_DEVICES"] = "3" os.environ["XLA_PYTHON_CLIENT_MEM_FRACTION"] = "0.10" import numpy as np @@ -85,7 +85,8 @@ def evaluate(self, params: dict[str, Float], data: dict) -> Float: likelihood = MyLikelihood(true_m1, true_m2) mass_transform = ChirpMassMassRatioToComponentMassesTransform -print(mass_transform.name_mapping) +print("Checking mass_transform repr") +print(repr(mass_transform)) # Other stuff we have to give to Jim to make it work step = 5e-3 From 95bc462d67d641ed61df918c99b6f3d006b4c43c Mon Sep 17 00:00:00 2001 From: Thibeau Wouters Date: Tue, 27 Aug 2024 01:22:03 -0700 Subject: [PATCH 34/44] New transforms --- src/jimgw/single_event/transforms.py | 125 ++++++--------------------- src/jimgw/transforms.py | 1 + 2 files changed, 29 insertions(+), 97 deletions(-) diff --git a/src/jimgw/single_event/transforms.py b/src/jimgw/single_event/transforms.py index bf43a7d5..df193d68 100644 --- a/src/jimgw/single_event/transforms.py +++ b/src/jimgw/single_event/transforms.py @@ -33,30 +33,16 @@ class SpinToCartesianSpinTransform(NtoNTransform): def __init__( self, - name_mapping: tuple[list[str], list[str]], freq_ref: Float, ): + name_mapping = ( + ["theta_jn", "phi_jl", "theta_1", "theta_2", "phi_12", "a_1", "a_2"], + ["iota", "s1_x", "s1_y", "s1_z", "s2_x", "s2_y", "s2_z"] + ) super().__init__(name_mapping) self.freq_ref = freq_ref - assert ( - "theta_jn" in name_mapping[0] - and "phi_jl" in name_mapping[0] - and "theta_1" in name_mapping[0] - and "theta_2" in name_mapping[0] - and "phi_12" in name_mapping[0] - and "a_1" in name_mapping[0] - and "a_2" in name_mapping[0] - and "iota" in name_mapping[1] - and "s1_x" in name_mapping[1] - and "s1_y" in name_mapping[1] - and "s1_z" in name_mapping[1] - and "s2_x" in name_mapping[1] - and "s2_y" in name_mapping[1] - and "s2_z" in name_mapping[1] - ) - def named_transform(x): iota, s1x, s1y, s1z, s2x, s2y, s2z = spin_to_cartesian_spin( x["theta_jn"], @@ -82,18 +68,13 @@ def named_transform(x): } self.transform_func = named_transform + @jaxtyped(typechecker=typechecker) class SkyFrameToDetectorFrameSkyPositionTransform(BijectiveTransform): """ Transform sky frame to detector frame sky position - - Parameters - ---------- - name_mapping : tuple[list[str], list[str]] - The name mapping between the input and output dictionary. - """ gmst: Float @@ -102,10 +83,10 @@ class SkyFrameToDetectorFrameSkyPositionTransform(BijectiveTransform): def __init__( self, - name_mapping: tuple[list[str], list[str]], gps_time: Float, ifos: GroundBased2G, ): + name_mapping = (["ra", "dec"], ["zenith", "azimuth"]) super().__init__(name_mapping) self.gmst = ( @@ -115,13 +96,6 @@ def __init__( self.rotation = euler_rotation(delta_x) self.rotation_inv = jnp.linalg.inv(self.rotation) - assert ( - "ra" in name_mapping[0] - and "dec" in name_mapping[0] - and "zenith" in name_mapping[1] - and "azimuth" in name_mapping[1] - ) - def named_transform(x): zenith, azimuth = ra_dec_to_zenith_azimuth( x["ra"], x["dec"], self.gmst, self.rotation @@ -140,27 +114,14 @@ def named_inverse_transform(x): @jaxtyped(typechecker=typechecker) -class ComponentMassesToChirpMassMassRatioTransform(BijectiveTransform): +class _ComponentMassesToChirpMassMassRatioTransform(BijectiveTransform): """ - Transform chirp mass and mass ratio to component masses - - Parameters - ---------- - name_mapping : tuple[list[str], list[str]] - The name mapping between the input and output dictionary. + Transform chirp mass and mass ratio to component masses. Instantiated to object below. """ - def __init__( - self, - name_mapping: tuple[list[str], list[str]], - ): + def __init__(self): + name_mapping = (["m_1", "m_2"], ["M_c", "q"]) super().__init__(name_mapping) - assert ( - "m_1" in name_mapping[0] - and "m_2" in name_mapping[0] - and "M_c" in name_mapping[1] - and "q" in name_mapping[1] - ) def named_transform(x): Mc, q = m1_m2_to_Mc_q(x["m_1"], x["m_2"]) @@ -174,30 +135,16 @@ def named_inverse_transform(x): self.inverse_transform_func = named_inverse_transform - @jaxtyped(typechecker=typechecker) -class ComponentMassesToChirpMassSymmetricMassRatioTransform(BijectiveTransform): +class _ComponentMassesToChirpMassSymmetricMassRatioTransform(BijectiveTransform): """ - Transform mass ratio to symmetric mass ratio - - Parameters - ---------- - name_mapping : tuple[list[str], list[str]] - The name mapping between the input and output dictionary. - + Transform mass ratio to symmetric mass ratio. Instantiated to object below. """ - def __init__( - self, - name_mapping: tuple[list[str], list[str]], - ): + def __init__(self): + name_mapping = (["m_1", "m_2"], ["M_c", "eta"]) super().__init__(name_mapping) - assert ( - "m_1" in name_mapping[0] - and "m_2" in name_mapping[0] - and "M_c" in name_mapping[1] - and "eta" in name_mapping[1] - ) + def named_transform(x): Mc, eta = m1_m2_to_Mc_eta(x["m_1"], x["m_2"]) @@ -211,42 +158,26 @@ def named_inverse_transform(x): self.inverse_transform_func = named_inverse_transform - @jaxtyped(typechecker=typechecker) -class MassRatioToSymmetricMassRatioTransform(BijectiveTransform): +class _MassRatioToSymmetricMassRatioTransform(BijectiveTransform): """ - Transform mass ratio to symmetric mass ratio - - Parameters - ---------- - name_mapping : tuple[list[str], list[str]] - The name mapping between the input and output dictionary. - + Transform mass ratio to symmetric mass ratio. Instantiated to object below. """ - def __init__( - self, - name_mapping: tuple[list[str], list[str]], - ): + def __init__(self): + name_mapping = (["q"], ["eta"]) super().__init__(name_mapping) - assert "q" == name_mapping[0][0] and "eta" == name_mapping[1][0] self.transform_func = lambda x: {"eta": q_to_eta(x["q"])} self.inverse_transform_func = lambda x: {"q": eta_to_q(x["eta"])} + + def __repr__(self): + return f"{self.__class__.__name__[1:]}()" +ComponentMassesToChirpMassMassRatioTransform = _ComponentMassesToChirpMassMassRatioTransform() +ComponentMassesToChirpMassSymmetricMassRatioTransform = _ComponentMassesToChirpMassSymmetricMassRatioTransform() +MassRatioToSymmetricMassRatioTransform = _MassRatioToSymmetricMassRatioTransform() -ChirpMassMassRatioToComponentMassesTransform = reverse_bijective_transform( - ComponentMassesToChirpMassMassRatioTransform( - name_mapping=(["m_1", "m_2"], ["M_c", "q"]) - ) -) - -ChirpMassSymmetricMassRatioToComponentMassesTransform = reverse_bijective_transform( - ComponentMassesToChirpMassSymmetricMassRatioTransform( - name_mapping=(["m_1", "m_2"], ["M_c", "eta"]) - ) -) - -SymmetricMassRatioToMassRatioTransform = reverse_bijective_transform( - MassRatioToSymmetricMassRatioTransform(name_mapping=(["q"], ["eta"])) -) +ChirpMassMassRatioToComponentMassesTransform = reverse_bijective_transform(ComponentMassesToChirpMassMassRatioTransform) +ChirpMassSymmetricMassRatioToComponentMassesTransform = reverse_bijective_transform(ComponentMassesToChirpMassSymmetricMassRatioTransform) +SymmetricMassRatioToMassRatioTransform = reverse_bijective_transform(MassRatioToSymmetricMassRatioTransform) \ No newline at end of file diff --git a/src/jimgw/transforms.py b/src/jimgw/transforms.py index 768c82c4..915802a0 100644 --- a/src/jimgw/transforms.py +++ b/src/jimgw/transforms.py @@ -458,5 +458,6 @@ def reverse_bijective_transform( reversed_transform = BijectiveTransform(name_mapping=reversed_name_mapping) reversed_transform.transform_func = original_transform.inverse_transform_func reversed_transform.inverse_transform_func = original_transform.transform_func + reversed_transform.__repr__ = lambda: f"Reversed{repr(original_transform)}" return reversed_transform From b3898e1b37c74b971dd4d9d2c32fb442db8cb72f Mon Sep 17 00:00:00 2001 From: Thibeau Wouters Date: Tue, 27 Aug 2024 01:23:01 -0700 Subject: [PATCH 35/44] precommit --- src/jimgw/single_event/transforms.py | 29 +++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/jimgw/single_event/transforms.py b/src/jimgw/single_event/transforms.py index df193d68..832c84a9 100644 --- a/src/jimgw/single_event/transforms.py +++ b/src/jimgw/single_event/transforms.py @@ -37,7 +37,7 @@ def __init__( ): name_mapping = ( ["theta_jn", "phi_jl", "theta_1", "theta_2", "phi_12", "a_1", "a_2"], - ["iota", "s1_x", "s1_y", "s1_z", "s2_x", "s2_y", "s2_z"] + ["iota", "s1_x", "s1_y", "s1_z", "s2_x", "s2_y", "s2_z"], ) super().__init__(name_mapping) @@ -68,7 +68,6 @@ def named_transform(x): } self.transform_func = named_transform - @jaxtyped(typechecker=typechecker) @@ -135,6 +134,7 @@ def named_inverse_transform(x): self.inverse_transform_func = named_inverse_transform + @jaxtyped(typechecker=typechecker) class _ComponentMassesToChirpMassSymmetricMassRatioTransform(BijectiveTransform): """ @@ -145,7 +145,6 @@ def __init__(self): name_mapping = (["m_1", "m_2"], ["M_c", "eta"]) super().__init__(name_mapping) - def named_transform(x): Mc, eta = m1_m2_to_Mc_eta(x["m_1"], x["m_2"]) return {"M_c": Mc, "eta": eta} @@ -158,6 +157,7 @@ def named_inverse_transform(x): self.inverse_transform_func = named_inverse_transform + @jaxtyped(typechecker=typechecker) class _MassRatioToSymmetricMassRatioTransform(BijectiveTransform): """ @@ -170,14 +170,25 @@ def __init__(self): self.transform_func = lambda x: {"eta": q_to_eta(x["q"])} self.inverse_transform_func = lambda x: {"q": eta_to_q(x["eta"])} - + def __repr__(self): return f"{self.__class__.__name__[1:]}()" -ComponentMassesToChirpMassMassRatioTransform = _ComponentMassesToChirpMassMassRatioTransform() -ComponentMassesToChirpMassSymmetricMassRatioTransform = _ComponentMassesToChirpMassSymmetricMassRatioTransform() + +ComponentMassesToChirpMassMassRatioTransform = ( + _ComponentMassesToChirpMassMassRatioTransform() +) +ComponentMassesToChirpMassSymmetricMassRatioTransform = ( + _ComponentMassesToChirpMassSymmetricMassRatioTransform() +) MassRatioToSymmetricMassRatioTransform = _MassRatioToSymmetricMassRatioTransform() -ChirpMassMassRatioToComponentMassesTransform = reverse_bijective_transform(ComponentMassesToChirpMassMassRatioTransform) -ChirpMassSymmetricMassRatioToComponentMassesTransform = reverse_bijective_transform(ComponentMassesToChirpMassSymmetricMassRatioTransform) -SymmetricMassRatioToMassRatioTransform = reverse_bijective_transform(MassRatioToSymmetricMassRatioTransform) \ No newline at end of file +ChirpMassMassRatioToComponentMassesTransform = reverse_bijective_transform( + ComponentMassesToChirpMassMassRatioTransform +) +ChirpMassSymmetricMassRatioToComponentMassesTransform = reverse_bijective_transform( + ComponentMassesToChirpMassSymmetricMassRatioTransform +) +SymmetricMassRatioToMassRatioTransform = reverse_bijective_transform( + MassRatioToSymmetricMassRatioTransform +) From 45ebe76f163990a5812c4b9d192a341e92ed7e20 Mon Sep 17 00:00:00 2001 From: Thibeau Wouters Date: Wed, 28 Aug 2024 11:53:28 +0200 Subject: [PATCH 36/44] Delete test/integration/corner.jpeg --- test/integration/corner.jpeg | Bin 414068 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 test/integration/corner.jpeg diff --git a/test/integration/corner.jpeg b/test/integration/corner.jpeg deleted file mode 100644 index 08fa8f4eb7ced4f7b6a222d649c850fe7cbf31cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414068 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 Date: Wed, 28 Aug 2024 11:53:40 +0200 Subject: [PATCH 37/44] Delete test/integration/diagnostic.jpeg --- test/integration/diagnostic.jpeg | Bin 82859 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 test/integration/diagnostic.jpeg diff --git a/test/integration/diagnostic.jpeg b/test/integration/diagnostic.jpeg deleted file mode 100644 index e7db0ca7d40290cb2886d50c45a10ec671789868..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82859 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:U-8WNe=x?mP)w6k# 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 Pzq=Uz!{0~#`tkn(yPs1z From 98e9c0b8d99daa6c894e465299b67703b6543c10 Mon Sep 17 00:00:00 2001 From: Thibeau Wouters Date: Wed, 28 Aug 2024 11:53:51 +0200 Subject: [PATCH 38/44] Delete test/integration/single_event_runrun_manager_summary.txt --- .../single_event_runrun_manager_summary.txt | 36 ------------------- 1 file changed, 36 deletions(-) delete mode 100644 test/integration/single_event_runrun_manager_summary.txt diff --git a/test/integration/single_event_runrun_manager_summary.txt b/test/integration/single_event_runrun_manager_summary.txt deleted file mode 100644 index e9782a2a..00000000 --- a/test/integration/single_event_runrun_manager_summary.txt +++ /dev/null @@ -1,36 +0,0 @@ -Training summary -========== -dec: 1.220 +/- 0.662 -ra: 1.921 +/- 1.016 -psi: 1.620 +/- 0.999 -iota: 1.795 +/- 0.476 -phase_c: 3.246 +/- 1.320 -t_c: -0.025 +/- 0.014 -d_L: 1275.296 +/- 587.710 -s2_z: 0.456 +/- 0.274 -s1_z: -0.647 +/- 0.287 -q: 0.515 +/- 0.104 -M_c: 43.083 +/- 21.050 -Log probability: nan +/- nan -Local acceptance: 0.625 +/- 0.484 -Global acceptance: 0.188 +/- 0.390 -Max loss: 17.043, Min loss: 16.057 -Production summary -========== -dec: 1.214 +/- 0.660 -ra: 1.921 +/- 1.012 -psi: 1.557 +/- 0.996 -iota: 1.739 +/- 0.466 -phase_c: 2.765 +/- 0.979 -t_c: -0.021 +/- 0.013 -d_L: 1253.182 +/- 568.411 -s2_z: 0.425 +/- 0.176 -s1_z: -0.651 +/- 0.273 -q: 0.489 +/- 0.082 -M_c: 42.606 +/- 20.566 -Log probability: nan +/- nan -Local acceptance: 0.750 +/- 0.433 -Global acceptance: 0.062 +/- 0.242 -SNR of detector H1 is 29.763917711763696 -SNR of detector L1 is 51.11730418963541 -network SNR is 59.15124331041875 From ad90d099c0b2e41f3f743e0a66d4ad93354eaa1e Mon Sep 17 00:00:00 2001 From: Thibeau Wouters Date: Mon, 2 Sep 2024 06:55:51 -0700 Subject: [PATCH 39/44] Further consolidation as requested --- src/jimgw/single_event/transforms.py | 101 ++++++++------------------- 1 file changed, 31 insertions(+), 70 deletions(-) diff --git a/src/jimgw/single_event/transforms.py b/src/jimgw/single_event/transforms.py index 832c84a9..cb60e98b 100644 --- a/src/jimgw/single_event/transforms.py +++ b/src/jimgw/single_event/transforms.py @@ -111,77 +111,38 @@ def named_inverse_transform(x): self.inverse_transform_func = named_inverse_transform +def named_m1_m2_to_Mc_q(x): + Mc, q = m1_m2_to_Mc_q(x["m_1"], x["m_2"]) + return {"M_c": Mc, "q": q} + +def named_Mc_q_to_m1_m2(x): + m1, m2 = Mc_q_to_m1_m2(x["M_c"], x["q"]) + return {"m_1": m1, "m_2": m2} + +ComponentMassesToChirpMassMassRatioTransform = BijectiveTransform((["m_1", "m_2"], ["M_c", "q"])) +ComponentMassesToChirpMassMassRatioTransform.transform_func = named_m1_m2_to_Mc_q +ComponentMassesToChirpMassMassRatioTransform.inverse_transform_func = named_Mc_q_to_m1_m2 + +def named_m1_m2_to_Mc_eta(x): + Mc, eta = m1_m2_to_Mc_eta(x["m_1"], x["m_2"]) + return {"M_c": Mc, "eta": eta} + +def named_Mc_eta_to_m1_m2(x): + m1, m2 = Mc_eta_to_m1_m2(x["M_c"], x["eta"]) + return {"m_1": m1, "m_2": m2} + +ComponentMassesToChirpMassSymmetricMassRatioTransform = BijectiveTransform((["m_1", "m_2"], ["M_c", "eta"])) +ComponentMassesToChirpMassSymmetricMassRatioTransform.transform_func = named_m1_m2_to_Mc_eta +ComponentMassesToChirpMassSymmetricMassRatioTransform.inverse_transform_func = named_Mc_eta_to_m1_m2 + +def named_q_to_eta(x): + return {"eta": q_to_eta(x["q"])} +def named_eta_to_q(x): + return {"q": eta_to_q(x["eta"])} +MassRatioToSymmetricMassRatioTransform = BijectiveTransform((["q"], ["eta"])) +MassRatioToSymmetricMassRatioTransform.transform_func = named_q_to_eta +MassRatioToSymmetricMassRatioTransform.inverse_transform_func = named_eta_to_q -@jaxtyped(typechecker=typechecker) -class _ComponentMassesToChirpMassMassRatioTransform(BijectiveTransform): - """ - Transform chirp mass and mass ratio to component masses. Instantiated to object below. - """ - - def __init__(self): - name_mapping = (["m_1", "m_2"], ["M_c", "q"]) - super().__init__(name_mapping) - - def named_transform(x): - Mc, q = m1_m2_to_Mc_q(x["m_1"], x["m_2"]) - return {"M_c": Mc, "q": q} - - self.transform_func = named_transform - - def named_inverse_transform(x): - m1, m2 = Mc_q_to_m1_m2(x["M_c"], x["q"]) - return {"m_1": m1, "m_2": m2} - - self.inverse_transform_func = named_inverse_transform - - -@jaxtyped(typechecker=typechecker) -class _ComponentMassesToChirpMassSymmetricMassRatioTransform(BijectiveTransform): - """ - Transform mass ratio to symmetric mass ratio. Instantiated to object below. - """ - - def __init__(self): - name_mapping = (["m_1", "m_2"], ["M_c", "eta"]) - super().__init__(name_mapping) - - def named_transform(x): - Mc, eta = m1_m2_to_Mc_eta(x["m_1"], x["m_2"]) - return {"M_c": Mc, "eta": eta} - - self.transform_func = named_transform - - def named_inverse_transform(x): - m1, m2 = Mc_eta_to_m1_m2(x["M_c"], x["q"]) - return {"m_1": m1, "m_2": m2} - - self.inverse_transform_func = named_inverse_transform - - -@jaxtyped(typechecker=typechecker) -class _MassRatioToSymmetricMassRatioTransform(BijectiveTransform): - """ - Transform mass ratio to symmetric mass ratio. Instantiated to object below. - """ - - def __init__(self): - name_mapping = (["q"], ["eta"]) - super().__init__(name_mapping) - - self.transform_func = lambda x: {"eta": q_to_eta(x["q"])} - self.inverse_transform_func = lambda x: {"q": eta_to_q(x["eta"])} - - def __repr__(self): - return f"{self.__class__.__name__[1:]}()" - - -ComponentMassesToChirpMassMassRatioTransform = ( - _ComponentMassesToChirpMassMassRatioTransform() -) -ComponentMassesToChirpMassSymmetricMassRatioTransform = ( - _ComponentMassesToChirpMassSymmetricMassRatioTransform() -) -MassRatioToSymmetricMassRatioTransform = _MassRatioToSymmetricMassRatioTransform() ChirpMassMassRatioToComponentMassesTransform = reverse_bijective_transform( ComponentMassesToChirpMassMassRatioTransform From 7ed4c54efab1e05ae3efbee2362cb491a520acfa Mon Sep 17 00:00:00 2001 From: kazewong Date: Mon, 2 Sep 2024 14:40:51 -0400 Subject: [PATCH 40/44] Move transform test into unit. Note that the current one will fail because of bilby import --- test/{ => unit}/test_transform.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/{ => unit}/test_transform.py (100%) diff --git a/test/test_transform.py b/test/unit/test_transform.py similarity index 100% rename from test/test_transform.py rename to test/unit/test_transform.py From 93ea48518182c4cbb0fad99e5e21498790b98dc8 Mon Sep 17 00:00:00 2001 From: kazewong Date: Mon, 2 Sep 2024 15:22:02 -0400 Subject: [PATCH 41/44] Putting transform test in backburner --- test/unit/test_transform.py | 92 ++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/test/unit/test_transform.py b/test/unit/test_transform.py index 5d9fe464..14162f79 100644 --- a/test/unit/test_transform.py +++ b/test/unit/test_transform.py @@ -1,48 +1,48 @@ -import numpy as np -import jax.numpy as jnp +# import numpy as np +# import jax.numpy as jnp -class TestTransform: - def test_sky_location_transform(self): - from bilby.gw.utils import zenith_azimuth_to_ra_dec as bilby_earth_to_sky - from bilby.gw.detector.networks import InterferometerList +# class TestTransform: +# def test_sky_location_transform(self): +# from bilby.gw.utils import zenith_azimuth_to_ra_dec as bilby_earth_to_sky +# from bilby.gw.detector.networks import InterferometerList - from jimgw.single_event.utils import zenith_azimuth_to_ra_dec as jimgw_earth_to_sky - from jimgw.single_event.detector import detector_preset - from astropy.time import Time - - ifos = ["H1", "L1"] - geocent_time = 1000000000 - - import matplotlib.pyplot as plt - - for zenith in np.linspace(0, np.pi, 10): - for azimuth in np.linspace(0, 2*np.pi, 10): - bilby_sky_location = np.array(bilby_earth_to_sky(zenith, azimuth, geocent_time, InterferometerList(ifos))) - jimgw_sky_location = np.array(jimgw_earth_to_sky(zenith, azimuth, Time(geocent_time, format="gps").sidereal_time("apparent", "greenwich").rad, detector_preset[ifos[0]].vertex - detector_preset[ifos[1]].vertex)) - assert np.allclose(bilby_sky_location, jimgw_sky_location, atol=1e-4) - - def test_spin_transform(self): - from bilby.gw.conversion import bilby_to_lalsimulation_spins as bilby_spin_transform - from bilby.gw.conversion import symmetric_mass_ratio_to_mass_ratio, chirp_mass_and_mass_ratio_to_component_masses - - from jimgw.single_event.utils import spin_to_cartesian_spin as jimgw_spin_transform - - for _ in range(100): - thetaJN = jnp.array(np.random.uniform(0, np.pi)) - phiJL = jnp.array(np.random.uniform(0, np.pi)) - theta1 = jnp.array(np.random.uniform(0, np.pi)) - theta2 = jnp.array(np.random.uniform(0, np.pi)) - phi12 = jnp.array(np.random.uniform(0, np.pi)) - chi1 = jnp.array(np.random.uniform(0, 1)) - chi2 = jnp.array(np.random.uniform(0, 1)) - M_c = jnp.array(np.random.uniform(1, 100)) - eta = jnp.array(np.random.uniform(0.1, 0.25)) - fRef = jnp.array(np.random.uniform(10, 1000)) - phiRef = jnp.array(np.random.uniform(0, 2*np.pi)) - - q = symmetric_mass_ratio_to_mass_ratio(eta) - m1, m2 = chirp_mass_and_mass_ratio_to_component_masses(M_c, q) - MsunInkg = 1.9884e30 - bilby_spin = jnp.array(bilby_spin_transform(thetaJN, phiJL, theta1, theta2, phi12, chi1, chi2, m1*MsunInkg, m2*MsunInkg, fRef, phiRef)) - jimgw_spin = jnp.array(jimgw_spin_transform(thetaJN, phiJL, theta1, theta2, phi12, chi1, chi2, M_c, eta, fRef, phiRef)) - assert np.allclose(bilby_spin, jimgw_spin, atol=1e-4) +# from jimgw.single_event.utils import zenith_azimuth_to_ra_dec as jimgw_earth_to_sky +# from jimgw.single_event.detector import detector_preset +# from astropy.time import Time + +# ifos = ["H1", "L1"] +# geocent_time = 1000000000 + +# import matplotlib.pyplot as plt + +# for zenith in np.linspace(0, np.pi, 10): +# for azimuth in np.linspace(0, 2*np.pi, 10): +# bilby_sky_location = np.array(bilby_earth_to_sky(zenith, azimuth, geocent_time, InterferometerList(ifos))) +# jimgw_sky_location = np.array(jimgw_earth_to_sky(zenith, azimuth, Time(geocent_time, format="gps").sidereal_time("apparent", "greenwich").rad, detector_preset[ifos[0]].vertex - detector_preset[ifos[1]].vertex)) +# assert np.allclose(bilby_sky_location, jimgw_sky_location, atol=1e-4) + +# def test_spin_transform(self): +# from bilby.gw.conversion import bilby_to_lalsimulation_spins as bilby_spin_transform +# from bilby.gw.conversion import symmetric_mass_ratio_to_mass_ratio, chirp_mass_and_mass_ratio_to_component_masses + +# from jimgw.single_event.utils import spin_to_cartesian_spin as jimgw_spin_transform + +# for _ in range(100): +# thetaJN = jnp.array(np.random.uniform(0, np.pi)) +# phiJL = jnp.array(np.random.uniform(0, np.pi)) +# theta1 = jnp.array(np.random.uniform(0, np.pi)) +# theta2 = jnp.array(np.random.uniform(0, np.pi)) +# phi12 = jnp.array(np.random.uniform(0, np.pi)) +# chi1 = jnp.array(np.random.uniform(0, 1)) +# chi2 = jnp.array(np.random.uniform(0, 1)) +# M_c = jnp.array(np.random.uniform(1, 100)) +# eta = jnp.array(np.random.uniform(0.1, 0.25)) +# fRef = jnp.array(np.random.uniform(10, 1000)) +# phiRef = jnp.array(np.random.uniform(0, 2*np.pi)) + +# q = symmetric_mass_ratio_to_mass_ratio(eta) +# m1, m2 = chirp_mass_and_mass_ratio_to_component_masses(M_c, q) +# MsunInkg = 1.9884e30 +# bilby_spin = jnp.array(bilby_spin_transform(thetaJN, phiJL, theta1, theta2, phi12, chi1, chi2, m1*MsunInkg, m2*MsunInkg, fRef, phiRef)) +# jimgw_spin = jnp.array(jimgw_spin_transform(thetaJN, phiJL, theta1, theta2, phi12, chi1, chi2, M_c, eta, fRef, phiRef)) +# assert np.allclose(bilby_spin, jimgw_spin, atol=1e-4) From 93b648317074bf07b54dd8ca1fa9d9d2d54a734e Mon Sep 17 00:00:00 2001 From: kazewong Date: Tue, 10 Sep 2024 15:30:42 -0400 Subject: [PATCH 42/44] Updating initial position sampling. Also changing GW150914_IMRPhenomD.py --- example/GW150914.py | 138 --------------------------------- example/GW150914_IMRPhenomD.py | 133 +++++++++++++++++++++++++++++++ src/jimgw/jim.py | 25 +++--- 3 files changed, 146 insertions(+), 150 deletions(-) delete mode 100644 example/GW150914.py create mode 100644 example/GW150914_IMRPhenomD.py diff --git a/example/GW150914.py b/example/GW150914.py deleted file mode 100644 index 559b5b7c..00000000 --- a/example/GW150914.py +++ /dev/null @@ -1,138 +0,0 @@ -import time - -import jax -import jax.numpy as jnp - -from jimgw.jim import Jim -from jimgw.prior import Composite, Unconstrained_Uniform -from jimgw.single_event.detector import H1, L1 -from jimgw.single_event.likelihood import TransientLikelihoodFD -from jimgw.single_event.waveform import RippleIMRPhenomD -from flowMC.strategy.optimization import optimization_Adam - -jax.config.update("jax_enable_x64", True) - -########################################### -########## First we grab data ############# -########################################### - -total_time_start = time.time() - -# first, fetch a 4s segment centered on GW150914 -gps = 1126259462.4 -duration = 4 -post_trigger_duration = 2 -start_pad = duration - post_trigger_duration -end_pad = post_trigger_duration -fmin = 20.0 -fmax = 1024.0 - -ifos = ["H1", "L1"] - -H1.load_data(gps, start_pad, end_pad, fmin, fmax, psd_pad=16, tukey_alpha=0.2) -L1.load_data(gps, start_pad, end_pad, fmin, fmax, psd_pad=16, tukey_alpha=0.2) - -Mc_prior = Unconstrained_Uniform(10.0, 80.0, naming=["M_c"]) -q_prior = Unconstrained_Uniform( - 0.125, - 1.0, - naming=["q"], - transforms={"q": ("eta", lambda params: params["q"] / (1 + params["q"]) ** 2)}, -) -s1z_prior = Unconstrained_Uniform(-1.0, 1.0, naming=["s1_z"]) -s2z_prior = Unconstrained_Uniform(-1.0, 1.0, naming=["s2_z"]) -dL_prior = Unconstrained_Uniform(0.0, 2000.0, naming=["d_L"]) -t_c_prior = Unconstrained_Uniform(-0.05, 0.05, naming=["t_c"]) -phase_c_prior = Unconstrained_Uniform(0.0, 2 * jnp.pi, naming=["phase_c"]) -cos_iota_prior = Unconstrained_Uniform( - -1.0, - 1.0, - naming=["cos_iota"], - transforms={ - "cos_iota": ( - "iota", - lambda params: jnp.arccos( - jnp.arcsin(jnp.sin(params["cos_iota"] / 2 * jnp.pi)) * 2 / jnp.pi - ), - ) - }, -) -psi_prior = Unconstrained_Uniform(0.0, jnp.pi, naming=["psi"]) -ra_prior = Unconstrained_Uniform(0.0, 2 * jnp.pi, naming=["ra"]) -sin_dec_prior = Unconstrained_Uniform( - -1.0, - 1.0, - naming=["sin_dec"], - transforms={ - "sin_dec": ( - "dec", - lambda params: jnp.arcsin( - jnp.arcsin(jnp.sin(params["sin_dec"] / 2 * jnp.pi)) * 2 / jnp.pi - ), - ) - }, -) - -prior = Composite( - [ - Mc_prior, - q_prior, - s1z_prior, - s2z_prior, - dL_prior, - t_c_prior, - phase_c_prior, - cos_iota_prior, - psi_prior, - ra_prior, - sin_dec_prior, - ] -) -likelihood = TransientLikelihoodFD( - [H1, L1], - waveform=RippleIMRPhenomD(), - trigger_time=gps, - duration=4, - post_trigger_duration=2, -) - - -mass_matrix = jnp.eye(11) -mass_matrix = mass_matrix.at[1, 1].set(1e-3) -mass_matrix = mass_matrix.at[5, 5].set(1e-3) -local_sampler_arg = {"step_size": mass_matrix * 3e-3} - -Adam_optimizer = optimization_Adam(n_steps=3000, learning_rate=0.01, noise_level=1) - -import optax -n_epochs = 20 -n_loop_training = 100 -total_epochs = n_epochs * n_loop_training -start = total_epochs//10 -learning_rate = optax.polynomial_schedule( - 1e-3, 1e-4, 4.0, total_epochs - start, transition_begin=start -) - - -jim = Jim( - likelihood, - prior, - n_loop_training=n_loop_training, - n_loop_production=20, - n_local_steps=10, - n_global_steps=1000, - n_chains=500, - n_epochs=n_epochs, - learning_rate=learning_rate, - n_max_examples=30000, - n_flow_samples=100000, - momentum=0.9, - batch_size=30000, - use_global=True, - train_thinning=1, - output_thinning=10, - local_sampler_arg=local_sampler_arg, - strategies=[Adam_optimizer,"default"], -) - -jim.sample(jax.random.PRNGKey(42)) diff --git a/example/GW150914_IMRPhenomD.py b/example/GW150914_IMRPhenomD.py new file mode 100644 index 00000000..7a7a37b3 --- /dev/null +++ b/example/GW150914_IMRPhenomD.py @@ -0,0 +1,133 @@ +import jax +import jax.numpy as jnp + +from jimgw.jim import Jim +from jimgw.prior import CombinePrior, UniformPrior, CosinePrior, SinePrior, PowerLawPrior +from jimgw.single_event.detector import H1, L1 +from jimgw.single_event.likelihood import TransientLikelihoodFD +from jimgw.single_event.waveform import RippleIMRPhenomD +from jimgw.transforms import BoundToUnbound +from jimgw.single_event.transforms import ComponentMassesToChirpMassSymmetricMassRatioTransform, SkyFrameToDetectorFrameSkyPositionTransform, ComponentMassesToChirpMassMassRatioTransform +from jimgw.single_event.utils import Mc_q_to_m1_m2 +from flowMC.strategy.optimization import optimization_Adam + +jax.config.update("jax_enable_x64", True) + +########################################### +########## First we grab data ############# +########################################### + +# first, fetch a 4s segment centered on GW150914 +gps = 1126259462.4 +duration = 4 +post_trigger_duration = 2 +start_pad = duration - post_trigger_duration +end_pad = post_trigger_duration +fmin = 20.0 +fmax = 1024.0 + +ifos = [H1, L1] + +for ifo in ifos: + ifo.load_data(gps, start_pad, end_pad, fmin, fmax, psd_pad=16, tukey_alpha=0.2) + +M_c_min, M_c_max = 10.0, 80.0 +eta_min, eta_max = 0.2, 0.25 +# m_1_prior = UniformPrior(Mc_q_to_m1_m2(M_c_min, q_max)[0], Mc_q_to_m1_m2(M_c_max, q_min)[0], parameter_names=["m_1"]) +# m_2_prior = UniformPrior(Mc_q_to_m1_m2(M_c_min, q_min)[1], Mc_q_to_m1_m2(M_c_max, q_max)[1], parameter_names=["m_2"]) +Mc_prior = UniformPrior(M_c_min, M_c_max, parameter_names=["M_c"]) +eta_prior = UniformPrior(eta_min, eta_max, parameter_names=["eta"]) +s1z_prior = UniformPrior(-1.0, 1.0, parameter_names=["s1_z"]) +s2z_prior = UniformPrior(-1.0, 1.0, parameter_names=["s2_z"]) +dL_prior = PowerLawPrior(1.0, 2000.0, 2.0, parameter_names=["d_L"]) +t_c_prior = UniformPrior(-0.05, 0.05, parameter_names=["t_c"]) +phase_c_prior = UniformPrior(0.0, 2 * jnp.pi, parameter_names=["phase_c"]) +iota_prior = SinePrior(parameter_names=["iota"]) +psi_prior = UniformPrior(0.0, jnp.pi, parameter_names=["psi"]) +ra_prior = UniformPrior(0.0, 2 * jnp.pi, parameter_names=["ra"]) +dec_prior = CosinePrior(parameter_names=["dec"]) + +prior = CombinePrior( + [ + Mc_prior, + eta_prior, + s1z_prior, + s2z_prior, + dL_prior, + t_c_prior, + phase_c_prior, + iota_prior, + psi_prior, + ra_prior, + dec_prior, + ] +) + +sample_transforms = [ + # ComponentMassesToChirpMassMassRatioTransform, + BoundToUnbound(name_mapping = (["M_c"], ["M_c_unbounded"]), original_lower_bound=M_c_min, original_upper_bound=M_c_max), + BoundToUnbound(name_mapping = (["eta"], ["eta_unbounded"]), original_lower_bound=eta_min, original_upper_bound=eta_max), + BoundToUnbound(name_mapping = (["s1_z"], ["s1_z_unbounded"]) , original_lower_bound=-1.0, original_upper_bound=1.0), + BoundToUnbound(name_mapping = (["s2_z"], ["s2_z_unbounded"]) , original_lower_bound=-1.0, original_upper_bound=1.0), + BoundToUnbound(name_mapping = (["d_L"], ["d_L_unbounded"]) , original_lower_bound=1.0, original_upper_bound=2000.0), + BoundToUnbound(name_mapping = (["t_c"], ["t_c_unbounded"]) , original_lower_bound=-0.05, original_upper_bound=0.05), + BoundToUnbound(name_mapping = (["phase_c"], ["phase_c_unbounded"]) , original_lower_bound=0.0, original_upper_bound=2 * jnp.pi), + BoundToUnbound(name_mapping = (["iota"], ["iota_unbounded"]), original_lower_bound=0., original_upper_bound=jnp.pi), + BoundToUnbound(name_mapping = (["psi"], ["psi_unbounded"]), original_lower_bound=0.0, original_upper_bound=jnp.pi), + SkyFrameToDetectorFrameSkyPositionTransform(gps_time=gps, ifos=ifos), + BoundToUnbound(name_mapping = (["zenith"], ["zenith_unbounded"]), original_lower_bound=0.0, original_upper_bound=jnp.pi), + BoundToUnbound(name_mapping = (["azimuth"], ["azimuth_unbounded"]), original_lower_bound=0.0, original_upper_bound=2 * jnp.pi), +] + +likelihood_transforms = [ + # ComponentMassesToChirpMassSymmetricMassRatioTransform, +] + +likelihood = TransientLikelihoodFD( + ifos, + waveform=RippleIMRPhenomD(), + trigger_time=gps, + duration=4, + post_trigger_duration=2, +) + + +mass_matrix = jnp.eye(11) +mass_matrix = mass_matrix.at[1, 1].set(1e-3) +mass_matrix = mass_matrix.at[5, 5].set(1e-3) +local_sampler_arg = {"step_size": mass_matrix * 3e-3} + +Adam_optimizer = optimization_Adam(n_steps=3000, learning_rate=0.01, noise_level=1) + +n_epochs = 30 +n_loop_training = 20 +learning_rate = 1e-4 + + +jim = Jim( + likelihood, + prior, + sample_transforms=sample_transforms, + likelihood_transforms=likelihood_transforms, + n_loop_training=n_loop_training, + n_loop_production=20, + n_local_steps=10, + n_global_steps=1000, + n_chains=500, + n_epochs=n_epochs, + learning_rate=learning_rate, + n_max_examples=30000, + n_flow_samples=100000, + momentum=0.9, + batch_size=30000, + use_global=True, + train_thinning=1, + output_thinning=10, + local_sampler_arg=local_sampler_arg, + strategies=[Adam_optimizer, "default"], + verbose=True +) + +jim.sample(jax.random.PRNGKey(42)) +# jim.get_samples() +# jim.print_summary() \ No newline at end of file diff --git a/src/jimgw/jim.py b/src/jimgw/jim.py index fae0bc98..8e6bb0bc 100644 --- a/src/jimgw/jim.py +++ b/src/jimgw/jim.py @@ -104,18 +104,19 @@ def posterior(self, params: Float[Array, " n_dim"], data: dict): def sample(self, key: PRNGKeyArray, initial_position: Array = jnp.array([])): if initial_position.size == 0: - initial_guess = [] - for _ in range(self.sampler.n_chains): - flag = True - while flag: - key = jax.random.split(key)[1] - guess = self.prior.sample(key, 1) - for transform in self.sample_transforms: - guess = transform.forward(guess) - guess = jnp.array([i for i in guess.values()]).T[0] - flag = not jnp.all(jnp.isfinite(guess)) - initial_guess.append(guess) - initial_position = jnp.array(initial_guess) + initial_position = jnp.zeros((self.sampler.n_chains, self.prior.n_dim)) + jnp.nan + + while not jax.tree.reduce(jnp.logical_and, jax.tree.map(lambda x: jnp.isfinite(x), initial_position)).all(): + non_finite_index = jnp.any(~jax.tree.reduce(jnp.logical_and, jax.tree.map(lambda x: jnp.isfinite(x), initial_position)),axis=1) + + key, subkey = jax.random.split(key) + guess = self.prior.sample(subkey, self.sampler.n_chains) + for transform in self.sample_transforms: + guess = jax.vmap(transform.forward)(guess) + guess = jnp.array(jax.tree.leaves({key: guess[key] for key in self.parameter_names})).T + finite_guess = jnp.where(jnp.all(jax.tree.map(lambda x: jnp.isfinite(x), guess),axis=1))[0] + common_length = min(len(finite_guess), len(non_finite_index)) + initial_position = initial_position.at[non_finite_index[:common_length]].set(guess[:common_length]) self.sampler.sample(initial_position, None) # type: ignore def maximize_likelihood( From ff12e0b50267e8b72a9c875c0502e96306c7a102 Mon Sep 17 00:00:00 2001 From: Thomas Ng Date: Mon, 16 Sep 2024 10:07:29 +0800 Subject: [PATCH 43/44] Update transforms.py --- src/jimgw/single_event/transforms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jimgw/single_event/transforms.py b/src/jimgw/single_event/transforms.py index cb60e98b..0cfae761 100644 --- a/src/jimgw/single_event/transforms.py +++ b/src/jimgw/single_event/transforms.py @@ -83,7 +83,7 @@ class SkyFrameToDetectorFrameSkyPositionTransform(BijectiveTransform): def __init__( self, gps_time: Float, - ifos: GroundBased2G, + ifos: list[GroundBased2G], ): name_mapping = (["ra", "dec"], ["zenith", "azimuth"]) super().__init__(name_mapping) From aef6124fdb93997d20e906d954646db28f613771 Mon Sep 17 00:00:00 2001 From: kazewong Date: Mon, 16 Sep 2024 08:46:26 -0400 Subject: [PATCH 44/44] minor bug fix on initial sample noon_finite_guess --- example/GW150914_IMRPhenomD.py | 2 +- src/jimgw/jim.py | 2 +- test/integration/test_GW150914_D.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/example/GW150914_IMRPhenomD.py b/example/GW150914_IMRPhenomD.py index 7a7a37b3..66619ddc 100644 --- a/example/GW150914_IMRPhenomD.py +++ b/example/GW150914_IMRPhenomD.py @@ -117,7 +117,7 @@ n_epochs=n_epochs, learning_rate=learning_rate, n_max_examples=30000, - n_flow_samples=100000, + n_flow_sample=100000, momentum=0.9, batch_size=30000, use_global=True, diff --git a/src/jimgw/jim.py b/src/jimgw/jim.py index 8e6bb0bc..2f0086ac 100644 --- a/src/jimgw/jim.py +++ b/src/jimgw/jim.py @@ -107,7 +107,7 @@ def sample(self, key: PRNGKeyArray, initial_position: Array = jnp.array([])): initial_position = jnp.zeros((self.sampler.n_chains, self.prior.n_dim)) + jnp.nan while not jax.tree.reduce(jnp.logical_and, jax.tree.map(lambda x: jnp.isfinite(x), initial_position)).all(): - non_finite_index = jnp.any(~jax.tree.reduce(jnp.logical_and, jax.tree.map(lambda x: jnp.isfinite(x), initial_position)),axis=1) + non_finite_index = jnp.where(jnp.any(~jax.tree.reduce(jnp.logical_and, jax.tree.map(lambda x: jnp.isfinite(x), initial_position)),axis=1))[0] key, subkey = jax.random.split(key) guess = self.prior.sample(subkey, self.sampler.n_chains) diff --git a/test/integration/test_GW150914_D.py b/test/integration/test_GW150914_D.py index 5103e5d8..946b0735 100644 --- a/test/integration/test_GW150914_D.py +++ b/test/integration/test_GW150914_D.py @@ -119,7 +119,7 @@ n_epochs=n_epochs, learning_rate=learning_rate, n_max_examples=30, - n_flow_samples=100, + n_flow_sample=100, momentum=0.9, batch_size=100, use_global=True,