Ejemplo n.º 1
0
def test_config_pure():
    cin = {'bands': ['r', 'i']}
    config = get_sim_config(config=cin)

    assert config['bands'] == cin['bands']

    config['bands'].append('z')

    assert config['bands'] != cin['bands']
Ejemplo n.º 2
0
def go(
    *,
    seed,
    gal_imag,
    gal_type,
    gal_hlr,
    ngmix_model,
    ntrial,
    output,
    show=False,
    layout='grid',
    loglevel='info',
):
    """
    seed: int
        Seed for a random number generator
    ntrial: int
        Number of trials to run, paired by simulation plus and minus shear
    output: string
        Output file path.  If output is None, this is a dry
        run and no output is written.
    show: bool
        If True, show some images.  Default False
    loglevel: string
        Log level, default 'info'
    """

    rng = np.random.RandomState(seed)

    g1, g2 = 0.0, 0.0

    # only over ride bands
    sim_config = {
        'bands': ['r', 'i'],
        'psf_type': 'moffat',
        'layout': layout,
    }
    sim_config = get_sim_config(config=sim_config)

    logging.basicConfig(stream=sys.stdout)
    logger = logging.getLogger('mdet_lsst_sim')
    logger.setLevel(getattr(logging, loglevel.upper()))

    logger.info(str(sim_config))

    dlist = []

    for trial in range(ntrial):
        logger.info('-' * 70)
        logger.info('trial: %d/%d' % (trial + 1, ntrial))

        galaxy_catalog = ColorGalaxyCatalog(
            rng=rng,
            coadd_dim=sim_config['coadd_dim'],
            buff=sim_config['buff'],
            layout=sim_config['layout'],
            imag=gal_imag,
            hlr=gal_hlr,
            gal_type=gal_type,
        )

        if sim_config['psf_type'] == 'ps':
            se_dim = get_se_dim(coadd_dim=sim_config['coadd_dim'])
            psf = make_ps_psf(rng=rng, dim=se_dim)
        else:
            psf = make_psf(psf_type=sim_config["psf_type"])

        sim_data = make_sim(
            rng=rng,
            galaxy_catalog=galaxy_catalog,
            coadd_dim=sim_config['coadd_dim'],
            g1=g1,
            g2=g2,
            psf=psf,
            psf_dim=sim_config['psf_dim'],
            dither=sim_config['dither'],
            rotate=sim_config['rotate'],
            bands=sim_config['bands'],
            epochs_per_band=sim_config['epochs_per_band'],
            noise_factor=sim_config['noise_factor'],
            cosmic_rays=sim_config['cosmic_rays'],
            bad_columns=sim_config['bad_columns'],
            star_bleeds=sim_config['star_bleeds'],
        )

        if show:
            show_sim(sim_data['band_data'])

        mbobs = make_mbobs(band_data=sim_data['band_data'], rng=rng)

        toutput = run_ngmix(
            mbobs=mbobs,
            rng=rng,
            model=ngmix_model,
        )

        dlist.append(toutput)

    truth = make_truth(cat=galaxy_catalog, bands=sim_config['bands'])

    data = eu.numpy_util.combine_arrlist(dlist)
    logger.info('writing: %s' % output)
    with fitsio.FITS(output, 'rw', clobber=True) as fits:
        fits.write(data, extname='model_fits')
        fits.write(truth, extname='truth')
Ejemplo n.º 3
0
def test_config_input():
    cin = {'psf_type': 'moffat'}
    config = get_sim_config(config=cin)
    assert config['psf_type'] == cin['psf_type']
Ejemplo n.º 4
0
def test_config_smoke():
    get_sim_config()
Ejemplo n.º 5
0
def test_config_badkey():
    cin = {'badkey': 5}
    with pytest.raises(ValueError):
        get_sim_config(config=cin)