def find_emergency_path(request): # if not can_fly(): # return HttpResponse(status=503) lat = request.GET.get('lat', '') lon = request.GET.get('lng', '') path = os.path.dirname(__file__) + "/static/kml/" generate_weather(path) 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 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) incidence = models.Incidence(lat=lat, long=lon, dropPoint=selected_droppoint, drone=hangar.drone, hangar=selected_hangar, is_active=True) incidence.save() # generate_mission_file(selected_hangar) kml_generator.find_drone_path(selected_hangar, selected_droppoint, path, incidence) return HttpResponse(status=201)
def find_emergency_path(request): # if not can_fly(): # return HttpResponse(status=503) lat = request.GET.get('lat', '') lon = request.GET.get('lng', '') path = os.path.dirname(__file__) + "/static/kml/" generate_weather(path) 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 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) incidence = models.Incidence(lat=lat, long=lon, dropPoint=selected_droppoint, drone=hangar.drone, hangar=selected_hangar, is_active=True) incidence.save() # generate_mission_file(selected_hangar) kml_generator.find_drone_path( selected_hangar, selected_droppoint, path, incidence) return HttpResponse(status=201)
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)
def find_emergency_path(request): MAX_WIND_SPEED = 10.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)