Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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")
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
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")
Exemplo n.º 8
0
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)