One of the shortcomings of drone and unmanned aerial vehicles that other aircrafts don’t have is their trackability. For example, it is easy to get all kinds of airport and flight information with FlightAware AeroAPI such as the following but unless the UAV are part of the same swarm, there is little or no communication.
API that demonstrates all flight activity at a point of interest:
import requests
import os
from datetime import datetime
AEROAPI_BASE_URL = "https://aeroapi.flightaware.com/aeroapi"
AEROAPI_KEY = os.getenv("AEROAPI_KEY")
AEROAPI_LOCATION = os.getenv("AEROAPI_LOCATION")
def next_flights_at_kapa(type_="arrivals", how_many=1):
"""
Fetches the next arrival or departure flights at a specific location
Args:
type_: "arrivals" or "departures"
how_many: Number of flights to fetch
"""
headers = {"x-apikey": f"{AEROAPI_KEY}", "Accept": "application/json; charset=UTF-8"}
url = f"{AEROAPI_BASE_URL}/airports/{AEROAPI_LOCATION}/flights/{type_}?max_pages={how_many}"
response = requests.get(url, headers=headers)
response.raise_for_status()
flights = response.json().get(type_, [])
print(f"Count of flights: {len(flights)}")
for flight in flights:
if flight:
print(
f"Flight {flight['ident']} {type_[:-1]}: "
f"{flight.get('origin', {}).get('code', '') if type_ == 'arrivals' else flight.get('destination', {}).get('code', '') if flight.get('destination') else None} "
f"{flight.get('origin', {}).get('city', '') if type_ == 'arrivals' else flight.get('destination', {}).get('city', '') if flight.get('destination') else None} "
f"Scheduled: {flight.get('scheduled_in' if type_=='arrivals' else 'scheduled_out')}, "
f"Status: {flight.get('status', 'Unknown')}"
)
# Example usage: fetch the next arrival
next_flights_at_kapa("arrivals", how_many=1)
# Or for departures
next_flights_at_kapa("departures", how_many=1)
Federation of swarms allows for possibilities to share information otherwise restricted to the swarm but there must be interoperability standards or protocols over and on top of RFCs for networking stack.
No comments:
Post a Comment