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
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
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)