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']
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')
def test_config_input(): cin = {'psf_type': 'moffat'} config = get_sim_config(config=cin) assert config['psf_type'] == cin['psf_type']
def test_config_smoke(): get_sim_config()
def test_config_badkey(): cin = {'badkey': 5} with pytest.raises(ValueError): get_sim_config(config=cin)