Contents

%load_ext autoreload
%autoreload 2
%matplotlib inline
import os 
import fpfs
import galsim
import numpy as np
import astropy.io.fits as pyfits
from astropy.visualization import simple_norm

import matplotlib as mpl
import matplotlib.pylab as plt
from mpl_toolkits.axes_grid1 import ImageGrid

mpl.rcParams['axes.linewidth'] = 2.0 #set the value globally
scale = 0.168
seeing = 0.6
rcut = 32
psfInt = galsim.Moffat(
    beta=3.5, fwhm=seeing, trunc=seeing * 4.0
).shear(e1=0.02, e2=-0.02)
psf_data = psfInt.shift(0.5 * scale, 0.5 * scale).drawImage(nx=64, ny=64, scale=scale).array
noise_fname = os.path.join(fpfs.__data_dir__, 'noiPows3.npy')
noi_var = 7e-3
noise_pow = (
    np.load(noise_fname, allow_pickle=True).item()["%s" % rcut]
    * noi_var
    * 100
)
noise_task = fpfs.image.measure_noise_cov(
    psf_data,
    nnord=4,
    sigma_arcsec=0.45,
    pix_scale=scale,
)
cov_mat = noise_task.measure(noise_pow)

mms = pyfits.getdata(os.path.join(fpfs.__data_dir__, "fpfs-cut32-0000-g1-0000.fits"))
cov_mat2 = fpfs.catalog.fpfscov_to_imptcov(mms)
for elem1, elem2 in zip(cov_mat.flatten(), cov_mat2.flatten()):
    if elem2 != 0.0:
        np.testing.assert_array_almost_equal(
            elem1,
            elem2,
        )
2024/10/10 20:03:45 ---  Unable to initialize backend 'rocm': module 'jaxlib.xla_extension' has no attribute 'GpuAllocatorConfig'
2024/10/10 20:03:45 ---  Unable to initialize backend 'tpu': INTERNAL: Failed to open libtpu.so: libtpu.so: cannot open shared object file: No such file or directory
2024/10/10 20:03:45 ---  Order of the shear estimator: nnord=4
2024/10/10 20:03:45 ---  Shapelet kernel in configuration space: sigma= 0.4500 arcsec
2024/10/10 20:03:45 ---  Detection kernel in configuration space: sigma= 0.4500 arcsec
2024/10/10 20:03:45 ---  Maximum |k| is 2.945
plt.close()
plt.imshow(cov_mat,vmin=-1.5,vmax=1.5)
plt.colorbar()
<matplotlib.colorbar.Colorbar at 0x7fb7cc717970>
../_images/6cfa3f876813fad96d91469da35bc67a4c04ca9c7d433881e81b006ade91bd88.png
plt.close()
plt.imshow(cov_mat2,vmin=-1.5,vmax=1.5)
plt.colorbar()
<matplotlib.colorbar.Colorbar at 0x7fb7cc65f670>
../_images/17339828b12758fa321d6483947e629d6712f2a9d8dcd7bad28b26104295118e.png