Ejemplo n.º 1
0
 def clear_databases(self):
     self.stdout.write("Deleting data from Kml and Incidences ...")
     try:
         Kml.objects.all().delete()
         Incidence.objects.all().delete()
         sync_kmls_file()
         sync_kmls_to_galaxy()
     except Exception:
         self.stdout.write(self.style.error("Error deleting data from" +
                                            " the tables."))
Ejemplo n.º 2
0
 def clear_databases(self):
     self.stdout.write("Deleting data from Kml and Incidences ...")
     try:
         Kml.objects.all().delete()
         Incidence.objects.all().delete()
         sync_kmls_file()
         sync_kmls_to_galaxy()
     except Exception:
         self.stdout.write(
             self.style.error("Error deleting data from" + " the tables."))
Ejemplo n.º 3
0
def edit_meteostation(request, id):
    requested_meteo = MeteoStation.objects.get(pk=id)
    form = MeteoStationForm(instance=requested_meteo)
    if request.method == 'POST':
        form = MeteoStationForm(request.POST, instance=requested_meteo)
        if form.is_valid():
            meteostation = form.save(commit=False)
            meteostation.save()
            create_kml(meteostation, "meteo", "edit")
            sync_kmls_file()
            sync_kmls_to_galaxy()
            return HttpResponseRedirect('/meteostations')

    return render(request, 'meteostation_form.html', {'form': form})
Ejemplo n.º 4
0
def submit_meteostation(request):
    if request.method == 'POST':
        form = forms.MeteoStationForm(request.POST)
        if form.is_valid():
            meteostation = form.save(commit=False)
            meteostation.save()
            create_kml(meteostation, "meteo", "create")
            sync_kmls_file()
            sync_kmls_to_galaxy()
            return HttpResponseRedirect('/meteostations/')
    else:

        form = forms.MeteoStationForm()
    return render(request, 'meteostation_form.html', {'form': form})
Ejemplo n.º 5
0
def submit_meteostation(request):
    if request.method == 'POST':
        form = forms.MeteoStationForm(request.POST)
        if form.is_valid():
            meteostation = form.save(commit=False)
            meteostation.save()
            create_kml(meteostation, "meteo", "create")
            sync_kmls_file()
            sync_kmls_to_galaxy()
            return HttpResponseRedirect('/meteostations/')
    else:

        form = forms.MeteoStationForm()
    return render(request, 'meteostation_form.html', {'form': form})
Ejemplo n.º 6
0
def edit_meteostation(request, id):
    requested_meteo = MeteoStation.objects.get(pk=id)
    form = MeteoStationForm(instance=requested_meteo)
    if request.method == 'POST':
        form = MeteoStationForm(request.POST, instance=requested_meteo)
        if form.is_valid():
            meteostation = form.save(commit=False)
            meteostation.save()
            create_kml(meteostation, "meteo", "edit")
            sync_kmls_file()
            sync_kmls_to_galaxy()
            return HttpResponseRedirect('/meteostations')

    return render(request, 'meteostation_form.html', {'form': form})
Ejemplo n.º 7
0
def edit_droppoint(request, id):
    requested_droppoint = DropPoint.objects.get(pk=id)
    form = DropPointForm(instance=requested_droppoint)
    if request.method == 'POST':
        form = DropPointForm(request.POST, instance=requested_droppoint)
        if form.is_valid():
            droppoint = form.save(commit=False)
            droppoint.save()
            create_kml(droppoint, "droppoint", "edit")
            sync_kmls_file()
            sync_kmls_to_galaxy()

            return HttpResponseRedirect('/droppoints')

    return render(request, 'droppoint_form.html', {'form': form})
Ejemplo n.º 8
0
def edit_droppoint(request, id):
    requested_droppoint = DropPoint.objects.get(pk=id)
    form = DropPointForm(instance=requested_droppoint)
    if request.method == 'POST':
        form = DropPointForm(request.POST, instance=requested_droppoint)
        if form.is_valid():
            droppoint = form.save(commit=False)
            droppoint.save()
            create_kml(droppoint, "droppoint", "edit")
            sync_kmls_file()
            sync_kmls_to_galaxy()

            return HttpResponseRedirect('/droppoints')

    return render(request, 'droppoint_form.html', {'form': form})
Ejemplo n.º 9
0
def submit_droppoint(request):
    if request.method == 'POST':
        form = forms.DropPointForm(request.POST)

        if form.is_valid():
            droppoint = form.save(commit=False)
            droppoint.save()
            create_kml(droppoint, "droppoint", "create")
            sync_kmls_file()
            sync_kmls_to_galaxy()

            return HttpResponseRedirect('/droppoints/')
    else:
        form = forms.DropPointForm()

    return render(request, 'droppoint_form.html', {'form': form})
Ejemplo n.º 10
0
def submit_droppoint(request):
    if request.method == 'POST':
        form = forms.DropPointForm(request.POST)

        if form.is_valid():
            droppoint = form.save(commit=False)
            droppoint.save()
            create_kml(droppoint, "droppoint", "create")
            sync_kmls_file()
            sync_kmls_to_galaxy()

            return HttpResponseRedirect('/droppoints/')
    else:
        form = forms.DropPointForm()

    return render(request, 'droppoint_form.html', {'form': form})
Ejemplo n.º 11
0
def delete_kml(id, type):
    filename = type + "_" + str(id) + ".kml"
    path = os.path.dirname(__file__) + "/static/kml/"
    for files in os.walk(path):
        if filename in files[2]:
            Kml.objects.get(name=filename).delete()
            os.remove(path + filename)
            if type == 'hangar':
                filename_inf = type + "_" + str(id) + "_inf.kml"
                if filename_inf in files[2]:
                    Kml.objects.get(name=filename_inf).delete()
                    os.remove(path + filename_inf)

            sync_kmls_file()
            sync_kmls_to_galaxy()

            return
Ejemplo n.º 12
0
def delete_kml(id, type):
    filename = type + "_" + str(id) + ".kml"
    path = os.path.dirname(__file__) + "/static/kml/"
    for files in os.walk(path):
        if filename in files[2]:
            Kml.objects.get(name=filename).delete()
            os.remove(path + filename)
            if type == 'hangar':
                filename_inf = type + "_" + str(id) + "_inf.kml"
                if filename_inf in files[2]:
                    Kml.objects.get(name=filename_inf).delete()
                    os.remove(path + filename_inf)

            sync_kmls_file()
            sync_kmls_to_galaxy()

            return
Ejemplo n.º 13
0
def edit_hangar(request, id):
    requested_hangar = Hangar.objects.get(pk=id)
    form = HangarForm(instance=requested_hangar)
    if request.method == 'POST':
        form = HangarForm(request.POST, instance=requested_hangar)
        if form.is_valid():
            hangar = form.save(commit=False)
            hangar.drone.origin_lat = hangar.latitude
            hangar.drone.origin_lon = hangar.longitude
            # drone.altitude = altitude
            hangar.drone.save()
            hangar.save()
            create_kml(hangar, "hangar", "edit")

            sync_kmls_file()
            sync_kmls_to_galaxy()

            return HttpResponseRedirect('/hangars')

    return render(request, 'hangar_form.html', {'form': form})
Ejemplo n.º 14
0
def submit_hangar(request):
    if request.method == 'POST':
        form = forms.HangarForm(request.POST)

        if form.is_valid():
            hangar = form.save(commit=False)
            hangar.drone.origin_lat = hangar.latitude
            hangar.drone.origin_lon = hangar.longitude
            # drone.altitude = altitude
            hangar.drone.save()
            hangar.save()
            create_kml(hangar, "hangar", "create")
            sync_kmls_file()
            sync_kmls_to_galaxy()

            return HttpResponseRedirect('/hangars/')
    else:
        form = forms.HangarForm()

    return render(request, 'hangar_form.html', {'form': form})
Ejemplo n.º 15
0
def submit_hangar(request):
    if request.method == 'POST':
        form = forms.HangarForm(request.POST)

        if form.is_valid():
            hangar = form.save(commit=False)
            hangar.drone.origin_lat = hangar.latitude
            hangar.drone.origin_lon = hangar.longitude
            # drone.altitude = altitude
            hangar.drone.save()
            hangar.save()
            create_kml(hangar, "hangar", "create")
            sync_kmls_file()
            sync_kmls_to_galaxy()

            return HttpResponseRedirect('/hangars/')
    else:
        form = forms.HangarForm()

    return render(request, 'hangar_form.html', {'form': form})
Ejemplo n.º 16
0
def edit_hangar(request, id):
    requested_hangar = Hangar.objects.get(pk=id)
    form = HangarForm(instance=requested_hangar)
    if request.method == 'POST':
        form = HangarForm(request.POST, instance=requested_hangar)
        if form.is_valid():
            hangar = form.save(commit=False)
            hangar.drone.origin_lat = hangar.latitude
            hangar.drone.origin_lon = hangar.longitude
            # drone.altitude = altitude
            hangar.drone.save()
            hangar.save()
            create_kml(hangar, "hangar", "edit")

            sync_kmls_file()
            sync_kmls_to_galaxy()

            return HttpResponseRedirect('/hangars')

    return render(request, 'hangar_form.html', {'form': form})
Ejemplo n.º 17
0
def find_emergency_path(request):

    MAX_WIND_SPEED = 20.0

    url = 'http://api.openweathermap.org/data/2.5/weather?q=Lleida&units=metric'
    response = requests.get(url=url)
    data = json.loads(response.text)

    #try:
    #    if data['wind']['speed'] >= MAX_WIND_SPEED or bool(data['rain']):
    #        print data['rain']
    #        print data['wind']['speed']
    #        return HttpResponse(status=503)
    #except KeyError:
    #    pass

    lat = request.GET.get('lat', '')
    lon = request.GET.get('lng', '')
    path = os.path.dirname(__file__) + "/static/kml/"

    last_distance = sys.maxint
    all_hangars = models.Hangar.objects.all()
    selected_hangar = None
    all_droppoints = models.DropPoint.objects.all()
    selected_droppoint = None
    point_location = Point(float(lon), float(lat))

    for droppoint in all_droppoints:
        distance = D(m=point_location.distance(Point(droppoint.longitude, droppoint.latitude)))
        if distance.m < last_distance:
            last_distance = distance.m
            selected_droppoint = droppoint

    last_distance = sys.maxint
    point_location = Point(selected_droppoint.longitude, selected_droppoint.latitude)
    for hangar in all_hangars:
        distance = D(m=point_location.distance(Point(hangar.longitude, hangar.latitude)))
        if distance.m < last_distance:
            last_distance = distance.m
            selected_hangar = hangar

    # print selected_hangar.name, selected_hangar.drone.name, selected_droppoint.name

    selected_hangar.drone.destination_lat = selected_droppoint.latitude
    selected_hangar.drone.destination_lon = selected_droppoint.longitude

    if not selected_hangar.is_available:
        return HttpResponse(status=503)

    kml_generator.weather_info(os.path.dirname(__file__) + "/static/kml/meteo_info.kml",
                               data['main']['temp'], data['main']['temp_max'], data['main']['temp_min'],
                               data['wind']['speed'], data['clouds']['all'], data['main']['pressure'],
                               data['main']['humidity'], data['weather'][0]['description'])

    generate_mission_file(selected_hangar)
    kml_generator.create_emergency_marker(lat, lon, path + "incidence.kml")
    Kml(name="incidence.kml", url="static/kml/incidence.kml", visibility=True).save()
    sync_kmls_file()
    sync_kmls_to_galaxy(emergency=True)
    kml_generator.find_drone_path(selected_hangar, selected_droppoint, path)

    Kml.objects.get(name="incidence.kml").delete()
    os.remove(path + "incidence.kml")

    for step in range(0, 34, 1):
        Kml.objects.get(name="drone_" + str(step) + ".kml").delete()
        os.remove(path + "drone_" + str(step) + ".kml")

    sync_kmls_file()
    sync_kmls_to_galaxy(emergency=True)

    return HttpResponse(status=201)
Ejemplo n.º 18
0
def drone_to_galaxy():
    sync_kmls_file()
    sync_kmls_to_galaxy(emergency=True)
    time.sleep(1.5)
Ejemplo n.º 19
0
def find_emergency_path(request):

    MAX_WIND_SPEED = 20.0

    url = 'http://api.openweathermap.org/data/2.5/weather?q=Lleida&units=metric'
    response = requests.get(url=url)
    data = json.loads(response.text)

    #try:
    #    if data['wind']['speed'] >= MAX_WIND_SPEED or bool(data['rain']):
    #        print data['rain']
    #        print data['wind']['speed']
    #        return HttpResponse(status=503)
    #except KeyError:
    #    pass

    lat = request.GET.get('lat', '')
    lon = request.GET.get('lng', '')
    path = os.path.dirname(__file__) + "/static/kml/"

    last_distance = sys.maxint
    all_hangars = models.Hangar.objects.all()
    selected_hangar = None
    all_droppoints = models.DropPoint.objects.all()
    selected_droppoint = None
    point_location = Point(float(lon), float(lat))

    for droppoint in all_droppoints:
        distance = D(m=point_location.distance(
            Point(droppoint.longitude, droppoint.latitude)))
        if distance.m < last_distance:
            last_distance = distance.m
            selected_droppoint = droppoint

    last_distance = sys.maxint
    point_location = Point(selected_droppoint.longitude,
                           selected_droppoint.latitude)
    for hangar in all_hangars:
        distance = D(m=point_location.distance(
            Point(hangar.longitude, hangar.latitude)))
        if distance.m < last_distance:
            last_distance = distance.m
            selected_hangar = hangar

    # print selected_hangar.name, selected_hangar.drone.name, selected_droppoint.name

    selected_hangar.drone.destination_lat = selected_droppoint.latitude
    selected_hangar.drone.destination_lon = selected_droppoint.longitude

    if not selected_hangar.is_available:
        return HttpResponse(status=503)

    kml_generator.weather_info(
        os.path.dirname(__file__) + "/static/kml/meteo_info.kml",
        data['main']['temp'], data['main']['temp_max'],
        data['main']['temp_min'], data['wind']['speed'], data['clouds']['all'],
        data['main']['pressure'], data['main']['humidity'],
        data['weather'][0]['description'])

    generate_mission_file(selected_hangar)
    kml_generator.create_emergency_marker(lat, lon, path + "incidence.kml")
    Kml(name="incidence.kml", url="static/kml/incidence.kml",
        visibility=True).save()
    sync_kmls_file()
    sync_kmls_to_galaxy(emergency=True)
    kml_generator.find_drone_path(selected_hangar, selected_droppoint, path)

    Kml.objects.get(name="incidence.kml").delete()
    os.remove(path + "incidence.kml")

    for step in range(0, 34, 1):
        Kml.objects.get(name="drone_" + str(step) + ".kml").delete()
        os.remove(path + "drone_" + str(step) + ".kml")

    sync_kmls_file()
    sync_kmls_to_galaxy(emergency=True)

    return HttpResponse(status=201)
Ejemplo n.º 20
0
def drone_to_galaxy():
    sync_kmls_file()
    sync_kmls_to_galaxy(emergency=True)
    time.sleep(1.5)
Ejemplo n.º 21
0
def refresh_kml(request):
    sync_kmls_file()
    sync_kmls_to_galaxy()
    return HttpResponse("Done")
Ejemplo n.º 22
0
def refresh_kml(request):
    sync_kmls_file()
    sync_kmls_to_galaxy()
    return HttpResponse("Done")