Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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
            })
Ejemplo n.º 4
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
        })
Ejemplo n.º 5
0
    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
            })
Ejemplo n.º 6
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 })