def generate_link_data(kml_doc, layer_type, output_filename, aeroway_filter=None, use_ref=False): links = [] layer = get_layer(kml_doc, layer_type) placemarks = list(layer.features()) for p in placemarks: if aeroway_filter and not is_aeroway_matched(p, aeroway_filter): continue if use_ref: p.name = get_ref(p) nodes = [] for coord in p.geometry.coords: nodes.append(coord[0:2]) links.append({ "name": link_name_assigner.rename(p.name), "nodes": nodes }) export_to_json(OUTPUT_FOLDER + output_filename, links)
def generate_airport_metadata(kml_doc): layer = get_layer(kml_doc, LayerType.airport) placemark = list(layer.features())[0] bounds = placemark.geometry.bounds # Gets airport center center = { "lat": (bounds[1] + bounds[3]) / 2, "lng": (bounds[0] + bounds[2]) / 2 } # Gets airport corners min_lat = min(bounds[1], bounds[3]) max_lat = max(bounds[1], bounds[3]) min_lng = min(bounds[0], bounds[2]) max_lng = max(bounds[0], bounds[2]) corners = [ {"lat": max_lat, "lng": min_lng}, {"lat": max_lat, "lng": max_lng}, {"lat": min_lat, "lng": min_lng}, {"lat": min_lat, "lng": max_lng}, ] airport = { "name": kml_doc.name, "center": center, "corners": corners } # Export data to file filename = OUTPUT_FOLDER + "airport-metadata.json" export_to_json(filename, airport)
def main(): """ Scenario is generated based on random flight arrangements. Flights are appeared every `interval` seconds where `interval` is random variable given a predefined mean and deviation. """ # Creates the output folder create_output_folder(OUTPUT_FOLDER) current_time = 0 # In this scenario, we only have departure flights to simply the problem departures = [] while current_time < END_TIME: flight = generate_flight_at(current_time) departures.append(flight) interval = get_random_time_interval() current_time += interval scenario = {"arrivals": [], "departures": departures} # Saves to file output_filename = OUTPUT_FOLDER + "scenario.json" export_to_json(output_filename, scenario) logger.debug("Done")
def generate_link_data(kml_doc, layer_type, output_filename, aeroway_filter=None, use_ref=False): links = [] layer = get_layer(kml_doc, layer_type) placemarks = list(layer.features()) for p in placemarks: if aeroway_filter and not is_aeroway_matched(p, aeroway_filter): continue if use_ref: p.name = get_ref(p) # p.name = p.name nodes = [] for coord in p.geometry.coords: nodes.append(coord[0:2]) # the map was intended for southeast plan # a temporary solution to avoid re-draw the runways for west plan # be careful when copying this code to other plans if "runways" in output_filename: nodes.reverse() links.append({ "name": link_name_assigner.rename(p.name), "nodes": nodes }) export_to_json(OUTPUT_FOLDER + output_filename, links)
def generate_node_data(kml_doc, layer_type, output_filename): nodes = [] layer = get_layer(kml_doc, layer_type) placemarks = list(layer.features()) for p in placemarks: nodes.append({ "name": node_name_assigner.rename(p.name), "lat": p.geometry.y, "lng": p.geometry.x }) export_to_json(OUTPUT_FOLDER + output_filename, nodes)
def generate_link_data(kml_doc, layer_type, output_filename): links = [] layer = get_layer(kml_doc, layer_type) placemarks = list(layer.features()) index = 1 for p in placemarks: nodes = [] for coord in p.geometry.coords: nodes.append(coord[0:2]) links.append({"index": index, "name": p.name, "nodes": nodes}) export_to_json(OUTPUT_FOLDER + output_filename, links)
def main(): departures = get_departure_from_csv() arrivals = get_arrival_from_csv() print(len(departures)) print(len(arrivals)) scenario = {"arrivals": arrivals, "departures": departures} print(scenario) create_output_folder(OUTPUT_FOLDER) output_filename = OUTPUT_FOLDER + "scenario.json" export_to_json(output_filename, scenario) logger.debug("Generating gate spots data") gate_spots_filename = OUTPUT_FOLDER + "gates_spots.json" export_to_json(gate_spots_filename, spots_to_gates) logger.debug("Done")
def generate_node_data(kml_doc, layer_type, output_filename): nodes = [] layer = get_layer(kml_doc, layer_type) placemarks = list(layer.features()) index = 1 for p in placemarks: nodes.append({ "index": index, "name": p.name, "lat": p.geometry.y, "lng": p.geometry.x }) index += 1 export_to_json(OUTPUT_FOLDER + output_filename, nodes)