diff options
author | Aaron LI <aly@aaronly.me> | 2017-12-05 20:20:50 +0800 |
---|---|---|
committer | Aaron LI <aly@aaronly.me> | 2017-12-05 20:20:50 +0800 |
commit | 3c86c5419a6a57756cabcc6b9ef85bd1a470e0ea (patch) | |
tree | 041272db495f61bf67f190a16b5066debf116ac6 /astro | |
parent | e7fb1d6cf6d39faf368379c73997cfff5ac227b3 (diff) | |
download | atoolbox-3c86c5419a6a57756cabcc6b9ef85bd1a470e0ea.tar.bz2 |
astro/ps1d_eorwindow.py: Simplify "calc_ps1d()"
Diffstat (limited to 'astro')
-rwxr-xr-x | astro/ps1d_eorwindow.py | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/astro/ps1d_eorwindow.py b/astro/ps1d_eorwindow.py index 1b75d87..fc78fff 100755 --- a/astro/ps1d_eorwindow.py +++ b/astro/ps1d_eorwindow.py @@ -131,12 +131,8 @@ class PS1D: ------- ps1d """ - eor_window = self.eor_window - data = self.data.copy() - data_err = self.data_err.copy() - data[~eor_window] = np.nan - data_err[~eor_window] = np.nan - + ps2d = self.data + ps2d_err = self.data_err k_perp = self.k_perp k_los = self.k_los ps1d_k = self.k @@ -150,18 +146,20 @@ class PS1D: print("Averaging 2D power spectrum ...") mx, my = np.meshgrid(k_perp, k_los) mk = np.sqrt(mx**2 + my**2) + mk[~self.eor_window] = np.inf # constrain within EoR window + for i, k in enumerate(ps1d_k): ii, jj = (mk <= k).nonzero() mk[ii, jj] = np.inf - cells = data[ii, jj] - cells = cells[np.isfinite(cells)] - if len(cells) > 0: - ps1d[i, 1] = np.mean(cells) - cells = data_err[ii, jj] - cells = cells[np.isfinite(cells)] - ps1d[i, 2] = np.sqrt(np.sum((cells/len(cells))**2)) + data = ps2d[ii, jj] + errors = ps2d_err[ii, jj] + ncell = len(data) + if ncell > 0: + ps1d[i, 1] = np.mean(data) + ps1d[i, 2] = np.sqrt(np.sum(errors ** 2)) / ncell if normalize: + # XXX is this normalization correct??? coef = ps1d_k**3 / (2*np.pi**2) ps1d[:, 1] *= coef ps1d[:, 2] *= coef |