def getBMPs(context): session_id = context['IndexInput']['id'] #BMPs.txt BMPs = "" #process landtype_id: 1~5 : Cropland, pastland, forest,user defined,feedlot for landtype_id in range(1, 6): BMPs += '\tN\tP\tBOD\tSediment\tAppliedArea\tBMP\n' for watershd_id in context['rangeWSD']: bmpInput = BMPInput.objects.get(session_id=session_id, landtype_id=landtype_id, watershd_id=watershd_id) BMPs += '%.4f' % bmpInput.N + "\t" #= request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"1"] BMPs += '%.4f' % bmpInput.P + "\t" #= request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"2"] BMPs += '%.4f' % bmpInput.BOD + "\t" #= request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"3"] BMPs += '%.4f' % bmpInput.Sediment + "\t" #=request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"4"] BMPs += '%.4f' % bmpInput.PercentApplied + "\t" #=request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"6"] BMPs += str( bmpInput.BMP ) + "\n" #= request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"5"] if landtype_id != 5: BMPs += "\n" BMPs += '------------ Followings are BMPs for Urban-------------------------------------------------\n' import time time.sleep(2) # delays for 2 seconds for i in range(1, 5): for j in range(1, 10): key = "UrbnConc_" + str(i) + str(j) urbanBmpInput = UrbanBmpInput.objects.get(session_id=session_id, key=key) BMPs += '%.4f' % urbanBmpInput.value + "\t" BMPs += "\n" BMPs += "\n" #UrbanBMP_ for k in context['range5']: for i in context['rangeWSD']: for j in context['range9']: key = 'UrbanBMP_' + str(k) + '_' + twonum(i) + str(j) urbanBmpInput = UrbanBmpInput.objects.get( session_id=session_id, key=key) BMPs += '%.4f' % urbanBmpInput.value + "\t" BMPs += "\n" BMPs += "\n" return BMPs
def getBMPs(self, context): session_id=context['IndexInput']['id'] #BMPs.txt BMPs = "" #process landtype_id: 1~5 : Cropland, pastland, forest,user defined,feedlot for landtype_id in range(1,6): BMPs += '\tN\tP\tBOD\tSediment\tAppliedArea\tBMP\n' for watershd_id in context['rangeWSD']: bmpInput = BMPInput.objects.get(session_id=session_id, landtype_id=landtype_id, watershd_id=watershd_id) BMPs += '%.4f' % bmpInput.N + "\t" #= request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"1"] BMPs += '%.4f' % bmpInput.P + "\t" #= request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"2"] BMPs += '%.4f' % bmpInput.BOD + "\t" #= request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"3"] BMPs += '%.4f' % bmpInput.Sediment + "\t" #=request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"4"] BMPs += '%.4f' % bmpInput.PercentApplied + "\t" #=request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"6"] BMPs += str(bmpInput.BMP) + "\n" #= request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"5"] if landtype_id != 5: BMPs += "\n" BMPs += '------------ Followings are BMPs for Urban-------------------------------------------------\n' import time time.sleep(2) # delays for 2 seconds for i in range(1,5): for j in range(1,10): key = "UrbnConc_"+str(i)+str(j) urbanBmpInput = UrbanBmpInput.objects.get(session_id=session_id, key=key) BMPs += '%.4f' % urbanBmpInput.value + "\t" BMPs += "\n" BMPs += "\n" #UrbanBMP_ for k in context['range5']: for i in context['rangeWSD']: for j in context['range9']: key = 'UrbanBMP_'+str(k)+'_'+twonum(i)+str(j) urbanBmpInput = UrbanBmpInput.objects.get(session_id=session_id, key=key) BMPs += '%.4f' % urbanBmpInput.value + "\t" BMPs += "\n" BMPs += "\n" return BMPs
def post(self, request, *args, **kwargs): #all saved to session context = request.session session_id=context['IndexInput']['id'] #process inputs from bmpMain #process landtype_id: 1~5 : Cropland, pastland, forest,user defined,feedlot for landtype_id in range(1,6): for watershd_id in context['rangeWSD']: if not BMPInput.objects.filter(session_id=session_id, landtype_id=landtype_id , watershd_id=watershd_id).exists(): bmpInput = BMPInput( session_id=session_id, landtype_id=landtype_id, watershd_id=watershd_id ) else: bmpInput = BMPInput.objects.get(session_id=session_id, landtype_id=landtype_id, watershd_id=watershd_id) bmpInput.BMP = request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"5"] bmpInput.PercentApplied=request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"6"] bmpInput.N = request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"1"] bmpInput.P = request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"2"] bmpInput.BOD = request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"3"] bmpInput.Sediment=request.POST['BMP_'+str(landtype_id)+"_"+twonum(watershd_id)+"4"] bmpInput.save() #UrbnConc for i in range(1,5): for j in range(1,10): key = "UrbnConc_"+str(i)+str(j) if not UrbanBmpInput.objects.filter(session_id=session_id, key=key).exists(): urbanBmpInput = UrbanBmpInput( session_id=session_id, key=key ) else: urbanBmpInput = UrbanBmpInput.objects.get(session_id=session_id, key=key) urbanBmpInput.value = request.POST[key] urbanBmpInput.save() #UrbanBMP_ for k in context['range5']: for i in context['rangeWSD']: for j in context['range9']: key = 'UrbanBMP_'+str(k)+'_'+twonum(i)+str(j) if not UrbanBmpInput.objects.filter(session_id=session_id, key=key).exists(): urbanBmpInput = UrbanBmpInput( session_id=session_id, key=key ) else: urbanBmpInput = UrbanBmpInput.objects.get(session_id=session_id, key=key) urbanBmpInput.value = request.POST[key] urbanBmpInput.save() #process through STPEL api to run fortran from_id = URL_RUN_FROM_ID + str(session_id) run1_url = FORTRAN_SERVER + URL_RUN_STEP_1 text = self.runStep1(context,from_id,run1_url) print text #parse text ret = json.loads(text); clmArr = [0,1,3,4,5,7,8,9,11,12,13,15,16] img_prefix = FORTRAN_SERVER + "tmp/" + from_id + "/" return render(request, 'runStep1.html', { 'ctx':context, 'req' : request, 'run1ret':ret['run1ret'][1:], 'img_prefix' : img_prefix, 'clmArr':clmArr })
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 })
def post(self, request, *args, **kwargs): #all saved to session context = request.session session_id = context['IndexInput']['id'] #process inputs from bmpMain #process landtype_id: 1~5 : Cropland, pastland, forest,user defined,feedlot for landtype_id in range(1, 6): for watershd_id in context['rangeWSD']: if not BMPInput.objects.filter( session_id=session_id, landtype_id=landtype_id, watershd_id=watershd_id).exists(): bmpInput = BMPInput(session_id=session_id, landtype_id=landtype_id, watershd_id=watershd_id) else: bmpInput = BMPInput.objects.get(session_id=session_id, landtype_id=landtype_id, watershd_id=watershd_id) bmpInput.BMP = request.POST['BMP_' + str(landtype_id) + "_" + twonum(watershd_id) + "5"] bmpInput.PercentApplied = request.POST['BMP_' + str(landtype_id) + "_" + twonum(watershd_id) + "6"] bmpInput.N = request.POST['BMP_' + str(landtype_id) + "_" + twonum(watershd_id) + "1"] bmpInput.P = request.POST['BMP_' + str(landtype_id) + "_" + twonum(watershd_id) + "2"] bmpInput.BOD = request.POST['BMP_' + str(landtype_id) + "_" + twonum(watershd_id) + "3"] bmpInput.Sediment = request.POST['BMP_' + str(landtype_id) + "_" + twonum(watershd_id) + "4"] bmpInput.save() #UrbnConc for i in range(1, 5): for j in range(1, 10): key = "UrbnConc_" + str(i) + str(j) if not UrbanBmpInput.objects.filter(session_id=session_id, key=key).exists(): urbanBmpInput = UrbanBmpInput(session_id=session_id, key=key) else: urbanBmpInput = UrbanBmpInput.objects.get( session_id=session_id, key=key) urbanBmpInput.value = request.POST[key] urbanBmpInput.save() #UrbanBMP_ for k in context['range5']: for i in context['rangeWSD']: for j in context['range9']: key = 'UrbanBMP_' + str(k) + '_' + twonum(i) + str(j) if not UrbanBmpInput.objects.filter(session_id=session_id, key=key).exists(): urbanBmpInput = UrbanBmpInput(session_id=session_id, key=key) else: urbanBmpInput = UrbanBmpInput.objects.get( session_id=session_id, key=key) urbanBmpInput.value = request.POST[key] urbanBmpInput.save() #process through STPEL api to run fortran from_id = URL_RUN_FROM_ID + str(session_id) run1_url = FORTRAN_SERVER + URL_RUN_STEP_1 text = runStep1(context, from_id, run1_url) print text #parse text ret = json.loads(text) clmArr = [0, 1, 3, 4, 5, 7, 8, 9, 11, 12, 13, 15, 16] img_prefix = FORTRAN_SERVER + "tmp/" + from_id + "/" return render( request, 'runStep1.html', { 'ctx': context, 'req': request, 'run1ret': ret['run1ret'][1:], 'img_prefix': img_prefix, 'clmArr': clmArr })
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 })