コード例 #1
0
def update_graph_flight_depart_delay(empname, origin, destination, start_date,
                                     end_date):
    start = dt.strptime(re.split('T| ', start_date)[0], '%Y-%m-%d')
    end = dt.strptime(re.split('T| ', end_date)[0], '%Y-%m-%d')
    plot_df = slice_data(anac_df, empname, origin, destination, start, end)

    plot_df.index = pd.to_datetime(plot_df['Partida Real'])
    plot_df = plot_df[plot_df['Situação do Voo'].isin(['Realizado'])]
    plot_df = plot_df.loc[str(start):str(end)]
    # atraso_series = (plot_df['Partida Real'] -
    #    plot_df['Partida Prevista']).div(pd.Timedelta('1minute'))
    atraso_series = (
        (pd.to_datetime(plot_df['Partida Real']) -
         pd.to_datetime(plot_df['Partida Prevista'])).dt.total_seconds() / 60)
    # print(atraso_series)
    print(empname, origin, destination, start, end)
    if plot_df.empty:
        print("Não há dados.")
        return px.scatter(title="Atrasos na decolagem")
    return px.scatter(plot_df,
                      y=atraso_series.where(atraso_series > 0),
                      labels={
                          "index": "Partida Real",
                          "y": "Atraso (minutos)"
                      },
                      color='Sigla da Empresa',
                      title='Atrasos na decolagem')
コード例 #2
0
def update_graph_flight_status_relative(empname, origin, destination,
                                        start_date, end_date):
    start = dt.strptime(re.split('T| ', start_date)[0], '%Y-%m-%d')
    end = dt.strptime(re.split('T| ', end_date)[0], '%Y-%m-%d')
    plot_df = slice_data(anac_df, empname, origin, destination, start, end)

    plot_df.index = pd.to_datetime(plot_df['Partida Real'])
    plot_df = plot_df.loc[str(start):str(end)]

    plot_df_all = plot_df[['Sigla da Empresa', 'Situação do Voo'
                           ]].groupby(['Sigla da Empresa']).agg('count')
    plot_df_canceled = plot_df[[
        'Sigla da Empresa', 'Situação do Voo'
    ]].where(plot_df['Situação do Voo'] == 'Cancelado').groupby(
        ['Sigla da Empresa']).agg('count')
    inner_join = pd.merge(left=plot_df_all,
                          right=plot_df_canceled,
                          left_on='Sigla da Empresa',
                          right_on='Sigla da Empresa')
    inner_join.columns = ['Total', 'Cancelados']
    inner_join['Relativo'] = inner_join['Cancelados'] / inner_join['Total']

    if plot_df.empty:
        print("Não há dados.")
        return px.scatter(title="Situação do Voo")

    return px.bar(inner_join,
                  y='Relativo',
                  title="Porcentagem de Voos Cancelados por Empresa",
                  hover_data=["Relativo", "Total"])
def update_graph_flight_status(empname, origin, destination, start_date, end_date):
    start = dt.strptime(re.split('T| ', start_date)[0], '%Y-%m-%d')
    end = dt.strptime(re.split('T| ', end_date)[0], '%Y-%m-%d')
    plot_df = slice_data(anac_df, empname, origin, destination, start, end)

    plot_df.index = pd.to_datetime(plot_df['Partida Real'])
    plot_df = plot_df.loc[str(start):str(end)]

    print(empname, origin, destination, start, end)
    if plot_df.empty:
        print("Não há dados.")
        return px.scatter(title="Situação do Voo")
    return px.histogram(plot_df, color='Situação do Voo', x='Sigla da Empresa', barmode='group', title="Situação do Voo")
コード例 #4
0
def update_graph_depart_arrival(empname, origin, destination, start_date,
                                end_date):
    start = dt.strptime(re.split('T| ', start_date)[0], '%Y-%m-%d')
    end = dt.strptime(re.split('T| ', end_date)[0], '%Y-%m-%d')
    plot_df = slice_data(anac_df, empname, origin, destination, start, end)
    plot_df.index = pd.to_datetime(plot_df['Partida Real'])
    plot_df = plot_df.loc[str(start):str(end)]
    print(empname, origin, destination, start, end)
    if plot_df.empty:
        print("Não há dados.")
        return px.scatter(title="Partida e Chegada de Voos")
    return px.scatter(plot_df,
                      y=plot_df['Chegada Real'],
                      labels={"index": "Partida Real"},
                      color='Sigla da Empresa',
                      title='Partida e Chegada de Voos')
def update_graph_flights_by_destination_airport(empname, origin, destination,
                                                start_date, end_date):
    start = dt.strptime(re.split('T| ', start_date)[0], '%Y-%m-%d')
    end = dt.strptime(re.split('T| ', end_date)[0], '%Y-%m-%d')
    plot_df = slice_data(anac_df, empname, None, destination, start, end)

    plot_df.index = pd.to_datetime(plot_df['Partida Real'])
    plot_df = plot_df.loc[str(start):str(end)]

    if plot_df.empty:
        print("Não há dados.")
        return px.scatter(title="Voos por Aeorporto (Destino)")
    return px.histogram(plot_df,
                        color='Situação do Voo',
                        x='Aeroporto Destino',
                        barmode='group',
                        title="Quantidade de Voos por Aeroporto (Destino)")
コード例 #6
0
def update_graph_flights_per_day(empname, origin, destination, start_date, end_date):
    start = dt.strptime(re.split('T| ', start_date)[0], '%Y-%m-%d')
    end = dt.strptime(re.split('T| ', end_date)[0], '%Y-%m-%d')
    plot_df = slice_data(anac_df, empname, origin, None, start, end)

    plot_df.index = pd.to_datetime(plot_df['Partida Real'])
    plot_df = plot_df.loc[str(start):str(end)]

    # plot_df_agg = plot_df[['Partida Prevista', "Situação do Voo"]].groupby(
    #     ['Partida Real']).agg('count')
    plot_df_agg = plot_df.where(
        plot_df["Situação do Voo"] == "Realizado").resample("D").count()

    if plot_df.empty:
        print("Não há dados.")
        return px.scatter(title="Voos por Aeorporto (Origem)")
    return px.line(plot_df_agg, x=plot_df_agg.index, y="Situação do Voo",  title="Quantidade de Voos por Dia")
def update_graph_flight_airports_pair(empname, origin, destination, start_date,
                                      end_date):
    start = dt.strptime(re.split('T| ', start_date)[0], '%Y-%m-%d')
    end = dt.strptime(re.split('T| ', end_date)[0], '%Y-%m-%d')
    plot_df = slice_data(anac_df, empname, origin, destination, start, end)
    plot_df.index = pd.to_datetime(plot_df['Partida Real'])

    plot_df = plot_df.loc[str(start):str(end)]

    print(empname, origin, destination, start, end)
    if plot_df.empty:
        print("Não há dados.")
        return px.scatter(title="Aeroporto Origem vs Aeroporto Destino")
    return px.scatter(plot_df,
                      x='Aeroporto Origem',
                      y='Aeroporto Destino',
                      color='Sigla da Empresa',
                      title="Aeroporto Origem vs Aeroporto Destino")
コード例 #8
0
def update_graph_flight_duration(empname, origin, destination, start_date,
                                 end_date):
    start = dt.strptime(re.split('T| ', start_date)[0], '%Y-%m-%d')
    end = dt.strptime(re.split('T| ', end_date)[0], '%Y-%m-%d')
    plot_df = slice_data(anac_df, empname, origin, destination, start, end)
    plot_df.index = pd.to_datetime(plot_df['Partida Real'])
    plot_df = plot_df[plot_df['Situação do Voo'].isin(['Realizado'])]
    plot_df = plot_df.loc[str(start):str(end)]
    duracao_series = (plot_df['Chegada Real'] - plot_df['Partida Real']).div(
        pd.Timedelta('1H'))

    print(empname, origin, destination, start, end)
    if plot_df.empty:
        print("Não há dados.")
        return px.scatter(title="Duração de Voo")
    return px.scatter(plot_df,
                      y=duracao_series,
                      labels={
                          "index": "Partida Real",
                          "y": "Duração (horas)"
                      },
                      color='Sigla da Empresa',
                      title='Duração de Voo')