From e9aef9628e76f98ad71c2af53b8ab64e82ba7bdc Mon Sep 17 00:00:00 2001 From: Colm Talbot <colm.talbot@ligo.org> Date: Sat, 12 May 2018 14:46:16 +1000 Subject: [PATCH] turn list of if else statements into dictionary --- tupak/utils.py | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/tupak/utils.py b/tupak/utils.py index c8f678357..023a0550a 100644 --- a/tupak/utils.py +++ b/tupak/utils.py @@ -247,24 +247,20 @@ def get_polarization_tensor(ra, dec, time, psi, mode): n = -u * np.cos(psi) + v * np.sin(psi) omega = np.cross(m, n) - if mode == "plus": - # polarization_tensor = np.einsum('i,j->ij', m, m) - np.einsum('i,j->ij', n, n) - polarization_tensor = np.array([[m[0]*m[0]-n[0]*n[0], m[0]*m[1]-n[0]*n[1], m[0]*m[2]-n[0]*n[2]], - [m[1]*m[0]-n[1]*n[0], m[1]*m[1]-n[1]*n[1], m[1]*m[2]-n[1]*n[2]], - [m[2]*m[0]-n[2]*n[0], m[2]*m[1]-n[2]*n[1], m[2]*m[2]-n[2]*n[2]]]) - elif mode == "cross": - polarization_tensor = np.einsum('i,j->ij', m, n) + np.einsum('i,j->ij', n, m) - elif mode == "breathing": - polarization_tensor = np.einsum('i,j->ij', m, m) + np.einsum('i,j->ij', n, n) - elif mode == "longitudinal": - polarization_tensor = np.sqrt(2) * np.einsum('i,j->ij', omega, omega) - elif mode == "x": - polarization_tensor = np.einsum('i,j->ij', m, omega) + np.einsum('i,j->ij', omega, m) - elif mode == "y": - polarization_tensor = np.einsum('i,j->ij', n, omega) + np.einsum('i,j->ij', omega, n) + polarization_tensors = { + "plus" : np.einsum('i,j->ij', m, m) - np.einsum('i,j->ij', n, n), + "cross": np.einsum('i,j->ij', m, n) + np.einsum('i,j->ij', n, m), + "breathing": np.einsum('i,j->ij', m, m) + np.einsum('i,j->ij', n, n), + "longitudinal": np.sqrt(2) * np.einsum('i,j->ij', omega, omega), + "x": np.einsum('i,j->ij', m, omega) + np.einsum('i,j->ij', omega, m), + "y": np.einsum('i,j->ij', n, omega) + np.einsum('i,j->ij', omega, n) + } + + if mode in polarization_tensors.keys(): + polarization_tensor = polarization_tensors[mode] else: - print("Not a polarization mode!") - return None + logging.warning("{} not a polarization mode!".format(mode)) + polarization_tensor = None return polarization_tensor -- GitLab