Example #1
0
def mkRO(dataset="", astrotype="", copy_input=False, args = None, argv = None):

    log = logutils.get_logger(__name__)
    
    rl = RecipeLibrary()
    if dataset != "":
        ad = AstroData(dataset)
        ro = rl.retrieve_reduction_object(ad)
    elif astrotype != "":
        ad = None
        ro = rl.retrieve_reduction_object(astrotype = astrotype)

    # using standard command clause supplied in RecipeLibrary module
    ro.register_command_clause(command_clause)
    rc = ReductionContext(adcc_mode="start_lazy")
    rc.ro = ro
    ro.context = rc
    reductionObject = ro
    
    # Override copy_input argument if passed in argv
    if argv is not None:
        if argv.has_key("copy_input"):
            copy_input = argv["copy_input"]

    # Add input passed in args
    if args:
        arglist = []
        for arg in args:
            if isinstance(arg,list):
                for subarg in arg:
                    if copy_input:
                        subarg = deepcopy(subarg)
                    arglist.append(subarg)
            else:
                if copy_input:
                    arg = deepcopy(arg)
                arglist.append(arg)
        rc.populate_stream(arglist)

    rc.initialize_inputs()
    rc.set_context("pif")
    rc.update({'logindent':logutils.SW})
    rc.update(argv)
    ro.init(rc)
    
    return reductionObject
Example #2
0
                            # @@NAME: stackIndexFile, location for persistent stack list cache
                            co.set_cache_file("stackIndexFile", stkindfile)
                            co.ro = ro
                            # @@DOC: put cachedirs in context
                            for cachename in cachedict:
                                co.update({cachename:cachedict[cachename]})
                            co.update({"cachedict":cachedict})
                            # rc.["storedcals"] will be the proper directory

                            # co.restore_cal_index(calindfile)
                            # old local stack stuff co.restore_stk_index( stkindfile )

                            # add input files
                            if infiles:
                                #co.add_input(infiles)
                                co.populate_stream(infiles)
                            co.set_iraf_stdout(irafstdout)
                            co.set_iraf_stderr(irafstdout)

                           # odl way rl.retrieve_parameters(infile[0], co, rec)
                            if hasattr(args, "user_params"):
                                co.user_params = args.user_params
                            if hasattr(args, "globalParams"):
                                for pkey in args.globalParams.keys():
                                    co.update({pkey:args.globalParams[pkey]})

                        # Remove after write int works properly
                        if (args.writeInt == True):       
                                co.update({"writeInt":True})  

                        # Add the log level/name/mode to the global dict