Пример #1
0
def BerkeleyDB(bat):
    if bat.build:
        tools.extract('bdb')
        bat.command('cd bdb\\build_windows')
        # building the .NET solution also builds native DLLs
        bat.devenv('BDB_dotNet_vs2010.sln')
    else:
        bat.validate_devenv()
        bat.include('bdb\\build_windows\\*.h')
        bat.bin('bdb\\build_windows\\AnyCPU\\{0}\\*.dll'.format(bat.config))
        bat.bin('bdb\\build_windows\\win32\\{0}\\*.dll'.format(bat.config),
                'bdb\\build_windows\\x64\\{0}\\*.dll'.format(bat.config))
        bat.lib('bdb\\build_windows\\win32\\{0}\\*.lib'.format(bat.config),
                'bdb\\build_windows\\x64\\{0}\\*.lib'.format(bat.config))
Пример #2
0
def Boost(bat):

    def param(config, platform):
        p = ' --hash --without-mpi toolset=msvc-{0}'.format(setup.VC_VERSION)
        p += ' -sICU_PATH={0}\\{1}'.format(setup.INSTALL, platform)
        p += ' -sZLIB_SOURCE={0}\\zlib'.format(os.getcwd())
        p += ' variant={0} link=static runtime-link=static runtime-link=shared threading=multi'.format(config)
        p += ' --prefix={0}\\{1}'.format(setup.INSTALL, platform)
        p += ' address-model={0}'.format(64 if platform=='x64' else 32)
        return p

    if bat.build:
        tools.extract('boost')
        tools.extract('zlib')
        bat.command('cd boost')
        bat.command('b2 -a {0} install'.format(param(bat.config, bat.platform)))
Пример #3
0
def FreeType(bat):
    if bat.build:
        tools.extract('freetype')
        # add missing x64 support
        bat.command('copy /y archives\\freetype-project\\* freetype\\builds\\win32\\vc2010')
        bat.command('cd freetype\\builds\\win32\\vc2010')
        bat.devenv('freetype.sln')
    else:
        bat.validate_devenv()
        bat.command('pushd freetype\\objs\\win32\\vc2010')
        if bat.config == 'release':
            bat.command('copy /y freetype246.lib freetype.lib')
            bat.command('del freetype246.lib')
        else:
            bat.command('copy /y freetype246_d.lib freetyped.lib')
            bat.command('del freetype246_d.lib')
        bat.command('popd')
        bat.include('freetype\\include')
        bat.lib('freetype\\objs\\win32\\vc2010\\*.lib')
Пример #4
0
    def get(self, request, modelName, id):
        context = request.session
        session_id = context['IndexInput']['id']

        _model = self.class_map[modelName][0]
        item = _model.objects.get(session_id=session_id,id=id)
        
        if 's' in request.GET:
            exclude = self.class_map[modelName][1]
            _form = modelform_factory(_model,exclude=exclude)
            form = _form(instance=item)
            return render(request, 'updateItem.html', { 'modelName':modelName, 'form':form, 'status': 0 })
        else:    
            return JsonResponse(extract(item))
Пример #5
0
    def addText():
        '''
		获取text框中的文本,方便进行检索
		'''
        text = t.get('0.0', 'end')
        info_dict = tools.extract(text, item_list)  # 抽取信息
        t.delete('0.0', 'end')
        text = lb.get(lb.curselection())
        text = re.sub(re.compile(r'#.*#:  '), '', text)
        text = tools.fullfill(text, info_dict)  # 自动填充文本

        text = re.sub(re.compile(r'<e>.*<e>'), '__', text)
        # text = text.replace('<e>.*<e>', '____')
        t.insert('end', text)  # 获取当前选中的文本
Пример #6
0
    def get(self, request, modelName, id):
        context = request.session
        session_id = context['IndexInput']['id']

        _model = self.class_map[modelName][0]
        item = _model.objects.get(session_id=session_id, id=id)

        if 's' in request.GET:
            exclude = self.class_map[modelName][1]
            _form = modelform_factory(_model, exclude=exclude)
            form = _form(instance=item)
            return render(request, 'updateItem.html', {
                'modelName': modelName,
                'form': form,
                'status': 0
            })
        else:
            return JsonResponse(extract(item))
Пример #7
0
    def drawColorbar(self):
        """
        Draw the vertically-oriented colorbar.

        * Not many customizable options here because the colorbar is a 'plt' object
        * and the options are applied to attributes.  
        * User needs to modify or extend this function.
        """
        cbar = plt.colorbar()

        try:
            cbar.ax.set_ylabel(self.colorbar["title"])
        except KeyError:
            print " WARNING : Key 'title' not specified for colorbar."
            print "         : Leaving colorbar title blank. "

        # Modify tick labels
        axis_ticklabels = [i.get_text() for i in cbar.ax.get_yticklabels()]

        if self.logplot['data']:
            for i,atl in enumerate(axis_ticklabels):
                if not "10^{" in atl: continue
                atl = atl.strip("$")
                power = r"10$^{\text{%s}}$"%tools.extract(atl)
                tmp   = atl.split("\\times")
                if len(tmp)>1:
                    axis_ticklabels[i] = tmp[0]+r"$\times$"+power
                else:
                    axis_ticklabels[i] = power
        else:
            axis_ticklabels = [i.strip("$") for i in axis_ticklabels]

        cbar_fsize = int(mpl.rcParams['axes.labelsize']*0.75)
        cbar.ax.set_yticklabels(axis_ticklabels,
                                fontsize=cbar_fsize)

        # Modify tick sizes
        for tick in ['major','minor']:
            length = self.colorbar.get("ytick.{0}.size".format(tick),0)
            cbar.ax.yaxis.set_tick_params(which=tick,length=length)

        return
Пример #8
0
             first_loop = False
             instruciones2 = copy.deepcopy(instruciones)
         except:
             item = "fail"
             print('First load of loopload fail')
 if ins >= 1:
     instruciones["instruciones"].pop(0)
 if instruciones["instruciones"][0]["operation_type"] == "load":
     #webContent = tools.split_and_load(instruciones["instruciones"][0]["pagina"])
     webContent = tools.split_and_load1(instruciones["instruciones"][0])
     link = instruciones["instruciones"][0]["pagina"]
 if instruciones["instruciones"][0]["operation_type"] == "extract":
     resultadosdict[
         instruciones["instruciones"][0]["save_var"]] = tools.extract(
             instruciones["instruciones"][0]["tag"],
             instruciones["instruciones"][0]["regex"],
             instruciones["instruciones"][0]["type"], link,
             webContent)  # Da error porque sigue en la misma instrucion.
 if instruciones["instruciones"][0][
         "operation_type"] == "loopload":  #El nombre de la variable, por cada loop debe ser distinto
     linklist = tools2.loopload(instruciones["instruciones"][0]["tag"],
                                webContent, link)
     first_loop = True
 if instruciones["instruciones"][0]["operation_type"] == "end":
     try:
         print("Iteracion :" + str(iter))
         instruciones = copy.deepcopy(instruciones2)
         resultados.append(resultadosdict)
         resultadosdict = {}
         webContent = tools.split_and_load(linklist[iter])
         iter += 1
Пример #9
0
    def extract_source_code(self):
        """
        Find and extract source tarball for the component.
        """
        # We look for a tar file
        pattern = "{n}*.tar.*".format(n=self.component_data_dict["package_name"])

        # Use 'package_version' in pattern if it is not None
        if self.component_data_dict["version"] is not None:
            pattern = "{n}*{v}*.tar.*".format(n=self.component_data_dict["package_name"],
                                              v=self.component_data_dict["version"])

        source_code_filename = tools.find_file(self.component_data_dict["sources_directory"],
                                               pattern)

        # Try a second run if 'source_code_filename' is None using only name as pattern.
        if source_code_filename is None:
            pattern = "{n}*.tar.*".format(n=self.component_data_dict["package_name"])
            source_code_filename = tools.find_file(self.component_data_dict["sources_directory"],
                                                   pattern)

        # Try to find a zip file in case the tar file was not found
        if source_code_filename is None:
            pattern = "{n}*.zip*".format(n=self.component_data_dict["package_name"])

            # Use 'package_version' in pattern if it is not None
            if self.component_data_dict["version"] is not None:
                pattern = "{n}*{v}*.zip*".format(n=self.component_data_dict["package_name"],
                                                  v=self.component_data_dict["version"])

            source_code_filename = tools.find_file(self.component_data_dict["sources_directory"],
                                                   pattern)

            # Try a second run if 'source_code_filename' is None using only name as pattern.
            if source_code_filename is None:
                pattern = "{n}*.zip*".format(n=self.component_data_dict["package_name"])
                source_code_filename = tools.find_file(
                    self.component_data_dict["sources_directory"],
                    pattern
                )

        # Give error if None
        if source_code_filename is None:
            msg = "Can't find source code file for '{n}' with pattern: '{p}'"
            msg = msg.format(n=self.component_data_dict["name"], p=pattern)
            printer.error(msg)

        # Extract
        tools.extract(source_code_filename)

        # We get the name of the extracted directory
        pattern = "{n}*".format(n=self.component_data_dict["package_name"])

        # Use 'package_version' in pattern if it is not None
        if self.component_data_dict["version"] is not None:
            pattern = "{n}*{v}*".format(n=self.component_data_dict["package_name"],
                                        v=self.component_data_dict["version"])

        # Find directory using pattern
        self.component_data_dict["extracted_directory"] = tools.find_directory(
            self.component_data_dict["sources_directory"],
            pattern)

        # Try a second run if 'extracted_directory' is None using only name as pattern.
        # If found, get the realpath
        if self.component_data_dict["extracted_directory"] is None:
            pattern = "{n}*".format(n=self.component_data_dict["package_name"])
            self.component_data_dict["extracted_directory"] = tools.find_directory(
                self.component_data_dict["sources_directory"],
                pattern
            )
        else:
            self.component_data_dict["extracted_directory"] = os.path.realpath(
                self.component_data_dict["extracted_directory"]
            )

        # Fail if not found 'extracted_directroy'
        if self.component_data_dict["extracted_directory"] is None:
            msg = "Can't find extracted directory for '{n}' with pattern: '{p}'"
            msg = msg.format(n=self.component_data_dict["name"], p=pattern)
            printer.error(msg)

        # Generate build_dir if necessary.
        if self.component_data_dict["require_build_dir"] is True:
            # Generate and save 'build_directory' path
            value = os.path.realpath(
                os.path.join(
                    self.component_data_dict["extracted_directory"],
                    self.build_directory_name
                )
            )
            tools.add_to_dictionary(self.component_data_dict,
                                    "build_directory_path",
                                    value,
                                    concat=False)

            # Create directory
            tools.create_directory(self.component_data_dict["build_directory_path"])
        else:
            # If not, build component into the extracted directory
            tools.add_to_dictionary(self.component_data_dict,
                                    "build_directory_path",
                                    self.component_data_dict["extracted_directory"],
                                    concat=False)

        # Set directory owner if we are building the 'toolchain'
        if self.component_data_dict["builder_name"] == "toolchain":
            tools.set_recursive_owner_and_group(self.component_data_dict["extracted_directory"],
                                                self.component_data_dict["run_as_username"])
Пример #10
0
def build_reader():
	reader = root.TMVA.Reader("reader")

	var_mJJ 				= array('f',[0])
	var_deltaYJJ 			= array('f',[0])
	var_metPt 				= array('f',[0])
	var_ptBalance 			= array('f',[0])
	var_subleadJetEta 		= array('f',[0])
	var_leadJetPt 			= array('f',[0])
	var_photonEta 			= array('f',[0])
	var_ptBalanceRed 		= array('f',[0])
	var_nJets 				= array('f',[0])
	var_sinDeltaPhiJJOver2 	= array('f',[0])
	var_deltaYJPh 			= array('f',[0])

	reader.AddVariable("mJJ",				var_mJJ)
	reader.AddVariable("deltaYJJ",			var_deltaYJJ)
	reader.AddVariable("metPt",				var_metPt)
	reader.AddVariable("ptBalance",			var_ptBalance)
	reader.AddVariable("subleadJetEta",		var_subleadJetEta)
	reader.AddVariable("leadJetPt",			var_leadJetPt)
	reader.AddVariable("photonEta",			var_photonEta)
	reader.AddVariable("ptBalanceRed",		var_ptBalanceRed)
	reader.AddVariable("nJets",				var_nJets)
	reader.AddVariable("sinDeltaPhiJJOver2",var_sinDeltaPhiJJOver2)
	reader.AddVariable("deltaYJPh",			var_deltaYJPh)

	reader.BookMVA("MLP", "dataloader/weights/TMVAClassification_MLP.weights.xml")

	SDataframe, BDataframe = extract()
	SDataframe["BDToutput"] = 0.0
	BDataframe["BDToutput"] = 0.0

	output = []
	for i, row in SDataframe.iterrows():
		var_mJJ[0]					= row["mJJ"]
		var_deltaYJJ[0]				= row["deltaYJJ"]
		var_metPt[0]				= row["metPt"]
		var_ptBalance[0]			= row["ptBalance"]
		var_subleadJetEta[0]		= row["subleadJetEta"]
		var_leadJetPt[0]			= row["leadJetPt"]
		var_photonEta[0]			= row["photonEta"]
		var_ptBalanceRed[0]			= row["ptBalanceRed"]
		var_nJets[0]				= row["nJets"]
		var_sinDeltaPhiJJOver2[0]	= row["sinDeltaPhiJJOver2"]
		var_deltaYJPh[0]			= row["deltaYJPh"]
		output.append(reader.EvaluateMVA("MLP"))
	SDataframe["BDToutput"] = output

	output = []
	for i, row in BDataframe.iterrows():
		var_mJJ[0]					= row["mJJ"]
		var_deltaYJJ[0]				= row["deltaYJJ"]
		var_metPt[0]				= row["metPt"]
		var_ptBalance[0]			= row["ptBalance"]
		var_subleadJetEta[0]		= row["subleadJetEta"]
		var_leadJetPt[0]			= row["leadJetPt"]
		var_photonEta[0]			= row["photonEta"]
		var_ptBalanceRed[0]			= row["ptBalanceRed"]
		var_nJets[0]				= row["nJets"]
		var_sinDeltaPhiJJOver2[0]	= row["sinDeltaPhiJJOver2"]
		var_deltaYJPh[0]			= row["deltaYJPh"]
		output.append(reader.EvaluateMVA("MLP"))
	BDataframe["BDToutput"] = output

	print("После отборов классификатора")
	print(sum(SDataframe[SDataframe["BDToutput"] > 0.682]["weightModified"]))
	print(sum(BDataframe[BDataframe["BDToutput"] > 0.682]["weightModified"]))


	print("Фиксированные")
	df = SDataframe[SDataframe["phCentrality"] < 0.455]
	df = df[df["mJJ"] > 697]
	df = df[df["ptBalance"] < 0.064]
	df = df[df["deltaYJJ"] > 2.227]
	print(sum(df["weightModified"]))

	df = BDataframe[BDataframe["phCentrality"] < 0.455]
	df = df[df["mJJ"] > 697]
	df = df[df["ptBalance"] < 0.064]
	df = df[df["deltaYJJ"] > 2.227]
	print(sum(df["weightModified"]))

	# import matplotlib.pyplot as plt

	# fig, ax = plt.subplots()
	# ax.hist(SDataframe["BDToutput"], weights=SDataframe["weightModified"], bins=50, color="blue", alpha=0.5, label="signal")
	# ax.hist(BDataframe["BDToutput"], weights=BDataframe["weightModified"], bins=50, color="red", alpha=0.5, label="background")
	# ax.legend()
	# ax.set_xlabel("BDToutput")
	# ax.set_ylabel("N of events")
	# plt.show()

	# canvas = root.TCanvas("canvas", "CANVAS", 1920, 1080)
	SHist = root.TH1F("", "", 50, 0, 1)
	BHist = root.TH1F("", "", 50, 0, 1)

	BHist.SetStats(False)
	SHist.SetStats(False)
	BHist.SetLineWidth(2)	
	BHist.SetLineColor(2)
	BHist.SetFillColor(2)
	BHist.SetFillStyle(3004)

	BHist.GetXaxis().CenterTitle()
	BHist.GetYaxis().SetTitle("Fraction of events")
	BHist.GetYaxis().CenterTitle()
	BHist.GetXaxis().SetTitleOffset(1.2)
	BHist.SetMinimum(0)

	SHist.SetLineWidth(2)
	SHist.SetLineColor(4)
	SHist.SetFillColorAlpha(4, 0.2)

	SHist.GetXaxis().CenterTitle()
	SHist.GetYaxis().SetTitle("Fraction of events")
	SHist.GetYaxis().CenterTitle()
	SHist.GetXaxis().SetTitleOffset(1.2)
	SHist.SetMinimum(0)


	for out, weight in zip(SDataframe["BDToutput"], SDataframe["weightModified"]):
		SHist.Fill(out, weight)
	for out, weight in zip(BDataframe["BDToutput"], BDataframe["weightModified"]):
		BHist.Fill(out, weight)

	aplt.set_atlas_style()
	fig, ax = aplt.subplots(1, 1, name="fig1", figsize=(800, 600))
	#####################################
	ax.plot(SHist, "E1")
	ax.plot(BHist, "E1")
	######################################
	ax.add_margins(top=0.16)
	ax.set_xlabel("MLP classifier response")
	ax.set_ylabel("Fraction of events")

	# aplt.atlas_label(text="Internal", loc="upper left")
	ax.text(0.2, 0.92, "#sqrt{s} = 13 TeV, 139 fb^{-1}", size=27, align=13)
	# ax.text(0.205, 0.865, "Z_{#gamma} inc. region", size=27, align=13)

	legend = root.TLegend(0.65, 0.8, 0.95, 0.92)
	legend.SetFillColorAlpha(0, 0)
	legend.AddEntry(SHist, "Signal", "F")
	legend.AddEntry(BHist, "Background", "F")
	legend.Draw()

	# fig.savefig("histogramms/{}.pdf".format("BDToutput"))

	# input()

	return make_selections(SDataframe, BDataframe)
Пример #11
0
def build_reader(model_id):
    reader = root.TMVA.Reader("reader")

    var_mJJ = array('f', [0])
    var_deltaYJJ = array('f', [0])
    var_metPt = array('f', [0])
    var_ptBalance = array('f', [0])
    var_subleadJetEta = array('f', [0])
    var_leadJetPt = array('f', [0])
    var_photonEta = array('f', [0])
    var_ptBalanceRed = array('f', [0])
    var_nJets = array('f', [0])
    var_sinDeltaPhiJJOver2 = array('f', [0])
    var_deltaYJPh = array('f', [0])

    reader.AddVariable("mJJ", var_mJJ)
    reader.AddVariable("deltaYJJ", var_deltaYJJ)
    reader.AddVariable("metPt", var_metPt)
    reader.AddVariable("ptBalance", var_ptBalance)
    reader.AddVariable("subleadJetEta", var_subleadJetEta)
    reader.AddVariable("leadJetPt", var_leadJetPt)
    reader.AddVariable("photonEta", var_photonEta)
    reader.AddVariable("ptBalanceRed", var_ptBalanceRed)
    reader.AddVariable("nJets", var_nJets)
    reader.AddVariable("sinDeltaPhiJJOver2", var_sinDeltaPhiJJOver2)
    reader.AddVariable("deltaYJPh", var_deltaYJPh)

    reader.BookMVA(
        "MLP",
        f"dataloader/weights/TMVAClassification_MLP{model_id}.weights.xml")

    SDataframe, BDataframe = extract()
    SDataframe["BDToutput"] = 0.0
    BDataframe["BDToutput"] = 0.0
    print("Веса до применения классификатора:")
    print(np.sum(SDataframe["weightModified"]))
    print(np.sum(BDataframe["weightModified"]))

    output = []
    for i, row in SDataframe.iterrows():
        var_mJJ[0] = row["mJJ"]
        var_deltaYJJ[0] = row["deltaYJJ"]
        var_metPt[0] = row["metPt"]
        var_ptBalance[0] = row["ptBalance"]
        var_subleadJetEta[0] = row["subleadJetEta"]
        var_leadJetPt[0] = row["leadJetPt"]
        var_photonEta[0] = row["photonEta"]
        var_ptBalanceRed[0] = row["ptBalanceRed"]
        var_nJets[0] = row["nJets"]
        var_sinDeltaPhiJJOver2[0] = row["sinDeltaPhiJJOver2"]
        var_deltaYJPh[0] = row["deltaYJPh"]
        output.append(reader.EvaluateMVA("MLP"))
    SDataframe["BDToutput"] = output

    output = []
    for i, row in BDataframe.iterrows():
        var_mJJ[0] = row["mJJ"]
        var_deltaYJJ[0] = row["deltaYJJ"]
        var_metPt[0] = row["metPt"]
        var_ptBalance[0] = row["ptBalance"]
        var_subleadJetEta[0] = row["subleadJetEta"]
        var_leadJetPt[0] = row["leadJetPt"]
        var_photonEta[0] = row["photonEta"]
        var_ptBalanceRed[0] = row["ptBalanceRed"]
        var_nJets[0] = row["nJets"]
        var_sinDeltaPhiJJOver2[0] = row["sinDeltaPhiJJOver2"]
        var_deltaYJPh[0] = row["deltaYJPh"]
        output.append(reader.EvaluateMVA("MLP"))
    BDataframe["BDToutput"] = output

    SHist = root.TH1F("", "", 50, 0, 1)
    BHist = root.TH1F("", "", 50, 0, 1)

    BHist.SetStats(False)
    SHist.SetStats(False)
    BHist.SetLineWidth(2)
    BHist.SetLineColor(2)
    BHist.SetFillColor(2)
    BHist.SetFillStyle(3004)

    BHist.GetXaxis().CenterTitle()
    BHist.GetYaxis().SetTitle("Fraction of events")
    BHist.GetYaxis().CenterTitle()
    BHist.GetXaxis().SetTitleOffset(1.2)
    BHist.SetMinimum(0)

    SHist.SetLineWidth(2)
    SHist.SetLineColor(4)
    SHist.SetFillColorAlpha(4, 0.2)

    SHist.GetXaxis().CenterTitle()
    SHist.GetYaxis().SetTitle("Fraction of events")
    SHist.GetYaxis().CenterTitle()
    SHist.GetXaxis().SetTitleOffset(1.2)
    SHist.SetMinimum(0)

    for out, weight in zip(SDataframe["BDToutput"],
                           SDataframe["weightModified"]):
        SHist.Fill(out, weight)
    for out, weight in zip(BDataframe["BDToutput"],
                           BDataframe["weightModified"]):
        BHist.Fill(out, weight)

    aplt.set_atlas_style()
    fig, ax = aplt.subplots(1, 1, name="fig1", figsize=(800, 600))
    #####################################
    ax.plot(SHist, "E1")
    ax.plot(BHist, "E1")
    ######################################
    ax.add_margins(top=0.16)
    # ax.add_margins(top=0.2)

    ax.set_xlabel(f"MLP{model_id} classifier response")
    ax.set_ylabel("Fraction of events")

    ax.text(0.2, 0.92, "#sqrt{s} = 13 TeV, 139 fb^{-1}", size=27, align=13)

    legend = root.TLegend(0.65, 0.8, 0.95, 0.92)
    legend.SetFillColorAlpha(0, 0)
    legend.AddEntry(SHist, "Signal", "F")
    legend.AddEntry(BHist, "Background", "F")
    legend.Draw()

    fig.savefig(f"MLP{model_id}output.pdf")

    # input()

    return make_selections(SDataframe, BDataframe)
Пример #12
0
    def post(self, request, *args, **kwargs):

        #all saved to session
        context = request.session

        #process inputs from inputMain

        #process gwOpt and swsOpt
        indexInput = IndexInput.objects.get(id=context['IndexInput']['id'])
        if request.POST['gwOpt'] != 'on' or request.POST['swsOpt'] != 'on':
            if request.POST['gwOpt'] != 'on':
                indexInput.gwOpt = False
            if request.POST['swsOpt'] != 'on':
                indexInput.swsOpt = False
            indexInput.save()

        #process WatershedLandUse
        context['WatershedLandUse'] = {}
        for watershd_id in context['rangeWSD']:
            if not WatershedLandUse.objects.filter(
                    session_id=indexInput.id,
                    watershd_id=watershd_id).exists():
                watershedLandUse = WatershedLandUse(session_id=indexInput.id,
                                                    watershd_id=watershd_id)
            else:
                watershedLandUse = WatershedLandUse.objects.get(
                    session_id=indexInput.id, watershd_id=watershd_id)
            watershedLandUse.HSG = request.POST['HSG_' + twonum(watershd_id)]
            watershedLandUse.FeedlotPercentPaved = request.POST[
                'PctFeedlot_' + twonum(watershd_id)]
            watershedLandUse.Total = request.POST['TAreaWSD_' +
                                                  twonum(watershd_id)]
            for i in range(1, 7):
                setattr(
                    watershedLandUse, WatershedLandUse_index_map[i],
                    request.POST['LuseAreaWSD_' + str(i) +
                                 twonum(watershd_id)])
            watershedLandUse.save()
            #prepare data for rendering template
            context['WatershedLandUse'][watershd_id] = extract(
                watershedLandUse)

        #process AgriAnimal
        for watershd_id in context['rangeWSD']:
            if not AgriAnimal.objects.filter(session_id=indexInput.id,
                                             watershd_id=watershd_id).exists():
                agriAnimal = AgriAnimal(session_id=indexInput.id,
                                        watershd_id=watershd_id)
            else:
                agriAnimal = AgriAnimal.objects.get(session_id=indexInput.id,
                                                    watershd_id=watershd_id)
            agriAnimal.numMonthsManureApplied = request.POST[
                'NumMonManure_' + twonum(watershd_id)]
            for i in range(1, 9):
                setattr(
                    agriAnimal, AgriAnimal_index_map[i],
                    request.POST['Animals_' + str(i) + twonum(watershd_id)])
            agriAnimal.save()

        #process SepticNillegal
        for watershd_id in context['rangeWSD']:
            if not SepticNillegal.objects.filter(
                    session_id=indexInput.id,
                    watershd_id=watershd_id).exists():
                septicNillegal = SepticNillegal(session_id=indexInput.id,
                                                watershd_id=watershd_id)
            else:
                septicNillegal = SepticNillegal.objects.get(
                    session_id=indexInput.id, watershd_id=watershd_id)
            septicNillegal.numSepticSystems = request.POST['NumSpSys_' +
                                                           twonum(watershd_id)]
            septicNillegal.PopulationPerSeptic = request.POST[
                'PpSpSys_' + twonum(watershd_id)]
            septicNillegal.SepticFailureRate_Percent = request.POST[
                'SpFailRate_' + twonum(watershd_id)]
            septicNillegal.Wastewater_Direct_Discharge_numPeople = request.POST[
                'NumPpDrtDc_' + twonum(watershd_id)]
            septicNillegal.Direct_Discharge_Reduction_Percent = request.POST[
                'RdcDrtDc_' + twonum(watershd_id)]
            septicNillegal.save()

        #process UniversalSoilLossEquation
        for watershd_id in context['rangeWSD']:
            if not UniversalSoilLossEquation.objects.filter(
                    session_id=indexInput.id,
                    watershd_id=watershd_id).exists():
                ele = UniversalSoilLossEquation(session_id=indexInput.id,
                                                watershd_id=watershd_id)
            else:
                ele = UniversalSoilLossEquation.objects.get(
                    session_id=indexInput.id, watershd_id=watershd_id)
            for i in range(1, 6):
                setattr(
                    ele, "Cropland_" + UniversalSoilLossEquation_index_map[i],
                    request.POST['usleCropland_' + str(i) +
                                 twonum(watershd_id)])
            for i in range(1, 6):
                setattr(
                    ele,
                    "Pastureland_" + UniversalSoilLossEquation_index_map[i],
                    request.POST['uslePasture_' + str(i) +
                                 twonum(watershd_id)])
            for i in range(1, 6):
                setattr(
                    ele, "Forest_" + UniversalSoilLossEquation_index_map[i],
                    request.POST['usleForest_' + str(i) + twonum(watershd_id)])
            for i in range(1, 6):
                setattr(
                    ele,
                    "UserDefined_" + UniversalSoilLossEquation_index_map[i],
                    request.POST['usleUser_' + str(i) + twonum(watershd_id)])
            ele.save()

        #load LanduseDistribution
        context['LanduseDistributionInput'] = list2dictWthKey(
            'watershd_id',
            LanduseDistributionInput.objects.filter(
                session_id=indexInput.id).values())

        return render(request, 'bmpMain.html', {
            'ctx': context,
            'req': request
        })
Пример #13
0
def bjam(bat):
    if bat.build:
        tools.extract('boost')
        bat.command('cd boost')
        bat.command('bootstrap.bat >bjam.log')
Пример #14
0
    def post(self, request, *args, **kwargs):

        #all saved to session
        context = request.session

        #process inputs from inputMain

        #process gwOpt and swsOpt
        indexInput = IndexInput.objects.get(id=context['IndexInput']['id'])
        if request.POST['gwOpt']!='on' or request.POST['swsOpt']!='on':
            if request.POST['gwOpt']!='on':
                indexInput.gwOpt=False
            if request.POST['swsOpt']!='on':
                indexInput.swsOpt=False
            indexInput.save()
        
        #process WatershedLandUse
        context['WatershedLandUse'] = {}
        for watershd_id in context['rangeWSD'] :
            if not WatershedLandUse.objects.filter(session_id=indexInput.id, watershd_id=watershd_id).exists():
                watershedLandUse = WatershedLandUse(
                    session_id=indexInput.id, 
                    watershd_id=watershd_id
                    )
            else:
                watershedLandUse = WatershedLandUse.objects.get(session_id=indexInput.id, watershd_id=watershd_id)
            watershedLandUse.HSG = request.POST['HSG_' + twonum(watershd_id)]
            watershedLandUse.FeedlotPercentPaved = request.POST['PctFeedlot_' + twonum(watershd_id)]
            watershedLandUse.Total = request.POST['TAreaWSD_' + twonum(watershd_id)]
            for i in range(1,7):
                setattr( watershedLandUse,WatershedLandUse_index_map[i],request.POST['LuseAreaWSD_'+str(i)+twonum(watershd_id)] )   
            watershedLandUse.save()
            #prepare data for rendering template
            context['WatershedLandUse'][watershd_id] = extract(watershedLandUse)

        #process AgriAnimal
        for watershd_id in context['rangeWSD'] :
            if not AgriAnimal.objects.filter(session_id=indexInput.id, watershd_id=watershd_id).exists():
                agriAnimal = AgriAnimal(
                    session_id=indexInput.id, 
                    watershd_id=watershd_id
                    )
            else:
                agriAnimal = AgriAnimal.objects.get(session_id=indexInput.id, watershd_id=watershd_id)
            agriAnimal.numMonthsManureApplied = request.POST['NumMonManure_' + twonum(watershd_id)]
            for i in range(1,9):
                setattr( agriAnimal,AgriAnimal_index_map[i],request.POST['Animals_'+str(i)+twonum(watershd_id)] )   
            agriAnimal.save()

        #process SepticNillegal
        for watershd_id in context['rangeWSD'] :
            if not SepticNillegal.objects.filter(session_id=indexInput.id, watershd_id=watershd_id).exists():
                septicNillegal = SepticNillegal(
                    session_id=indexInput.id, 
                    watershd_id=watershd_id
                    )
            else:
                septicNillegal = SepticNillegal.objects.get(session_id=indexInput.id, watershd_id=watershd_id)
            septicNillegal.numSepticSystems = request.POST['NumSpSys_' + twonum(watershd_id)]
            septicNillegal.PopulationPerSeptic = request.POST['PpSpSys_' + twonum(watershd_id)]
            septicNillegal.SepticFailureRate_Percent = request.POST['SpFailRate_' + twonum(watershd_id)]
            septicNillegal.Wastewater_Direct_Discharge_numPeople = request.POST['NumPpDrtDc_' + twonum(watershd_id)]
            septicNillegal.Direct_Discharge_Reduction_Percent = request.POST['RdcDrtDc_' + twonum(watershd_id)]
            septicNillegal.save()

        #process UniversalSoilLossEquation
        for watershd_id in context['rangeWSD'] :
            if not UniversalSoilLossEquation.objects.filter(session_id=indexInput.id, watershd_id=watershd_id).exists():
                ele = UniversalSoilLossEquation(
                    session_id=indexInput.id, 
                    watershd_id=watershd_id
                    )
            else:
                ele = UniversalSoilLossEquation.objects.get(session_id=indexInput.id, watershd_id=watershd_id)
            for i in range(1,6):
                setattr( ele,"Cropland_"+UniversalSoilLossEquation_index_map[i],request.POST['usleCropland_'+str(i)+twonum(watershd_id)] )   
            for i in range(1,6):
                setattr( ele,"Pastureland_"+UniversalSoilLossEquation_index_map[i],request.POST['uslePasture_'+str(i)+twonum(watershd_id)] )   
            for i in range(1,6):
                setattr( ele,"Forest_"+UniversalSoilLossEquation_index_map[i],request.POST['usleForest_'+str(i)+twonum(watershd_id)] )   
            for i in range(1,6):
                setattr( ele,"UserDefined_"+UniversalSoilLossEquation_index_map[i],request.POST['usleUser_'+str(i)+twonum(watershd_id)] )               
            ele.save()

        #load LanduseDistribution    
        context['LanduseDistributionInput'] = list2dictWthKey('watershd_id',LanduseDistributionInput.objects.filter(session_id=indexInput.id).values())    

        return render(request, 'bmpMain.html', { 'ctx':context, 'req' : request })