コード例 #1
0
def calculate_seasonal_cost(results, end_date):
    final_price = {}
    seasonal_cost = {}
    for market, price_dict in results.items():
        seasonal_cost[market] = []
        final_price[market] = []
        for days in range(3):

            if in_holidays.get(end_date - datetime.timedelta(2 - days)) != None:
                hol = in_holidays.get(end_date - datetime.timedelta(2 - days))
                
                seasonal_cost[market].append(0.15 * price_dict["Predicted"][days])
                final_price[market].append(1.15 * price_dict["Predicted"][days])
                if days == 2:
                    
                    seasonal_cost[market][1] = 0.15 * price_dict["Predicted"][days-1]
                    final_price[market][1] = 1.15 * price_dict["Predicted"][days-1]

            elif m_holidays.get(end_date - datetime.timedelta(2 - days)) != None:
                hol = "MUHURAT"
                seasonal_cost[market].append(0.1 * price_dict["Predicted"][days]) 
                final_price[market].append(1.1 * price_dict["Predicted"][days])

            else:
                hol = "None"
                final_price[market].append(price_dict["Predicted"][days])
                seasonal_cost[market].append(0)
    print("seasonal cost : ", seasonal_cost)
    print("final price : ", final_price)
    return seasonal_cost, final_price, hol
コード例 #2
0
def calculate_seasonal_cost(results, end_date):
    final_price = {}
    seasonal_cost = {}
    for market, price_dict in results.items():
        if in_holidays.get(end_date) != None or in_holidays.get(
                end_date - datetime.timedelta(1)) != None:
            seasonal_cost[market] = 0.15 * price_dict["Predicted"]
            final_price[market] = 1.15 * price_dict["Predicted"]
        elif m_holidays.get(end_date) != None:
            seasonal_cost[market] = 0.1 * price_dict["Predicted"]
            final_price[market] = 1.1 * price_dict["Predicted"]
        else:
            final_price[market] = price_dict["Predicted"]
            seasonal_cost[market] = 0
    return seasonal_cost, final_price
コード例 #3
0
def get_data_from_html():
    location = request.form['loc']  #user specified loc

    if (location):
        geolocator = Nominatim(user_agent="app")
        location = geolocator.geocode(str(location))
        lat = str(location.latitude)
        longi = str(location.longitude)
        print(location)
    else:

        g = geocoder.ip('me')
        latlng = g.latlng
        lat = str(latlng[0])
        longi = str(latlng[1])
    #lat = str(13.1362)
    #longi = str(78.1291)
    #location = request.form['loc']

    crp = request.form['crop']
    amt = int(request.form['amount'])
    use_case = request.form['use_case']
    distances = {}

    for i in market_locs_demo:
        dest_long = str(market_locs_demo[i][1])
        dest_lat = str(market_locs_demo[i][0])

        r = requests.get(f"http://router.project-osrm.org/route/v1/car/" +
                         longi + "," + lat + ";" + dest_long + "," + dest_lat +
                         "?overview=false"
                         "")
        routes = json.loads(r.content)
        route_1 = routes.get("routes")[0]
        distance = route_1["legs"][0]["distance"]
        final_dist = int(distance / 1000)
        distances[i] = final_dist

    final_prices = {}
    print('reached')
    if (crp == "Beetroot"):
        data_long = data_long_Beetroot
    else:
        data_long = data_long_Beetroot
    if (use_case == "short_term"):
        data = data_short
        end_date = date_1 + datetime.timedelta(days=10)
    elif (use_case == "long_term"):
        data = data_long
        end_date = date_1 + datetime.timedelta(days=60)  #add cultivation time
    else:
        final = []
        for i in data_pick["Crop"]:

            #print("data_long" + "_" + str(i))
            #data = dict("data_long" + "_" + str(i))
            if i == "Beetroot":
                data = data_long_Beetroot
            else:
                data = data_long_Cabbage
            data['Net Profit'] = []
            data["Season"] = []
            for j in market_locs_demo:
                if (amt < 500):
                    cost = 6
                elif (amt < 1000):
                    cost = 10
                else:
                    cost = 15
                x = data['Market'].index(j)
                ppq = data['Price Per Quintal'][x]
                quintals = amt / 100
                totcost = ppq * quintals
                logcost = cost * distances[j]

                final_prices[j] = int(ppq *
                                      (amt / 100)) - int(cost * distances[j])

                seasonal_cost = 0.15 * final_prices[j]
                data_pick["Season"].append(seasonal_cost)
                if in_holidays.get(end_date) != None:
                    final_prices[j] = 1.15 * final_prices[j]

                data['Net Profit'].append(final_prices[j])
            maxi = max(data['Net Profit'])
            print("Maxi:", maxi)
            #bestprice = data['Net Profit'].index(maxi)
            final.append(maxi)
            print(final)
            #best_market = data['Market'][bestprice]

        bestp = max(final)
        idx = final.index(bestp)
        best_crop = data_pick["Crop"][idx]
        for i in final:
            data_pick["Price per Quintal"].append(i)
        print(bestp)
        return render_template('compare.html', x=data_pick, best=best_crop)

    data['Net Profit'] = []
    data["Season"] = []
    #print("HELLLLLO")
    for j in market_locs_demo:
        if (amt < 500):
            cost = 6
        elif (amt < 1000):
            cost = 10
        else:
            cost = 15
        x = data['Market'].index(j)
        ppq = data['Price Per Quintal'][x]
        quintals = amt / 100
        totcost = ppq * quintals
        logcost = cost * distances[j]

        final_prices[j] = int(ppq * (amt / 100)) - int(cost * distances[j])

        if end_date in in_holidays:
            seasonal_cost = 0.15 * final_prices[j]
            data["Season"].append(seasonal_cost)

            final_prices[j] = 1.15 * final_prices[j]
        else:
            data["Season"].append(0)

        data['Net Profit'].append(final_prices[j])

    #data['Net Profit'] = [final_prices['RAMANAGARA'], final_prices['KOLAR'], final_prices['MYSURU']]
    maxi = max(data['Net Profit'])
    bestprice = data['Net Profit'].index(maxi)
    best_market = data['Market'][bestprice]

    return render_template('index.html', x=data, best=best_market)