Esempio n. 1
0
def update_graphs(selected_entity):
    service = oc.get_entity_by_id(selected_entity)
    data = oh.get_structure_data(service.code_osfi)
    columns = [{"name": i, "id": i} for i in data.columns]
    data_to_return = data.to_dict("records")
    electricity_pie_graph = get_pie(data, "emission_electricity")
    gas_pie_graph = get_pie(data, "emission_gaz")
    return columns, data_to_return, electricity_pie_graph, gas_pie_graph
Esempio n. 2
0
def fill_dash_table_with_buildings(selected_entity):
    service = oc.get_entity_by_id(selected_entity)
    data = oh.get_structure_data(service.code_osfi)
    columns_to_keep = [
        "Nom du bien", "Building type", "Adresse", "Code postal", "Ville",
        "Departement"
    ]
    columns = [{"name": i, "id": i} for i in columns_to_keep]
    row_selectable = "multi"
    buildings = data[columns_to_keep].drop_duplicates()
    data_to_return = buildings.to_dict("records")
    return columns, row_selectable, data_to_return
Esempio n. 3
0
def set_slider_range(selected_entity):
    """
    Will get min / max date range to setup the range slider
    """
    oc = OrganizationChart()
    oc.load_current()
    service = oc.get_entity_by_id(selected_entity)
    data = oh.get_structure_data(service.code_osfi)
    min_date = data["Date"].min()
    max_date = data["Date"].max()
    datelist = pd.date_range(start=min_date, end=max_date, freq="M").to_list()
    marks = get_marks(datelist)
    min_value = unix_time_millis(min_date)
    max_value = unix_time_millis(max_date)
    return min_value, max_value, marks
Esempio n. 4
0
def update_graphs_selected(selected_entity, selected_rows, buildings):
    entity = oc.get_entity_by_id(selected_entity)
    data = oh.get_structure_data(entity.code_osfi)
    # If no rows are selected, we are displaying all of them
    # Might seem a bit conter intuitive.
    if selected_rows is None or len(selected_rows) == 0:
        data_to_display = pd.DataFrame(data)
    else:
        biens = [buildings[int(i)] for i in selected_rows]
        biens = pd.DataFrame(biens)
        codes = biens["Nom du bien"]
        data_to_display = data[data["Nom du bien"].isin(codes)]
        data_to_display = pd.DataFrame(data_to_display)
    electricity_pie_graph = get_pie(data_to_display, "emission_electricity")
    gas_pie_graph = get_pie(data_to_display, "emission_gaz")
    electricity_time_series = get_emissions_timeseries(data_to_display,
                                                       "emission_electricity")
    gaz_time_series = get_emissions_timeseries(data_to_display, "emission_gaz")
    return electricity_pie_graph, gas_pie_graph, electricity_time_series, gaz_time_series
Esempio n. 5
0
def fill_dash_table_with_buildings(selected_entity):
    oc = OrganizationChart()
    oc.load_current()
    service = oc.get_entity_by_id(selected_entity)
    data = oh.get_structure_data(service.code_osfi)
    columns_to_keep = [
        "Nom du bien", "Building type", "Adresse", "Code postal", "Ville",
        "Departement"
    ]
    columns = [{"name": i, "id": i} for i in columns_to_keep]
    hidden_columns = []
    for c in columns:
        if c["name"] not in ["Nom du bien", "Ville"]:
            c["hideable"] = True
            hidden_columns.append(c["id"])
    row_selectable = "multi"
    buildings = data[columns_to_keep].drop_duplicates()
    selected_rows = list(range(0, len(buildings)))
    data_to_return = buildings.to_dict("records")
    return columns, row_selectable, selected_rows, hidden_columns, data_to_return
Esempio n. 6
0
def get_data(selected_entity, selected_rows, buildings, slider_values):
    oc = OrganizationChart()
    oc.load_current()
    entity = oc.get_entity_by_id(selected_entity)
    data = oh.get_structure_data(entity.code_osfi)

    # Start of month for min slider range
    min_date = pd.Timestamp(unix_to_date(
        slider_values[0])) - pd.offsets.MonthBegin(1)
    max_date = pd.Timestamp(unix_to_date(slider_values[1]))

    # If no rows are selected, we are returning an empty dataframe
    # with the same structure as data
    if selected_rows is None or len(selected_rows) == 0:
        return pd.DataFrame().reindex_like(data)
    else:
        biens = [buildings[int(i)] for i in selected_rows]
        biens = pd.DataFrame(biens)
        codes = biens["Nom du bien"]
        data_to_display = data[data["Nom du bien"].isin(codes)]
        data_to_display = pd.DataFrame(data_to_display)
        data_to_display = data_to_display[data_to_display["Date"] >= min_date]
        data_to_display = data_to_display[data_to_display["Date"] <= max_date]
        return data_to_display
Esempio n. 7
0
 def load_data(self):
     self.chorus_dt_df = ch.get_structure_data(self.service.code_chorus)
     self.odrive_df = ov.get_structure_data(self.service.code_odrive)
     self.osfi_df = oh.get_structure_data(self.service.code_osfi)