Exemplo n.º 1
0
def input_welcomer(request):
    if request.method == "GET":
        return HttpResponse("You cannot GET here.")
    else:
        cop_id = request.POST.get("cop_id", -1)
        if cop_id != -1:
            try:
                cop = Bin.objects.get(pk=cop_id)
            except Exception as e:
                postlogger.error("ERROR")
                return HttpResponse("Error..\n%s" % str(e))
        else:
            postlogger.error("NO_ID_ERROR")
            return HttpResponse("No cop_id in request..")

        print request.POST

        fullness_rate = min(float(request.POST.get("fl", 0.5)), 1.0)
        battery_rate = float(request.POST.get("bt", random.random()))
        temperature = float(request.POST.get("tmp", random.uniform(19, 22)))
        timestamp = datetime.fromtimestamp(
            int(request.POST.get("ts", str(int(time.mktime(datetime.now().timetuple()))))))

        postlogger.info("%s#%s#%s#%s" % (
            cop_id, fullness_rate, battery_rate, temperature))

        new = BinSensorRecord(bin=cop, fullness_rate=fullness_rate, battery_rate=battery_rate,
                              temperature=temperature, date=timestamp)
        new.save()
        return HttpResponse("Successfully created: %s" % str(new))
Exemplo n.º 2
0
    def handle(self, ndays=7, *args, **options):
#        BinVisitHistory.objects.all().delete()
#        NavigationRecord.objects.all().delete()
        ForecastingRecord.objects.all().delete()
        BinSensorRecord.objects.all().delete()
        RouteDetailRecord.objects.all().delete()
        Route.objects.all().delete()
        Bin.objects.all().delete()
        Vehicle.objects.all().delete()
        ClientRecord.objects.all().delete()

        print "-Database is cleared, Starts Client Creation"
        c1 = ClientRecord(client_name="Beypazarı Belediyesi")
        c1.save()
        print "+Client Creation is SUCCESSFULL"
        print "-Starts Vehicle creation"
        v1 = Vehicle(vehicle_id=1,client=c1, plate="06 JM 1452")
        v2 = Vehicle(vehicle_id=2,client=c1, plate="06 TM 1682")
        v3 = Vehicle(vehicle_id=3,client=c1, plate="06 PK 1298")
        print "+Vehicle Records created SUCCESSFULLY"
        v1.save()
        v2.save()
        v3.save()
        print "-Starts Bin Record creation"
        with open("templates/sample_kml/algoritma_input.csv", "r") as f:
            f.readline()
            for idx, line in enumerate(f):
                splitted = line.split(",")
                if idx==0:
                    idx = 3168
                new_bin = Bin(bin_id=str(idx),client=c1, latitude=splitted[0], longitude=splitted[1])
                new_bin.save()
        bin_count = Bin.objects.all().count()
        print bin_count
        date_ago = datetime.now() - timedelta(days=ndays)
        date_now = datetime.now()
        fill_level, visit_history = self.get_fullness_ratio(bin_count, ndays+1, 0.8)

        print "+Bin Records created SUCCESSFULLY"
        print "-Starts SensorRecord creation"
        j=0
        while date_ago <= date_now:
            i=0
            all_bins = Bin.objects.all()
            for bin in all_bins:
                d = datetime(year=date_ago.year, month=date_ago.month, day= date_ago.day, hour=0, minute=1)
                rec = BinSensorRecord(bin=bin, fullness_rate=fill_level[i][j], battery_rate=uniform(0.75, 0.95),
                                      temperature=uniform(18.0, 21.0), date=d)
                rec.save()
                if j < ndays:
                     rec_for = ForecastingRecord(bin=bin, is_visited=visit_history[i][j],date=d,last_fullness_rate=fill_level[i][j])
                     rec_for.save()
                i=i+1
            j = j+1
            date_ago = date_ago + timedelta(days=1)

        date_ago = datetime.now() - timedelta(days=7)
        date_now = datetime.now()

        print "+SensorRecords created SUCCESSFULLY"
        print "-Starts Route,Route Detail and Visit History creation for a week"
        while date_ago <= date_now:
            kml_files_arac_1 = ['arac1_1.kml', 'arac1_2.kml', 'arac1_3.kml', 'arac1_4.kml']
            kml_files_arac_2 = [ 'arac2_1.kml', 'arac2_2.kml', 'arac2_3.kml', 'arac2_4.kml']
            kml_files_arac_3 = ['arac3_1.kml', 'arac3_2.kml']


            route1 = Route(date=date_ago, duration=uniform(60.0, 90.0), total_km=uniform(20.0, 50.0), vehicle=v1,
                           processed_kml_file='/media/' + choice(kml_files_arac_1))
            route2 = Route(date=date_ago, duration=uniform(60.0, 90.0), total_km=uniform(20.0, 50.0), vehicle=v2,
                           processed_kml_file='/media/' + choice(kml_files_arac_2))
            route3 = Route(date=date_ago, duration=uniform(60.0, 90.0), total_km=uniform(20.0, 50.0), vehicle=v3,
                           processed_kml_file='/media/' + choice(kml_files_arac_3))
            routes = [route1, route2, route3]

            route1.save()
            route2.save()
            route3.save()

            all_bins = Bin.objects.all()
            for bin in all_bins:
                if random() < 0.75:
                    cur_route = choice(routes)
                    rec = RouteDetailRecord(bin=bin, route=cur_route)
                    rec.save()

            date_ago = date_ago + timedelta(days=1)
            print "Day is Finished"
        print "+Population is finished"