CoolFace
Datasetpublic

frankmorales2020/flight_plan_waypoints

Dataset: https://github.com/frank-morales2020/Cloud_curious/blob/master/Copy_of_fp_routes_waypoints.ipynb Fine-tuning: https://github.com/frank-morales2020/Cloud_curious/blob/master/Copy_of_Waypoint_FTDEMO_Mistral_7B_Instruct_v0_2.ipynb import random import math from datasets import Dataset from geopy.geocoders import Nominatim from geopy.distance import geodesic from tqdm import tqdm from geopy.point import Point # Import Point object import warnings warnings.filterwarnings("ignore")… See the full description on the dataset page: https://huggingface.co/datasets/frankmorales2020/flight_plan_waypoints.

sourceHugging Faceupdated 1y agoView on Hugging Face
1likes9downloads
Dataset Card

Dataset: https://github.com/frank-morales2020/Cloudcurious/blob/master/Copyoffproutes_waypoints.ipynb

Fine-tuning: https://github.com/frank-morales2020/Cloudcurious/blob/master/CopyofWaypointFTDEMOMistral7BInstructv0_2.ipynb

import random import math from datasets import Dataset from geopy.geocoders import Nominatim from geopy.distance import geodesic from tqdm import tqdm from geopy.point import Point # Import Point object import warnings warnings.filterwarnings("ignore")

Define data

airports = [ # North America "ATL", "LAX", "ORD", "DFW", "DEN", "JFK", "SFO", "LAS", "SEA", "CLT", "MIA", "PHL", "EWR", "BOS", "PHX", "MCO", "IAH", "DAL", "FLL", "DTW", "MSP", "IAD", "BWI", "SLC", "SAN", "MDW", "TPA", "PDX", "BNA", "STL",

# Europe "LHR", "CDG", "AMS", "FRA", "MAD", "BCN", "FCO", "MUC", "DUB", "ZRH",

# Asia "HND", "PVG", "ICN", "SIN", "KUL", "BKK", "DXB", "DEL", "HKG", "NRT",

# Caribbean "CUN", "PUJ", "SJU", "MBJ", "NAS",

# South America "GRU", "BOG", "EZE", "SCL", "LIM",

# Australia & New Zealand "SYD", "MEL", "BNE", "PER", "AKL" ]

aircraft_types = [ "Boeing 737", "Airbus A320", "Boeing 777", "Airbus A330", "Embraer E190", "Bombardier CRJ900", "Boeing 747", "Airbus A380", "Cessna 172", "Piper PA-28", "Boeing 757", "Boeing 767", "Boeing 787", "Airbus A350" # Added aircraft types ]

weather_conditions = [ "Clear", "Cloudy", "Rainy", "Snowy", "Windy", "Foggy", "Stormy", "Sunny", "Overcast", "Partly Cloudy" ]

Airport names dictionary

airport_names = { "ATL": "Hartsfield-Jackson Atlanta International Airport", "LAX": "Los Angeles International Airport", "ORD": "Chicago O'Hare International Airport", "DFW": "Dallas/Fort Worth International Airport", "DEN": "Denver International Airport", "JFK": "John F. Kennedy International Airport", "SFO": "San Francisco International Airport", "LAS": "McCarran International Airport", "SEA": "Seattle-Tacoma International Airport", "CLT": "Charlotte Douglas International Airport", "MIA": "Miami International Airport", "PHL": "Philadelphia International Airport", "EWR": "Newark Liberty International Airport", "BOS": "Logan International Airport", "PHX": "Phoenix Sky Harbor International Airport", "MCO": "Orlando International Airport", "IAH": "George Bush Intercontinental Airport", "DAL": "Dallas Love Field", "FLL": "Fort Lauderdale-Hollywood International Airport", "DTW": "Detroit Metropolitan Airport", "MSP": "Minneapolis-Saint Paul International Airport", "IAD": "Washington Dulles International Airport", "BWI": "Baltimore/Washington International Airport", "SLC": "Salt Lake City International Airport", "SAN": "San Diego International Airport", "MDW": "Midway International Airport", "TPA": "Tampa International Airport", "PDX": "Portland International Airport", "BNA": "Nashville International Airport", "STL": "St. Louis Lambert International Airport",

# Europe "LHR": "London Heathrow Airport", "CDG": "Charles de Gaulle Airport", "AMS": "Amsterdam Airport Schiphol", "FRA": "Frankfurt Airport", "MAD": "Adolfo Suárez Madrid–Barajas Airport", "BCN": "Barcelona–El Prat Airport", "FCO": "Leonardo da Vinci–Fiumicino Airport", "MUC": "Munich Airport", "DUB": "Dublin Airport", "ZRH": "Zurich Airport",

# Asia "HND": "Haneda Airport", "PVG": "Shanghai Pudong International Airport", "ICN": "Incheon International Airport", "SIN": "Singapore Changi Airport", "KUL": "Kuala Lumpur International Airport", "BKK": "Suvarnabhumi Airport", "DXB": "Dubai International Airport", "DEL": "Indira Gandhi International Airport", "HKG": "Hong Kong International Airport", "NRT": "Narita International Airport",

# Caribbean "CUN": "Cancún International Airport", "PUJ": "Punta Cana International Airport", "SJU": "Luis Muñoz Marín International Airport", "MBJ": "Sangster International Airport", "NAS": "Lynden Pindling International Airport",

# South America "GRU": "São Paulo–Guarulhos International Airport", "BOG": "El Dorado International Airport", "EZE": "Ministro Pistarini International Airport", "SCL": "Arturo Merino Benítez International Airport", "LIM": "Jorge Chávez International Airport",

# Australia & New Zealand "SYD": "Sydney Airport", "MEL": "Melbourne Airport", "BNE": "Brisbane Airport", "PER": "Perth Airport", "AKL": "Auckland Airport" }

Aircraft ranges (in kilometers)

aircraft_ranges = { "Boeing 737": (0, 6000), "Airbus A320": (0, 6100), "Boeing 777": (2440, 17000), "Airbus A330": (6400, 13430), "Embraer E190": (0, 4500), "Bombardier CRJ900": (0, 2405), "Boeing 747": (9200, 14815), "Airbus A380": (14800, 15700), "Cessna 172": (0, 1111), "Piper PA-28": (0, 963), "Boeing 757": (0, 7275), # Range for Boeing 757 "Boeing 767": (0, 11000), # Range for Boeing 767 "Boeing 787": (15045, 15750), # Range for Boeing 787 "Airbus A350": (15000, 16100) # Range for Airbus A350 }

Initialize Nominatim geolocator

geolocator = Nominatim(useragent="flightdata_generator", timeout=20)

def createflightdatapoint(origin, destination, departuredate, aircraft, weather): try: locationorigin = geolocator.geocode(origin) locationdestination = geolocator.geocode(destination) if locationorigin and locationdestination: # --- Output Origin/Destination Airport Names (English-focused) --- originname = airportnames.get(origin) # Get name from dictionary destinationname = airportnames.get(destination) # Get name from dictionary if not originname: originname = origin #If no name use code if not destinationname: destinationname = destination #If no name use code

#print(f"\nOrigin: {origin} - Name: {originname}") #print(f"Destination: {destination} - Name: {destinationname}")

# Calculate distance distance = geodesic( (locationorigin.latitude, locationorigin.longitude), (locationdestination.latitude, locationdestination.longitude) ).kilometers #print(f"Distance between {origin} ({origin}) and {destination}: {distance} kilometers") # Categorize distance if distance < 1000: distancecategory = "short" elif distance < 4000: distancecategory = "medium" elif distance < 10000: distancecategory = "long" elif distance < 20000: distancecategory = "longhaul" else: distancecategory = "unknown" # Determine number of waypoints if distancecategory == "short": numwaypoints = random.randint(1, 2) elif distancecategory == "medium": numwaypoints = random.randint(3, 4) elif distancecategory == "longhaul": numwaypoints = random.randint(6, 8) elif distancecategory == "long": numwaypoints = random.randint(5, 7) else: numwaypoints = random.randint(9, 11) # Aircraft Selection based on Distance eligibleaircraft = [ aircraft for aircraft, ranges in aircraftranges.items() if ranges[0] <= distance <= ranges[1] ] if eligibleaircraft: aircraft = random.choice(eligibleaircraft) else: aircraft = random.choice(aircrafttypes) # Fallback if no match #print(f"Selected Aircraft: {aircraft}") # Add waypoints (constrained to be closer to the route) waypoints = [(locationorigin.latitude, locationorigin.longitude)] waypointnames = [origin] #print(f"Number of waypoints: {numwaypoints}") #print(f"Distance category: {distancecategory}") #print('\n') for in range(numwaypoints): fraction = random.uniform(0.2, 0.9) waypointlat = locationorigin.latitude + fraction ( location_destination.latitude - location_origin.latitude) waypoint_lon = location_origin.longitude + fraction ( locationdestination.longitude - locationorigin.longitude) radius = 500 # Radius in kilometers maxoffsetlat = radius / 111.32 maxoffsetlon = radius / (111.32 * math.cos(math.radians(waypointlat))) offsetlat = random.uniform(-maxoffsetlat, maxoffsetlat) offsetlon = random.uniform(-maxoffsetlon, maxoffsetlon) waypoint = Point(waypointlat, waypointlon) waypointlocation = geolocator.reverse( query=waypoint, exactlyone=True, timeout=20) waypointname = waypointlocation.address.split(",")[ 0] if waypointlocation else "Waypoint" waypointnames.append(waypointname) waypoints.append((waypointlat, waypointlon)) waypoints.append((locationdestination.latitude, locationdestination.longitude)) waypointnames.append(destination) inputtext = f"Calculate the waypoints from {origin} to {destination}. Departure: {departuredate}, Aircraft: {aircraft}, Weather: {weather}" numberofwaypoints = len(waypoints) - 2 # Calculate the number of waypoints return { "input": inputtext, "label": numwaypoints, # Use numwaypoints as the label "distance": distance, "distancecategory": distancecategory, "waypoints": waypoints, "waypointnames": waypointnames } else: print(f"Could not find coordinates for {origin} or {destination}") return None except Exception as e: print(f"Error generating flight data point: {e}") return None

--- Dataset Creation Loop

flightdata = [] numberroutes = 2000 # You can adjust this number for i in tqdm(range(numberroutes), desc="Generating flight data"): origin = random.choice(airports) destination = random.choice(airports) while origin == destination: destination = random.choice(airports) departuredate = f"2024-{random.randint(1, 12):02}-{random.randint(1, 28):02}" aircraft = random.choice(aircrafttypes) weather = random.choice(weatherconditions) datapoint = createflightdatapoint(origin, destination, departuredate, aircraft, weather) if datapoint: flightdata.append(datapoint)

Create the Dataset

dataset = Dataset.fromlist(flightdata) print(dataset) dataset.savetodisk("/content/gdrive/MyDrive/datasets/flightdatasetwaypoints")

from datasets import loadfromdisk

dataset = loadfromdisk("/content/gdrive/MyDrive/datasets/flightdatasetwaypoints")

Replace with your HF username and desired dataset name

dataset.pushtohub("frankmorales2020/flightplanwaypoints")