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
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
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
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
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
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
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)