Esempio n. 1
0
def get_simname_and_file(objmodel, psfmodel):

    i=1
    simname = _get_simname(objmodel, psfmodel, i)
    fname = shapesim.get_config_file(simname)
    while os.path.exists(fname):
        i+=1
        simname = _get_simname(objmodel, psfmodel, i)
        fname = shapesim.get_config_file(simname)

    return simname, fname
Esempio n. 2
0
def get_run_name_and_file(sim_name):

    runid=1
    run_name = _get_run_name(sim_name, runid)
    fname = shapesim.get_config_file(run_name)
    while os.path.exists(fname):
        runid+=1
        run_name = _get_run_name(sim_name, runid)
        fname = shapesim.get_config_file(run_name)

    return run_name, fname
Esempio n. 3
0
def main():
    options,args = parser.parse_args(sys.argv[1:])

    if len(args) < 2:
        parser.print_help()
        sys.exit(1)

    objmodel=args[0]
    psfmodel=args[1]

    if options.simname is not None:
        simname=options.simname
        fname = shapesim.get_config_file(simname)
        if os.path.exists(fname) and not options.overwrite:
            raise ValueError("file already exists: %s" % fname)
    else:
        simname, fname = get_simname_and_file(objmodel, psfmodel)

    if options.shear is None:
        parser.print_help()
        sys.exit(1)

    shear1,shear2=options.shear.split(',')
    if psfmodel in ['gauss','dgauss']:
        if options.psf_ellip is None:
            parser.print_help()
            sys.exit(1)
        psf_e1,psf_e2 = options.psf_ellip.split(',')

    if objmodel == 'exp':
        if psfmodel == 'dgauss':
            text = dg_template % {'simname':simname,
                                  'objmodel':objmodel,
                                  'psf_e1':psf_e1,
                                  'psf_e2':psf_e2,
                                  'shear1':shear1,
                                  'shear2':shear2,
                                  'nums2':options.nums2,
                                  'nume':options.nume}
        elif psfmodel == 'turb':
            text = turb_template % {'simname':simname,
                                    'objmodel':objmodel,
                                    'shear1':shear1,
                                    'shear2':shear2,
                                    'nums2':options.nums2,
                                    'nume':options.nume}

        else:
            raise ValueError("support more psf models")
    else:
        raise ValueError("need to support more obj types")

    print text
    print 'fname:',fname
    if not options.dryrun:
        with open(fname,'w') as fobj:
            fobj.write(text)
    else:
        print 'dryrun'
Esempio n. 4
0
def main():
    options,args = parser.parse_args(sys.argv[1:])

    if len(args) < 2:
        parser.print_help()
        sys.exit(1)

    sim_name=args[0]
    run_type=args[1]

    cs = shapesim.read_config(sim_name)
    objmodel = cs['objmodel']
    psfmodel = cs['psfmodel']
    simtype = shortnames[objmodel]+shortnames[psfmodel]

    if options.run_name is not None:
        run_name=options.run_name
        fname = shapesim.get_config_file(run_name)
        if os.path.exists(fname) and not options.overwrite:
            raise ValueError("file already exists: %s" % fname)
    else:
        run_name, fname = get_run_name_and_file(sim_name)

    s2n_fac=options.s2n_fac
    if s2n_fac is None:
        raise ValueError("send --s2n-fac")
    if run_type == 'bys2n':
        ie=options.ie
        if ie is None:
            raise ValueError("send --ie for bys2n")

        tmps2,e_val = shapesim.get_s2_e(cs, 0, int(ie))

        #s2n_vals_def='5,10,15,20,25,30,40,50,60,70,80,90,100'
        s2n_vals_def='10,15,20,25,30,40,50,60,70,80,90,100'
        s2n_vals=options.s2n_vals
        if s2n_vals is None:
            s2n_vals=s2n_vals_def
        if simtype == 'edg':
            text=edg_bys2n_template % {'run_name':run_name,
                                       'sim_name':sim_name,
                                       's2n_fac':s2n_fac,
                                       's2n_vals':s2n_vals,
                                       'ie':ie,
                                       'e_val':e_val}
        elif simtype == 'et':
            text=et_bys2n_template % {'run_name':run_name,
                                      'sim_name':sim_name,
                                      's2n_fac':s2n_fac,
                                      's2n_vals':s2n_vals,
                                      'ie':ie,
                                      'e_val':e_val}
        elif simtype == 'dt':
            text=dt_bys2n_template % {'run_name':run_name,
                                      'sim_name':sim_name,
                                      's2n_fac':s2n_fac,
                                      's2n_vals':s2n_vals,
                                      'ie':ie,
                                      'e_val':e_val}
        elif simtype == 'gg':
            text=gg_bys2n_template % {'run_name':run_name,
                                      'sim_name':sim_name,
                                      's2n_fac':s2n_fac,
                                      's2n_vals':s2n_vals,
                                      'ie':ie,
                                      'e_val':e_val}

        else:
            raise ValueError("support other sim types")
    elif run_type == 'byellip':
        s2n=options.s2n
        if s2n is None:
            raise ValueError("send s2n for byellip")
        if simtype == 'edg':
            text=edg_byellip_template
        elif simtype == 'gg':
            text=gg_byellip_template

        else:
            raise ValueError("support other sim types")

        text=text % {'run_name':run_name,
                     'sim_name':sim_name,
                     's2n_fac':s2n_fac,
                     's2n':s2n}

    else:
        raise ValueError("support others?")

    print text
    print 'fname:',fname
    if not options.dryrun:
        with open(fname,'w') as fobj:
            fobj.write(text)
    else:
        print 'dryrun'