diff --git a/buildstock_query/aggregate_query.py b/buildstock_query/aggregate_query.py index e7f25a1..f449fcc 100644 --- a/buildstock_query/aggregate_query.py +++ b/buildstock_query/aggregate_query.py @@ -39,7 +39,7 @@ def aggregate_annual(self, *, enduse_selection = [safunc.sum(enduse * total_weight).label(self._bsq._simple_label(enduse.name)) for enduse in enduse_cols] if params.get_quartiles: - enduse_selection += [sa.func.approx_percentile(enduse, [0, 0.02, 0.25, 0.5, 0.75, 0.98, 1]).label( + enduse_selection += [sa.func.approx_percentile(enduse, [0, 0.02, 0.1, 0.25, 0.5, 0.75, 0.9, 0.98, 1]).label( f"{self._bsq._simple_label(enduse.name)}__quartiles") for enduse in enduse_cols] if params.get_nonzero_count: diff --git a/buildstock_query/main.py b/buildstock_query/main.py index 91cfeae..106c9d8 100644 --- a/buildstock_query/main.py +++ b/buildstock_query/main.py @@ -399,7 +399,7 @@ def get_upgrades_csv(self, *, upgrade_id: Union[str, int] = '0', logger.info("Making results_csv query for upgrade ...") return self.execute(query).set_index(self.bs_bldgid_column.name) - def _download_upgrades_csv(self, upgrade_id: int) -> str: + def _download_upgrades_csv(self, upgrade_id: Union[int, str]) -> str: """ Downloads the upgrades csv from s3 and returns the path to the downloaded file. """ if self.up_table is None: @@ -407,6 +407,9 @@ def _download_upgrades_csv(self, upgrade_id: int) -> str: available_upgrades = list(self.get_available_upgrades()) available_upgrades.remove('0') + if isinstance(upgrade_id, int): + upgrade_id = f"{upgrade_id:02}" + if str(upgrade_id) not in available_upgrades: raise ValueError(f"Upgrade {upgrade_id} not found") @@ -428,8 +431,8 @@ def _download_upgrades_csv(self, upgrade_id: int) -> str: raise ValueError(f"Results parquet not found in s3 at {upgrades_path}") # out of the contents find the key with name matching the pattern results_up{upgrade_id}.parquet matching_files = [path['Key'] for path in s3_data['Contents'] - if f"up{upgrade_id:02}.parquet" in path['Key'] or - f"upgrade{upgrade_id:02}.parquet" in path['Key']] + if f"up{upgrade_id}.parquet" in path['Key'] or + f"upgrade{upgrade_id}.parquet" in path['Key']] if len(matching_files) > 1: raise ValueError(f"Multiple results parquet found in s3 at {upgrades_path} for upgrade {upgrade_id}." f"These files matched: {matching_files}") @@ -440,7 +443,7 @@ def _download_upgrades_csv(self, upgrade_id: int) -> str: self._aws_s3.download_file(bucket, matching_files[0], local_copy_path) return local_copy_path - def get_upgrades_csv_full(self, upgrade_id: int) -> pd.DataFrame: + def get_upgrades_csv_full(self, upgrade_id: Union[int, str]) -> pd.DataFrame: """ Returns the full results csv table for upgrades. This is the same as get_upgrades_csv without any restrictions. It uses the stored parquet files in s3 to download the results which is faster than querying athena. diff --git a/buildstock_query/query_core.py b/buildstock_query/query_core.py index ee285d1..23fc15a 100644 --- a/buildstock_query/query_core.py +++ b/buildstock_query/query_core.py @@ -1065,6 +1065,7 @@ def delete_everything(self): if confirm != curtime: print(f"Please pass {curtime} as confirmation to confirm you want to delete everything.") continue + print("Proceeding with delete ...") self._aws_glue.batch_delete_table(DatabaseName=self.db_name, TablesToDelete=tables_to_delete) print("Deleted the table from athena, now will delete the data in s3") s3 = boto3.resource('s3') diff --git a/buildstock_query/report_query.py b/buildstock_query/report_query.py index 5438b62..cab7b44 100644 --- a/buildstock_query/report_query.py +++ b/buildstock_query/report_query.py @@ -51,7 +51,7 @@ def _get_bs_success_report(self, get_query_only: bool = False): return self._bsq._compile(bs_query) df = self._bsq.execute(bs_query) df = self._rename_completed_status_column(df) - df.insert(0, 'upgrade', 0) + df.insert(0, 'upgrade', '0') return self._process_report(df) @typing.overload @@ -93,7 +93,7 @@ def _get_change_report(self, get_query_only: bool = False): for chng_type, query in zip(chng_types, queries): df = self._bsq.execute(query) df.rename(columns={"change": chng_type}, inplace=True) - df['upgrade'] = df['upgrade'].map(int) + # df['upgrade'] = df['upgrade'].map(int) df = df.set_index('upgrade').sort_index() change_df = change_df.join(df, how='outer') if len(change_df) > 0 else df change_df = change_df.fillna(0) @@ -103,7 +103,7 @@ def _get_change_report(self, get_query_only: bool = False): return change_df @validate_arguments(config=dict(arbitrary_types_allowed=True, smart_union=True)) - def print_change_details(self, upgrade_id: int, yml_file: str, opt_sat_path: str, + def print_change_details(self, upgrade_id: Union[int, str], yml_file: str, opt_sat_path: str, change_type: Literal["no-chng", "bad-chng", "ok-chng", "true-bad-chng", "true-ok-chng", "null", "any"] = 'no-chng'): ua = self._bsq.get_upgrades_analyzer(yaml_file=yml_file, @@ -113,21 +113,22 @@ def print_change_details(self, upgrade_id: int, yml_file: str, opt_sat_path: str ua.print_unique_characteristic(upgrade_id, change_type, good_bids, bad_bids) @typing.overload - def _get_upgrade_buildings(self, *, upgrade_id: int, trim_missing_bs: bool = True, + def _get_upgrade_buildings(self, *, upgrade_id: Union[int, str], trim_missing_bs: bool = True, get_query_only: Literal[False] = False) -> list[int]: ... @typing.overload - def _get_upgrade_buildings(self, *, upgrade_id: int, get_query_only: Literal[True], + def _get_upgrade_buildings(self, *, upgrade_id: Union[int, str], get_query_only: Literal[True], trim_missing_bs: bool = True) -> str: ... @typing.overload - def _get_upgrade_buildings(self, *, upgrade_id: int, get_query_only: bool, + def _get_upgrade_buildings(self, *, upgrade_id: Union[int, str], get_query_only: bool, trim_missing_bs: bool = True) -> Union[list[int], str]: ... - def _get_upgrade_buildings(self, *, upgrade_id: int, trim_missing_bs: bool = True, get_query_only: bool = False): + def _get_upgrade_buildings(self, *, upgrade_id: Union[int, str], trim_missing_bs: bool = True, + get_query_only: bool = False): if self._bsq.up_table is None: raise ValueError("No upgrade table is available .") up_query = sa.select([self._bsq.up_bldgid_column]) @@ -191,28 +192,28 @@ def _get_change_conditions(self, change_type: str): return conditions @typing.overload - def get_buildings_by_change(self, *, upgrade_id: int, get_query_only: Literal[True], + def get_buildings_by_change(self, *, upgrade_id: Union[int, str], get_query_only: Literal[True], change_type: Literal["no-chng", "bad-chng", "ok-chng", "true-bad-chng", "true-ok-chng", "null", "any"] = 'no-chng' ) -> str: ... @typing.overload - def get_buildings_by_change(self, *, upgrade_id: int, get_query_only: Literal[False] = False, + def get_buildings_by_change(self, *, upgrade_id: Union[int, str], get_query_only: Literal[False] = False, change_type: Literal["no-chng", "bad-chng", "ok-chng", "true-bad-chng", "true-ok-chng", "null", "any"] = 'no-chng' ) -> list[int]: ... @typing.overload - def get_buildings_by_change(self, *, upgrade_id: int, get_query_only: bool, + def get_buildings_by_change(self, *, upgrade_id: Union[int, str], get_query_only: bool, change_type: Literal["no-chng", "bad-chng", "ok-chng", "true-bad-chng", "true-ok-chng", "null", "any"] = 'no-chng' ) -> Union[list[int], str]: ... @validate_arguments(config=dict(arbitrary_types_allowed=True, smart_union=True)) - def get_buildings_by_change(self, *, upgrade_id: int, + def get_buildings_by_change(self, *, upgrade_id: Union[int, str], change_type: Literal["no-chng", "bad-chng", "ok-chng", "true-bad-chng", "true-ok-chng", "null", "any"] = 'no-chng', get_query_only: bool = False): @@ -272,11 +273,12 @@ def _get_up_success_report(self, *, trim_missing_bs: bool = True, get_query_only if get_query_only: return self._bsq._compile(up_query) df = self._bsq.execute(up_query) + df['upgrade'] = df['upgrade'].map(str) df = self._rename_completed_status_column(df) return self._process_report(df) def _process_report(self, df: DataFrame): - df['upgrade'] = df['upgrade'].map(int) + # df['upgrade'] = df['upgrade'].map(int) pf = df.pivot(index=['upgrade'], columns=['completed_status'], values=['count']) pf.columns = [c[1] for c in pf.columns] @@ -317,7 +319,7 @@ def _get_full_options_report(self, trim_missing_bs: bool = True, get_query_only: df = self._bsq.execute(query) simple_names = [f"option{i+1}" for i in range(len(opt_name_cols))] df.columns = ['upgrade'] + simple_names + ['success', "applied_buildings"] - df['upgrade'] = df['upgrade'].map(int) + # df['upgrade'] = df['upgrade'].map(int) df['applied_buildings'] = df['applied_buildings'].map(lambda x: literal_eval(x)) applied_rows = df[simple_names].any(axis=1) # select only rows with at least one option applied return df[applied_rows] @@ -570,7 +572,7 @@ def _get_ts_report(self, get_query_only: bool = False): if get_query_only: return self._bsq._compile(ts_query) df = self._bsq.execute(ts_query) - df['upgrade'] = df['upgrade'].map(int) + df['upgrade'] = df['upgrade'].map(str) df = df.set_index('upgrade') df = df.rename(columns={'count': 'success'}) return df @@ -660,7 +662,7 @@ def get_applied_options(self, upgrade_id: Union[str, int], bldg_ids: list[int], Returns: list[set|dict]: List of options (along with baseline chars, if include_base_opt is true) """ - up_csv = self._bsq.get_upgrades_csv_full(upgrade_id=int(upgrade_id)) + up_csv = self._bsq.get_upgrades_csv_full(upgrade_id=upgrade_id) rel_up_csv = up_csv.loc[bldg_ids] upgrade_cols = [key for key in up_csv.columns if key.startswith("upgrade_costs.option_") and key.endswith("_name")] @@ -702,7 +704,7 @@ def get_enduses_buildings_map_by_change(self, upgrade_id: Union[str, int], Returns: dict[str, pd.Index]: Dict mapping enduses that had a given change and building ids showing that change. """ - up_csv = self._bsq.get_upgrades_csv_full(upgrade_id=int(upgrade_id)) + up_csv = self._bsq.get_upgrades_csv_full(upgrade_id=upgrade_id) bs_csv = self._bsq.get_results_csv_full() if bldg_list: up_csv = up_csv.loc[bldg_list] diff --git a/buildstock_query/tools/upgrades_analyzer.py b/buildstock_query/tools/upgrades_analyzer.py index e39965c..0558c17 100644 --- a/buildstock_query/tools/upgrades_analyzer.py +++ b/buildstock_query/tools/upgrades_analyzer.py @@ -366,7 +366,7 @@ def get_report(self, upgrade_num: Optional[int] = None) -> pd.DataFrame: """ self._logic_cache = {} - if upgrade_num not in self.upgrade_names: + if upgrade_num is not None and upgrade_num not in self.upgrade_names: raise ValueError(f"Invalid upgrade {upgrade_num}. Valid upgrade_num = {self.upgrade_names.keys()}.") record_dfs = [] diff --git a/buildstock_query/tools/upgrades_visualizer/figure.py b/buildstock_query/tools/upgrades_visualizer/figure.py index b0f9f2d..7a3c2bf 100644 --- a/buildstock_query/tools/upgrades_visualizer/figure.py +++ b/buildstock_query/tools/upgrades_visualizer/figure.py @@ -1,10 +1,34 @@ -from buildstock_query.tools.upgrades_visualizer.plot_utils import PlotParams, ValueTypes +from buildstock_query.tools.upgrades_visualizer.plot_utils import PlotParams, ValueTypes, human_sort_key, flatten_list from buildstock_query.tools.upgrades_visualizer.viz_data import VizData import plotly.graph_objects as go import polars as pl import re +color_list = [ + '#F7DF10', # Interior Lighting + '#DEC310', # Exterior Lighting + '#4A4D4A', # Plug Loads + '#29AAE7', # Refrigerator + '#3cb6f0', # Extra Refrigerator + '#59caff', # Freezer + '#51e889', # Clothes Washer + '#FF79AD', # Clothes Dryer + '#D3D3D3', # Dishwasher + '#ff2200', # Cooking Range + '#632C94', # Well Pump + '#ff7300', # Pool/Spa Pump + '#FFB239', # Hot Water + '#C0C0C0', # Ceiling Fan + '#FF79AD', # Vent Fans + '#632C94', # HVAC Fan/Pump + '#0071BD', # Cooling + '#EF1C21', # Heating + '#1adb61', # Electric Vehicle + '#4748a8' # PV +] # from EZVIZ.py + + class UpgradesPlot: def __init__(self, viz_data: VizData) -> None: self.viz_data = viz_data @@ -32,8 +56,9 @@ def explode_str(self, input_str): def get_plot(self, params: PlotParams): if len(params.group_by) >= 2 or params.upgrade is not None or \ - (params.value_type in [ValueTypes.distribution, ValueTypes.scatter] and len(params.group_by) >= 1): - params.upgrade = params.upgrade if params.upgrade else 0 + (params.value_type in [ValueTypes.distribution, ValueTypes.scatter, + ValueTypes.sorted] and len(params.group_by) >= 1): + params.upgrade = params.upgrade if params.upgrade else '0' params.group_by = ['upgrade'] if not params.group_by else params.group_by plot_df = self.viz_data.get_plotting_df(upgrade=params.upgrade, params=params) else: @@ -55,18 +80,21 @@ def _get_plot(self, df, params: PlotParams): xtitle = ", ".join(params.group_by[1:]) if len(params.group_by) > 1 else params.group_by[0] ytitle = f"{self.get_ylabel(params.enduses)}_{params.savings_type.value}" else: - assert params.value_type in [ValueTypes.scatter] + assert params.value_type in [ValueTypes.scatter, ValueTypes.sorted] xtitle = "baseline_value" ytitle = f"{self.get_ylabel(params.enduses)}_{params.savings_type.value}" for grp0, sub_df in df.groupby(params.group_by[0], maintain_order=True): - upgrade = int(grp0) if params.group_by[0] == 'upgrade' else params.upgrade - upgrade = upgrade or 0 + if params.upgrade is None: + upgrade: str = '0' + else: + upgrade: str = str(grp0) if params.group_by[0] == 'upgrade' else params.upgrade yvals = [] xvals = [] second_groups = [] sample_counts = [] upgrades = [] hovervals = [] + building_ids = [] if len(params.group_by) > 1: second_plots = [(group_name, group_df) for group_name, group_df in sub_df.groupby(params.group_by[1:], maintain_order=True)] @@ -82,8 +110,11 @@ def _get_plot(self, df, params: PlotParams): sample_counts.append(0) upgrades.append(upgrade) hovervals.append("Too many groups") + building_ids.append(0) + second_groups.append("Too many groups") grp0 = "Too many groups" break + sort_index = 0 if params.value_type in [ValueTypes.total, ValueTypes.mean, ValueTypes.count]: if params.value_type == ValueTypes.total: val = second_df['value'].sum() @@ -101,34 +132,51 @@ def _get_plot(self, df, params: PlotParams): f"
Units Count: {count * self.viz_data.sample_weight}." hovervals.append(hovertext) second_groups.append(name) - elif params.value_type in [ValueTypes.distribution, ValueTypes.scatter]: + building_ids.append(0) + elif params.value_type in [ValueTypes.distribution, ValueTypes.scatter, ValueTypes.sorted]: hovertext = [f'{self.viz_data.upgrade2name.get(upgrade)}
{grp0}
{name}
Building:' f'{bid}
Sample Count: {count}' for bid in second_df['building_id'].to_list()] - if params.value_type == ValueTypes.distribution: + if params.value_type in [ValueTypes.distribution]: xvals.extend([name] * count) yvals.extend(second_df['value'].to_list()) second_groups.extend([name] * count) sample_counts.extend([count] * count) upgrades.extend([upgrade] * count) hovervals.extend(hovertext) + building_ids.extend(second_df['building_id'].to_list()) else: xvals.append(second_df['baseline_value'].to_list()) yvals.append(second_df['value'].to_list()) - second_groups.append(name) + second_groups.append([name] * count) sample_counts.append([count] * count) upgrades.append([upgrade] * count) hovervals.append(hovertext) + building_ids.append(second_df['building_id'].to_list()) + sort_index = 2 counter += 1 counter2 += 1 + # sort the xvals using human_sort_key and yvals accordingly + xvals, yvals, second_groups, sample_counts, hovervals, upgrades, building_ids = zip(*sorted( + zip(xvals, yvals, second_groups, sample_counts, hovervals, upgrades, building_ids), + key=lambda x: human_sort_key(x[sort_index]))) self._add_plot(params, fig, grp0, yvals, xvals, second_groups, hovervals, len(params.group_by) > 1) try: - sub_df = pl.DataFrame({xtitle: xvals, ytitle: yvals, 'upgrade': [f'Upgrade {grp0}'] * len(xvals), - 'sample_count': sample_counts, 'info': hovervals}) + fl = flatten_list + if params.value_type == ValueTypes.scatter: + sub_df = pl.DataFrame({xtitle: fl(xvals), ytitle: fl(yvals), + 'upgrade': [f'Upgrade {grp0}'] * len(fl(xvals)), + 'sample_count': fl(sample_counts), 'info': fl(hovervals), + 'second_group': fl(second_groups), 'building_id': fl(building_ids)}) + else: + sub_df = pl.DataFrame({xtitle: xvals, ytitle: yvals, 'upgrade': [f'Upgrade {grp0}'] * len(xvals), + 'sample_count': sample_counts, 'info': hovervals, + 'second_group': second_groups, 'building_id': building_ids}) # sub_df = sub_df.with_columns(pl.col(ytitle).cast(pl.Float32)) report_dfs.append(sub_df) - except Exception: + except Exception as e: + print(e) continue if params.change_type: @@ -138,7 +186,9 @@ def _get_plot(self, df, params: PlotParams): if params.group_by[0] != "upgrade": title = f"Upgrade {params.upgrade} - {title}" + self._update_layout(params, fig, xtitle, ytitle, title, len(params.group_by) > 1) + fig.data = sorted(fig.data, key=lambda x: human_sort_key(x.name) if x.name else "") return fig, pl.concat(report_dfs) @@ -156,6 +206,13 @@ def _update_layout(self, params: PlotParams, fig, xtitle, ytitle, title, multi_g title=title, legend={"title": params.group_by[0]}, clickmode='event+select') + elif params.value_type in [ValueTypes.sorted]: + fig.update_layout(yaxis_title=ytitle, + boxmode="group" if multi_group else "overlay", + xaxis_title=xtitle, + title=title, + legend={"title": params.group_by[0]}, + clickmode='event+select') elif params.value_type == ValueTypes.scatter: fig.update_layout(yaxis_title=ytitle, title=title, @@ -179,14 +236,14 @@ def _update_layout(self, params: PlotParams, fig, xtitle, ytitle, title, multi_g def _add_plot(self, params: PlotParams, fig, grp0, yvals, xvals, second_groups, hovervals, multi_group=False): if params.value_type in [ValueTypes.mean, ValueTypes.total, ValueTypes.count]: fig.add_trace(go.Bar( - y=yvals, - x=xvals, - hovertext=hovervals, - name=f'{grp0}', - hoverinfo="all" - )).update_traces( - marker={"line": {"width": 0.5, "color": "rgb(0,0,0)"}} - ) + y=yvals, + x=xvals, + hovertext=hovervals, + name=f'{grp0}', + hoverinfo="all" + )).update_traces( + marker={"line": {"width": 0.5, "color": "rgb(0,0,0)"}} + ) elif params.value_type == ValueTypes.distribution: fig.add_trace(go.Box( y=yvals, @@ -197,9 +254,19 @@ def _add_plot(self, params: PlotParams, fig, grp0, yvals, xvals, second_groups, hovertext=hovervals, hoverinfo="all" )) - elif params.value_type == ValueTypes.scatter: + elif params.value_type in [ValueTypes.scatter, ValueTypes.sorted]: if multi_group: - self._add_multi_scatter(fig, grp0, list(zip(second_groups, xvals, yvals, hovervals))) + self._add_multi_scatter(fig, grp0, list(zip(second_groups, xvals, yvals, hovervals)), params.value_type) + elif params.value_type == ValueTypes.sorted: + yvals, hovervals = zip(*sorted(zip(yvals[0], hovervals[0]), reverse=True)) + xvals = list(range(len(yvals))) + fig.add_trace(go.Scatter( + y=yvals, + x=xvals, + name=f'{grp0}', + mode='lines', + hovertext=hovervals, + hoverinfo="all")) else: fig.add_trace(go.Scatter( y=yvals[0], @@ -209,12 +276,13 @@ def _add_plot(self, params: PlotParams, fig, grp0, yvals, xvals, second_groups, hovertext=hovervals[0], hoverinfo="all")) - def _add_multi_scatter(self, fig, grp0, plot_tuples): + def _add_multi_scatter(self, fig, grp0, plot_tuples, plot_type): # Define the width of each subplot based on total plots and desired gaps - num_plots = len(plot_tuples) + num_plots = max(len(plot_tuples), 1) gap_fraction = 0.05 # for a 5% gap subplot_width = (1.0 - (num_plots-1)*gap_fraction) / num_plots - + # color_index = 0 + # chosen_color = dict() # Iterate over the tuples and add scatter plots for index, (name, xvals, yvals, hovervals) in enumerate(plot_tuples): domain_start = index * (subplot_width + gap_fraction) @@ -227,13 +295,18 @@ def _add_multi_scatter(self, fig, grp0, plot_tuples): layout_xaxis_key = f'xaxis{"" if index == 0 else index+1}' layout_yaxis_key = f'yaxis{"" if index == 0 else index+1}' - # Add scatter plot + mode = 'markers' + if plot_type == ValueTypes.sorted: + yvals, hovervals = zip(*sorted(zip(yvals, hovervals), reverse=True)) + xvals = list(range(len(yvals))) + mode = 'lines' + fig.add_trace(go.Scatter(x=xvals, y=yvals, - hovertext=hovervals[0], + hovertext=hovervals, name=grp0, legendgroup=grp0, - mode='markers', + mode=mode, showlegend=True if index == 0 else False, xaxis=scatter_xaxis_key, yaxis=scatter_yaxis_key, @@ -244,7 +317,7 @@ def _add_multi_scatter(self, fig, grp0, plot_tuples): layout_xaxis_key: { 'domain': [domain_start, domain_end], 'anchor': scatter_yaxis_key, - 'title': name + 'title': str(name) }, layout_yaxis_key: { 'anchor': scatter_xaxis_key diff --git a/buildstock_query/tools/upgrades_visualizer/plot_utils.py b/buildstock_query/tools/upgrades_visualizer/plot_utils.py index 9d68214..f7bb559 100644 --- a/buildstock_query/tools/upgrades_visualizer/plot_utils.py +++ b/buildstock_query/tools/upgrades_visualizer/plot_utils.py @@ -1,6 +1,7 @@ from pydantic import BaseModel, Field from enum import Enum from typing import Optional +import re class SavingsTypes(str, Enum): @@ -15,15 +16,41 @@ class ValueTypes(str, Enum): mean = "mean" distribution = "distribution" scatter = "scatter" + sorted = "Sorted" class PlotParams(BaseModel): enduses: list[str] savings_type: SavingsTypes change_type: Optional[str] - upgrade: Optional[int] + upgrade: Optional[str] group_by: list[str] = Field(default_factory=list) filter_bldgs: list[int] = Field(default_factory=list) sync_upgrade: Optional[int] = None resolution: str = "annual" value_type: ValueTypes + + +num2month = {1: "January", 2: "February", 3: "March", 4: "April", + 5: "May", 6: "June", 7: "July", 8: "August", + 9: "September", 10: "October", 11: "November", 12: "December"} +month2numstr = {v.lower(): f"{k:02}" for k, v in num2month.items()} + + +def human_sort_key(input_str): + """ + Transforms the element of a list into a list of strings and numbers to allow for human sorting + eg. regular string sort: EF 19.3, EF 21.9, EF 6.7 + human sort: EF 6.7, EF 19.3, EF 21.9 + Useful to sort alphanumeric strings + """ + input_str = str(input_str).lower() + input_str = [ + int(x) if x and x[0] in "0123456789" else month2numstr.get(x.lower(), x) if x else None + for x in re.split(r"([\<\-])|([0-9]+)", input_str) + ] + return ["" if x is None else x for x in input_str] + + +def flatten_list(list_obj): + return [item for sublist in list_obj for item in sublist] diff --git a/buildstock_query/tools/upgrades_visualizer/upgrades_visualizer.py b/buildstock_query/tools/upgrades_visualizer/upgrades_visualizer.py index 564b259..3d71876 100644 --- a/buildstock_query/tools/upgrades_visualizer/upgrades_visualizer.py +++ b/buildstock_query/tools/upgrades_visualizer/upgrades_visualizer.py @@ -22,6 +22,7 @@ from buildstock_query.tools.upgrades_visualizer.figure import UpgradesPlot from buildstock_query.helpers import load_script_defaults, save_script_defaults import polars as pl +from typing import Literal # os.chdir("/Users/radhikar/Documents/eulpda/EULP-data-analysis/eulpda/smart_query/") # from: https://github.com/thedirtyfew/dash-extensions/tree/1b8c6466b5b8522690442713eb421f622a1d7a59 @@ -80,7 +81,7 @@ def get_int_set(input_str): def _get_app(opt_sat_path: str, db_name: str = 'euss-tests', table_name: str = 'res_test_03_2018_10k_20220607', workgroup: str = 'largeee', - buildstock_type: str = 'resstock', + buildstock_type: Literal['resstock', 'comstock'] = 'resstock', include_monthly: bool = True, upgrades_selection_str: str = ''): viz_data = VizData(opt_sat_path=opt_sat_path, db_name=db_name, @@ -96,26 +97,32 @@ def get_app(viz_data: VizData): upgrade2res = viz_data.upgrade2res # upgrade2res_monthly = viz_data.upgrade2res_monthly upgrade2name = viz_data.upgrade2name - all_cols = viz_data.upgrade2res[0].columns + all_cols = viz_data.upgrade2res['0'].columns emissions_cols = filter_cols(all_cols, suffixes=['_lb']) - # end_use_cols = filter_cols(all_cols, ["end_use_", "energy_use__", "fuel_use_"]) + end_use_cols = filter_cols(all_cols, ["end_use_", "energy_use__", "fuel_use_"]) water_usage_cols = filter_cols(all_cols, suffixes=["_gal"]) - load_cols = filter_cols(all_cols, ["load_", "flow_rate_"]) + load_cols = filter_cols(all_cols, ["load_", "flow_rate_", "component_load_", "hvac_design_load_"]) peak_cols = filter_cols(all_cols, ["peak_"]) - unmet_cols = filter_cols(all_cols, ["unmet_"]) + unmet_cols = filter_cols(all_cols, ["unmet_", "resilience_battery_hr"]) area_cols = filter_cols(all_cols, suffixes=["_ft_2", ]) size_cols = filter_cols(all_cols, ["size_"]) qoi_cols = filter_cols(all_cols, ["qoi_"]) cost_cols = filter_cols(all_cols, ["upgrade_cost_"]) + build_cols = viz_data.metadata_df.columns + listed_cols = emissions_cols + water_usage_cols + load_cols + peak_cols + unmet_cols + area_cols + size_cols +\ + qoi_cols + cost_cols + build_cols + end_use_cols + numerical_cols = [name for name, dtype in viz_data.upgrade2res['0'].schema.items() + if dtype in (pl.NUMERIC_DTYPES)] + other_cols = list(set(numerical_cols) - set(listed_cols)) char_cols = [c.removeprefix(viz_data.main_run._char_prefix) for c in build_cols if 'applicable' not in c] char_cols += ['month'] fuels_types = ['electricity', 'natural_gas', 'propane', 'fuel_oil', 'coal', 'wood_cord', 'wood_pellets'] change_types = ["any", "no-chng", "bad-chng", "ok-chng", "true-bad-chng", "true-ok-chng"] download_csv_df = pl.DataFrame() - def get_buildings(upgrade): - return upgrade2res[int(upgrade)]['building_id'].to_list() + def get_buildings(upgrade: str): + return upgrade2res[upgrade]['building_id'].to_list() def get_plot(end_use, value_type='mean', savings_type='', change_type='', sync_upgrade=None, filter_bldg=None, group_cols=None, report_upgrade=None, @@ -123,7 +130,7 @@ def get_plot(end_use, value_type='mean', savings_type='', change_type='', filter_bldg = filter_bldg or [] group_cols = group_cols or [] sync_upgrade = sync_upgrade or 0 - report_upgrade = int(report_upgrade) if report_upgrade else None + report_upgrade = report_upgrade if report_upgrade else None params = PlotParams(enduses=end_use, value_type=ValueTypes[value_type.lower()], savings_type=SavingsTypes[savings_type.lower().replace(' ', '_')], @@ -145,7 +152,7 @@ def get_plot(end_use, value_type='mean', savings_type='', change_type='', inline=True, id="radio_resolution"))]), dbc.Row([dbc.Col(dbc.Label("Visualization Type: "), width='auto'), - dbc.Col(dcc.RadioItems(["Mean", "Total", "Count", "Distribution", "Scatter"], "Mean", + dbc.Col(dcc.RadioItems(["Mean", "Total", "Count", "Distribution", "Scatter", "Sorted"], "Mean", id="radio_graph_type", inline=True, labelClassName="pr-2"), width='auto'), @@ -183,6 +190,8 @@ def get_plot(end_use, value_type='mean', savings_type='', change_type='', ), dcc.Tab(label='Upgrade Cost', value='upgrade_cost', children=[] ), + dcc.Tab(label='Others', value='others', children=[] + ), ]) ) ], className="mx-5 mt-5"), @@ -282,7 +291,13 @@ def download_csv(n_clicks): if not n_clicks: raise PreventUpdate() nonlocal download_csv_df - return dcc.send_bytes(download_csv_df.write_csv, "graph_data.csv") + bldg_ids = set(download_csv_df['building_id'].to_list()) - {0} + bdf = viz_data.upgrade2res['0'].filter(pl.col("building_id").is_in(set(bldg_ids))).select(char_cols) + if len(bdf) > 0: + combined_df = download_csv_df.join(bdf, on="building_id", how="left") + return dcc.send_bytes(combined_df.write_csv, "graph_data.csv") + else: + return dcc.send_bytes(download_csv_df.write_csv, "graph_data.csv") @app.callback( Output("download-chars-csv", "data"), @@ -301,7 +316,7 @@ def download_char(n_clicks, bldg_id, bldg_options, bldg_options2, chk_chars): else: bldg_ids = [int(bldg_id)] if bldg_id else [int(b) for b in bldg_options] bldg_ids = [int(b) for b in bldg_ids] - bdf = viz_data.upgrade2res[0].filter(pl.col("building_id").is_in(set(bldg_ids))).select(char_cols) + bdf = viz_data.upgrade2res['0'].filter(pl.col("building_id").is_in(set(bldg_ids))).select(char_cols) return dcc.send_bytes(bdf.write_csv, f"chars_{n_clicks}.csv") def get_elligible_output_columns(category, fuel, resolution): @@ -310,7 +325,7 @@ def get_elligible_output_columns(category, fuel, resolution): elif category == 'water': elligible_cols = water_usage_cols if resolution == 'annual' else [] elif category == 'load': - elligible_cols = load_cols if resolution == 'annual' else [] + elligible_cols = load_cols elif category == 'peak': elligible_cols = peak_cols if resolution == 'annual' else [] elif category == 'unmet_hours': @@ -326,6 +341,8 @@ def get_elligible_output_columns(category, fuel, resolution): viz_data.get_emissions_cols(resolution=resolution) elif category == 'upgrade_cost': elligible_cols = cost_cols if resolution == 'annual' else [] + elif category == 'others': + elligible_cols = other_cols if resolution == 'annual' else [] else: raise ValueError(f"Invalid tab {category}") return elligible_cols @@ -444,18 +461,18 @@ def bldg_selection(current_bldg, current_options, current_options2, chk_lock, reset_click): if sync_upgrade and change_type: - valid_bldgs = set(viz_data.chng2bldg[(int(sync_upgrade), change_type)]) + valid_bldgs = set(viz_data.chng2bldg[(sync_upgrade, change_type)]) elif report_upgrade and change_type: - valid_bldgs = set(viz_data.chng2bldg[(int(report_upgrade), change_type)]) + valid_bldgs = set(viz_data.chng2bldg[(report_upgrade, change_type)]) buildings = get_buildings(report_upgrade) valid_bldgs = set(buildings).intersection(valid_bldgs) elif report_upgrade: buildings = get_buildings(report_upgrade) valid_bldgs = set(buildings) else: - valid_bldgs = set(viz_data.upgrade2res[0]['building_id'].to_list()) + valid_bldgs = set(viz_data.upgrade2res['0']['building_id'].to_list()) - base_res = upgrade2res[0].filter(pl.col("building_id").is_in(valid_bldgs)) + base_res = upgrade2res['0'].filter(pl.col("building_id").is_in(valid_bldgs)) valid_bldgs = list(base_res['building_id'].to_list()) if "btn-reset" != ctx.triggered_id and current_options and len(current_options) > 0 and chk_lock: @@ -470,7 +487,7 @@ def bldg_selection(current_bldg, current_options, current_options2, chk_lock, def get_char_choices(char): if char: - res0 = upgrade2res[0] + res0 = upgrade2res['0'] unique_choices = sorted(list(res0[char].unique())) return unique_choices, unique_choices[0] else: @@ -610,7 +627,7 @@ def show_opt_report(bldg_id, bldg_options, bldg_options2, report_upgrade, chk_op bldg_list = [int(bldg_id)] if bldg_id else [int(b) for b in bldg_options2] else: bldg_list = [int(bldg_id)] if bldg_id else [int(b) for b in bldg_options] - run_obj = viz_data.run_obj(int(report_upgrade)) + run_obj = viz_data.run_obj(report_upgrade) applied_options = run_obj.report.get_applied_options(upgrade_id=int(report_upgrade), bldg_ids=bldg_list, include_base_opt=True) @@ -654,7 +671,7 @@ def get_accord_item(opt_name): final_report = dmc.Accordion([get_accord_item(opt_name) for opt_name in reduced_set], multiple=True) else: final_report = ["No option got applied to the selected building(s)."] - up_name = upgrade2name[int(report_upgrade)] + up_name = upgrade2name[report_upgrade] return f"Options applied in {up_name}", final_report, dict(bldg_list_dict) @app.callback( @@ -680,7 +697,7 @@ def show_enduse_report(report_upgrade, bldg_id, bldg_options, bldg_options2, end bldg_list = [int(bldg_id)] if bldg_id else [int(b) for b in bldg_options] # print(bldg_list) - run_obj = viz_data.run_obj(int(report_upgrade)) + run_obj = viz_data.run_obj(report_upgrade) dict_changed_enduses = run_obj.report.get_enduses_buildings_map_by_change(upgrade_id=int(report_upgrade), change_type=enduse_change_type, bldg_list=bldg_list) @@ -864,7 +881,7 @@ def main(): table_name=table_name, include_monthly=include_monthly, upgrades_selection_str=upgrades_selection) - app.run_server(debug=False, port=8005) + app.run_server(debug=False, port=8006) if __name__ == '__main__': diff --git a/buildstock_query/tools/upgrades_visualizer/viz_data.py b/buildstock_query/tools/upgrades_visualizer/viz_data.py index 76a1b1a..db0b175 100644 --- a/buildstock_query/tools/upgrades_visualizer/viz_data.py +++ b/buildstock_query/tools/upgrades_visualizer/viz_data.py @@ -3,6 +3,7 @@ import polars as pl from buildstock_query.tools.upgrades_visualizer.plot_utils import PlotParams from typing import Union +from typing import Literal import datetime num2month = {1: "January", 2: "February", 3: "March", 4: "April", @@ -17,10 +18,10 @@ def __init__(self, opt_sat_path: str, db_name: str, run: Union[str, tuple[str, str]], workgroup: str = 'largeee', - buildstock_type: str = 'resstock', + buildstock_type: Literal['resstock', 'comstock'] = 'resstock', skip_init: bool = False, include_monthly: bool = True, - upgrades_selection: set = set()): + upgrades_selection: set[str] = set()): if isinstance(run, tuple): # Allows for separate baseline and upgrade runs # In this case, run[0] is the baseline run and run[1] is the upgrade run @@ -50,15 +51,14 @@ def __init__(self, opt_sat_path: str, def initialize(self): available_upgrades = self.main_run.get_available_upgrades() - available_upgrades = [int(u) for u in available_upgrades] if not self.upgrades_selection: self.upgrades_selection = set(available_upgrades) if (unavailable_upgrades := self.upgrades_selection - set(available_upgrades)): raise ValueError(f"Upgrades {unavailable_upgrades} is not available in the run") available_upgrades = self.upgrades_selection self.report = pl.from_pandas(self.main_run.report.get_success_report(), include_index=True) - self.available_upgrades = list(set([int(u) for u in available_upgrades]) - {0}) - self.upgrade2name = {0: "Upgrade 0: Baseline"} + self.available_upgrades = list(set([str(u) for u in available_upgrades]) - {'0'}) + self.upgrade2name = {'0': "Upgrade 0: Baseline"} if self.available_upgrades: upgrade_names = self.main_run.get_upgrade_names() self.upgrade2name |= upgrade_names @@ -70,14 +70,14 @@ def initialize(self): self.init_monthly_results(self.metadata_df) self.all_upgrade_plotting_df = None - def run_obj(self, upgrade: int) -> BuildStockQuery: - if upgrade == 0 and self.baseline_run is not None: + def run_obj(self, upgrade: str) -> BuildStockQuery: + if upgrade == '0' and self.baseline_run is not None: return self.baseline_run return self.main_run def get_change2bldgs(self): - change_types = ["any", "no-chng", "bad-chng", "ok-chng", "true-bad-chng", "true-ok-chng"] - chng2bldg = {} + change_types = ("any", "no-chng", "bad-chng", "ok-chng", "true-bad-chng", "true-ok-chng") + chng2bldg: dict[tuple[str, str], list[int]] = {} for chng in change_types: for upgrade in self.available_upgrades: print(f"Getting buildings for {upgrade} and {chng}") @@ -85,8 +85,8 @@ def get_change2bldgs(self): change_type=chng) return chng2bldg - def _get_results_csv_clean(self, upgrade: int): - if upgrade == 0: + def _get_results_csv_clean(self, upgrade: str): + if upgrade == '0': res_df = pl.read_parquet(self.run_obj(upgrade)._download_results_csv()) else: res_df = pl.read_parquet(self.run_obj(upgrade)._download_upgrades_csv(upgrade_id=upgrade)) @@ -98,29 +98,30 @@ def _get_results_csv_clean(self, upgrade: int): res_df = res_df.rename({'upgrade_costs.upgrade_cost_usd': 'upgrade_cost_total_usd'}) res_df = res_df.rename({x: x.split('.')[1] for x in res_df.columns if '.' in x}) res_df = res_df.with_columns(upgrade=pl.lit(upgrade)) + res_df = res_df.with_columns(count=pl.lit(1)) res_df = res_df.with_columns(month=pl.lit('All')) self.run_obj(upgrade).save_cache() return res_df def _get_metadata_df(self): - bs_res_df = pl.read_parquet(self.run_obj(0)._download_results_csv()) + bs_res_df = pl.read_parquet(self.run_obj('0')._download_results_csv()) metadata_cols = [c for c in bs_res_df.columns if c.startswith(self.main_run._char_prefix)] metadata_df = bs_res_df.select([self.main_run.building_id_column_name] + metadata_cols) metadata_df = metadata_df.rename({x: x.split('.')[1] for x in metadata_df.columns if '.' in x}) return metadata_df def init_annual_results(self): - self.bs_res_df = self._get_results_csv_clean(0) + self.bs_res_df = self._get_results_csv_clean('0') self.metadata_df = self._get_metadata_df() self.sample_weight = self.metadata_df['sample_weight'][0] - self.upgrade2res = {0: self.bs_res_df} + self.upgrade2res = {'0': self.bs_res_df} for upgrade in self.available_upgrades: print(f"Getting up_csv for {upgrade}") up_csv = self._get_results_csv_clean(upgrade) up_csv = up_csv.join(self.metadata_df, on='building_id') self.upgrade2res[upgrade] = up_csv - def _get_ts_enduse_cols(self, upgrade): + def _get_ts_enduse_cols(self, upgrade: str): rub_obj = self.run_obj(upgrade) assert rub_obj.ts_table is not None, "No timeseries table found" all_cols = [str(col.name) for col in rub_obj.get_cols(table=rub_obj.ts_table)] @@ -128,8 +129,8 @@ def _get_ts_enduse_cols(self, upgrade): return list(enduse_cols) def init_monthly_results(self, metadata_df): - self.upgrade2res_monthly: dict[int, pl.DataFrame] = {} - for upgrade in [0] + self.available_upgrades: + self.upgrade2res_monthly: dict[str, pl.DataFrame] = {} + for upgrade in ['0'] + self.available_upgrades: ts_cols = self._get_ts_enduse_cols(upgrade) print(f"Getting monthly results for {upgrade}") run_obj = self.run_obj(upgrade) @@ -172,7 +173,7 @@ def init_monthly_results(self, metadata_df): self.upgrade2res_monthly[upgrade] = monthly_df def get_values(self, - upgrade: int, + upgrade: str, params: PlotParams, ) -> pl.DataFrame: df = self.upgrade2res[upgrade] if params.resolution == 'annual' else self.upgrade2res_monthly[upgrade] @@ -187,14 +188,14 @@ def get_values(self, other_cols += ['month'] return df.select(other_cols + value_cols) - def get_plotting_df(self, upgrade: int, + def get_plotting_df(self, upgrade: str, params: PlotParams,): - baseline_df = self.get_values(upgrade=0, params=params) + baseline_df = self.get_values(upgrade='0', params=params) baseline_df = baseline_df.select("building_id", "month", pl.col("value").alias("baseline_value")) up_df = self.get_values(upgrade=upgrade, params=params) if params.change_type: - chng_upgrade = int(params.sync_upgrade) if params.sync_upgrade else int(upgrade) if upgrade else 0 - if chng_upgrade and chng_upgrade > 0: + chng_upgrade = str(params.sync_upgrade) if params.sync_upgrade else str(upgrade) if upgrade else '0' + if chng_upgrade and chng_upgrade != '0': change_bldg_list = self.chng2bldg[(chng_upgrade, params.change_type)] else: change_bldg_list = [] @@ -224,7 +225,7 @@ def get_all_cols(self, resolution: str) -> list[str]: if resolution == 'annual': return self.bs_res_df.columns else: - return self.upgrade2res_monthly[0].columns + return self.upgrade2res_monthly['0'].columns def get_all_end_use_cols(self, resolution: str) -> list[str]: all_cols = self.get_all_cols(resolution=resolution) @@ -271,7 +272,7 @@ def get_plotting_df_all_upgrades(self, params: PlotParams, ) -> pl.DataFrame: df_list = [] - for upgrade in [0] + self.available_upgrades: + for upgrade in ['0'] + self.available_upgrades: df = self.get_plotting_df(upgrade=upgrade, params=params) df = df.with_columns(pl.lit(upgrade).alias("upgrade")) df_list.append(df) diff --git a/example_usage/advanced_usage.ipynb b/example_usage/advanced_usage.ipynb index d3d7a7a..3940188 100644 --- a/example_usage/advanced_usage.ipynb +++ b/example_usage/advanced_usage.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "c7608e32", "metadata": {}, "outputs": [], @@ -14,7 +14,25 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, + "id": "98e25ebd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "hellodf\n" + ] + } + ], + "source": [ + "print(\"hellodf\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, "id": "17701803", "metadata": {}, "outputs": [ @@ -22,33 +40,91 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:buildstock_query.query_core:Loading res_test_03_2018_10k_20220607 ...\n", - "INFO:buildstock_query.query_core:14 queries cache read from res_test_03_2018_10k_20220607_query_cache.pkl.\n", - "INFO:buildstock_query.query_core:14 queries cache is updated.\n" + "INFO:buildstock_query.query_core:Loading res_n250_hrly_v19 ...\n", + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n", + "INFO:buildstock_query.main:Getting Success counts...\n", + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n", + "INFO:buildstock_query.report_query:Checking integrity with ts_tables ...\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " fail unapplicable success Sum Applied % no-chng bad-chng \\\n", + "upgrade \n", + "0 14 0 236 250 0.0 0 0 \n", + "1 0 125 111 236 47.0 0 0 \n", + "2 10 185 41 236 21.6 9 1 \n", + "3 0 0 236 236 100.0 0 0 \n", + "4 0 236 0 236 0.0 0 0 \n", + "5 236 0 0 236 100.0 0 0 \n", + "6 0 0 236 236 100.0 0 0 \n", + "7 22 214 0 236 9.3 0 0 \n", + "8 0 194 42 236 17.8 0 1 \n", + "\n", + " ok-chng true-bad-chng true-ok-chng null any no-chng % \\\n", + "upgrade \n", + "0 0 0 0 0 0 0.0 \n", + "1 111 0 111 0 111 0.0 \n", + "2 31 1 31 0 41 22.0 \n", + "3 236 0 236 0 236 0.0 \n", + "4 0 0 0 0 0 NaN \n", + "5 0 0 0 0 0 NaN \n", + "6 236 0 236 0 236 0.0 \n", + "7 0 0 0 0 0 NaN \n", + "8 41 1 41 0 42 0.0 \n", + "\n", + " bad-chng % ok-chng % true-ok-chng % true-bad-chng % \n", + "upgrade \n", + "0 0.0 0.0 0.0 0.0 \n", + "1 0.0 100.0 100.0 0.0 \n", + "2 2.4 75.6 75.6 2.4 \n", + "3 0.0 100.0 100.0 0.0 \n", + "4 NaN NaN NaN NaN \n", + "5 NaN NaN NaN NaN \n", + "6 0.0 100.0 100.0 0.0 \n", + "7 NaN NaN NaN NaN \n", + "8 2.4 97.6 97.6 2.4 \n", + "\u001b[92mAnnual and timeseries tables are verified to have the same number of buildings.\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:buildstock_query.query_core:12 queries cache saved to .bsq_cache/res_n250_hrly_v19_query_cache.pkl\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[92mAll buildings are verified to have the same number of (8760) timeseries rows.\u001b[0m\n" ] } ], "source": [ - "my_run = BuildStockQuery(db_name='euss-tests',\n", - " table_name='res_test_03_2018_10k_20220607',\n", + "my_run = BuildStockQuery(db_name='buildstock_testing',\n", + " table_name='res_n250_hrly_v19',\n", " workgroup='eulp',\n", " buildstock_type='resstock',\n", - " skip_reports=True)" + " skip_reports=False)" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "id": "940c01be", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'SELECT res_test_03_2018_10k_20220607_baseline.building_id \\nFROM res_test_03_2018_10k_20220607_baseline'" + "'SELECT res_n250_hrly_v19_baseline.building_id \\nFROM res_n250_hrly_v19_baseline'" ] }, - "execution_count": 3, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -60,7 +136,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "id": "afb0bdf2", "metadata": {}, "outputs": [ @@ -68,15 +144,13 @@ "name": "stdout", "output_type": "stream", "text": [ - " simple_bldg_type sample_count units_count \\\n", - "0 MF 1635 2.177363e+07 \n", - "1 MH 703 9.361996e+06 \n", - "2 SF 7651 1.018899e+08 \n", + " simple_bldg_type sample_count units_count \\\n", + "0 MF 30 0.000056 \n", + "1 SF 206 0.000387 \n", "\n", " fuel_use_electricity_total_m_btu \n", - "0 5.484767e+08 \n", - "1 4.506122e+08 \n", - "2 4.623009e+09 \n" + "0 0.001084 \n", + "1 0.012372 \n" ] } ], @@ -84,7 +158,7 @@ "building_type_map = {\"Mobile Home\": \"MH\", \"Single-Family Detached\": \"SF\",\n", " \"Single-Family Attached\": \"SF\", \"Multi-Family with 2 - 4 Units\": \"MF\",\n", " \"Multi-Family with 5+ Units\": \"MF\",}\n", - "bldg_col = my_run.get_column('build_existing_model.geometry_building_type_recs')\n", + "bldg_col = my_run._get_column('build_existing_model.geometry_building_type_recs')\n", "simple_bldg_col = MappedColumn(bsq=my_run, name='simple_bldg_type', mapping_dict=building_type_map,\n", " key=bldg_col)\n", "mapped_agg_query = my_run.agg.aggregate_annual(enduses=['fuel_use_electricity_total_m_btu'],\n", @@ -103,8 +177,8 @@ "name": "stdout", "output_type": "stream", "text": [ - " sample_count units_count dryer_impact\n", - "0 9989 1.330256e+08 5.397863e+07\n" + " sample_count units_count dryer_impact\n", + "0 236 0.000443 0.00021\n" ] } ], @@ -116,7 +190,7 @@ " \"Electric 100% Usage\": 1 * 0.5,\n", " \"Electric 80% Usage\": 0.8 * 0.5,\n", " \"None\": 0}\n", - "bldg_col = my_run.get_column('build_existing_model.clothes_dryer')\n", + "bldg_col = my_run._get_column('build_existing_model.clothes_dryer')\n", "impact_col = MappedColumn(bsq=my_run, name='dryer_impact', mapping_dict=dryer_co2_impact,\n", " key=bldg_col)\n", "mapped_agg_query = my_run.agg.aggregate_annual(enduses=[impact_col],\n", @@ -126,7 +200,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "id": "5579f512", "metadata": {}, "outputs": [ @@ -134,9 +208,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "SELECT res_test_03_2018_10k_20220607_baseline.\"build_existing_model.geometry_building_type_recs\" AS geometry_building_type_recs, sum(1) AS sample_count, sum(res_test_03_2018_10k_20220607_baseline.\"build_existing_model.sample_weight\") AS units_count, sum(res_test_03_2018_10k_20220607_baseline.\"report_simulation_output.fuel_use_electricity_total_m_btu\" * res_test_03_2018_10k_20220607_baseline.\"build_existing_model.sample_weight\") AS fuel_use_electricity_total_m_btu \n", - "FROM res_test_03_2018_10k_20220607_baseline \n", - "WHERE res_test_03_2018_10k_20220607_baseline.completed_status = 'Success' GROUP BY 1 ORDER BY 1\n" + "SELECT res_n250_hrly_v19_baseline.\"build_existing_model.geometry_building_type_recs\" AS geometry_building_type_recs, sum(1) AS sample_count, sum(res_n250_hrly_v19_baseline.\"build_existing_model.sample_weight\") AS units_count, sum(res_n250_hrly_v19_baseline.\"report_simulation_output.fuel_use_electricity_total_m_btu\" * res_n250_hrly_v19_baseline.\"build_existing_model.sample_weight\") AS fuel_use_electricity_total_m_btu \n", + "FROM res_n250_hrly_v19_baseline \n", + "WHERE res_n250_hrly_v19_baseline.completed_status = 'Success' GROUP BY 1 ORDER BY 1\n" ] } ], @@ -151,7 +225,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "id": "89404c1c", "metadata": {}, "outputs": [ @@ -185,76 +259,63 @@ " \n", " \n", " 0\n", - " Multi-Family with 5+ Units\n", - " 1189\n", - " 1.583416e+07\n", - " 4.099084e+08\n", + " Multi-Family with 2 - 4 Units\n", + " 6\n", + " 0.000011\n", + " 0.000219\n", " \n", " \n", " 1\n", - " Single-Family Attached\n", - " 530\n", - " 7.058119e+06\n", - " 2.094629e+08\n", + " Multi-Family with 5+ Units\n", + " 24\n", + " 0.000045\n", + " 0.000864\n", " \n", " \n", " 2\n", - " Single-Family Detached\n", - " 7121\n", - " 9.483182e+07\n", - " 4.413546e+09\n", + " Single-Family Attached\n", + " 3\n", + " 0.000006\n", + " 0.000114\n", " \n", " \n", " 3\n", - " Mobile Home\n", - " 703\n", - " 9.361996e+06\n", - " 4.506122e+08\n", - " \n", - " \n", - " 4\n", - " Multi-Family with 2 - 4 Units\n", - " 446\n", - " 5.939474e+06\n", - " 1.385683e+08\n", + " Single-Family Detached\n", + " 203\n", + " 0.000381\n", + " 0.012258\n", " \n", " \n", "\n", "" ], "text/plain": [ - " geometry_building_type_recs sample_count units_count \\\n", - "0 Multi-Family with 5+ Units 1189 1.583416e+07 \n", - "1 Single-Family Attached 530 7.058119e+06 \n", - "2 Single-Family Detached 7121 9.483182e+07 \n", - "3 Mobile Home 703 9.361996e+06 \n", - "4 Multi-Family with 2 - 4 Units 446 5.939474e+06 \n", + " geometry_building_type_recs sample_count units_count \\\n", + "0 Multi-Family with 2 - 4 Units 6 0.000011 \n", + "1 Multi-Family with 5+ Units 24 0.000045 \n", + "2 Single-Family Attached 3 0.000006 \n", + "3 Single-Family Detached 203 0.000381 \n", "\n", " fuel_use_electricity_total_m_btu \n", - "0 4.099084e+08 \n", - "1 2.094629e+08 \n", - "2 4.413546e+09 \n", - "3 4.506122e+08 \n", - "4 1.385683e+08 " + "0 0.000219 \n", + "1 0.000864 \n", + "2 0.000114 \n", + "3 0.012258 " ] }, - "execution_count": 11, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "baseline_agg = my_run.execute(\"\"\"\n", - "SELECT \"res_test_03_2018_10k_20220607_baseline\".\"build_existing_model.geometry_building_type_recs\" AS \"geometry_building_type_recs\", sum(1) AS \"sample_count\", sum(\"res_test_03_2018_10k_20220607_baseline\".\"build_existing_model.sample_weight\") AS \"units_count\", sum(\"res_test_03_2018_10k_20220607_baseline\".\"report_simulation_output.fuel_use_electricity_total_m_btu\" * \"res_test_03_2018_10k_20220607_baseline\".\"build_existing_model.sample_weight\") AS \"fuel_use_electricity_total_m_btu\" \n", - "FROM \"res_test_03_2018_10k_20220607_baseline\" \n", - "WHERE \"res_test_03_2018_10k_20220607_baseline\".\"completed_status\" = 'Success' GROUP BY 1\n", - "\"\"\")\n", + "baseline_agg = my_run.execute(baseline_agg_query)\n", "baseline_agg" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "id": "df0688ba", "metadata": {}, "outputs": [ @@ -262,9 +323,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "SELECT res_test_03_2018_10k_20220607_baseline.\"build_existing_model.geometry_building_type_recs\" AS geometry_building_type_recs, sum(1) AS sample_count, sum(res_test_03_2018_10k_20220607_baseline.\"build_existing_model.sample_weight\") AS units_count, sum(res_test_03_2018_10k_20220607_baseline.\"report_simulation_output.fuel_use_natural_gas_total_m_btu\" * res_test_03_2018_10k_20220607_baseline.\"build_existing_model.sample_weight\") AS fuel_use_natural_gas_total_m_btu \n", - "FROM res_test_03_2018_10k_20220607_baseline \n", - "WHERE res_test_03_2018_10k_20220607_baseline.completed_status = 'Success' GROUP BY 1 ORDER BY 1\n" + "SELECT res_n250_hrly_v19_baseline.\"build_existing_model.geometry_building_type_recs\" AS geometry_building_type_recs, sum(1) AS sample_count, sum(res_n250_hrly_v19_baseline.\"build_existing_model.sample_weight\") AS units_count, sum(res_n250_hrly_v19_baseline.\"report_simulation_output.fuel_use_natural_gas_total_m_btu\" * res_n250_hrly_v19_baseline.\"build_existing_model.sample_weight\") AS fuel_use_natural_gas_total_m_btu \n", + "FROM res_n250_hrly_v19_baseline \n", + "WHERE res_n250_hrly_v19_baseline.completed_status = 'Success' GROUP BY 1 ORDER BY 1\n" ] } ], @@ -277,7 +338,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "id": "4256cb11", "metadata": {}, "outputs": [ @@ -288,15 +349,30 @@ "1\n" ] }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:buildstock_query.query_core:Submitted queries[0] (CACHED)\n" + ] + }, { "data": { "text/plain": [ "{'submitted': 0, 'running': 0, 'pending': 2, 'completed': 0, 'failed': 0}" ] }, - "execution_count": 13, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n", + "INFO:buildstock_query.query_core:Submitted queries[1] (0ed33622-989f-44e5-b590-32493f804c37)\n" + ] } ], "source": [ @@ -307,17 +383,24 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "id": "9dd3cb02", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n" + ] + }, { "data": { "text/plain": [ - "{'submitted': 0, 'running': 0, 'pending': 2, 'completed': 0, 'failed': 0}" + "{'submitted': 2, 'running': 0, 'pending': 0, 'completed': 2, 'failed': 0}" ] }, - "execution_count": 14, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -328,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "id": "68f8b5b4", "metadata": {}, "outputs": [ @@ -336,14 +419,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:buildstock_query.query_core:{'submitted': 0, 'running': 0, 'pending': 2, 'completed': 0, 'failed': 0}\n", - "INFO:buildstock_query.query_core:{'submitted': 0, 'running': 0, 'pending': 2, 'completed': 0, 'failed': 0}\n", - "INFO:buildstock_query.query_core:Submitted queries[0] (e86299b8-442f-45c8-a132-d9fb2ee37b53)\n", - "INFO:buildstock_query.query_core:Submitted queries[1] (629084ff-5c02-43f6-8694-ed805e5024fc)\n", "INFO:buildstock_query.query_core:{'submitted': 2, 'running': 0, 'pending': 0, 'completed': 2, 'failed': 0}\n", "INFO:buildstock_query.query_core:Batch query completed. \n", - "INFO:buildstock_query.query_core:Got result from Query [0] (e86299b8-442f-45c8-a132-d9fb2ee37b53)\n", - "INFO:buildstock_query.query_core:Got result from Query [1] (629084ff-5c02-43f6-8694-ed805e5024fc)\n", + "INFO:buildstock_query.query_core:Got result from Query [0] (CACHED)\n", + "INFO:buildstock_query.query_core:Got result from Query [1] (0ed33622-989f-44e5-b590-32493f804c37)\n", + "INFO:buildstock_query.query_core:0ed33622-989f-44e5-b590-32493f804c37 cost 0.0 GB ($0.0). Session total: 0.0 GB ($0.0)\n", "INFO:buildstock_query.query_core:Concatenating the results.\n" ] }, @@ -379,137 +459,113 @@ " \n", " \n", " 0\n", - " Mobile Home\n", - " 703\n", - " 9.361996e+06\n", - " 4.506122e+08\n", - " 0\n", - " NaN\n", - " \n", - " \n", - " 1\n", " Multi-Family with 2 - 4 Units\n", - " 446\n", - " 5.939474e+06\n", - " 1.385683e+08\n", + " 6\n", + " 0.000011\n", + " 0.000219\n", " 0\n", " NaN\n", " \n", " \n", - " 2\n", + " 1\n", " Multi-Family with 5+ Units\n", - " 1189\n", - " 1.583416e+07\n", - " 4.099084e+08\n", + " 24\n", + " 0.000045\n", + " 0.000864\n", " 0\n", " NaN\n", " \n", " \n", - " 3\n", + " 2\n", " Single-Family Attached\n", - " 530\n", - " 7.058119e+06\n", - " 2.094629e+08\n", + " 3\n", + " 0.000006\n", + " 0.000114\n", " 0\n", " NaN\n", " \n", " \n", - " 4\n", + " 3\n", " Single-Family Detached\n", - " 7121\n", - " 9.483182e+07\n", - " 4.413546e+09\n", + " 203\n", + " 0.000381\n", + " 0.012258\n", " 0\n", " NaN\n", " \n", " \n", " 0\n", - " Mobile Home\n", - " 703\n", - " 9.361996e+06\n", - " NaN\n", - " 1\n", - " 1.467286e+08\n", - " \n", - " \n", - " 1\n", " Multi-Family with 2 - 4 Units\n", - " 446\n", - " 5.939474e+06\n", + " 6\n", + " 0.000011\n", " NaN\n", " 1\n", - " 3.638842e+08\n", + " 0.001069\n", " \n", " \n", - " 2\n", + " 1\n", " Multi-Family with 5+ Units\n", - " 1189\n", - " 1.583416e+07\n", + " 24\n", + " 0.000045\n", " NaN\n", " 1\n", - " 2.137026e+08\n", + " 0.000719\n", " \n", " \n", - " 3\n", + " 2\n", " Single-Family Attached\n", - " 530\n", - " 7.058119e+06\n", + " 3\n", + " 0.000006\n", " NaN\n", " 1\n", - " 3.356744e+08\n", + " 0.000373\n", " \n", " \n", - " 4\n", + " 3\n", " Single-Family Detached\n", - " 7121\n", - " 9.483182e+07\n", + " 203\n", + " 0.000381\n", " NaN\n", " 1\n", - " 6.115350e+09\n", + " 0.027768\n", " \n", " \n", "\n", "" ], "text/plain": [ - " geometry_building_type_recs sample_count units_count \\\n", - "0 Mobile Home 703 9.361996e+06 \n", - "1 Multi-Family with 2 - 4 Units 446 5.939474e+06 \n", - "2 Multi-Family with 5+ Units 1189 1.583416e+07 \n", - "3 Single-Family Attached 530 7.058119e+06 \n", - "4 Single-Family Detached 7121 9.483182e+07 \n", - "0 Mobile Home 703 9.361996e+06 \n", - "1 Multi-Family with 2 - 4 Units 446 5.939474e+06 \n", - "2 Multi-Family with 5+ Units 1189 1.583416e+07 \n", - "3 Single-Family Attached 530 7.058119e+06 \n", - "4 Single-Family Detached 7121 9.483182e+07 \n", + " geometry_building_type_recs sample_count units_count \\\n", + "0 Multi-Family with 2 - 4 Units 6 0.000011 \n", + "1 Multi-Family with 5+ Units 24 0.000045 \n", + "2 Single-Family Attached 3 0.000006 \n", + "3 Single-Family Detached 203 0.000381 \n", + "0 Multi-Family with 2 - 4 Units 6 0.000011 \n", + "1 Multi-Family with 5+ Units 24 0.000045 \n", + "2 Single-Family Attached 3 0.000006 \n", + "3 Single-Family Detached 203 0.000381 \n", "\n", " fuel_use_electricity_total_m_btu query_id \\\n", - "0 4.506122e+08 0 \n", - "1 1.385683e+08 0 \n", - "2 4.099084e+08 0 \n", - "3 2.094629e+08 0 \n", - "4 4.413546e+09 0 \n", + "0 0.000219 0 \n", + "1 0.000864 0 \n", + "2 0.000114 0 \n", + "3 0.012258 0 \n", "0 NaN 1 \n", "1 NaN 1 \n", "2 NaN 1 \n", "3 NaN 1 \n", - "4 NaN 1 \n", "\n", " fuel_use_natural_gas_total_m_btu \n", "0 NaN \n", "1 NaN \n", "2 NaN \n", "3 NaN \n", - "4 NaN \n", - "0 1.467286e+08 \n", - "1 3.638842e+08 \n", - "2 2.137026e+08 \n", - "3 3.356744e+08 \n", - "4 6.115350e+09 " + "0 0.001069 \n", + "1 0.000719 \n", + "2 0.000373 \n", + "3 0.027768 " ] }, - "execution_count": 15, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -521,17 +577,17 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "id": "eae0cd83", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'s3://eulp/athena_query_results/6e3daed0-a652-47f5-8e61-5d919b46740a.csv'" + "'s3://eulp/athena_query_results/cc974c2f-98fd-4657-bc21-45663f30beb3.csv'" ] }, - "execution_count": 16, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -551,7 +607,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "id": "3f596274", "metadata": {}, "outputs": [ @@ -586,404 +642,356 @@ " \n", " 0\n", " AL\n", - " 173\n", - " 2.303877e+06\n", - " 2.746831e+07\n", + " 2\n", + " 0.000004\n", + " 0.000074\n", " \n", " \n", " 1\n", " AR\n", - " 100\n", - " 1.331721e+06\n", - " 3.919417e+07\n", + " 1\n", + " 0.000002\n", + " 0.000065\n", " \n", " \n", " 2\n", " AZ\n", - " 217\n", - " 2.889834e+06\n", - " 3.297230e+07\n", + " 6\n", + " 0.000011\n", + " 0.000107\n", " \n", " \n", " 3\n", " CA\n", - " 1051\n", - " 1.399638e+07\n", - " 4.360101e+08\n", + " 23\n", + " 0.000043\n", + " 0.001449\n", " \n", " \n", " 4\n", " CO\n", - " 171\n", - " 2.277242e+06\n", - " 1.805907e+08\n", + " 4\n", + " 0.000008\n", + " 0.000704\n", " \n", " \n", " 5\n", " CT\n", - " 115\n", - " 1.531479e+06\n", - " 5.755829e+07\n", + " 3\n", + " 0.000006\n", + " 0.000296\n", " \n", " \n", " 6\n", " DC\n", - " 22\n", - " 2.929785e+05\n", - " 1.760066e+07\n", + " 1\n", + " 0.000002\n", + " 0.000000\n", " \n", " \n", " 7\n", " DE\n", - " 32\n", - " 4.261506e+05\n", - " 2.158285e+07\n", + " 1\n", + " 0.000002\n", + " 0.000267\n", " \n", " \n", " 8\n", " FL\n", - " 689\n", - " 9.175555e+06\n", - " 1.611552e+07\n", + " 18\n", + " 0.000034\n", + " 0.000110\n", " \n", " \n", " 9\n", " GA\n", - " 308\n", - " 4.101699e+06\n", - " 1.151046e+08\n", + " 5\n", + " 0.000009\n", + " 0.000410\n", " \n", " \n", " 10\n", " IA\n", - " 100\n", - " 1.331721e+06\n", - " 1.534700e+08\n", + " 1\n", + " 0.000002\n", + " 0.000284\n", " \n", " \n", " 11\n", " ID\n", - " 51\n", - " 6.791775e+05\n", - " 3.877768e+07\n", + " 1\n", + " 0.000002\n", + " 0.000129\n", " \n", " \n", " 12\n", " IL\n", - " 400\n", - " 5.326882e+06\n", - " 6.126589e+08\n", + " 11\n", + " 0.000021\n", + " 0.001603\n", " \n", " \n", " 13\n", " IN\n", - " 216\n", - " 2.876516e+06\n", - " 2.677683e+08\n", + " 2\n", + " 0.000004\n", + " 0.000514\n", " \n", " \n", " 14\n", " KS\n", - " 83\n", - " 1.105328e+06\n", - " 1.317082e+08\n", + " 2\n", + " 0.000004\n", + " 0.000334\n", " \n", " \n", " 15\n", " KY\n", - " 143\n", - " 1.904360e+06\n", - " 6.927400e+07\n", + " 1\n", + " 0.000002\n", + " 0.000140\n", " \n", " \n", " 16\n", " LA\n", - " 150\n", - " 1.997581e+06\n", - " 3.462422e+07\n", + " 4\n", + " 0.000008\n", + " 0.000437\n", " \n", " \n", " 17\n", " MA\n", - " 216\n", - " 2.876516e+06\n", - " 2.187055e+08\n", + " 10\n", + " 0.000019\n", + " 0.001640\n", " \n", " \n", " 18\n", " MD\n", - " 184\n", - " 2.450366e+06\n", - " 1.111341e+08\n", + " 5\n", + " 0.000009\n", + " 0.000765\n", " \n", " \n", " 19\n", " ME\n", - " 57\n", - " 7.590807e+05\n", - " 2.920716e+06\n", + " 2\n", + " 0.000004\n", + " 0.000028\n", " \n", " \n", " 20\n", " MI\n", - " 347\n", - " 4.621070e+06\n", - " 5.414411e+08\n", + " 8\n", + " 0.000015\n", + " 0.002145\n", " \n", " \n", " 21\n", " MN\n", - " 179\n", - " 2.383780e+06\n", - " 2.770797e+08\n", + " 7\n", + " 0.000013\n", + " 0.002592\n", " \n", " \n", " 22\n", " MO\n", - " 196\n", - " 2.610172e+06\n", - " 1.730022e+08\n", + " 3\n", + " 0.000006\n", + " 0.000688\n", " \n", " \n", " 23\n", - " MS\n", - " 100\n", - " 1.331721e+06\n", - " 2.096886e+07\n", - " \n", - " \n", - " 24\n", " MT\n", - " 35\n", - " 4.661022e+05\n", - " 5.312573e+07\n", + " 2\n", + " 0.000004\n", + " 0.000287\n", " \n", " \n", - " 25\n", + " 24\n", " NC\n", - " 334\n", - " 4.447947e+06\n", - " 7.374580e+07\n", + " 5\n", + " 0.000009\n", + " 0.000371\n", " \n", " \n", - " 26\n", + " 25\n", " ND\n", - " 21\n", - " 2.796613e+05\n", - " 3.853286e+07\n", + " 1\n", + " 0.000002\n", + " 0.000179\n", " \n", " \n", - " 27\n", + " 26\n", " NE\n", - " 49\n", - " 6.525431e+05\n", - " 8.051306e+07\n", + " 1\n", + " 0.000002\n", + " 0.000192\n", " \n", " \n", - " 28\n", + " 27\n", " NH\n", - " 49\n", - " 6.525431e+05\n", - " 1.012797e+07\n", + " 1\n", + " 0.000002\n", + " 0.000164\n", " \n", " \n", - " 29\n", + " 28\n", " NJ\n", - " 272\n", - " 3.622280e+06\n", - " 3.732421e+08\n", + " 11\n", + " 0.000021\n", + " 0.001999\n", " \n", " \n", - " 30\n", + " 29\n", " NM\n", - " 73\n", - " 9.721560e+05\n", - " 5.857340e+07\n", + " 1\n", + " 0.000002\n", + " 0.000102\n", " \n", " \n", - " 31\n", + " 30\n", " NV\n", - " 91\n", - " 1.211866e+06\n", - " 3.558269e+07\n", + " 3\n", + " 0.000006\n", + " 0.000188\n", " \n", " \n", - " 32\n", + " 31\n", " NY\n", - " 619\n", - " 8.243350e+06\n", - " 6.678062e+08\n", + " 21\n", + " 0.000039\n", + " 0.002663\n", " \n", " \n", - " 33\n", + " 32\n", " OH\n", - " 385\n", - " 5.127124e+06\n", - " 5.512474e+08\n", + " 9\n", + " 0.000017\n", + " 0.002766\n", " \n", " \n", - " 34\n", + " 33\n", " OK\n", - " 125\n", - " 1.664651e+06\n", - " 1.029016e+08\n", + " 3\n", + " 0.000006\n", + " 0.000370\n", " \n", " \n", - " 35\n", + " 34\n", " OR\n", - " 130\n", - " 1.731237e+06\n", - " 6.487875e+07\n", + " 2\n", + " 0.000004\n", + " 0.000337\n", " \n", " \n", - " 36\n", + " 35\n", " PA\n", - " 425\n", - " 5.659812e+06\n", - " 4.202414e+08\n", + " 12\n", + " 0.000023\n", + " 0.001595\n", " \n", " \n", - " 37\n", + " 36\n", " RI\n", - " 36\n", - " 4.794194e+05\n", - " 3.129952e+07\n", + " 1\n", + " 0.000002\n", + " 0.000203\n", " \n", " \n", - " 38\n", + " 37\n", " SC\n", - " 165\n", - " 2.197339e+06\n", - " 1.790657e+07\n", - " \n", - " \n", - " 39\n", - " SD\n", - " 22\n", - " 2.929785e+05\n", - " 3.252329e+07\n", + " 6\n", + " 0.000011\n", + " 0.000091\n", " \n", " \n", - " 40\n", + " 38\n", " TN\n", - " 216\n", - " 2.876516e+06\n", - " 6.512873e+07\n", + " 5\n", + " 0.000009\n", + " 0.000342\n", " \n", " \n", - " 41\n", + " 39\n", " TX\n", - " 768\n", - " 1.022761e+07\n", - " 2.248134e+08\n", + " 18\n", + " 0.000034\n", + " 0.000844\n", " \n", " \n", - " 42\n", + " 40\n", " UT\n", - " 75\n", - " 9.987904e+05\n", - " 7.601536e+07\n", + " 2\n", + " 0.000004\n", + " 0.000441\n", " \n", " \n", - " 43\n", - " VA\n", - " 261\n", - " 3.475791e+06\n", - " 1.028949e+08\n", - " \n", - " \n", - " 44\n", - " VT\n", - " 24\n", - " 3.196129e+05\n", - " 7.980043e+06\n", - " \n", - " \n", - " 45\n", + " 41\n", " WA\n", - " 221\n", - " 2.943102e+06\n", - " 1.243266e+08\n", + " 6\n", + " 0.000011\n", + " 0.000880\n", " \n", " \n", - " 46\n", + " 42\n", " WI\n", - " 204\n", - " 2.716710e+06\n", - " 2.759891e+08\n", - " \n", - " \n", - " 47\n", - " WV\n", - " 67\n", - " 8.922528e+05\n", - " 5.069070e+07\n", - " \n", - " \n", - " 48\n", - " WY\n", - " 22\n", - " 2.929785e+05\n", - " 3.752161e+07\n", + " 5\n", + " 0.000009\n", + " 0.001135\n", " \n", " \n", "\n", "" ], "text/plain": [ - " state sample_count units_count fuel_use_natural_gas_total_m_btu\n", - "0 AL 173 2.303877e+06 2.746831e+07\n", - "1 AR 100 1.331721e+06 3.919417e+07\n", - "2 AZ 217 2.889834e+06 3.297230e+07\n", - "3 CA 1051 1.399638e+07 4.360101e+08\n", - "4 CO 171 2.277242e+06 1.805907e+08\n", - "5 CT 115 1.531479e+06 5.755829e+07\n", - "6 DC 22 2.929785e+05 1.760066e+07\n", - "7 DE 32 4.261506e+05 2.158285e+07\n", - "8 FL 689 9.175555e+06 1.611552e+07\n", - "9 GA 308 4.101699e+06 1.151046e+08\n", - "10 IA 100 1.331721e+06 1.534700e+08\n", - "11 ID 51 6.791775e+05 3.877768e+07\n", - "12 IL 400 5.326882e+06 6.126589e+08\n", - "13 IN 216 2.876516e+06 2.677683e+08\n", - "14 KS 83 1.105328e+06 1.317082e+08\n", - "15 KY 143 1.904360e+06 6.927400e+07\n", - "16 LA 150 1.997581e+06 3.462422e+07\n", - "17 MA 216 2.876516e+06 2.187055e+08\n", - "18 MD 184 2.450366e+06 1.111341e+08\n", - "19 ME 57 7.590807e+05 2.920716e+06\n", - "20 MI 347 4.621070e+06 5.414411e+08\n", - "21 MN 179 2.383780e+06 2.770797e+08\n", - "22 MO 196 2.610172e+06 1.730022e+08\n", - "23 MS 100 1.331721e+06 2.096886e+07\n", - "24 MT 35 4.661022e+05 5.312573e+07\n", - "25 NC 334 4.447947e+06 7.374580e+07\n", - "26 ND 21 2.796613e+05 3.853286e+07\n", - "27 NE 49 6.525431e+05 8.051306e+07\n", - "28 NH 49 6.525431e+05 1.012797e+07\n", - "29 NJ 272 3.622280e+06 3.732421e+08\n", - "30 NM 73 9.721560e+05 5.857340e+07\n", - "31 NV 91 1.211866e+06 3.558269e+07\n", - "32 NY 619 8.243350e+06 6.678062e+08\n", - "33 OH 385 5.127124e+06 5.512474e+08\n", - "34 OK 125 1.664651e+06 1.029016e+08\n", - "35 OR 130 1.731237e+06 6.487875e+07\n", - "36 PA 425 5.659812e+06 4.202414e+08\n", - "37 RI 36 4.794194e+05 3.129952e+07\n", - "38 SC 165 2.197339e+06 1.790657e+07\n", - "39 SD 22 2.929785e+05 3.252329e+07\n", - "40 TN 216 2.876516e+06 6.512873e+07\n", - "41 TX 768 1.022761e+07 2.248134e+08\n", - "42 UT 75 9.987904e+05 7.601536e+07\n", - "43 VA 261 3.475791e+06 1.028949e+08\n", - "44 VT 24 3.196129e+05 7.980043e+06\n", - "45 WA 221 2.943102e+06 1.243266e+08\n", - "46 WI 204 2.716710e+06 2.759891e+08\n", - "47 WV 67 8.922528e+05 5.069070e+07\n", - "48 WY 22 2.929785e+05 3.752161e+07" + " state sample_count units_count fuel_use_natural_gas_total_m_btu\n", + "0 AL 2 0.000004 0.000074\n", + "1 AR 1 0.000002 0.000065\n", + "2 AZ 6 0.000011 0.000107\n", + "3 CA 23 0.000043 0.001449\n", + "4 CO 4 0.000008 0.000704\n", + "5 CT 3 0.000006 0.000296\n", + "6 DC 1 0.000002 0.000000\n", + "7 DE 1 0.000002 0.000267\n", + "8 FL 18 0.000034 0.000110\n", + "9 GA 5 0.000009 0.000410\n", + "10 IA 1 0.000002 0.000284\n", + "11 ID 1 0.000002 0.000129\n", + "12 IL 11 0.000021 0.001603\n", + "13 IN 2 0.000004 0.000514\n", + "14 KS 2 0.000004 0.000334\n", + "15 KY 1 0.000002 0.000140\n", + "16 LA 4 0.000008 0.000437\n", + "17 MA 10 0.000019 0.001640\n", + "18 MD 5 0.000009 0.000765\n", + "19 ME 2 0.000004 0.000028\n", + "20 MI 8 0.000015 0.002145\n", + "21 MN 7 0.000013 0.002592\n", + "22 MO 3 0.000006 0.000688\n", + "23 MT 2 0.000004 0.000287\n", + "24 NC 5 0.000009 0.000371\n", + "25 ND 1 0.000002 0.000179\n", + "26 NE 1 0.000002 0.000192\n", + "27 NH 1 0.000002 0.000164\n", + "28 NJ 11 0.000021 0.001999\n", + "29 NM 1 0.000002 0.000102\n", + "30 NV 3 0.000006 0.000188\n", + "31 NY 21 0.000039 0.002663\n", + "32 OH 9 0.000017 0.002766\n", + "33 OK 3 0.000006 0.000370\n", + "34 OR 2 0.000004 0.000337\n", + "35 PA 12 0.000023 0.001595\n", + "36 RI 1 0.000002 0.000203\n", + "37 SC 6 0.000011 0.000091\n", + "38 TN 5 0.000009 0.000342\n", + "39 TX 18 0.000034 0.000844\n", + "40 UT 2 0.000004 0.000441\n", + "41 WA 6 0.000011 0.000880\n", + "42 WI 5 0.000009 0.001135" ] }, - "execution_count": 17, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -994,7 +1002,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "id": "20174916", "metadata": {}, "outputs": [ @@ -1004,7 +1012,7 @@ "'SUCCEEDED'" ] }, - "execution_count": 18, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -1015,7 +1023,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "id": "64be07ec", "metadata": {}, "outputs": [], @@ -1025,7 +1033,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 18, "id": "7e7e9a80", "metadata": {}, "outputs": [ @@ -1035,7 +1043,7 @@ "[]" ] }, - "execution_count": 20, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -1046,7 +1054,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 19, "id": "66cc777b", "metadata": {}, "outputs": [ @@ -1064,24 +1072,24 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 20, "id": "17c81ab0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'ResponseMetadata': {'RequestId': '3f6d2809-1ff7-46ba-a455-dd3cdfbc54fb',\n", + "{'ResponseMetadata': {'RequestId': '2b34fdc1-3a41-4904-b09b-6185bee959cb',\n", " 'HTTPStatusCode': 200,\n", - " 'HTTPHeaders': {'date': 'Fri, 14 Apr 2023 15:56:16 GMT',\n", + " 'HTTPHeaders': {'date': 'Wed, 08 May 2024 22:03:02 GMT',\n", " 'content-type': 'application/x-amz-json-1.1',\n", " 'content-length': '2',\n", " 'connection': 'keep-alive',\n", - " 'x-amzn-requestid': '3f6d2809-1ff7-46ba-a455-dd3cdfbc54fb'},\n", + " 'x-amzn-requestid': '2b34fdc1-3a41-4904-b09b-6185bee959cb'},\n", " 'RetryAttempts': 0}}" ] }, - "execution_count": 22, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -1111,7 +1119,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 20, "id": "b784d674", "metadata": {}, "outputs": [ @@ -1120,7 +1128,9 @@ "output_type": "stream", "text": [ "INFO:buildstock_query.query_core:Loading ('baseline_20230525_baseline', 'cateory_2_20230525_timeseries', 'cateory_2_20230525_upgrades') ...\n", + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n", "INFO:buildstock_query.main:Getting Success counts...\n", + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n", "INFO:buildstock_query.report_query:Checking integrity with ts_tables ...\n" ] }, @@ -1128,14 +1138,14 @@ "name": "stdout", "output_type": "stream", "text": [ - " Fail Unapplicaple Success Sum Applied % no-chng bad-chng \\\n", - "upgrade \n", - "0 7 0 9931 9938.0 0.0 0 0 \n", - "1 0 0 9931 9931.0 100.0 4 149 \n", - "2 0 0 9931 9931.0 100.0 3 391 \n", - "3 0 1793 8138 9931.0 81.9 4 16 \n", - "4 0 322 9609 9931.0 96.8 123 17 \n", - "5 0 0 9931 9931.0 100.0 2 222 \n", + " fail unapplicable success Sum Applied % no-chng bad-chng \\\n", + "upgrade \n", + "0 7 0 9931 9938 0.0 0 0 \n", + "1 0 0 9931 9931 100.0 4 149 \n", + "2 0 0 9931 9931 100.0 3 391 \n", + "3 0 1793 8138 9931 81.9 4 16 \n", + "4 0 322 9609 9931 96.8 123 17 \n", + "5 0 0 9931 9931 100.0 2 222 \n", "\n", " ok-chng true-bad-chng true-ok-chng null any no-chng % \\\n", "upgrade \n", @@ -1161,7 +1171,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:buildstock_query.query_core:12 queries cache saved to ('baseline_20230525_baseline', 'cateory_2_20230525_timeseries', 'cateory_2_20230525_upgrades')_query_cache.pkl\n" + "INFO:buildstock_query.query_core:12 queries cache saved to .bsq_cache/8d909ebc61709306982e1f11763d1184dfe3750c16c62b6aa305c9171b71760e_query_cache.pkl\n" ] }, { @@ -1176,18 +1186,10 @@ "# Mix and match: baseline from a different run from upgrades\n", "my_run2 = BuildStockQuery(db_name='largeee_test_runs',\n", " workgroup='largeee',\n", - " table_name=(baseline_20230525_baseline,cateory_2_20230525_timeseries,cateory_2_20230525_upgrades\"),\n", + " table_name=(\"baseline_20230525_baseline\",\"cateory_2_20230525_timeseries\",\"cateory_2_20230525_upgrades\"),\n", " buildstock_type='resstock',\n", " skip_reports=False)\n" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4acc82f9", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/example_usage/advanced_usage_oedi.ipynb b/example_usage/advanced_usage_oedi.ipynb index 0c6a160..b478b51 100644 --- a/example_usage/advanced_usage_oedi.ipynb +++ b/example_usage/advanced_usage_oedi.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 11, "id": "c7608e32", "metadata": {}, "outputs": [], @@ -14,7 +14,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 12, "id": "17701803", "metadata": {}, "outputs": [ @@ -23,10 +23,12 @@ "output_type": "stream", "text": [ "INFO:buildstock_query.query_core:Loading resstock_amy2018_release_2022_1 ...\n", - "INFO:buildstock_query.query_core:10 queries cache read from None.\n", - "INFO:buildstock_query.query_core:10 queries cache is updated.\n", + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n", + "INFO:buildstock_query.query_core:17 queries cache read from None.\n", + "INFO:buildstock_query.query_core:17 queries cache is updated.\n", "INFO:buildstock_query.main:Getting Success counts...\n", - "INFO:buildstock_query.report_query:Checking integrity with ts_tables ...\n" + "INFO:buildstock_query.report_query:Checking integrity with ts_tables ...\n", + "INFO:buildstock_query.query_core:No new queries to save.\n" ] }, { @@ -74,20 +76,7 @@ "8 1.2 98.8 98.8 1.2 \n", "9 1.0 99.0 99.0 1.0 \n", "10 1.0 99.0 99.0 1.0 \n", - "\u001b[92mAnnual and timeseries tables are verified to have the same number of buildings.\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:buildstock_query.query_core:No new queries to save.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "\u001b[92mAnnual and timeseries tables are verified to have the same number of buildings.\u001b[0m\n", "\u001b[92mAll buildings are verified to have the same number of (35040) timeseries rows.\u001b[0m\n" ] } @@ -101,7 +90,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 13, "id": "940c01be", "metadata": {}, "outputs": [ @@ -123,7 +112,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 15, "id": "afb0bdf2", "metadata": {}, "outputs": [ @@ -131,7 +120,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "WARNING:buildstock_query.query_core:Column in.geometry_building_type_recs found in multiple tables ['baseline', 'upgrade', 'resstock_amy2018_release_2022_1_metadata'].Using baseline\n" + "WARNING:buildstock_query.query_core:Column in.geometry_building_type_recs found in multiple tables ['baseline', 'upgrade'].Using baseline\n", + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n" ] }, { @@ -154,7 +144,7 @@ "building_type_map = {\"Mobile Home\": \"MH\", \"Single-Family Detached\": \"SF\",\n", " \"Single-Family Attached\": \"SF\", \"Multi-Family with 2 - 4 Units\": \"MF\",\n", " \"Multi-Family with 5+ Units\": \"MF\",}\n", - "bldg_col = my_run.get_column('in.geometry_building_type_recs')\n", + "bldg_col = my_run._get_column('in.geometry_building_type_recs')\n", "simple_bldg_col = MappedColumn(bsq=my_run, name='simple_bldg_type', mapping_dict=building_type_map,\n", " key=bldg_col)\n", "mapped_agg_query = my_run.agg.aggregate_annual(enduses=['electricity.total.energy_consumption'],\n", @@ -165,7 +155,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 16, "id": "855e1d4c", "metadata": {}, "outputs": [ @@ -173,7 +163,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "WARNING:buildstock_query.query_core:Column in.clothes_dryer found in multiple tables ['baseline', 'upgrade', 'resstock_amy2018_release_2022_1_metadata'].Using baseline\n" + "WARNING:buildstock_query.query_core:Column in.clothes_dryer found in multiple tables ['baseline', 'upgrade'].Using baseline\n" ] }, { @@ -193,7 +183,7 @@ " \"Electric 100% Usage\": 1 * 0.5,\n", " \"Electric 80% Usage\": 0.8 * 0.5,\n", " \"None\": 0}\n", - "bldg_col = my_run.get_column('in.clothes_dryer')\n", + "bldg_col = my_run._get_column('in.clothes_dryer')\n", "impact_col = MappedColumn(bsq=my_run, name='dryer_impact', mapping_dict=dryer_co2_impact,\n", " key=bldg_col)\n", "mapped_agg_query = my_run.agg.aggregate_annual(enduses=[impact_col],\n", @@ -203,7 +193,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 18, "id": "5579f512", "metadata": {}, "outputs": [ @@ -211,14 +201,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "WARNING:buildstock_query.query_core:Column in.geometry_building_type_recs found in multiple tables ['baseline', 'upgrade', 'resstock_amy2018_release_2022_1_metadata'].Using baseline\n" + "WARNING:buildstock_query.query_core:Column in.geometry_building_type_recs found in multiple tables ['baseline', 'upgrade'].Using baseline\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "SELECT baseline.\"in.geometry_building_type_recs\" AS geometry_building_type_recs, sum(1) AS sample_count, sum(baseline.weight) AS units_count, sum(baseline.\"out.electricity.total.energy_consumption\" * baseline.weight) AS electricitytotalenergy_consumption \n", + "SELECT baseline.\"in.geometry_building_type_recs\" AS geometry_building_type_recs, sum(1) AS sample_count, sum(baseline.weight) AS units_count, sum(baseline.\"out.electricity.total.energy_consumption\" * baseline.weight) AS \"electricity.total.energy_consumption\" \n", "FROM (SELECT resstock_amy2018_release_2022_1_metadata.applicability AS applicability, resstock_amy2018_release_2022_1_metadata.\"in.sqft\" AS \"in.sqft\", resstock_amy2018_release_2022_1_metadata.weight AS weight, resstock_amy2018_release_2022_1_metadata.\"in.ahs_region\" AS \"in.ahs_region\", resstock_amy2018_release_2022_1_metadata.\"in.ashrae_iecc_climate_zone_2004\" AS \"in.ashrae_iecc_climate_zone_2004\", resstock_amy2018_release_2022_1_metadata.\"in.ashrae_iecc_climate_zone_2004_2_a_split\" AS \"in.ashrae_iecc_climate_zone_2004_2_a_split\", resstock_amy2018_release_2022_1_metadata.\"in.bathroom_spot_vent_hour\" AS \"in.bathroom_spot_vent_hour\", resstock_amy2018_release_2022_1_metadata.\"in.bedrooms\" AS \"in.bedrooms\", resstock_amy2018_release_2022_1_metadata.\"in.building_america_climate_zone\" AS \"in.building_america_climate_zone\", resstock_amy2018_release_2022_1_metadata.\"in.cec_climate_zone\" AS \"in.cec_climate_zone\", resstock_amy2018_release_2022_1_metadata.\"in.ceiling_fan\" AS \"in.ceiling_fan\", resstock_amy2018_release_2022_1_metadata.\"in.census_division\" AS \"in.census_division\", resstock_amy2018_release_2022_1_metadata.\"in.census_division_recs\" AS \"in.census_division_recs\", resstock_amy2018_release_2022_1_metadata.\"in.census_region\" AS \"in.census_region\", resstock_amy2018_release_2022_1_metadata.\"in.city\" AS \"in.city\", resstock_amy2018_release_2022_1_metadata.\"in.clothes_dryer\" AS \"in.clothes_dryer\", resstock_amy2018_release_2022_1_metadata.\"in.clothes_washer\" AS \"in.clothes_washer\", resstock_amy2018_release_2022_1_metadata.\"in.clothes_washer_presence\" AS \"in.clothes_washer_presence\", resstock_amy2018_release_2022_1_metadata.\"in.cooking_range\" AS \"in.cooking_range\", resstock_amy2018_release_2022_1_metadata.\"in.cooling_setpoint\" AS \"in.cooling_setpoint\", resstock_amy2018_release_2022_1_metadata.\"in.cooling_setpoint_has_offset\" AS \"in.cooling_setpoint_has_offset\", resstock_amy2018_release_2022_1_metadata.\"in.cooling_setpoint_offset_magnitude\" AS \"in.cooling_setpoint_offset_magnitude\", resstock_amy2018_release_2022_1_metadata.\"in.cooling_setpoint_offset_period\" AS \"in.cooling_setpoint_offset_period\", resstock_amy2018_release_2022_1_metadata.\"in.corridor\" AS \"in.corridor\", resstock_amy2018_release_2022_1_metadata.\"in.county\" AS \"in.county\", resstock_amy2018_release_2022_1_metadata.\"in.county_and_puma\" AS \"in.county_and_puma\", resstock_amy2018_release_2022_1_metadata.\"in.dehumidifier\" AS \"in.dehumidifier\", resstock_amy2018_release_2022_1_metadata.\"in.dishwasher\" AS \"in.dishwasher\", resstock_amy2018_release_2022_1_metadata.\"in.door_area\" AS \"in.door_area\", resstock_amy2018_release_2022_1_metadata.\"in.doors\" AS \"in.doors\", resstock_amy2018_release_2022_1_metadata.\"in.ducts\" AS \"in.ducts\", resstock_amy2018_release_2022_1_metadata.\"in.eaves\" AS \"in.eaves\", resstock_amy2018_release_2022_1_metadata.\"in.electric_vehicle\" AS \"in.electric_vehicle\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_electricity_folders\" AS \"in.emissions_electricity_folders\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_electricity_units\" AS \"in.emissions_electricity_units\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_electricity_values_or_filepaths\" AS \"in.emissions_electricity_values_or_filepaths\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_fossil_fuel_units\" AS \"in.emissions_fossil_fuel_units\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_fuel_oil_values\" AS \"in.emissions_fuel_oil_values\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_natural_gas_values\" AS \"in.emissions_natural_gas_values\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_propane_values\" AS \"in.emissions_propane_values\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_scenario_names\" AS \"in.emissions_scenario_names\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_types\" AS \"in.emissions_types\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_wood_values\" AS \"in.emissions_wood_values\", resstock_amy2018_release_2022_1_metadata.\"in.federal_poverty_level\" AS \"in.federal_poverty_level\", resstock_amy2018_release_2022_1_metadata.\"in.generation_and_emissions_assessment_region\" AS \"in.generation_and_emissions_assessment_region\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_attic_type\" AS \"in.geometry_attic_type\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_horizontal_location_mf\" AS \"in.geometry_building_horizontal_location_mf\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_horizontal_location_sfa\" AS \"in.geometry_building_horizontal_location_sfa\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_level_mf\" AS \"in.geometry_building_level_mf\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_number_units_mf\" AS \"in.geometry_building_number_units_mf\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_number_units_sfa\" AS \"in.geometry_building_number_units_sfa\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_type_acs\" AS \"in.geometry_building_type_acs\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_type_height\" AS \"in.geometry_building_type_height\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_type_recs\" AS \"in.geometry_building_type_recs\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_floor_area\" AS \"in.geometry_floor_area\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_floor_area_bin\" AS \"in.geometry_floor_area_bin\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_foundation_type\" AS \"in.geometry_foundation_type\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_garage\" AS \"in.geometry_garage\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_stories\" AS \"in.geometry_stories\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_stories_low_rise\" AS \"in.geometry_stories_low_rise\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_story_bin\" AS \"in.geometry_story_bin\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_wall_exterior_finish\" AS \"in.geometry_wall_exterior_finish\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_wall_type\" AS \"in.geometry_wall_type\", resstock_amy2018_release_2022_1_metadata.\"in.has_pv\" AS \"in.has_pv\", resstock_amy2018_release_2022_1_metadata.\"in.heating_fuel\" AS \"in.heating_fuel\", resstock_amy2018_release_2022_1_metadata.\"in.heating_setpoint\" AS \"in.heating_setpoint\", resstock_amy2018_release_2022_1_metadata.\"in.heating_setpoint_has_offset\" AS \"in.heating_setpoint_has_offset\", resstock_amy2018_release_2022_1_metadata.\"in.heating_setpoint_offset_magnitude\" AS \"in.heating_setpoint_offset_magnitude\", resstock_amy2018_release_2022_1_metadata.\"in.heating_setpoint_offset_period\" AS \"in.heating_setpoint_offset_period\", resstock_amy2018_release_2022_1_metadata.\"in.holiday_lighting\" AS \"in.holiday_lighting\", resstock_amy2018_release_2022_1_metadata.\"in.hot_water_distribution\" AS \"in.hot_water_distribution\", resstock_amy2018_release_2022_1_metadata.\"in.hot_water_fixtures\" AS \"in.hot_water_fixtures\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_cooling_efficiency\" AS \"in.hvac_cooling_efficiency\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_cooling_partial_space_conditioning\" AS \"in.hvac_cooling_partial_space_conditioning\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_cooling_type\" AS \"in.hvac_cooling_type\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_has_ducts\" AS \"in.hvac_has_ducts\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_has_shared_system\" AS \"in.hvac_has_shared_system\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_has_zonal_electric_heating\" AS \"in.hvac_has_zonal_electric_heating\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_heating_efficiency\" AS \"in.hvac_heating_efficiency\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_heating_type\" AS \"in.hvac_heating_type\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_heating_type_and_fuel\" AS \"in.hvac_heating_type_and_fuel\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_secondary_heating_efficiency\" AS \"in.hvac_secondary_heating_efficiency\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_secondary_heating_type_and_fuel\" AS \"in.hvac_secondary_heating_type_and_fuel\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_shared_efficiencies\" AS \"in.hvac_shared_efficiencies\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_is_faulted\" AS \"in.hvac_system_is_faulted\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_single_speed_ac_airflow\" AS \"in.hvac_system_single_speed_ac_airflow\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_single_speed_ac_charge\" AS \"in.hvac_system_single_speed_ac_charge\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_single_speed_ashp_airflow\" AS \"in.hvac_system_single_speed_ashp_airflow\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_single_speed_ashp_charge\" AS \"in.hvac_system_single_speed_ashp_charge\", resstock_amy2018_release_2022_1_metadata.\"in.income\" AS \"in.income\", resstock_amy2018_release_2022_1_metadata.\"in.income_recs_2015\" AS \"in.income_recs_2015\", resstock_amy2018_release_2022_1_metadata.\"in.income_recs_2020\" AS \"in.income_recs_2020\", resstock_amy2018_release_2022_1_metadata.\"in.infiltration\" AS \"in.infiltration\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_ceiling\" AS \"in.insulation_ceiling\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_floor\" AS \"in.insulation_floor\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_foundation_wall\" AS \"in.insulation_foundation_wall\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_rim_joist\" AS \"in.insulation_rim_joist\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_roof\" AS \"in.insulation_roof\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_slab\" AS \"in.insulation_slab\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_wall\" AS \"in.insulation_wall\", resstock_amy2018_release_2022_1_metadata.\"in.interior_shading\" AS \"in.interior_shading\", resstock_amy2018_release_2022_1_metadata.\"in.iso_rto_region\" AS \"in.iso_rto_region\", resstock_amy2018_release_2022_1_metadata.\"in.lighting\" AS \"in.lighting\", resstock_amy2018_release_2022_1_metadata.\"in.lighting_interior_use\" AS \"in.lighting_interior_use\", resstock_amy2018_release_2022_1_metadata.\"in.lighting_other_use\" AS \"in.lighting_other_use\", resstock_amy2018_release_2022_1_metadata.\"in.location_region\" AS \"in.location_region\", resstock_amy2018_release_2022_1_metadata.\"in.mechanical_ventilation\" AS \"in.mechanical_ventilation\", resstock_amy2018_release_2022_1_metadata.\"in.misc_extra_refrigerator\" AS \"in.misc_extra_refrigerator\", resstock_amy2018_release_2022_1_metadata.\"in.misc_freezer\" AS \"in.misc_freezer\", resstock_amy2018_release_2022_1_metadata.\"in.misc_gas_fireplace\" AS \"in.misc_gas_fireplace\", resstock_amy2018_release_2022_1_metadata.\"in.misc_gas_grill\" AS \"in.misc_gas_grill\", resstock_amy2018_release_2022_1_metadata.\"in.misc_gas_lighting\" AS \"in.misc_gas_lighting\", resstock_amy2018_release_2022_1_metadata.\"in.misc_hot_tub_spa\" AS \"in.misc_hot_tub_spa\", resstock_amy2018_release_2022_1_metadata.\"in.misc_pool\" AS \"in.misc_pool\", resstock_amy2018_release_2022_1_metadata.\"in.misc_pool_heater\" AS \"in.misc_pool_heater\", resstock_amy2018_release_2022_1_metadata.\"in.misc_pool_pump\" AS \"in.misc_pool_pump\", resstock_amy2018_release_2022_1_metadata.\"in.misc_well_pump\" AS \"in.misc_well_pump\", resstock_amy2018_release_2022_1_metadata.\"in.natural_ventilation\" AS \"in.natural_ventilation\", resstock_amy2018_release_2022_1_metadata.\"in.neighbors\" AS \"in.neighbors\", resstock_amy2018_release_2022_1_metadata.\"in.occupants\" AS \"in.occupants\", resstock_amy2018_release_2022_1_metadata.\"in.orientation\" AS \"in.orientation\", resstock_amy2018_release_2022_1_metadata.\"in.overhangs\" AS \"in.overhangs\", resstock_amy2018_release_2022_1_metadata.\"in.plug_load_diversity\" AS \"in.plug_load_diversity\", resstock_amy2018_release_2022_1_metadata.\"in.plug_loads\" AS \"in.plug_loads\", resstock_amy2018_release_2022_1_metadata.\"in.puma\" AS \"in.puma\", resstock_amy2018_release_2022_1_metadata.\"in.puma_metro_status\" AS \"in.puma_metro_status\", resstock_amy2018_release_2022_1_metadata.\"in.pv_orientation\" AS \"in.pv_orientation\", resstock_amy2018_release_2022_1_metadata.\"in.pv_system_size\" AS \"in.pv_system_size\", resstock_amy2018_release_2022_1_metadata.\"in.radiant_barrier\" AS \"in.radiant_barrier\", resstock_amy2018_release_2022_1_metadata.\"in.range_spot_vent_hour\" AS \"in.range_spot_vent_hour\", resstock_amy2018_release_2022_1_metadata.\"in.reeds_balancing_area\" AS \"in.reeds_balancing_area\", resstock_amy2018_release_2022_1_metadata.\"in.refrigerator\" AS \"in.refrigerator\", resstock_amy2018_release_2022_1_metadata.\"in.roof_material\" AS \"in.roof_material\", resstock_amy2018_release_2022_1_metadata.\"in.schedules\" AS \"in.schedules\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_begin_day_of_month\" AS \"in.simulation_control_run_period_begin_day_of_month\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_begin_month\" AS \"in.simulation_control_run_period_begin_month\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_calendar_year\" AS \"in.simulation_control_run_period_calendar_year\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_end_day_of_month\" AS \"in.simulation_control_run_period_end_day_of_month\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_end_month\" AS \"in.simulation_control_run_period_end_month\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_timestep\" AS \"in.simulation_control_timestep\", resstock_amy2018_release_2022_1_metadata.\"in.solar_hot_water\" AS \"in.solar_hot_water\", resstock_amy2018_release_2022_1_metadata.\"in.state\" AS \"in.state\", resstock_amy2018_release_2022_1_metadata.\"in.tenure\" AS \"in.tenure\", resstock_amy2018_release_2022_1_metadata.\"in.units_represented\" AS \"in.units_represented\", resstock_amy2018_release_2022_1_metadata.\"in.usage_level\" AS \"in.usage_level\", resstock_amy2018_release_2022_1_metadata.\"in.vacancy_status\" AS \"in.vacancy_status\", resstock_amy2018_release_2022_1_metadata.\"in.vintage\" AS \"in.vintage\", resstock_amy2018_release_2022_1_metadata.\"in.vintage_acs\" AS \"in.vintage_acs\", resstock_amy2018_release_2022_1_metadata.\"in.water_heater_efficiency\" AS \"in.water_heater_efficiency\", resstock_amy2018_release_2022_1_metadata.\"in.water_heater_fuel\" AS \"in.water_heater_fuel\", resstock_amy2018_release_2022_1_metadata.\"in.water_heater_in_unit\" AS \"in.water_heater_in_unit\", resstock_amy2018_release_2022_1_metadata.\"in.weather_file_city\" AS \"in.weather_file_city\", resstock_amy2018_release_2022_1_metadata.\"in.weather_file_latitude\" AS \"in.weather_file_latitude\", resstock_amy2018_release_2022_1_metadata.\"in.weather_file_longitude\" AS \"in.weather_file_longitude\", resstock_amy2018_release_2022_1_metadata.\"in.window_areas\" AS \"in.window_areas\", resstock_amy2018_release_2022_1_metadata.\"in.windows\" AS \"in.windows\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\" AS \"out.electricity.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\" AS \"out.fuel_oil.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\" AS \"out.natural_gas.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\" AS \"out.propane.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.lrmer_low_re_cost_15_2025_start.co2e_kg\" AS \"out.electricity.total.lrmer_low_re_cost_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.lrmer_low_re_cost_15_2025_start.co2e_kg\" AS \"out.fuel_oil.total.lrmer_low_re_cost_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.lrmer_low_re_cost_15_2025_start.co2e_kg\" AS \"out.natural_gas.total.lrmer_low_re_cost_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.lrmer_low_re_cost_15_2025_start.co2e_kg\" AS \"out.propane.total.lrmer_low_re_cost_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.lrmer_low_re_cost_25_2025_start.co2e_kg\" AS \"out.electricity.total.lrmer_low_re_cost_25_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.lrmer_low_re_cost_25_2025_start.co2e_kg\" AS \"out.fuel_oil.total.lrmer_low_re_cost_25_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.lrmer_low_re_cost_25_2025_start.co2e_kg\" AS \"out.natural_gas.total.lrmer_low_re_cost_25_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.lrmer_low_re_cost_25_2025_start.co2e_kg\" AS \"out.propane.total.lrmer_low_re_cost_25_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.lrmer_mid_case_15_2025_start.co2e_kg\" AS \"out.electricity.total.lrmer_mid_case_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.lrmer_mid_case_15_2025_start.co2e_kg\" AS \"out.fuel_oil.total.lrmer_mid_case_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.lrmer_mid_case_15_2025_start.co2e_kg\" AS \"out.natural_gas.total.lrmer_mid_case_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.lrmer_mid_case_15_2025_start.co2e_kg\" AS \"out.propane.total.lrmer_mid_case_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.ceiling_fan.energy_consumption\" AS \"out.electricity.ceiling_fan.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.ceiling_fan.energy_consumption_intensity\" AS \"out.electricity.ceiling_fan.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.clothes_dryer.energy_consumption\" AS \"out.electricity.clothes_dryer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.clothes_dryer.energy_consumption_intensity\" AS \"out.electricity.clothes_dryer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.clothes_washer.energy_consumption\" AS \"out.electricity.clothes_washer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.clothes_washer.energy_consumption_intensity\" AS \"out.electricity.clothes_washer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.cooling_fans_pumps.energy_consumption\" AS \"out.electricity.cooling_fans_pumps.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.cooling_fans_pumps.energy_consumption_intensity\" AS \"out.electricity.cooling_fans_pumps.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.cooling.energy_consumption\" AS \"out.electricity.cooling.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.cooling.energy_consumption_intensity\" AS \"out.electricity.cooling.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.dishwasher.energy_consumption\" AS \"out.electricity.dishwasher.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.dishwasher.energy_consumption_intensity\" AS \"out.electricity.dishwasher.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.freezer.energy_consumption\" AS \"out.electricity.freezer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.freezer.energy_consumption_intensity\" AS \"out.electricity.freezer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating_fans_pumps.energy_consumption\" AS \"out.electricity.heating_fans_pumps.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating_fans_pumps.energy_consumption_intensity\" AS \"out.electricity.heating_fans_pumps.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating_hp_bkup.energy_consumption\" AS \"out.electricity.heating_hp_bkup.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating_hp_bkup.energy_consumption_intensity\" AS \"out.electricity.heating_hp_bkup.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating.energy_consumption\" AS \"out.electricity.heating.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating.energy_consumption_intensity\" AS \"out.electricity.heating.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_tub_heater.energy_consumption\" AS \"out.electricity.hot_tub_heater.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_tub_heater.energy_consumption_intensity\" AS \"out.electricity.hot_tub_heater.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_tub_pump.energy_consumption\" AS \"out.electricity.hot_tub_pump.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_tub_pump.energy_consumption_intensity\" AS \"out.electricity.hot_tub_pump.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_water.energy_consumption\" AS \"out.electricity.hot_water.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_water.energy_consumption_intensity\" AS \"out.electricity.hot_water.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_exterior.energy_consumption\" AS \"out.electricity.lighting_exterior.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_exterior.energy_consumption_intensity\" AS \"out.electricity.lighting_exterior.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_garage.energy_consumption\" AS \"out.electricity.lighting_garage.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_garage.energy_consumption_intensity\" AS \"out.electricity.lighting_garage.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_interior.energy_consumption\" AS \"out.electricity.lighting_interior.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_interior.energy_consumption_intensity\" AS \"out.electricity.lighting_interior.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.mech_vent.energy_consumption\" AS \"out.electricity.mech_vent.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.mech_vent.energy_consumption_intensity\" AS \"out.electricity.mech_vent.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.plug_loads.energy_consumption\" AS \"out.electricity.plug_loads.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.plug_loads.energy_consumption_intensity\" AS \"out.electricity.plug_loads.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pool_heater.energy_consumption\" AS \"out.electricity.pool_heater.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pool_heater.energy_consumption_intensity\" AS \"out.electricity.pool_heater.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pool_pump.energy_consumption\" AS \"out.electricity.pool_pump.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pool_pump.energy_consumption_intensity\" AS \"out.electricity.pool_pump.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pv.energy_consumption\" AS \"out.electricity.pv.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pv.energy_consumption_intensity\" AS \"out.electricity.pv.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.range_oven.energy_consumption\" AS \"out.electricity.range_oven.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.range_oven.energy_consumption_intensity\" AS \"out.electricity.range_oven.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.refrigerator.energy_consumption\" AS \"out.electricity.refrigerator.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.refrigerator.energy_consumption_intensity\" AS \"out.electricity.refrigerator.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.well_pump.energy_consumption\" AS \"out.electricity.well_pump.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.well_pump.energy_consumption_intensity\" AS \"out.electricity.well_pump.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.heating_hp_bkup.energy_consumption\" AS \"out.fuel_oil.heating_hp_bkup.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.heating_hp_bkup.energy_consumption_intensity\" AS \"out.fuel_oil.heating_hp_bkup.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.heating.energy_consumption\" AS \"out.fuel_oil.heating.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.heating.energy_consumption_intensity\" AS \"out.fuel_oil.heating.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.hot_water.energy_consumption\" AS \"out.fuel_oil.hot_water.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.hot_water.energy_consumption_intensity\" AS \"out.fuel_oil.hot_water.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.clothes_dryer.energy_consumption\" AS \"out.natural_gas.clothes_dryer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.clothes_dryer.energy_consumption_intensity\" AS \"out.natural_gas.clothes_dryer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.fireplace.energy_consumption\" AS \"out.natural_gas.fireplace.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.fireplace.energy_consumption_intensity\" AS \"out.natural_gas.fireplace.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.grill.energy_consumption\" AS \"out.natural_gas.grill.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.grill.energy_consumption_intensity\" AS \"out.natural_gas.grill.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.heating_hp_bkup.energy_consumption\" AS \"out.natural_gas.heating_hp_bkup.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.heating_hp_bkup.energy_consumption_intensity\" AS \"out.natural_gas.heating_hp_bkup.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.heating.energy_consumption\" AS \"out.natural_gas.heating.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.heating.energy_consumption_intensity\" AS \"out.natural_gas.heating.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.hot_tub_heater.energy_consumption\" AS \"out.natural_gas.hot_tub_heater.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.hot_tub_heater.energy_consumption_intensity\" AS \"out.natural_gas.hot_tub_heater.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.hot_water.energy_consumption\" AS \"out.natural_gas.hot_water.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.hot_water.energy_consumption_intensity\" AS \"out.natural_gas.hot_water.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.lighting.energy_consumption\" AS \"out.natural_gas.lighting.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.lighting.energy_consumption_intensity\" AS \"out.natural_gas.lighting.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.pool_heater.energy_consumption\" AS \"out.natural_gas.pool_heater.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.pool_heater.energy_consumption_intensity\" AS \"out.natural_gas.pool_heater.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.range_oven.energy_consumption\" AS \"out.natural_gas.range_oven.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.range_oven.energy_consumption_intensity\" AS \"out.natural_gas.range_oven.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.clothes_dryer.energy_consumption\" AS \"out.propane.clothes_dryer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.clothes_dryer.energy_consumption_intensity\" AS \"out.propane.clothes_dryer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.heating_hp_bkup.energy_consumption\" AS \"out.propane.heating_hp_bkup.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.heating_hp_bkup.energy_consumption_intensity\" AS \"out.propane.heating_hp_bkup.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.heating.energy_consumption\" AS \"out.propane.heating.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.heating.energy_consumption_intensity\" AS \"out.propane.heating.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.hot_water.energy_consumption\" AS \"out.propane.hot_water.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.hot_water.energy_consumption_intensity\" AS \"out.propane.hot_water.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.range_oven.energy_consumption\" AS \"out.propane.range_oven.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.range_oven.energy_consumption_intensity\" AS \"out.propane.range_oven.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.site_energy.net.energy_consumption\" AS \"out.site_energy.net.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.site_energy.net.energy_consumption_intensity\" AS \"out.site_energy.net.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.site_energy.total.energy_consumption\" AS \"out.site_energy.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.site_energy.total.energy_consumption_intensity\" AS \"out.site_energy.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.net.energy_consumption\" AS \"out.electricity.net.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.net.energy_consumption_intensity\" AS \"out.electricity.net.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.energy_consumption\" AS \"out.electricity.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.energy_consumption_intensity\" AS \"out.electricity.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.energy_consumption\" AS \"out.fuel_oil.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.energy_consumption_intensity\" AS \"out.fuel_oil.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.energy_consumption\" AS \"out.natural_gas.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.energy_consumption_intensity\" AS \"out.natural_gas.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.energy_consumption\" AS \"out.propane.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.energy_consumption_intensity\" AS \"out.propane.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.upgrade AS upgrade, resstock_amy2018_release_2022_1_metadata.metadata_index AS metadata_index, resstock_amy2018_release_2022_1_metadata.bldg_id AS bldg_id \n", "FROM resstock_amy2018_release_2022_1_metadata \n", "WHERE CAST(resstock_amy2018_release_2022_1_metadata.upgrade AS VARCHAR) = '0') AS baseline \n", @@ -237,7 +227,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 19, "id": "89404c1c", "metadata": {}, "outputs": [ @@ -324,7 +314,7 @@ "4 1.115071e+12 " ] }, - "execution_count": 12, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -342,7 +332,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 20, "id": "df0688ba", "metadata": {}, "outputs": [ @@ -350,14 +340,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "WARNING:buildstock_query.query_core:Column in.geometry_building_type_recs found in multiple tables ['baseline', 'upgrade', 'resstock_amy2018_release_2022_1_metadata'].Using baseline\n" + "WARNING:buildstock_query.query_core:Column in.geometry_building_type_recs found in multiple tables ['baseline', 'upgrade'].Using baseline\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "SELECT baseline.\"in.geometry_building_type_recs\" AS geometry_building_type_recs, sum(1) AS sample_count, sum(baseline.weight) AS units_count, sum(baseline.\"out.electricity.total.energy_consumption\" * baseline.weight) AS electricitytotalenergy_consumption \n", + "SELECT baseline.\"in.geometry_building_type_recs\" AS geometry_building_type_recs, sum(1) AS sample_count, sum(baseline.weight) AS units_count, sum(baseline.\"out.electricity.total.energy_consumption\" * baseline.weight) AS \"electricity.total.energy_consumption\" \n", "FROM (SELECT resstock_amy2018_release_2022_1_metadata.applicability AS applicability, resstock_amy2018_release_2022_1_metadata.\"in.sqft\" AS \"in.sqft\", resstock_amy2018_release_2022_1_metadata.weight AS weight, resstock_amy2018_release_2022_1_metadata.\"in.ahs_region\" AS \"in.ahs_region\", resstock_amy2018_release_2022_1_metadata.\"in.ashrae_iecc_climate_zone_2004\" AS \"in.ashrae_iecc_climate_zone_2004\", resstock_amy2018_release_2022_1_metadata.\"in.ashrae_iecc_climate_zone_2004_2_a_split\" AS \"in.ashrae_iecc_climate_zone_2004_2_a_split\", resstock_amy2018_release_2022_1_metadata.\"in.bathroom_spot_vent_hour\" AS \"in.bathroom_spot_vent_hour\", resstock_amy2018_release_2022_1_metadata.\"in.bedrooms\" AS \"in.bedrooms\", resstock_amy2018_release_2022_1_metadata.\"in.building_america_climate_zone\" AS \"in.building_america_climate_zone\", resstock_amy2018_release_2022_1_metadata.\"in.cec_climate_zone\" AS \"in.cec_climate_zone\", resstock_amy2018_release_2022_1_metadata.\"in.ceiling_fan\" AS \"in.ceiling_fan\", resstock_amy2018_release_2022_1_metadata.\"in.census_division\" AS \"in.census_division\", resstock_amy2018_release_2022_1_metadata.\"in.census_division_recs\" AS \"in.census_division_recs\", resstock_amy2018_release_2022_1_metadata.\"in.census_region\" AS \"in.census_region\", resstock_amy2018_release_2022_1_metadata.\"in.city\" AS \"in.city\", resstock_amy2018_release_2022_1_metadata.\"in.clothes_dryer\" AS \"in.clothes_dryer\", resstock_amy2018_release_2022_1_metadata.\"in.clothes_washer\" AS \"in.clothes_washer\", resstock_amy2018_release_2022_1_metadata.\"in.clothes_washer_presence\" AS \"in.clothes_washer_presence\", resstock_amy2018_release_2022_1_metadata.\"in.cooking_range\" AS \"in.cooking_range\", resstock_amy2018_release_2022_1_metadata.\"in.cooling_setpoint\" AS \"in.cooling_setpoint\", resstock_amy2018_release_2022_1_metadata.\"in.cooling_setpoint_has_offset\" AS \"in.cooling_setpoint_has_offset\", resstock_amy2018_release_2022_1_metadata.\"in.cooling_setpoint_offset_magnitude\" AS \"in.cooling_setpoint_offset_magnitude\", resstock_amy2018_release_2022_1_metadata.\"in.cooling_setpoint_offset_period\" AS \"in.cooling_setpoint_offset_period\", resstock_amy2018_release_2022_1_metadata.\"in.corridor\" AS \"in.corridor\", resstock_amy2018_release_2022_1_metadata.\"in.county\" AS \"in.county\", resstock_amy2018_release_2022_1_metadata.\"in.county_and_puma\" AS \"in.county_and_puma\", resstock_amy2018_release_2022_1_metadata.\"in.dehumidifier\" AS \"in.dehumidifier\", resstock_amy2018_release_2022_1_metadata.\"in.dishwasher\" AS \"in.dishwasher\", resstock_amy2018_release_2022_1_metadata.\"in.door_area\" AS \"in.door_area\", resstock_amy2018_release_2022_1_metadata.\"in.doors\" AS \"in.doors\", resstock_amy2018_release_2022_1_metadata.\"in.ducts\" AS \"in.ducts\", resstock_amy2018_release_2022_1_metadata.\"in.eaves\" AS \"in.eaves\", resstock_amy2018_release_2022_1_metadata.\"in.electric_vehicle\" AS \"in.electric_vehicle\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_electricity_folders\" AS \"in.emissions_electricity_folders\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_electricity_units\" AS \"in.emissions_electricity_units\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_electricity_values_or_filepaths\" AS \"in.emissions_electricity_values_or_filepaths\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_fossil_fuel_units\" AS \"in.emissions_fossil_fuel_units\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_fuel_oil_values\" AS \"in.emissions_fuel_oil_values\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_natural_gas_values\" AS \"in.emissions_natural_gas_values\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_propane_values\" AS \"in.emissions_propane_values\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_scenario_names\" AS \"in.emissions_scenario_names\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_types\" AS \"in.emissions_types\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_wood_values\" AS \"in.emissions_wood_values\", resstock_amy2018_release_2022_1_metadata.\"in.federal_poverty_level\" AS \"in.federal_poverty_level\", resstock_amy2018_release_2022_1_metadata.\"in.generation_and_emissions_assessment_region\" AS \"in.generation_and_emissions_assessment_region\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_attic_type\" AS \"in.geometry_attic_type\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_horizontal_location_mf\" AS \"in.geometry_building_horizontal_location_mf\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_horizontal_location_sfa\" AS \"in.geometry_building_horizontal_location_sfa\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_level_mf\" AS \"in.geometry_building_level_mf\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_number_units_mf\" AS \"in.geometry_building_number_units_mf\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_number_units_sfa\" AS \"in.geometry_building_number_units_sfa\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_type_acs\" AS \"in.geometry_building_type_acs\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_type_height\" AS \"in.geometry_building_type_height\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_type_recs\" AS \"in.geometry_building_type_recs\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_floor_area\" AS \"in.geometry_floor_area\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_floor_area_bin\" AS \"in.geometry_floor_area_bin\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_foundation_type\" AS \"in.geometry_foundation_type\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_garage\" AS \"in.geometry_garage\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_stories\" AS \"in.geometry_stories\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_stories_low_rise\" AS \"in.geometry_stories_low_rise\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_story_bin\" AS \"in.geometry_story_bin\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_wall_exterior_finish\" AS \"in.geometry_wall_exterior_finish\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_wall_type\" AS \"in.geometry_wall_type\", resstock_amy2018_release_2022_1_metadata.\"in.has_pv\" AS \"in.has_pv\", resstock_amy2018_release_2022_1_metadata.\"in.heating_fuel\" AS \"in.heating_fuel\", resstock_amy2018_release_2022_1_metadata.\"in.heating_setpoint\" AS \"in.heating_setpoint\", resstock_amy2018_release_2022_1_metadata.\"in.heating_setpoint_has_offset\" AS \"in.heating_setpoint_has_offset\", resstock_amy2018_release_2022_1_metadata.\"in.heating_setpoint_offset_magnitude\" AS \"in.heating_setpoint_offset_magnitude\", resstock_amy2018_release_2022_1_metadata.\"in.heating_setpoint_offset_period\" AS \"in.heating_setpoint_offset_period\", resstock_amy2018_release_2022_1_metadata.\"in.holiday_lighting\" AS \"in.holiday_lighting\", resstock_amy2018_release_2022_1_metadata.\"in.hot_water_distribution\" AS \"in.hot_water_distribution\", resstock_amy2018_release_2022_1_metadata.\"in.hot_water_fixtures\" AS \"in.hot_water_fixtures\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_cooling_efficiency\" AS \"in.hvac_cooling_efficiency\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_cooling_partial_space_conditioning\" AS \"in.hvac_cooling_partial_space_conditioning\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_cooling_type\" AS \"in.hvac_cooling_type\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_has_ducts\" AS \"in.hvac_has_ducts\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_has_shared_system\" AS \"in.hvac_has_shared_system\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_has_zonal_electric_heating\" AS \"in.hvac_has_zonal_electric_heating\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_heating_efficiency\" AS \"in.hvac_heating_efficiency\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_heating_type\" AS \"in.hvac_heating_type\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_heating_type_and_fuel\" AS \"in.hvac_heating_type_and_fuel\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_secondary_heating_efficiency\" AS \"in.hvac_secondary_heating_efficiency\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_secondary_heating_type_and_fuel\" AS \"in.hvac_secondary_heating_type_and_fuel\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_shared_efficiencies\" AS \"in.hvac_shared_efficiencies\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_is_faulted\" AS \"in.hvac_system_is_faulted\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_single_speed_ac_airflow\" AS \"in.hvac_system_single_speed_ac_airflow\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_single_speed_ac_charge\" AS \"in.hvac_system_single_speed_ac_charge\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_single_speed_ashp_airflow\" AS \"in.hvac_system_single_speed_ashp_airflow\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_single_speed_ashp_charge\" AS \"in.hvac_system_single_speed_ashp_charge\", resstock_amy2018_release_2022_1_metadata.\"in.income\" AS \"in.income\", resstock_amy2018_release_2022_1_metadata.\"in.income_recs_2015\" AS \"in.income_recs_2015\", resstock_amy2018_release_2022_1_metadata.\"in.income_recs_2020\" AS \"in.income_recs_2020\", resstock_amy2018_release_2022_1_metadata.\"in.infiltration\" AS \"in.infiltration\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_ceiling\" AS \"in.insulation_ceiling\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_floor\" AS \"in.insulation_floor\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_foundation_wall\" AS \"in.insulation_foundation_wall\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_rim_joist\" AS \"in.insulation_rim_joist\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_roof\" AS \"in.insulation_roof\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_slab\" AS \"in.insulation_slab\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_wall\" AS \"in.insulation_wall\", resstock_amy2018_release_2022_1_metadata.\"in.interior_shading\" AS \"in.interior_shading\", resstock_amy2018_release_2022_1_metadata.\"in.iso_rto_region\" AS \"in.iso_rto_region\", resstock_amy2018_release_2022_1_metadata.\"in.lighting\" AS \"in.lighting\", resstock_amy2018_release_2022_1_metadata.\"in.lighting_interior_use\" AS \"in.lighting_interior_use\", resstock_amy2018_release_2022_1_metadata.\"in.lighting_other_use\" AS \"in.lighting_other_use\", resstock_amy2018_release_2022_1_metadata.\"in.location_region\" AS \"in.location_region\", resstock_amy2018_release_2022_1_metadata.\"in.mechanical_ventilation\" AS \"in.mechanical_ventilation\", resstock_amy2018_release_2022_1_metadata.\"in.misc_extra_refrigerator\" AS \"in.misc_extra_refrigerator\", resstock_amy2018_release_2022_1_metadata.\"in.misc_freezer\" AS \"in.misc_freezer\", resstock_amy2018_release_2022_1_metadata.\"in.misc_gas_fireplace\" AS \"in.misc_gas_fireplace\", resstock_amy2018_release_2022_1_metadata.\"in.misc_gas_grill\" AS \"in.misc_gas_grill\", resstock_amy2018_release_2022_1_metadata.\"in.misc_gas_lighting\" AS \"in.misc_gas_lighting\", resstock_amy2018_release_2022_1_metadata.\"in.misc_hot_tub_spa\" AS \"in.misc_hot_tub_spa\", resstock_amy2018_release_2022_1_metadata.\"in.misc_pool\" AS \"in.misc_pool\", resstock_amy2018_release_2022_1_metadata.\"in.misc_pool_heater\" AS \"in.misc_pool_heater\", resstock_amy2018_release_2022_1_metadata.\"in.misc_pool_pump\" AS \"in.misc_pool_pump\", resstock_amy2018_release_2022_1_metadata.\"in.misc_well_pump\" AS \"in.misc_well_pump\", resstock_amy2018_release_2022_1_metadata.\"in.natural_ventilation\" AS \"in.natural_ventilation\", resstock_amy2018_release_2022_1_metadata.\"in.neighbors\" AS \"in.neighbors\", resstock_amy2018_release_2022_1_metadata.\"in.occupants\" AS \"in.occupants\", resstock_amy2018_release_2022_1_metadata.\"in.orientation\" AS \"in.orientation\", resstock_amy2018_release_2022_1_metadata.\"in.overhangs\" AS \"in.overhangs\", resstock_amy2018_release_2022_1_metadata.\"in.plug_load_diversity\" AS \"in.plug_load_diversity\", resstock_amy2018_release_2022_1_metadata.\"in.plug_loads\" AS \"in.plug_loads\", resstock_amy2018_release_2022_1_metadata.\"in.puma\" AS \"in.puma\", resstock_amy2018_release_2022_1_metadata.\"in.puma_metro_status\" AS \"in.puma_metro_status\", resstock_amy2018_release_2022_1_metadata.\"in.pv_orientation\" AS \"in.pv_orientation\", resstock_amy2018_release_2022_1_metadata.\"in.pv_system_size\" AS \"in.pv_system_size\", resstock_amy2018_release_2022_1_metadata.\"in.radiant_barrier\" AS \"in.radiant_barrier\", resstock_amy2018_release_2022_1_metadata.\"in.range_spot_vent_hour\" AS \"in.range_spot_vent_hour\", resstock_amy2018_release_2022_1_metadata.\"in.reeds_balancing_area\" AS \"in.reeds_balancing_area\", resstock_amy2018_release_2022_1_metadata.\"in.refrigerator\" AS \"in.refrigerator\", resstock_amy2018_release_2022_1_metadata.\"in.roof_material\" AS \"in.roof_material\", resstock_amy2018_release_2022_1_metadata.\"in.schedules\" AS \"in.schedules\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_begin_day_of_month\" AS \"in.simulation_control_run_period_begin_day_of_month\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_begin_month\" AS \"in.simulation_control_run_period_begin_month\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_calendar_year\" AS \"in.simulation_control_run_period_calendar_year\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_end_day_of_month\" AS \"in.simulation_control_run_period_end_day_of_month\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_end_month\" AS \"in.simulation_control_run_period_end_month\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_timestep\" AS \"in.simulation_control_timestep\", resstock_amy2018_release_2022_1_metadata.\"in.solar_hot_water\" AS \"in.solar_hot_water\", resstock_amy2018_release_2022_1_metadata.\"in.state\" AS \"in.state\", resstock_amy2018_release_2022_1_metadata.\"in.tenure\" AS \"in.tenure\", resstock_amy2018_release_2022_1_metadata.\"in.units_represented\" AS \"in.units_represented\", resstock_amy2018_release_2022_1_metadata.\"in.usage_level\" AS \"in.usage_level\", resstock_amy2018_release_2022_1_metadata.\"in.vacancy_status\" AS \"in.vacancy_status\", resstock_amy2018_release_2022_1_metadata.\"in.vintage\" AS \"in.vintage\", resstock_amy2018_release_2022_1_metadata.\"in.vintage_acs\" AS \"in.vintage_acs\", resstock_amy2018_release_2022_1_metadata.\"in.water_heater_efficiency\" AS \"in.water_heater_efficiency\", resstock_amy2018_release_2022_1_metadata.\"in.water_heater_fuel\" AS \"in.water_heater_fuel\", resstock_amy2018_release_2022_1_metadata.\"in.water_heater_in_unit\" AS \"in.water_heater_in_unit\", resstock_amy2018_release_2022_1_metadata.\"in.weather_file_city\" AS \"in.weather_file_city\", resstock_amy2018_release_2022_1_metadata.\"in.weather_file_latitude\" AS \"in.weather_file_latitude\", resstock_amy2018_release_2022_1_metadata.\"in.weather_file_longitude\" AS \"in.weather_file_longitude\", resstock_amy2018_release_2022_1_metadata.\"in.window_areas\" AS \"in.window_areas\", resstock_amy2018_release_2022_1_metadata.\"in.windows\" AS \"in.windows\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\" AS \"out.electricity.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\" AS \"out.fuel_oil.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\" AS \"out.natural_gas.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\" AS \"out.propane.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.lrmer_low_re_cost_15_2025_start.co2e_kg\" AS \"out.electricity.total.lrmer_low_re_cost_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.lrmer_low_re_cost_15_2025_start.co2e_kg\" AS \"out.fuel_oil.total.lrmer_low_re_cost_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.lrmer_low_re_cost_15_2025_start.co2e_kg\" AS \"out.natural_gas.total.lrmer_low_re_cost_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.lrmer_low_re_cost_15_2025_start.co2e_kg\" AS \"out.propane.total.lrmer_low_re_cost_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.lrmer_low_re_cost_25_2025_start.co2e_kg\" AS \"out.electricity.total.lrmer_low_re_cost_25_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.lrmer_low_re_cost_25_2025_start.co2e_kg\" AS \"out.fuel_oil.total.lrmer_low_re_cost_25_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.lrmer_low_re_cost_25_2025_start.co2e_kg\" AS \"out.natural_gas.total.lrmer_low_re_cost_25_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.lrmer_low_re_cost_25_2025_start.co2e_kg\" AS \"out.propane.total.lrmer_low_re_cost_25_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.lrmer_mid_case_15_2025_start.co2e_kg\" AS \"out.electricity.total.lrmer_mid_case_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.lrmer_mid_case_15_2025_start.co2e_kg\" AS \"out.fuel_oil.total.lrmer_mid_case_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.lrmer_mid_case_15_2025_start.co2e_kg\" AS \"out.natural_gas.total.lrmer_mid_case_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.lrmer_mid_case_15_2025_start.co2e_kg\" AS \"out.propane.total.lrmer_mid_case_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.ceiling_fan.energy_consumption\" AS \"out.electricity.ceiling_fan.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.ceiling_fan.energy_consumption_intensity\" AS \"out.electricity.ceiling_fan.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.clothes_dryer.energy_consumption\" AS \"out.electricity.clothes_dryer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.clothes_dryer.energy_consumption_intensity\" AS \"out.electricity.clothes_dryer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.clothes_washer.energy_consumption\" AS \"out.electricity.clothes_washer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.clothes_washer.energy_consumption_intensity\" AS \"out.electricity.clothes_washer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.cooling_fans_pumps.energy_consumption\" AS \"out.electricity.cooling_fans_pumps.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.cooling_fans_pumps.energy_consumption_intensity\" AS \"out.electricity.cooling_fans_pumps.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.cooling.energy_consumption\" AS \"out.electricity.cooling.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.cooling.energy_consumption_intensity\" AS \"out.electricity.cooling.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.dishwasher.energy_consumption\" AS \"out.electricity.dishwasher.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.dishwasher.energy_consumption_intensity\" AS \"out.electricity.dishwasher.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.freezer.energy_consumption\" AS \"out.electricity.freezer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.freezer.energy_consumption_intensity\" AS \"out.electricity.freezer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating_fans_pumps.energy_consumption\" AS \"out.electricity.heating_fans_pumps.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating_fans_pumps.energy_consumption_intensity\" AS \"out.electricity.heating_fans_pumps.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating_hp_bkup.energy_consumption\" AS \"out.electricity.heating_hp_bkup.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating_hp_bkup.energy_consumption_intensity\" AS \"out.electricity.heating_hp_bkup.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating.energy_consumption\" AS \"out.electricity.heating.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating.energy_consumption_intensity\" AS \"out.electricity.heating.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_tub_heater.energy_consumption\" AS \"out.electricity.hot_tub_heater.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_tub_heater.energy_consumption_intensity\" AS \"out.electricity.hot_tub_heater.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_tub_pump.energy_consumption\" AS \"out.electricity.hot_tub_pump.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_tub_pump.energy_consumption_intensity\" AS \"out.electricity.hot_tub_pump.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_water.energy_consumption\" AS \"out.electricity.hot_water.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_water.energy_consumption_intensity\" AS \"out.electricity.hot_water.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_exterior.energy_consumption\" AS \"out.electricity.lighting_exterior.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_exterior.energy_consumption_intensity\" AS \"out.electricity.lighting_exterior.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_garage.energy_consumption\" AS \"out.electricity.lighting_garage.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_garage.energy_consumption_intensity\" AS \"out.electricity.lighting_garage.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_interior.energy_consumption\" AS \"out.electricity.lighting_interior.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_interior.energy_consumption_intensity\" AS \"out.electricity.lighting_interior.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.mech_vent.energy_consumption\" AS \"out.electricity.mech_vent.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.mech_vent.energy_consumption_intensity\" AS \"out.electricity.mech_vent.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.plug_loads.energy_consumption\" AS \"out.electricity.plug_loads.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.plug_loads.energy_consumption_intensity\" AS \"out.electricity.plug_loads.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pool_heater.energy_consumption\" AS \"out.electricity.pool_heater.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pool_heater.energy_consumption_intensity\" AS \"out.electricity.pool_heater.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pool_pump.energy_consumption\" AS \"out.electricity.pool_pump.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pool_pump.energy_consumption_intensity\" AS \"out.electricity.pool_pump.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pv.energy_consumption\" AS \"out.electricity.pv.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pv.energy_consumption_intensity\" AS \"out.electricity.pv.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.range_oven.energy_consumption\" AS \"out.electricity.range_oven.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.range_oven.energy_consumption_intensity\" AS \"out.electricity.range_oven.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.refrigerator.energy_consumption\" AS \"out.electricity.refrigerator.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.refrigerator.energy_consumption_intensity\" AS \"out.electricity.refrigerator.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.well_pump.energy_consumption\" AS \"out.electricity.well_pump.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.well_pump.energy_consumption_intensity\" AS \"out.electricity.well_pump.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.heating_hp_bkup.energy_consumption\" AS \"out.fuel_oil.heating_hp_bkup.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.heating_hp_bkup.energy_consumption_intensity\" AS \"out.fuel_oil.heating_hp_bkup.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.heating.energy_consumption\" AS \"out.fuel_oil.heating.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.heating.energy_consumption_intensity\" AS \"out.fuel_oil.heating.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.hot_water.energy_consumption\" AS \"out.fuel_oil.hot_water.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.hot_water.energy_consumption_intensity\" AS \"out.fuel_oil.hot_water.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.clothes_dryer.energy_consumption\" AS \"out.natural_gas.clothes_dryer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.clothes_dryer.energy_consumption_intensity\" AS \"out.natural_gas.clothes_dryer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.fireplace.energy_consumption\" AS \"out.natural_gas.fireplace.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.fireplace.energy_consumption_intensity\" AS \"out.natural_gas.fireplace.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.grill.energy_consumption\" AS \"out.natural_gas.grill.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.grill.energy_consumption_intensity\" AS \"out.natural_gas.grill.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.heating_hp_bkup.energy_consumption\" AS \"out.natural_gas.heating_hp_bkup.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.heating_hp_bkup.energy_consumption_intensity\" AS \"out.natural_gas.heating_hp_bkup.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.heating.energy_consumption\" AS \"out.natural_gas.heating.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.heating.energy_consumption_intensity\" AS \"out.natural_gas.heating.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.hot_tub_heater.energy_consumption\" AS \"out.natural_gas.hot_tub_heater.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.hot_tub_heater.energy_consumption_intensity\" AS \"out.natural_gas.hot_tub_heater.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.hot_water.energy_consumption\" AS \"out.natural_gas.hot_water.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.hot_water.energy_consumption_intensity\" AS \"out.natural_gas.hot_water.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.lighting.energy_consumption\" AS \"out.natural_gas.lighting.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.lighting.energy_consumption_intensity\" AS \"out.natural_gas.lighting.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.pool_heater.energy_consumption\" AS \"out.natural_gas.pool_heater.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.pool_heater.energy_consumption_intensity\" AS \"out.natural_gas.pool_heater.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.range_oven.energy_consumption\" AS \"out.natural_gas.range_oven.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.range_oven.energy_consumption_intensity\" AS \"out.natural_gas.range_oven.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.clothes_dryer.energy_consumption\" AS \"out.propane.clothes_dryer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.clothes_dryer.energy_consumption_intensity\" AS \"out.propane.clothes_dryer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.heating_hp_bkup.energy_consumption\" AS \"out.propane.heating_hp_bkup.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.heating_hp_bkup.energy_consumption_intensity\" AS \"out.propane.heating_hp_bkup.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.heating.energy_consumption\" AS \"out.propane.heating.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.heating.energy_consumption_intensity\" AS \"out.propane.heating.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.hot_water.energy_consumption\" AS \"out.propane.hot_water.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.hot_water.energy_consumption_intensity\" AS \"out.propane.hot_water.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.range_oven.energy_consumption\" AS \"out.propane.range_oven.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.range_oven.energy_consumption_intensity\" AS \"out.propane.range_oven.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.site_energy.net.energy_consumption\" AS \"out.site_energy.net.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.site_energy.net.energy_consumption_intensity\" AS \"out.site_energy.net.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.site_energy.total.energy_consumption\" AS \"out.site_energy.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.site_energy.total.energy_consumption_intensity\" AS \"out.site_energy.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.net.energy_consumption\" AS \"out.electricity.net.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.net.energy_consumption_intensity\" AS \"out.electricity.net.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.energy_consumption\" AS \"out.electricity.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.energy_consumption_intensity\" AS \"out.electricity.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.energy_consumption\" AS \"out.fuel_oil.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.energy_consumption_intensity\" AS \"out.fuel_oil.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.energy_consumption\" AS \"out.natural_gas.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.energy_consumption_intensity\" AS \"out.natural_gas.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.energy_consumption\" AS \"out.propane.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.energy_consumption_intensity\" AS \"out.propane.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.upgrade AS upgrade, resstock_amy2018_release_2022_1_metadata.metadata_index AS metadata_index, resstock_amy2018_release_2022_1_metadata.bldg_id AS bldg_id \n", "FROM resstock_amy2018_release_2022_1_metadata \n", "WHERE CAST(resstock_amy2018_release_2022_1_metadata.upgrade AS VARCHAR) = '0') AS baseline \n", @@ -374,10 +364,17 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 21, "id": "4256cb11", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:buildstock_query.query_core:Submitted queries[0] (CACHED)\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -385,23 +382,22 @@ "1\n" ] }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:buildstock_query.query_core:Submitted queries[1] (CACHED)\n" + ] + }, { "data": { "text/plain": [ "{'submitted': 0, 'running': 0, 'pending': 2, 'completed': 0, 'failed': 0}" ] }, - "execution_count": 15, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:buildstock_query.query_core:Submitted queries[0] (9dd9da53-0ae0-4793-bd67-2710a89423bb)\n", - "INFO:buildstock_query.query_core:Submitted queries[1] (4fef3145-d9b1-4aac-992a-d419c761ece2)\n" - ] } ], "source": [ @@ -412,7 +408,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 22, "id": "9dd3cb02", "metadata": {}, "outputs": [ @@ -422,7 +418,7 @@ "{'submitted': 2, 'running': 0, 'pending': 0, 'completed': 2, 'failed': 0}" ] }, - "execution_count": 16, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -433,7 +429,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 23, "id": "68f8b5b4", "metadata": {}, "outputs": [ @@ -443,10 +439,8 @@ "text": [ "INFO:buildstock_query.query_core:{'submitted': 2, 'running': 0, 'pending': 0, 'completed': 2, 'failed': 0}\n", "INFO:buildstock_query.query_core:Batch query completed. \n", - "INFO:buildstock_query.query_core:Got result from Query [0] (9dd9da53-0ae0-4793-bd67-2710a89423bb)\n", - "INFO:buildstock_query.query_core:9dd9da53-0ae0-4793-bd67-2710a89423bb cost 0.0 GB ($0.0). Session total: 0.0 GB ($0.0)\n", - "INFO:buildstock_query.query_core:Got result from Query [1] (4fef3145-d9b1-4aac-992a-d419c761ece2)\n", - "INFO:buildstock_query.query_core:4fef3145-d9b1-4aac-992a-d419c761ece2 cost 0.0 GB ($0.0). Session total: 0.0 GB ($0.0)\n", + "INFO:buildstock_query.query_core:Got result from Query [0] (CACHED)\n", + "INFO:buildstock_query.query_core:Got result from Query [1] (CACHED)\n", "INFO:buildstock_query.query_core:Concatenating the results.\n" ] }, @@ -474,7 +468,7 @@ " geometry_building_type_recs\n", " sample_count\n", " units_count\n", - " electricitytotalenergy_consumption\n", + " electricity.total.energy_consumption\n", " query_id\n", " \n", " \n", @@ -576,20 +570,20 @@ "3 Single-Family Attached 32125 7.778459e+06 \n", "4 Single-Family Detached 338087 8.186135e+07 \n", "\n", - " electricitytotalenergy_consumption query_id \n", - "0 9.934359e+10 0 \n", - "1 8.623094e+10 0 \n", - "2 1.769924e+11 0 \n", - "3 7.379245e+10 0 \n", - "4 1.115071e+12 0 \n", - "0 9.934359e+10 1 \n", - "1 8.623094e+10 1 \n", - "2 1.769924e+11 1 \n", - "3 7.379245e+10 1 \n", - "4 1.115071e+12 1 " + " electricity.total.energy_consumption query_id \n", + "0 9.934359e+10 0 \n", + "1 8.623094e+10 0 \n", + "2 1.769924e+11 0 \n", + "3 7.379245e+10 0 \n", + "4 1.115071e+12 0 \n", + "0 9.934359e+10 1 \n", + "1 8.623094e+10 1 \n", + "2 1.769924e+11 1 \n", + "3 7.379245e+10 1 \n", + "4 1.115071e+12 1 " ] }, - "execution_count": 17, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -601,7 +595,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 24, "id": "eae0cd83", "metadata": {}, "outputs": [ @@ -609,17 +603,19 @@ "name": "stderr", "output_type": "stream", "text": [ - "WARNING:buildstock_query.query_core:Column in.state found in multiple tables ['baseline', 'upgrade', 'resstock_amy2018_release_2022_1_metadata'].Using baseline\n", - "WARNING:buildstock_query.query_core:Column in.state found in multiple tables ['baseline', 'upgrade', 'resstock_amy2018_release_2022_1_metadata'].Using baseline\n" + "WARNING:buildstock_query.query_core:Column in.state found in multiple tables ['baseline', 'upgrade'].Using baseline\n", + "WARNING:buildstock_query.query_core:Column in.state found in multiple tables ['baseline', 'upgrade'].Using baseline\n", + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n", + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n" ] }, { "data": { "text/plain": [ - "'s3://resstock-core/athena_query_results/12d148af-98ee-494e-af42-96dabd877342.csv'" + "'s3://resstock-core/athena_query_results/5da6db8d-351c-4d95-99bf-4b219818f690.csv'" ] }, - "execution_count": 19, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -639,7 +635,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 25, "id": "3f596274", "metadata": {}, "outputs": [ @@ -667,7 +663,7 @@ " state\n", " sample_count\n", " units_count\n", - " electricitytotalenergy_consumption\n", + " electricity.total.energy_consumption\n", " \n", " \n", " \n", @@ -1019,59 +1015,59 @@ "" ], "text/plain": [ - " state sample_count units_count electricitytotalenergy_consumption\n", - "0 AL 9105 2.204603e+06 3.431544e+10\n", - "1 AR 5528 1.338500e+06 2.035367e+10\n", - "2 AZ 12004 2.906541e+06 4.111543e+10\n", - "3 CA 57367 1.389033e+07 1.057446e+11\n", - "4 CO 9415 2.279663e+06 2.090904e+10\n", - "5 CT 6162 1.492011e+06 1.370332e+10\n", - "6 DC 1264 3.060536e+05 2.918233e+09\n", - "7 DE 1723 4.171917e+05 5.036565e+09\n", - "8 FL 37658 9.118170e+06 1.254417e+11\n", - "9 GA 17127 4.146978e+06 5.762675e+10\n", - "10 IA 5616 1.359808e+06 1.605912e+10\n", - "11 ID 2828 6.847465e+05 7.859681e+09\n", - "12 IL 21870 5.295405e+06 4.978103e+10\n", - "13 IN 11672 2.826153e+06 3.338154e+10\n", - "14 KS 5147 1.246248e+06 1.591508e+10\n", - "15 KY 8040 1.946733e+06 3.039305e+10\n", - "16 LA 8302 2.010172e+06 3.095360e+10\n", - "17 MA 11690 2.830512e+06 2.432609e+10\n", - "18 MD 9973 2.414773e+06 3.302985e+10\n", - "19 ME 2997 7.256666e+05 5.141257e+09\n", - "20 MI 18744 4.538504e+06 3.820236e+10\n", - "21 MN 9816 2.376758e+06 2.490357e+10\n", - "22 MO 11285 2.732448e+06 3.874516e+10\n", - "23 MS 5336 1.292011e+06 1.970122e+10\n", - "24 MT 2027 4.907996e+05 5.178428e+09\n", - "25 NC 18369 4.447705e+06 6.654330e+10\n", - "26 ND 1441 3.489108e+05 5.208391e+09\n", - "27 NE 3364 8.145287e+05 1.153555e+10\n", - "28 NH 2555 6.186447e+05 5.084624e+09\n", - "29 NJ 14783 3.579423e+06 3.146341e+10\n", - "30 NM 3762 9.108969e+05 8.528537e+09\n", - "31 NV 4946 1.197580e+06 1.401141e+10\n", - "32 NY 33676 8.154004e+06 6.469370e+10\n", - "33 OH 21219 5.137778e+06 5.479833e+10\n", - "34 OK 7007 1.696612e+06 2.610869e+10\n", - "35 OR 7025 1.700970e+06 1.820027e+10\n", - "36 PA 23052 5.581604e+06 5.916968e+10\n", - "37 RI 1910 4.624702e+05 3.747043e+09\n", - "38 SC 9029 2.186201e+06 3.335008e+10\n", - "39 SD 1546 3.743345e+05 4.945029e+09\n", - "40 TN 11834 2.865378e+06 4.558550e+10\n", - "41 TX 43058 1.042568e+07 1.620124e+11\n", - "42 UT 4224 1.022761e+06 8.810964e+09\n", - "43 VA 14180 3.433418e+06 5.204499e+10\n", - "44 VT 1345 3.256662e+05 2.320639e+09\n", - "45 WA 12224 2.959809e+06 3.496322e+10\n", - "46 WI 10917 2.643344e+06 2.306601e+10\n", - "47 WV 3648 8.832939e+05 1.176950e+10\n", - "48 WY 1106 2.677969e+05 2.733548e+09" + " state sample_count units_count electricity.total.energy_consumption\n", + "0 AL 9105 2.204603e+06 3.431544e+10\n", + "1 AR 5528 1.338500e+06 2.035367e+10\n", + "2 AZ 12004 2.906541e+06 4.111543e+10\n", + "3 CA 57367 1.389033e+07 1.057446e+11\n", + "4 CO 9415 2.279663e+06 2.090904e+10\n", + "5 CT 6162 1.492011e+06 1.370332e+10\n", + "6 DC 1264 3.060536e+05 2.918233e+09\n", + "7 DE 1723 4.171917e+05 5.036565e+09\n", + "8 FL 37658 9.118170e+06 1.254417e+11\n", + "9 GA 17127 4.146978e+06 5.762675e+10\n", + "10 IA 5616 1.359808e+06 1.605912e+10\n", + "11 ID 2828 6.847465e+05 7.859681e+09\n", + "12 IL 21870 5.295405e+06 4.978103e+10\n", + "13 IN 11672 2.826153e+06 3.338154e+10\n", + "14 KS 5147 1.246248e+06 1.591508e+10\n", + "15 KY 8040 1.946733e+06 3.039305e+10\n", + "16 LA 8302 2.010172e+06 3.095360e+10\n", + "17 MA 11690 2.830512e+06 2.432609e+10\n", + "18 MD 9973 2.414773e+06 3.302985e+10\n", + "19 ME 2997 7.256666e+05 5.141257e+09\n", + "20 MI 18744 4.538504e+06 3.820236e+10\n", + "21 MN 9816 2.376758e+06 2.490357e+10\n", + "22 MO 11285 2.732448e+06 3.874516e+10\n", + "23 MS 5336 1.292011e+06 1.970122e+10\n", + "24 MT 2027 4.907996e+05 5.178428e+09\n", + "25 NC 18369 4.447705e+06 6.654330e+10\n", + "26 ND 1441 3.489108e+05 5.208391e+09\n", + "27 NE 3364 8.145287e+05 1.153555e+10\n", + "28 NH 2555 6.186447e+05 5.084624e+09\n", + "29 NJ 14783 3.579423e+06 3.146341e+10\n", + "30 NM 3762 9.108969e+05 8.528537e+09\n", + "31 NV 4946 1.197580e+06 1.401141e+10\n", + "32 NY 33676 8.154004e+06 6.469370e+10\n", + "33 OH 21219 5.137778e+06 5.479833e+10\n", + "34 OK 7007 1.696612e+06 2.610869e+10\n", + "35 OR 7025 1.700970e+06 1.820027e+10\n", + "36 PA 23052 5.581604e+06 5.916968e+10\n", + "37 RI 1910 4.624702e+05 3.747043e+09\n", + "38 SC 9029 2.186201e+06 3.335008e+10\n", + "39 SD 1546 3.743345e+05 4.945029e+09\n", + "40 TN 11834 2.865378e+06 4.558550e+10\n", + "41 TX 43058 1.042568e+07 1.620124e+11\n", + "42 UT 4224 1.022761e+06 8.810964e+09\n", + "43 VA 14180 3.433418e+06 5.204499e+10\n", + "44 VT 1345 3.256662e+05 2.320639e+09\n", + "45 WA 12224 2.959809e+06 3.496322e+10\n", + "46 WI 10917 2.643344e+06 2.306601e+10\n", + "47 WV 3648 8.832939e+05 1.176950e+10\n", + "48 WY 1106 2.677969e+05 2.733548e+09" ] }, - "execution_count": 20, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -1082,7 +1078,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 26, "id": "20174916", "metadata": {}, "outputs": [ @@ -1092,7 +1088,7 @@ "'SUCCEEDED'" ] }, - "execution_count": 21, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -1103,7 +1099,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 27, "id": "64be07ec", "metadata": {}, "outputs": [], @@ -1113,7 +1109,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 28, "id": "7e7e9a80", "metadata": {}, "outputs": [ @@ -1123,7 +1119,7 @@ "[]" ] }, - "execution_count": 22, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -1134,7 +1130,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 29, "id": "66cc777b", "metadata": {}, "outputs": [ diff --git a/example_usage/aggregates_and_savings_oedi.ipynb b/example_usage/aggregates_and_savings_oedi.ipynb index 447cc72..86765bc 100644 --- a/example_usage/aggregates_and_savings_oedi.ipynb +++ b/example_usage/aggregates_and_savings_oedi.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 7, "id": "955250fc", "metadata": {}, "outputs": [ @@ -34,11 +34,11 @@ "output_type": "stream", "text": [ "INFO:buildstock_query.query_core:Loading resstock_amy2018_release_2022_1 ...\n", - "INFO:buildstock_query.query_core:10 queries cache read from None.\n", - "INFO:buildstock_query.query_core:10 queries cache is updated.\n", + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n", + "INFO:buildstock_query.query_core:17 queries cache read from None.\n", + "INFO:buildstock_query.query_core:17 queries cache is updated.\n", "INFO:buildstock_query.main:Getting Success counts...\n", - "INFO:buildstock_query.report_query:Checking integrity with ts_tables ...\n", - "INFO:buildstock_query.query_core:No new queries to save.\n" + "INFO:buildstock_query.report_query:Checking integrity with ts_tables ...\n" ] }, { @@ -48,44 +48,57 @@ " success unapplicable fail Sum Applied % no-chng bad-chng \\\n", "upgrade \n", "0 548916 0 0 548916 0.0 0 0 \n", - "1 531823 17093 0 548916 96.9 6027 957 \n", - "2 536797 12119 0 548916 97.8 6462 888 \n", - "3 548260 656 0 548916 99.9 780 29877 \n", - "4 548260 656 0 548916 99.9 3 20678 \n", - "5 532156 16760 0 548916 96.9 793 47736 \n", - "6 545331 3585 0 548916 99.3 15 2765 \n", - "7 400579 148337 0 548916 73.0 4161 7604 \n", - "8 548913 3 0 548916 100.0 1 6457 \n", - "9 548916 0 0 548916 100.0 0 5443 \n", - "10 548916 0 0 548916 100.0 0 5310 \n", + "1 531823 17093 0 548916 96.9 0 0 \n", + "10 548916 0 0 548916 100.0 0 0 \n", + "2 536797 12119 0 548916 97.8 0 0 \n", + "3 548260 656 0 548916 99.9 0 0 \n", + "4 548260 656 0 548916 99.9 0 0 \n", + "5 532156 16760 0 548916 96.9 0 0 \n", + "6 545331 3585 0 548916 99.3 0 0 \n", + "7 400579 148337 0 548916 73.0 0 0 \n", + "8 548913 3 0 548916 100.0 0 0 \n", + "9 548916 0 0 548916 100.0 0 0 \n", "\n", - " ok-chng true-bad-chng true-ok-chng null any no-chng % \\\n", - "upgrade \n", - "0 0 0 0 0 0 0.0 \n", - "1 524839 957 524839 0 531823 1.1 \n", - "2 529447 888 529447 0 536797 1.2 \n", - "3 517603 29877 517603 0 548260 0.1 \n", - "4 527579 20678 527579 0 548260 0.0 \n", - "5 483627 47736 483627 0 532156 0.1 \n", - "6 542551 2765 542551 0 545331 0.0 \n", - "7 388814 7604 388814 0 400579 1.0 \n", - "8 542455 6457 542455 0 548913 0.0 \n", - "9 543473 5443 543473 0 548916 0.0 \n", - "10 543606 5310 543606 0 548916 0.0 \n", + " ok-chng true-bad-chng true-ok-chng null any no-chng % \\\n", + "upgrade \n", + "0 0 0 0 0 0 0.0 \n", + "1 0 0 0 0 0 0.0 \n", + "10 0 0 0 0 0 0.0 \n", + "2 0 0 0 0 0 0.0 \n", + "3 0 0 0 0 0 0.0 \n", + "4 0 0 0 0 0 0.0 \n", + "5 0 0 0 0 0 0.0 \n", + "6 0 0 0 0 0 0.0 \n", + "7 0 0 0 0 0 0.0 \n", + "8 0 0 0 0 0 0.0 \n", + "9 0 0 0 0 0 0.0 \n", "\n", " bad-chng % ok-chng % true-ok-chng % true-bad-chng % \n", "upgrade \n", "0 0.0 0.0 0.0 0.0 \n", - "1 0.2 98.7 98.7 0.2 \n", - "2 0.2 98.6 98.6 0.2 \n", - "3 5.4 94.4 94.4 5.4 \n", - "4 3.8 96.2 96.2 3.8 \n", - "5 9.0 90.9 90.9 9.0 \n", - "6 0.5 99.5 99.5 0.5 \n", - "7 1.9 97.1 97.1 1.9 \n", - "8 1.2 98.8 98.8 1.2 \n", - "9 1.0 99.0 99.0 1.0 \n", - "10 1.0 99.0 99.0 1.0 \n", + "1 0.0 0.0 0.0 0.0 \n", + "10 0.0 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 0.0 \n", + "5 0.0 0.0 0.0 0.0 \n", + "6 0.0 0.0 0.0 0.0 \n", + "7 0.0 0.0 0.0 0.0 \n", + "8 0.0 0.0 0.0 0.0 \n", + "9 0.0 0.0 0.0 0.0 \n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:buildstock_query.query_core:No new queries to save.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "\u001b[92mAnnual and timeseries tables are verified to have the same number of buildings.\u001b[0m\n", "\u001b[92mAll buildings are verified to have the same number of (35040) timeseries rows.\u001b[0m\n" ] @@ -100,7 +113,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "id": "708912ad", "metadata": {}, "outputs": [ @@ -108,7 +121,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "WARNING:buildstock_query.query_core:Column in.geometry_building_type_recs found in multiple tables ['baseline', 'upgrade', 'resstock_amy2018_release_2022_1_metadata'].Using baseline\n" + "WARNING:buildstock_query.query_core:Column in.geometry_building_type_recs found in multiple tables ['baseline', 'upgrade'].Using baseline\n" ] }, { @@ -194,7 +207,7 @@ "4 1.115071e+12 " ] }, - "execution_count": 4, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -207,7 +220,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 9, "id": "6afe13c0", "metadata": {}, "outputs": [ @@ -215,7 +228,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:buildstock_query.query_core:11 queries cache saved to .bsq_cache/resstock_amy2018_release_2022_1_query_cache.pkl\n" + "INFO:buildstock_query.query_core:No new queries to save.\n" ] } ], @@ -225,7 +238,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 10, "id": "acfd11d9", "metadata": {}, "outputs": [ @@ -340,7 +353,7 @@ " Column('state', String(), table=)]" ] }, - "execution_count": 6, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -352,7 +365,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 11, "id": "e000d1d4", "metadata": {}, "outputs": [ @@ -360,7 +373,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "WARNING:buildstock_query.query_core:Column in.geometry_building_type_recs found in multiple tables ['baseline', 'upgrade', 'resstock_amy2018_release_2022_1_metadata'].Using baseline\n", + "WARNING:buildstock_query.query_core:Column in.geometry_building_type_recs found in multiple tables ['baseline', 'upgrade'].Using baseline\n", "INFO:buildstock_query.aggregate_query:Restricting query to Upgrade 0.\n" ] }, @@ -409,7 +422,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 12, "id": "20e644bf", "metadata": {}, "outputs": [ @@ -417,11 +430,33 @@ "name": "stdout", "output_type": "stream", "text": [ - "SELECT baseline.\"in.geometry_building_type_recs\" AS geometry_building_type_recs, resstock_amy2018_release_2022_1_by_state.state AS state, date_trunc('month', date_add('second', -900, resstock_amy2018_release_2022_1_by_state.timestamp)) AS timestamp, count(distinct(resstock_amy2018_release_2022_1_by_state.bldg_id)) AS sample_count, (count(distinct(resstock_amy2018_release_2022_1_by_state.bldg_id)) * sum(baseline.weight)) / sum(1) AS units_count, sum(1) / count(distinct(resstock_amy2018_release_2022_1_by_state.bldg_id)) AS rows_per_sample, sum(resstock_amy2018_release_2022_1_by_state.\"out.electricity.total.energy_consumption\" * baseline.weight) AS electricitytotalenergy_consumption \n", - "FROM resstock_amy2018_release_2022_1_by_state JOIN (SELECT resstock_amy2018_release_2022_1_metadata.applicability AS applicability, resstock_amy2018_release_2022_1_metadata.\"in.sqft\" AS \"in.sqft\", resstock_amy2018_release_2022_1_metadata.weight AS weight, resstock_amy2018_release_2022_1_metadata.\"in.ahs_region\" AS \"in.ahs_region\", resstock_amy2018_release_2022_1_metadata.\"in.ashrae_iecc_climate_zone_2004\" AS \"in.ashrae_iecc_climate_zone_2004\", resstock_amy2018_release_2022_1_metadata.\"in.ashrae_iecc_climate_zone_2004_2_a_split\" AS \"in.ashrae_iecc_climate_zone_2004_2_a_split\", resstock_amy2018_release_2022_1_metadata.\"in.bathroom_spot_vent_hour\" AS \"in.bathroom_spot_vent_hour\", resstock_amy2018_release_2022_1_metadata.\"in.bedrooms\" AS \"in.bedrooms\", resstock_amy2018_release_2022_1_metadata.\"in.building_america_climate_zone\" AS \"in.building_america_climate_zone\", resstock_amy2018_release_2022_1_metadata.\"in.cec_climate_zone\" AS \"in.cec_climate_zone\", resstock_amy2018_release_2022_1_metadata.\"in.ceiling_fan\" AS \"in.ceiling_fan\", resstock_amy2018_release_2022_1_metadata.\"in.census_division\" AS \"in.census_division\", resstock_amy2018_release_2022_1_metadata.\"in.census_division_recs\" AS \"in.census_division_recs\", resstock_amy2018_release_2022_1_metadata.\"in.census_region\" AS \"in.census_region\", resstock_amy2018_release_2022_1_metadata.\"in.city\" AS \"in.city\", resstock_amy2018_release_2022_1_metadata.\"in.clothes_dryer\" AS \"in.clothes_dryer\", resstock_amy2018_release_2022_1_metadata.\"in.clothes_washer\" AS \"in.clothes_washer\", resstock_amy2018_release_2022_1_metadata.\"in.clothes_washer_presence\" AS \"in.clothes_washer_presence\", resstock_amy2018_release_2022_1_metadata.\"in.cooking_range\" AS \"in.cooking_range\", resstock_amy2018_release_2022_1_metadata.\"in.cooling_setpoint\" AS \"in.cooling_setpoint\", resstock_amy2018_release_2022_1_metadata.\"in.cooling_setpoint_has_offset\" AS \"in.cooling_setpoint_has_offset\", resstock_amy2018_release_2022_1_metadata.\"in.cooling_setpoint_offset_magnitude\" AS \"in.cooling_setpoint_offset_magnitude\", resstock_amy2018_release_2022_1_metadata.\"in.cooling_setpoint_offset_period\" AS \"in.cooling_setpoint_offset_period\", resstock_amy2018_release_2022_1_metadata.\"in.corridor\" AS \"in.corridor\", resstock_amy2018_release_2022_1_metadata.\"in.county\" AS \"in.county\", resstock_amy2018_release_2022_1_metadata.\"in.county_and_puma\" AS \"in.county_and_puma\", resstock_amy2018_release_2022_1_metadata.\"in.dehumidifier\" AS \"in.dehumidifier\", resstock_amy2018_release_2022_1_metadata.\"in.dishwasher\" AS \"in.dishwasher\", resstock_amy2018_release_2022_1_metadata.\"in.door_area\" AS \"in.door_area\", resstock_amy2018_release_2022_1_metadata.\"in.doors\" AS \"in.doors\", resstock_amy2018_release_2022_1_metadata.\"in.ducts\" AS \"in.ducts\", resstock_amy2018_release_2022_1_metadata.\"in.eaves\" AS \"in.eaves\", resstock_amy2018_release_2022_1_metadata.\"in.electric_vehicle\" AS \"in.electric_vehicle\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_electricity_folders\" AS \"in.emissions_electricity_folders\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_electricity_units\" AS \"in.emissions_electricity_units\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_electricity_values_or_filepaths\" AS \"in.emissions_electricity_values_or_filepaths\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_fossil_fuel_units\" AS \"in.emissions_fossil_fuel_units\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_fuel_oil_values\" AS \"in.emissions_fuel_oil_values\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_natural_gas_values\" AS \"in.emissions_natural_gas_values\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_propane_values\" AS \"in.emissions_propane_values\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_scenario_names\" AS \"in.emissions_scenario_names\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_types\" AS \"in.emissions_types\", resstock_amy2018_release_2022_1_metadata.\"in.emissions_wood_values\" AS \"in.emissions_wood_values\", resstock_amy2018_release_2022_1_metadata.\"in.federal_poverty_level\" AS \"in.federal_poverty_level\", resstock_amy2018_release_2022_1_metadata.\"in.generation_and_emissions_assessment_region\" AS \"in.generation_and_emissions_assessment_region\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_attic_type\" AS \"in.geometry_attic_type\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_horizontal_location_mf\" AS \"in.geometry_building_horizontal_location_mf\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_horizontal_location_sfa\" AS \"in.geometry_building_horizontal_location_sfa\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_level_mf\" AS \"in.geometry_building_level_mf\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_number_units_mf\" AS \"in.geometry_building_number_units_mf\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_number_units_sfa\" AS \"in.geometry_building_number_units_sfa\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_type_acs\" AS \"in.geometry_building_type_acs\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_type_height\" AS \"in.geometry_building_type_height\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_building_type_recs\" AS \"in.geometry_building_type_recs\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_floor_area\" AS \"in.geometry_floor_area\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_floor_area_bin\" AS \"in.geometry_floor_area_bin\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_foundation_type\" AS \"in.geometry_foundation_type\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_garage\" AS \"in.geometry_garage\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_stories\" AS \"in.geometry_stories\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_stories_low_rise\" AS \"in.geometry_stories_low_rise\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_story_bin\" AS \"in.geometry_story_bin\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_wall_exterior_finish\" AS \"in.geometry_wall_exterior_finish\", resstock_amy2018_release_2022_1_metadata.\"in.geometry_wall_type\" AS \"in.geometry_wall_type\", resstock_amy2018_release_2022_1_metadata.\"in.has_pv\" AS \"in.has_pv\", resstock_amy2018_release_2022_1_metadata.\"in.heating_fuel\" AS \"in.heating_fuel\", resstock_amy2018_release_2022_1_metadata.\"in.heating_setpoint\" AS \"in.heating_setpoint\", resstock_amy2018_release_2022_1_metadata.\"in.heating_setpoint_has_offset\" AS \"in.heating_setpoint_has_offset\", resstock_amy2018_release_2022_1_metadata.\"in.heating_setpoint_offset_magnitude\" AS \"in.heating_setpoint_offset_magnitude\", resstock_amy2018_release_2022_1_metadata.\"in.heating_setpoint_offset_period\" AS \"in.heating_setpoint_offset_period\", resstock_amy2018_release_2022_1_metadata.\"in.holiday_lighting\" AS \"in.holiday_lighting\", resstock_amy2018_release_2022_1_metadata.\"in.hot_water_distribution\" AS \"in.hot_water_distribution\", resstock_amy2018_release_2022_1_metadata.\"in.hot_water_fixtures\" AS \"in.hot_water_fixtures\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_cooling_efficiency\" AS \"in.hvac_cooling_efficiency\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_cooling_partial_space_conditioning\" AS \"in.hvac_cooling_partial_space_conditioning\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_cooling_type\" AS \"in.hvac_cooling_type\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_has_ducts\" AS \"in.hvac_has_ducts\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_has_shared_system\" AS \"in.hvac_has_shared_system\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_has_zonal_electric_heating\" AS \"in.hvac_has_zonal_electric_heating\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_heating_efficiency\" AS \"in.hvac_heating_efficiency\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_heating_type\" AS \"in.hvac_heating_type\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_heating_type_and_fuel\" AS \"in.hvac_heating_type_and_fuel\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_secondary_heating_efficiency\" AS \"in.hvac_secondary_heating_efficiency\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_secondary_heating_type_and_fuel\" AS \"in.hvac_secondary_heating_type_and_fuel\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_shared_efficiencies\" AS \"in.hvac_shared_efficiencies\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_is_faulted\" AS \"in.hvac_system_is_faulted\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_single_speed_ac_airflow\" AS \"in.hvac_system_single_speed_ac_airflow\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_single_speed_ac_charge\" AS \"in.hvac_system_single_speed_ac_charge\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_single_speed_ashp_airflow\" AS \"in.hvac_system_single_speed_ashp_airflow\", resstock_amy2018_release_2022_1_metadata.\"in.hvac_system_single_speed_ashp_charge\" AS \"in.hvac_system_single_speed_ashp_charge\", resstock_amy2018_release_2022_1_metadata.\"in.income\" AS \"in.income\", resstock_amy2018_release_2022_1_metadata.\"in.income_recs_2015\" AS \"in.income_recs_2015\", resstock_amy2018_release_2022_1_metadata.\"in.income_recs_2020\" AS \"in.income_recs_2020\", resstock_amy2018_release_2022_1_metadata.\"in.infiltration\" AS \"in.infiltration\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_ceiling\" AS \"in.insulation_ceiling\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_floor\" AS \"in.insulation_floor\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_foundation_wall\" AS \"in.insulation_foundation_wall\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_rim_joist\" AS \"in.insulation_rim_joist\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_roof\" AS \"in.insulation_roof\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_slab\" AS \"in.insulation_slab\", resstock_amy2018_release_2022_1_metadata.\"in.insulation_wall\" AS \"in.insulation_wall\", resstock_amy2018_release_2022_1_metadata.\"in.interior_shading\" AS \"in.interior_shading\", resstock_amy2018_release_2022_1_metadata.\"in.iso_rto_region\" AS \"in.iso_rto_region\", resstock_amy2018_release_2022_1_metadata.\"in.lighting\" AS \"in.lighting\", resstock_amy2018_release_2022_1_metadata.\"in.lighting_interior_use\" AS \"in.lighting_interior_use\", resstock_amy2018_release_2022_1_metadata.\"in.lighting_other_use\" AS \"in.lighting_other_use\", resstock_amy2018_release_2022_1_metadata.\"in.location_region\" AS \"in.location_region\", resstock_amy2018_release_2022_1_metadata.\"in.mechanical_ventilation\" AS \"in.mechanical_ventilation\", resstock_amy2018_release_2022_1_metadata.\"in.misc_extra_refrigerator\" AS \"in.misc_extra_refrigerator\", resstock_amy2018_release_2022_1_metadata.\"in.misc_freezer\" AS \"in.misc_freezer\", resstock_amy2018_release_2022_1_metadata.\"in.misc_gas_fireplace\" AS \"in.misc_gas_fireplace\", resstock_amy2018_release_2022_1_metadata.\"in.misc_gas_grill\" AS \"in.misc_gas_grill\", resstock_amy2018_release_2022_1_metadata.\"in.misc_gas_lighting\" AS \"in.misc_gas_lighting\", resstock_amy2018_release_2022_1_metadata.\"in.misc_hot_tub_spa\" AS \"in.misc_hot_tub_spa\", resstock_amy2018_release_2022_1_metadata.\"in.misc_pool\" AS \"in.misc_pool\", resstock_amy2018_release_2022_1_metadata.\"in.misc_pool_heater\" AS \"in.misc_pool_heater\", resstock_amy2018_release_2022_1_metadata.\"in.misc_pool_pump\" AS \"in.misc_pool_pump\", resstock_amy2018_release_2022_1_metadata.\"in.misc_well_pump\" AS \"in.misc_well_pump\", resstock_amy2018_release_2022_1_metadata.\"in.natural_ventilation\" AS \"in.natural_ventilation\", resstock_amy2018_release_2022_1_metadata.\"in.neighbors\" AS \"in.neighbors\", resstock_amy2018_release_2022_1_metadata.\"in.occupants\" AS \"in.occupants\", resstock_amy2018_release_2022_1_metadata.\"in.orientation\" AS \"in.orientation\", resstock_amy2018_release_2022_1_metadata.\"in.overhangs\" AS \"in.overhangs\", resstock_amy2018_release_2022_1_metadata.\"in.plug_load_diversity\" AS \"in.plug_load_diversity\", resstock_amy2018_release_2022_1_metadata.\"in.plug_loads\" AS \"in.plug_loads\", resstock_amy2018_release_2022_1_metadata.\"in.puma\" AS \"in.puma\", resstock_amy2018_release_2022_1_metadata.\"in.puma_metro_status\" AS \"in.puma_metro_status\", resstock_amy2018_release_2022_1_metadata.\"in.pv_orientation\" AS \"in.pv_orientation\", resstock_amy2018_release_2022_1_metadata.\"in.pv_system_size\" AS \"in.pv_system_size\", resstock_amy2018_release_2022_1_metadata.\"in.radiant_barrier\" AS \"in.radiant_barrier\", resstock_amy2018_release_2022_1_metadata.\"in.range_spot_vent_hour\" AS \"in.range_spot_vent_hour\", resstock_amy2018_release_2022_1_metadata.\"in.reeds_balancing_area\" AS \"in.reeds_balancing_area\", resstock_amy2018_release_2022_1_metadata.\"in.refrigerator\" AS \"in.refrigerator\", resstock_amy2018_release_2022_1_metadata.\"in.roof_material\" AS \"in.roof_material\", resstock_amy2018_release_2022_1_metadata.\"in.schedules\" AS \"in.schedules\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_begin_day_of_month\" AS \"in.simulation_control_run_period_begin_day_of_month\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_begin_month\" AS \"in.simulation_control_run_period_begin_month\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_calendar_year\" AS \"in.simulation_control_run_period_calendar_year\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_end_day_of_month\" AS \"in.simulation_control_run_period_end_day_of_month\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_run_period_end_month\" AS \"in.simulation_control_run_period_end_month\", resstock_amy2018_release_2022_1_metadata.\"in.simulation_control_timestep\" AS \"in.simulation_control_timestep\", resstock_amy2018_release_2022_1_metadata.\"in.solar_hot_water\" AS \"in.solar_hot_water\", resstock_amy2018_release_2022_1_metadata.\"in.state\" AS \"in.state\", resstock_amy2018_release_2022_1_metadata.\"in.tenure\" AS \"in.tenure\", resstock_amy2018_release_2022_1_metadata.\"in.units_represented\" AS \"in.units_represented\", resstock_amy2018_release_2022_1_metadata.\"in.usage_level\" AS \"in.usage_level\", resstock_amy2018_release_2022_1_metadata.\"in.vacancy_status\" AS \"in.vacancy_status\", resstock_amy2018_release_2022_1_metadata.\"in.vintage\" AS \"in.vintage\", resstock_amy2018_release_2022_1_metadata.\"in.vintage_acs\" AS \"in.vintage_acs\", resstock_amy2018_release_2022_1_metadata.\"in.water_heater_efficiency\" AS \"in.water_heater_efficiency\", resstock_amy2018_release_2022_1_metadata.\"in.water_heater_fuel\" AS \"in.water_heater_fuel\", resstock_amy2018_release_2022_1_metadata.\"in.water_heater_in_unit\" AS \"in.water_heater_in_unit\", resstock_amy2018_release_2022_1_metadata.\"in.weather_file_city\" AS \"in.weather_file_city\", resstock_amy2018_release_2022_1_metadata.\"in.weather_file_latitude\" AS \"in.weather_file_latitude\", resstock_amy2018_release_2022_1_metadata.\"in.weather_file_longitude\" AS \"in.weather_file_longitude\", resstock_amy2018_release_2022_1_metadata.\"in.window_areas\" AS \"in.window_areas\", resstock_amy2018_release_2022_1_metadata.\"in.windows\" AS \"in.windows\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\" AS \"out.electricity.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\" AS \"out.fuel_oil.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\" AS \"out.natural_gas.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\" AS \"out.propane.total.lrmer_95_decarb_by_2035_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.lrmer_low_re_cost_15_2025_start.co2e_kg\" AS \"out.electricity.total.lrmer_low_re_cost_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.lrmer_low_re_cost_15_2025_start.co2e_kg\" AS \"out.fuel_oil.total.lrmer_low_re_cost_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.lrmer_low_re_cost_15_2025_start.co2e_kg\" AS \"out.natural_gas.total.lrmer_low_re_cost_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.lrmer_low_re_cost_15_2025_start.co2e_kg\" AS \"out.propane.total.lrmer_low_re_cost_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.lrmer_low_re_cost_25_2025_start.co2e_kg\" AS \"out.electricity.total.lrmer_low_re_cost_25_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.lrmer_low_re_cost_25_2025_start.co2e_kg\" AS \"out.fuel_oil.total.lrmer_low_re_cost_25_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.lrmer_low_re_cost_25_2025_start.co2e_kg\" AS \"out.natural_gas.total.lrmer_low_re_cost_25_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.lrmer_low_re_cost_25_2025_start.co2e_kg\" AS \"out.propane.total.lrmer_low_re_cost_25_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.lrmer_mid_case_15_2025_start.co2e_kg\" AS \"out.electricity.total.lrmer_mid_case_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.lrmer_mid_case_15_2025_start.co2e_kg\" AS \"out.fuel_oil.total.lrmer_mid_case_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.lrmer_mid_case_15_2025_start.co2e_kg\" AS \"out.natural_gas.total.lrmer_mid_case_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.lrmer_mid_case_15_2025_start.co2e_kg\" AS \"out.propane.total.lrmer_mid_case_15_2025_start.co2e_kg\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.ceiling_fan.energy_consumption\" AS \"out.electricity.ceiling_fan.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.ceiling_fan.energy_consumption_intensity\" AS \"out.electricity.ceiling_fan.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.clothes_dryer.energy_consumption\" AS \"out.electricity.clothes_dryer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.clothes_dryer.energy_consumption_intensity\" AS \"out.electricity.clothes_dryer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.clothes_washer.energy_consumption\" AS \"out.electricity.clothes_washer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.clothes_washer.energy_consumption_intensity\" AS \"out.electricity.clothes_washer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.cooling_fans_pumps.energy_consumption\" AS \"out.electricity.cooling_fans_pumps.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.cooling_fans_pumps.energy_consumption_intensity\" AS \"out.electricity.cooling_fans_pumps.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.cooling.energy_consumption\" AS \"out.electricity.cooling.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.cooling.energy_consumption_intensity\" AS \"out.electricity.cooling.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.dishwasher.energy_consumption\" AS \"out.electricity.dishwasher.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.dishwasher.energy_consumption_intensity\" AS \"out.electricity.dishwasher.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.freezer.energy_consumption\" AS \"out.electricity.freezer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.freezer.energy_consumption_intensity\" AS \"out.electricity.freezer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating_fans_pumps.energy_consumption\" AS \"out.electricity.heating_fans_pumps.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating_fans_pumps.energy_consumption_intensity\" AS \"out.electricity.heating_fans_pumps.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating_hp_bkup.energy_consumption\" AS \"out.electricity.heating_hp_bkup.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating_hp_bkup.energy_consumption_intensity\" AS \"out.electricity.heating_hp_bkup.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating.energy_consumption\" AS \"out.electricity.heating.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.heating.energy_consumption_intensity\" AS \"out.electricity.heating.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_tub_heater.energy_consumption\" AS \"out.electricity.hot_tub_heater.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_tub_heater.energy_consumption_intensity\" AS \"out.electricity.hot_tub_heater.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_tub_pump.energy_consumption\" AS \"out.electricity.hot_tub_pump.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_tub_pump.energy_consumption_intensity\" AS \"out.electricity.hot_tub_pump.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_water.energy_consumption\" AS \"out.electricity.hot_water.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.hot_water.energy_consumption_intensity\" AS \"out.electricity.hot_water.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_exterior.energy_consumption\" AS \"out.electricity.lighting_exterior.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_exterior.energy_consumption_intensity\" AS \"out.electricity.lighting_exterior.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_garage.energy_consumption\" AS \"out.electricity.lighting_garage.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_garage.energy_consumption_intensity\" AS \"out.electricity.lighting_garage.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_interior.energy_consumption\" AS \"out.electricity.lighting_interior.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.lighting_interior.energy_consumption_intensity\" AS \"out.electricity.lighting_interior.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.mech_vent.energy_consumption\" AS \"out.electricity.mech_vent.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.mech_vent.energy_consumption_intensity\" AS \"out.electricity.mech_vent.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.plug_loads.energy_consumption\" AS \"out.electricity.plug_loads.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.plug_loads.energy_consumption_intensity\" AS \"out.electricity.plug_loads.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pool_heater.energy_consumption\" AS \"out.electricity.pool_heater.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pool_heater.energy_consumption_intensity\" AS \"out.electricity.pool_heater.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pool_pump.energy_consumption\" AS \"out.electricity.pool_pump.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pool_pump.energy_consumption_intensity\" AS \"out.electricity.pool_pump.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pv.energy_consumption\" AS \"out.electricity.pv.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.pv.energy_consumption_intensity\" AS \"out.electricity.pv.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.range_oven.energy_consumption\" AS \"out.electricity.range_oven.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.range_oven.energy_consumption_intensity\" AS \"out.electricity.range_oven.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.refrigerator.energy_consumption\" AS \"out.electricity.refrigerator.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.refrigerator.energy_consumption_intensity\" AS \"out.electricity.refrigerator.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.well_pump.energy_consumption\" AS \"out.electricity.well_pump.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.well_pump.energy_consumption_intensity\" AS \"out.electricity.well_pump.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.heating_hp_bkup.energy_consumption\" AS \"out.fuel_oil.heating_hp_bkup.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.heating_hp_bkup.energy_consumption_intensity\" AS \"out.fuel_oil.heating_hp_bkup.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.heating.energy_consumption\" AS \"out.fuel_oil.heating.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.heating.energy_consumption_intensity\" AS \"out.fuel_oil.heating.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.hot_water.energy_consumption\" AS \"out.fuel_oil.hot_water.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.hot_water.energy_consumption_intensity\" AS \"out.fuel_oil.hot_water.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.clothes_dryer.energy_consumption\" AS \"out.natural_gas.clothes_dryer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.clothes_dryer.energy_consumption_intensity\" AS \"out.natural_gas.clothes_dryer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.fireplace.energy_consumption\" AS \"out.natural_gas.fireplace.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.fireplace.energy_consumption_intensity\" AS \"out.natural_gas.fireplace.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.grill.energy_consumption\" AS \"out.natural_gas.grill.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.grill.energy_consumption_intensity\" AS \"out.natural_gas.grill.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.heating_hp_bkup.energy_consumption\" AS \"out.natural_gas.heating_hp_bkup.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.heating_hp_bkup.energy_consumption_intensity\" AS \"out.natural_gas.heating_hp_bkup.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.heating.energy_consumption\" AS \"out.natural_gas.heating.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.heating.energy_consumption_intensity\" AS \"out.natural_gas.heating.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.hot_tub_heater.energy_consumption\" AS \"out.natural_gas.hot_tub_heater.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.hot_tub_heater.energy_consumption_intensity\" AS \"out.natural_gas.hot_tub_heater.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.hot_water.energy_consumption\" AS \"out.natural_gas.hot_water.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.hot_water.energy_consumption_intensity\" AS \"out.natural_gas.hot_water.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.lighting.energy_consumption\" AS \"out.natural_gas.lighting.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.lighting.energy_consumption_intensity\" AS \"out.natural_gas.lighting.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.pool_heater.energy_consumption\" AS \"out.natural_gas.pool_heater.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.pool_heater.energy_consumption_intensity\" AS \"out.natural_gas.pool_heater.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.range_oven.energy_consumption\" AS \"out.natural_gas.range_oven.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.range_oven.energy_consumption_intensity\" AS \"out.natural_gas.range_oven.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.clothes_dryer.energy_consumption\" AS \"out.propane.clothes_dryer.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.clothes_dryer.energy_consumption_intensity\" AS \"out.propane.clothes_dryer.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.heating_hp_bkup.energy_consumption\" AS \"out.propane.heating_hp_bkup.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.heating_hp_bkup.energy_consumption_intensity\" AS \"out.propane.heating_hp_bkup.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.heating.energy_consumption\" AS \"out.propane.heating.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.heating.energy_consumption_intensity\" AS \"out.propane.heating.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.hot_water.energy_consumption\" AS \"out.propane.hot_water.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.hot_water.energy_consumption_intensity\" AS \"out.propane.hot_water.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.range_oven.energy_consumption\" AS \"out.propane.range_oven.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.range_oven.energy_consumption_intensity\" AS \"out.propane.range_oven.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.site_energy.net.energy_consumption\" AS \"out.site_energy.net.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.site_energy.net.energy_consumption_intensity\" AS \"out.site_energy.net.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.site_energy.total.energy_consumption\" AS \"out.site_energy.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.site_energy.total.energy_consumption_intensity\" AS \"out.site_energy.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.net.energy_consumption\" AS \"out.electricity.net.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.net.energy_consumption_intensity\" AS \"out.electricity.net.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.energy_consumption\" AS \"out.electricity.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.electricity.total.energy_consumption_intensity\" AS \"out.electricity.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.energy_consumption\" AS \"out.fuel_oil.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.fuel_oil.total.energy_consumption_intensity\" AS \"out.fuel_oil.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.energy_consumption\" AS \"out.natural_gas.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.natural_gas.total.energy_consumption_intensity\" AS \"out.natural_gas.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.energy_consumption\" AS \"out.propane.total.energy_consumption\", resstock_amy2018_release_2022_1_metadata.\"out.propane.total.energy_consumption_intensity\" AS \"out.propane.total.energy_consumption_intensity\", resstock_amy2018_release_2022_1_metadata.upgrade AS upgrade, resstock_amy2018_release_2022_1_metadata.metadata_index AS metadata_index, resstock_amy2018_release_2022_1_metadata.bldg_id AS bldg_id \n", - "FROM resstock_amy2018_release_2022_1_metadata \n", - "WHERE CAST(resstock_amy2018_release_2022_1_metadata.upgrade AS VARCHAR) = '0') AS baseline ON baseline.bldg_id = resstock_amy2018_release_2022_1_by_state.bldg_id \n", - "WHERE resstock_amy2018_release_2022_1_by_state.upgrade = '0' GROUP BY 1, 2, 3 ORDER BY 1, 2, 3\n" + " geometry_building_type_recs state timestamp sample_count \\\n", + "0 Mobile Home AL 2018-01-01 1233 \n", + "1 Mobile Home AL 2018-02-01 1233 \n", + "2 Mobile Home AL 2018-03-01 1233 \n", + "3 Mobile Home AL 2018-04-01 1233 \n", + "4 Mobile Home AL 2018-05-01 1233 \n", + "... ... ... ... ... \n", + "2923 Single-Family Detached WY 2018-08-01 725 \n", + "2924 Single-Family Detached WY 2018-09-01 725 \n", + "2925 Single-Family Detached WY 2018-10-01 725 \n", + "2926 Single-Family Detached WY 2018-11-01 725 \n", + "2927 Single-Family Detached WY 2018-12-01 725 \n", + "\n", + " units_count rows_per_sample electricity.total.energy_consumption \n", + "0 298547.538693 2976 5.748190e+08 \n", + "1 298547.538693 2688 2.704440e+08 \n", + "2 298547.538693 2976 2.812844e+08 \n", + "3 298547.538693 2880 2.391741e+08 \n", + "4 298547.538693 2976 2.992050e+08 \n", + "... ... ... ... \n", + "2923 175544.984227 2976 1.149868e+08 \n", + "2924 175544.984227 2880 1.089442e+08 \n", + "2925 175544.984227 2976 1.491668e+08 \n", + "2926 175544.984227 2880 2.080654e+08 \n", + "2927 175544.984227 2976 2.653859e+08 \n", + "\n", + "[2928 rows x 7 columns]\n" ] } ], @@ -431,7 +466,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 13, "id": "c3615696", "metadata": {}, "outputs": [ @@ -491,7 +526,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 14, "id": "0d7ed33b", "metadata": {}, "outputs": [ @@ -499,7 +534,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:buildstock_query.query_core:15 queries cache saved to .bsq_cache/resstock_amy2018_release_2022_1_query_cache.pkl\n" + "INFO:buildstock_query.query_core:No new queries to save.\n" ] } ], @@ -509,7 +544,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 15, "id": "af817f71", "metadata": {}, "outputs": [ @@ -711,7 +746,7 @@ "[175200 rows x 6 columns]" ] }, - "execution_count": 12, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -725,7 +760,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 16, "id": "90ed9c5a", "metadata": {}, "outputs": [ @@ -790,7 +825,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 17, "id": "dfccaf75", "metadata": {}, "outputs": [ @@ -798,7 +833,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:buildstock_query.query_core:17 queries cache saved to .bsq_cache/resstock_amy2018_release_2022_1_query_cache.pkl\n" + "INFO:buildstock_query.query_core:No new queries to save.\n" ] } ], diff --git a/example_usage/basic_usage.ipynb b/example_usage/basic_usage.ipynb index c51a82a..88c4364 100644 --- a/example_usage/basic_usage.ipynb +++ b/example_usage/basic_usage.ipynb @@ -34,8 +34,9 @@ "output_type": "stream", "text": [ "INFO:buildstock_query.query_core:Loading euss_res_final_2018_550k_20220901 ...\n", - "INFO:buildstock_query.query_core:12 queries cache read from None.\n", - "INFO:buildstock_query.query_core:12 queries cache is updated.\n", + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n", + "INFO:buildstock_query.query_core:13 queries cache read from None.\n", + "INFO:buildstock_query.query_core:13 queries cache is updated.\n", "INFO:buildstock_query.main:Getting Success counts...\n", "INFO:buildstock_query.report_query:Checking integrity with ts_tables ...\n", "INFO:buildstock_query.query_core:No new queries to save.\n" @@ -49,6 +50,7 @@ "upgrade \n", "0 1084 0 548916 550000 0.0 0 0 \n", "1 1 17092 531823 548916 96.9 6097 949 \n", + "10 0 0 548916 548916 100.0 1 5310 \n", "2 2 12117 536797 548916 97.8 6527 879 \n", "3 0 656 548260 548916 99.9 807 29954 \n", "4 0 656 548260 548916 99.9 4 20705 \n", @@ -57,12 +59,12 @@ "7 2 148335 400579 548916 73.0 4169 7603 \n", "8 3 0 548913 548916 100.0 2 6456 \n", "9 0 0 548916 548916 100.0 1 5443 \n", - "10 0 0 548916 548916 100.0 1 5310 \n", "\n", " ok-chng true-bad-chng true-ok-chng null any no-chng % \\\n", "upgrade \n", "0 0 0 0 0 0 0.0 \n", "1 524777 277 525480 0 531823 1.1 \n", + "10 543605 3039 545876 0 548916 0.0 \n", "2 529391 354 529940 0 536797 1.2 \n", "3 517499 19686 527777 0 548260 0.1 \n", "4 527551 14086 534173 0 548260 0.0 \n", @@ -71,12 +73,12 @@ "7 388807 4177 392234 0 400579 1.0 \n", "8 542455 3494 545418 0 548913 0.0 \n", "9 543472 3102 545813 0 548916 0.0 \n", - "10 543605 3039 545876 0 548916 0.0 \n", "\n", " bad-chng % ok-chng % true-ok-chng % true-bad-chng % \n", "upgrade \n", "0 0.0 0.0 0.0 0.0 \n", "1 0.2 98.7 98.8 0.1 \n", + "10 1.0 99.0 99.4 0.6 \n", "2 0.2 98.6 98.7 0.1 \n", "3 5.5 94.4 96.3 3.6 \n", "4 3.8 96.2 97.4 2.6 \n", @@ -85,7 +87,6 @@ "7 1.9 97.1 97.9 1.0 \n", "8 1.2 98.8 99.4 0.6 \n", "9 1.0 99.0 99.4 0.6 \n", - "10 1.0 99.0 99.4 0.6 \n", "\u001b[92mAnnual and timeseries tables are verified to have the same number of buildings.\u001b[0m\n", "\u001b[92mAll buildings are verified to have the same number of (35040) timeseries rows.\u001b[0m\n" ] @@ -100,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "2b1d7a4c", "metadata": {}, "outputs": [ @@ -670,7 +671,7 @@ "[550000 rows x 861 columns]" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -682,17 +683,19 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "7a810644", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "SELECT * \n", - "FROM euss_res_final_2018_550k_20220901_baseline \n", - "WHERE euss_res_final_2018_550k_20220901_baseline.\"build_existing_model.state\" = 'CO'\n" + "ename": "AttributeError", + "evalue": "'str' object has no attribute 'head'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m/Users/radhikar/Documents/buildstock_query/example_usage/basic_usage.ipynb Cell 5\u001b[0m in \u001b[0;36m2\n\u001b[1;32m 1\u001b[0m res_df \u001b[39m=\u001b[39m my_run\u001b[39m.\u001b[39mget_results_csv(restrict\u001b[39m=\u001b[39m[(\u001b[39m'\u001b[39m\u001b[39mbuild_existing_model.state\u001b[39m\u001b[39m'\u001b[39m, [\u001b[39m'\u001b[39m\u001b[39mCO\u001b[39m\u001b[39m'\u001b[39m])], get_query_only\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m)\n\u001b[0;32m----> 2\u001b[0m res_df\u001b[39m.\u001b[39;49mhead()\n", + "\u001b[0;31mAttributeError\u001b[0m: 'str' object has no attribute 'head'" ] } ], @@ -703,572 +706,20 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 6, "id": "4df1a598", "metadata": {}, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:buildstock_query.main:Making results_csv query ...\n" + "ename": "AttributeError", + "evalue": "'str' object has no attribute 'head'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m/Users/radhikar/Documents/buildstock_query/example_usage/basic_usage.ipynb Cell 6\u001b[0m in \u001b[0;36m2\n\u001b[1;32m 1\u001b[0m res_df \u001b[39m=\u001b[39m my_run\u001b[39m.\u001b[39mget_results_csv(restrict\u001b[39m=\u001b[39m[(\u001b[39m'\u001b[39m\u001b[39mbuild_existing_model.state\u001b[39m\u001b[39m'\u001b[39m, [\u001b[39m'\u001b[39m\u001b[39mCO\u001b[39m\u001b[39m'\u001b[39m])], get_query_only\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m)\n\u001b[0;32m----> 2\u001b[0m res_df\u001b[39m.\u001b[39;49mhead()\n", + "\u001b[0;31mAttributeError\u001b[0m: 'str' object has no attribute 'head'" ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
job_idstarted_atcompleted_atcompleted_statusapply_upgrade.applicableapply_upgrade.upgrade_nameapply_upgrade.reference_scenariobuild_existing_model.ahs_regionbuild_existing_model.applicablebuild_existing_model.ashrae_iecc_climate_zone_2004...qoi_report.qoi_average_maximum_daily_use_overlap_kwqoi_report.qoi_average_minimum_daily_use_cooling_kwqoi_report.qoi_average_minimum_daily_use_heating_kwqoi_report.qoi_average_minimum_daily_use_overlap_kwqoi_report.qoi_average_of_top_ten_highest_peaks_timing_cooling_hourqoi_report.qoi_average_of_top_ten_highest_peaks_timing_heating_hourqoi_report.qoi_average_of_top_ten_highest_peaks_use_cooling_kwqoi_report.qoi_average_of_top_ten_highest_peaks_use_heating_kwqoi_report.qoi_peak_magnitude_timing_hourqoi_report.qoi_peak_magnitude_use_kw
building_id
5279312022-06-08 04:32:572022-06-08 04:33:29Success<NA><NA>NaNNon-CBSA MountainTrue5B...1.900.270.300.2614.2714.453.863.444769.04.60
3354452022-06-08 04:33:252022-06-08 04:33:53Success<NA><NA>NaNNon-CBSA MountainTrue5B...2.940.530.470.4416.6418.555.174.533834.05.60
4945132022-06-08 04:33:202022-06-08 04:33:47Success<NA><NA>NaNNon-CBSA MountainTrue5B...1.470.250.330.2613.9113.094.144.613784.05.47
8853412022-06-08 04:33:352022-06-08 04:33:58Success<NA><NA>NaNNon-CBSA MountainTrue5B...2.370.560.570.5614.2717.734.235.068609.05.37
477482022-06-08 04:35:282022-06-08 04:35:53Success<NA><NA>NaNNon-CBSA MountainTrue5B...2.180.330.400.3314.2718.555.126.408225.06.79
..................................................................
2926492022-06-08 05:21:512022-06-08 05:22:38Success<NA><NA>NaNNon-CBSA MountainTrue7B...0.37NaN0.160.14NaN15.55NaN0.374887.00.60
498822022-06-08 05:19:012022-06-08 05:19:32Success<NA><NA>NaNNon-CBSA MountainTrue5B...2.300.260.280.2614.3615.185.713.494570.06.26
343072022-06-08 05:19:452022-06-08 05:20:11Success<NA><NA>NaNNon-CBSA MountainTrue5B...1.800.290.350.2813.0916.644.224.343850.05.09
8727382022-06-08 05:22:432022-06-08 05:23:39Success<NA><NA>NaNNon-CBSA MountainTrue7B...0.080.040.250.0420.007.000.093.961231.04.70
722362022-06-08 05:22:432022-06-08 05:23:21Success<NA><NA>NaNNon-CBSA MountainTrue5B...1.300.400.400.4014.9117.091.632.198610.02.51
\n", - "

171 rows × 499 columns

\n", - "
" - ], - "text/plain": [ - " job_id started_at completed_at completed_status \\\n", - "building_id \n", - "5279 31 2022-06-08 04:32:57 2022-06-08 04:33:29 Success \n", - "3354 45 2022-06-08 04:33:25 2022-06-08 04:33:53 Success \n", - "4945 13 2022-06-08 04:33:20 2022-06-08 04:33:47 Success \n", - "8853 41 2022-06-08 04:33:35 2022-06-08 04:33:58 Success \n", - "477 48 2022-06-08 04:35:28 2022-06-08 04:35:53 Success \n", - "... ... ... ... ... \n", - "2926 49 2022-06-08 05:21:51 2022-06-08 05:22:38 Success \n", - "4988 2 2022-06-08 05:19:01 2022-06-08 05:19:32 Success \n", - "3430 7 2022-06-08 05:19:45 2022-06-08 05:20:11 Success \n", - "8727 38 2022-06-08 05:22:43 2022-06-08 05:23:39 Success \n", - "722 36 2022-06-08 05:22:43 2022-06-08 05:23:21 Success \n", - "\n", - " apply_upgrade.applicable apply_upgrade.upgrade_name \\\n", - "building_id \n", - "5279 \n", - "3354 \n", - "4945 \n", - "8853 \n", - "477 \n", - "... ... ... \n", - "2926 \n", - "4988 \n", - "3430 \n", - "8727 \n", - "722 \n", - "\n", - " apply_upgrade.reference_scenario build_existing_model.ahs_region \\\n", - "building_id \n", - "5279 NaN Non-CBSA Mountain \n", - "3354 NaN Non-CBSA Mountain \n", - "4945 NaN Non-CBSA Mountain \n", - "8853 NaN Non-CBSA Mountain \n", - "477 NaN Non-CBSA Mountain \n", - "... ... ... \n", - "2926 NaN Non-CBSA Mountain \n", - "4988 NaN Non-CBSA Mountain \n", - "3430 NaN Non-CBSA Mountain \n", - "8727 NaN Non-CBSA Mountain \n", - "722 NaN Non-CBSA Mountain \n", - "\n", - " build_existing_model.applicable \\\n", - "building_id \n", - "5279 True \n", - "3354 True \n", - "4945 True \n", - "8853 True \n", - "477 True \n", - "... ... \n", - "2926 True \n", - "4988 True \n", - "3430 True \n", - "8727 True \n", - "722 True \n", - "\n", - " build_existing_model.ashrae_iecc_climate_zone_2004 ... \\\n", - "building_id ... \n", - "5279 5B ... \n", - "3354 5B ... \n", - "4945 5B ... \n", - "8853 5B ... \n", - "477 5B ... \n", - "... ... ... \n", - "2926 7B ... \n", - "4988 5B ... \n", - "3430 5B ... \n", - "8727 7B ... \n", - "722 5B ... \n", - "\n", - " qoi_report.qoi_average_maximum_daily_use_overlap_kw \\\n", - "building_id \n", - "5279 1.90 \n", - "3354 2.94 \n", - "4945 1.47 \n", - "8853 2.37 \n", - "477 2.18 \n", - "... ... \n", - "2926 0.37 \n", - "4988 2.30 \n", - "3430 1.80 \n", - "8727 0.08 \n", - "722 1.30 \n", - "\n", - " qoi_report.qoi_average_minimum_daily_use_cooling_kw \\\n", - "building_id \n", - "5279 0.27 \n", - "3354 0.53 \n", - "4945 0.25 \n", - "8853 0.56 \n", - "477 0.33 \n", - "... ... \n", - "2926 NaN \n", - "4988 0.26 \n", - "3430 0.29 \n", - "8727 0.04 \n", - "722 0.40 \n", - "\n", - " qoi_report.qoi_average_minimum_daily_use_heating_kw \\\n", - "building_id \n", - "5279 0.30 \n", - "3354 0.47 \n", - "4945 0.33 \n", - "8853 0.57 \n", - "477 0.40 \n", - "... ... \n", - "2926 0.16 \n", - "4988 0.28 \n", - "3430 0.35 \n", - "8727 0.25 \n", - "722 0.40 \n", - "\n", - " qoi_report.qoi_average_minimum_daily_use_overlap_kw \\\n", - "building_id \n", - "5279 0.26 \n", - "3354 0.44 \n", - "4945 0.26 \n", - "8853 0.56 \n", - "477 0.33 \n", - "... ... \n", - "2926 0.14 \n", - "4988 0.26 \n", - "3430 0.28 \n", - "8727 0.04 \n", - "722 0.40 \n", - "\n", - " qoi_report.qoi_average_of_top_ten_highest_peaks_timing_cooling_hour \\\n", - "building_id \n", - "5279 14.27 \n", - "3354 16.64 \n", - "4945 13.91 \n", - "8853 14.27 \n", - "477 14.27 \n", - "... ... \n", - "2926 NaN \n", - "4988 14.36 \n", - "3430 13.09 \n", - "8727 20.00 \n", - "722 14.91 \n", - "\n", - " qoi_report.qoi_average_of_top_ten_highest_peaks_timing_heating_hour \\\n", - "building_id \n", - "5279 14.45 \n", - "3354 18.55 \n", - "4945 13.09 \n", - "8853 17.73 \n", - "477 18.55 \n", - "... ... \n", - "2926 15.55 \n", - "4988 15.18 \n", - "3430 16.64 \n", - "8727 7.00 \n", - "722 17.09 \n", - "\n", - " qoi_report.qoi_average_of_top_ten_highest_peaks_use_cooling_kw \\\n", - "building_id \n", - "5279 3.86 \n", - "3354 5.17 \n", - "4945 4.14 \n", - "8853 4.23 \n", - "477 5.12 \n", - "... ... \n", - "2926 NaN \n", - "4988 5.71 \n", - "3430 4.22 \n", - "8727 0.09 \n", - "722 1.63 \n", - "\n", - " qoi_report.qoi_average_of_top_ten_highest_peaks_use_heating_kw \\\n", - "building_id \n", - "5279 3.44 \n", - "3354 4.53 \n", - "4945 4.61 \n", - "8853 5.06 \n", - "477 6.40 \n", - "... ... \n", - "2926 0.37 \n", - "4988 3.49 \n", - "3430 4.34 \n", - "8727 3.96 \n", - "722 2.19 \n", - "\n", - " qoi_report.qoi_peak_magnitude_timing_hour \\\n", - "building_id \n", - "5279 4769.0 \n", - "3354 3834.0 \n", - "4945 3784.0 \n", - "8853 8609.0 \n", - "477 8225.0 \n", - "... ... \n", - "2926 4887.0 \n", - "4988 4570.0 \n", - "3430 3850.0 \n", - "8727 1231.0 \n", - "722 8610.0 \n", - "\n", - " qoi_report.qoi_peak_magnitude_use_kw \n", - "building_id \n", - "5279 4.60 \n", - "3354 5.60 \n", - "4945 5.47 \n", - "8853 5.37 \n", - "477 6.79 \n", - "... ... \n", - "2926 0.60 \n", - "4988 6.26 \n", - "3430 5.09 \n", - "8727 4.70 \n", - "722 2.51 \n", - "\n", - "[171 rows x 499 columns]" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ @@ -1278,7 +729,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "id": "9e0e3b31", "metadata": {}, "outputs": [ @@ -1750,7 +1201,7 @@ "[548916 rows x 155 columns]" ] }, - "execution_count": 5, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -1762,7 +1213,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "id": "9d815b15", "metadata": {}, "outputs": [ @@ -1770,7 +1221,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/radhikar/Documents/buildstock_query/buildstock_query/main.py:406: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n", + "/Users/radhikar/Documents/buildstock_query/buildstock_query/main.py:456: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n", " df.insert(0, 'upgrade', upgrade_id)\n" ] }, @@ -2113,19 +1564,19 @@ "" ], "text/plain": [ - " upgrade job_id started_at completed_at \\\n", - "building_id \n", - "547402 2 37 2022-09-01 22:15:59 2022-09-01 22:17:13 \n", - "231652 2 153 2022-09-01 23:04:39 2022-09-01 23:06:53 \n", - "42486 2 330 2022-09-01 23:17:40 2022-09-01 23:18:24 \n", - "328419 2 287 2022-09-01 23:17:36 2022-09-01 23:18:20 \n", - "184799 2 566 2022-09-02 05:22:23 2022-09-02 05:23:25 \n", - "... ... ... ... ... \n", - "282113 2 348 2022-09-02 03:39:12 2022-09-02 03:39:57 \n", - "499057 2 448 2022-09-02 03:51:50 2022-09-02 03:52:33 \n", - "446035 2 410 2022-09-02 03:53:15 2022-09-02 03:53:55 \n", - "506609 2 110 2022-09-02 03:29:10 2022-09-02 03:29:53 \n", - "149667 2 64 2022-09-02 02:54:34 2022-09-02 02:55:20 \n", + " upgrade job_id started_at completed_at \\\n", + "building_id \n", + "547402 2 37 2022-09-01 22:15:59 2022-09-01 22:17:13 \n", + "231652 2 153 2022-09-01 23:04:39 2022-09-01 23:06:53 \n", + "42486 2 330 2022-09-01 23:17:40 2022-09-01 23:18:24 \n", + "328419 2 287 2022-09-01 23:17:36 2022-09-01 23:18:20 \n", + "184799 2 566 2022-09-02 05:22:23 2022-09-02 05:23:25 \n", + "... ... ... ... ... \n", + "282113 2 348 2022-09-02 03:39:12 2022-09-02 03:39:57 \n", + "499057 2 448 2022-09-02 03:51:50 2022-09-02 03:52:33 \n", + "446035 2 410 2022-09-02 03:53:15 2022-09-02 03:53:55 \n", + "506609 2 110 2022-09-02 03:29:10 2022-09-02 03:29:53 \n", + "149667 2 64 2022-09-02 02:54:34 2022-09-02 02:55:20 \n", "\n", " completed_status apply_upgrade.applicable \\\n", "building_id \n", @@ -2326,13 +1777,13 @@ "[550000 rows x 707 columns]" ] }, - "execution_count": 4, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "up1_csv = my_run.get_upgrades_csv_full(upgrade_id=2)\n", + "up1_csv = my_run.get_upgrades_csv_full(upgrade_id='2')\n", "up1_csv" ] }, diff --git a/example_usage/basic_usage_oedi.ipynb b/example_usage/basic_usage_oedi.ipynb index a2f9df6..06f91a5 100644 --- a/example_usage/basic_usage_oedi.ipynb +++ b/example_usage/basic_usage_oedi.ipynb @@ -34,6 +34,7 @@ "output_type": "stream", "text": [ "INFO:buildstock_query.query_core:Loading resstock_amy2018_release_2022_1 ...\n", + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n", "INFO:buildstock_query.query_core:17 queries cache read from None.\n", "INFO:buildstock_query.query_core:17 queries cache is updated.\n", "INFO:buildstock_query.main:Getting Success counts...\n", @@ -48,44 +49,44 @@ " success unapplicable fail Sum Applied % no-chng bad-chng \\\n", "upgrade \n", "0 548916 0 0 548916 0.0 0 0 \n", - "1 531823 17093 0 548916 96.9 6027 957 \n", - "2 536797 12119 0 548916 97.8 6462 888 \n", - "3 548260 656 0 548916 99.9 780 29877 \n", - "4 548260 656 0 548916 99.9 3 20678 \n", - "5 532156 16760 0 548916 96.9 793 47736 \n", - "6 545331 3585 0 548916 99.3 15 2765 \n", - "7 400579 148337 0 548916 73.0 4161 7604 \n", - "8 548913 3 0 548916 100.0 1 6457 \n", - "9 548916 0 0 548916 100.0 0 5443 \n", - "10 548916 0 0 548916 100.0 0 5310 \n", + "1 531823 17093 0 548916 96.9 0 0 \n", + "10 548916 0 0 548916 100.0 0 0 \n", + "2 536797 12119 0 548916 97.8 0 0 \n", + "3 548260 656 0 548916 99.9 0 0 \n", + "4 548260 656 0 548916 99.9 0 0 \n", + "5 532156 16760 0 548916 96.9 0 0 \n", + "6 545331 3585 0 548916 99.3 0 0 \n", + "7 400579 148337 0 548916 73.0 0 0 \n", + "8 548913 3 0 548916 100.0 0 0 \n", + "9 548916 0 0 548916 100.0 0 0 \n", "\n", - " ok-chng true-bad-chng true-ok-chng null any no-chng % \\\n", - "upgrade \n", - "0 0 0 0 0 0 0.0 \n", - "1 524839 957 524839 0 531823 1.1 \n", - "2 529447 888 529447 0 536797 1.2 \n", - "3 517603 29877 517603 0 548260 0.1 \n", - "4 527579 20678 527579 0 548260 0.0 \n", - "5 483627 47736 483627 0 532156 0.1 \n", - "6 542551 2765 542551 0 545331 0.0 \n", - "7 388814 7604 388814 0 400579 1.0 \n", - "8 542455 6457 542455 0 548913 0.0 \n", - "9 543473 5443 543473 0 548916 0.0 \n", - "10 543606 5310 543606 0 548916 0.0 \n", + " ok-chng true-bad-chng true-ok-chng null any no-chng % \\\n", + "upgrade \n", + "0 0 0 0 0 0 0.0 \n", + "1 0 0 0 0 0 0.0 \n", + "10 0 0 0 0 0 0.0 \n", + "2 0 0 0 0 0 0.0 \n", + "3 0 0 0 0 0 0.0 \n", + "4 0 0 0 0 0 0.0 \n", + "5 0 0 0 0 0 0.0 \n", + "6 0 0 0 0 0 0.0 \n", + "7 0 0 0 0 0 0.0 \n", + "8 0 0 0 0 0 0.0 \n", + "9 0 0 0 0 0 0.0 \n", "\n", " bad-chng % ok-chng % true-ok-chng % true-bad-chng % \n", "upgrade \n", "0 0.0 0.0 0.0 0.0 \n", - "1 0.2 98.7 98.7 0.2 \n", - "2 0.2 98.6 98.6 0.2 \n", - "3 5.4 94.4 94.4 5.4 \n", - "4 3.8 96.2 96.2 3.8 \n", - "5 9.0 90.9 90.9 9.0 \n", - "6 0.5 99.5 99.5 0.5 \n", - "7 1.9 97.1 97.1 1.9 \n", - "8 1.2 98.8 98.8 1.2 \n", - "9 1.0 99.0 99.0 1.0 \n", - "10 1.0 99.0 99.0 1.0 \n", + "1 0.0 0.0 0.0 0.0 \n", + "10 0.0 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 0.0 \n", + "5 0.0 0.0 0.0 0.0 \n", + "6 0.0 0.0 0.0 0.0 \n", + "7 0.0 0.0 0.0 0.0 \n", + "8 0.0 0.0 0.0 0.0 \n", + "9 0.0 0.0 0.0 0.0 \n", "\u001b[92mAnnual and timeseries tables are verified to have the same number of buildings.\u001b[0m\n", "\u001b[92mAll buildings are verified to have the same number of (35040) timeseries rows.\u001b[0m\n" ] @@ -100,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "2b1d7a4c", "metadata": {}, "outputs": [ @@ -406,7 +407,7 @@ "[5 rows x 272 columns]" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -418,7 +419,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 5, "id": "7a810644", "metadata": {}, "outputs": [ @@ -426,7 +427,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:buildstock_query.main:Making results_csv query ...\n" + "INFO:buildstock_query.main:Making results_csv query ...\n", + "INFO:botocore.tokens:Loading cached SSO token for nrel-sso\n" ] }, { @@ -612,7 +614,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "id": "9e0e3b31", "metadata": {}, "outputs": [ @@ -1070,7 +1072,7 @@ "[548916 rows x 154 columns]" ] }, - "execution_count": 8, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -1082,7 +1084,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 8, "id": "9d815b15", "metadata": {}, "outputs": [ @@ -1610,13 +1612,13 @@ "[548916 rows x 272 columns]" ] }, - "execution_count": 16, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "up1_csv = my_run.get_upgrades_csv_full(upgrade_id=2)\n", + "up1_csv = my_run.get_upgrades_csv_full(upgrade_id='2')\n", "up1_csv" ] }, diff --git a/tests/test_BuildStockSavings.py b/tests/test_BuildStockSavings.py index 12f7cc2..123ed75 100644 --- a/tests/test_BuildStockSavings.py +++ b/tests/test_BuildStockSavings.py @@ -53,9 +53,9 @@ def test_savings_shape(self, my_athena: BuildStockQuery): annual_bs_consumtion = my_athena.agg.aggregate_annual(enduses=enduses) annual_up_consumption = my_athena.agg.aggregate_annual(upgrade_id='1', enduses=enduses) assert len(annual_savings_full) == len(annual_savings_applied) == 1 - assert annual_savings_full['sample_count'].iloc[0] == success_report.loc[0].success - assert annual_savings_applied['sample_count'].iloc[0] == success_report.loc[1].success - assert annual_up_consumption['sample_count'].iloc[0] == success_report.loc[1].success + assert annual_savings_full['sample_count'].iloc[0] == success_report.loc['0'].success + assert annual_savings_applied['sample_count'].iloc[0] == success_report.loc['1'].success + assert annual_up_consumption['sample_count'].iloc[0] == success_report.loc['1'].success assert np.isclose(annual_savings_full[f"{enduses[0]}__baseline"], annual_bs_consumtion[f"{enduses[0]}"], rtol=1e-3) @@ -70,8 +70,8 @@ def test_savings_shape(self, my_athena: BuildStockQuery): ts_savings_applied = my_athena.savings.savings_shape( upgrade_id='1', enduses=ts_enduses, applied_only=True, annual_only=False) assert len(ts_savings_full) == len(ts_savings_applied) == 35040 - assert ts_savings_full['sample_count'].iloc[0] == success_report.loc[0].success - assert ts_savings_applied['sample_count'].iloc[0] == success_report.loc[1].success + assert ts_savings_full['sample_count'].iloc[0] == success_report.loc['0'].success + assert ts_savings_applied['sample_count'].iloc[0] == success_report.loc['1'].success # Match with annual result ts_full_bsline = ts_savings_full[f"{ts_enduses[0]}__baseline"].sum() * KWH2MBTU assert np.isclose(ts_full_bsline, annual_savings_full[f"{enduses[0]}__baseline"], rtol=1e-3) @@ -102,9 +102,9 @@ def test_savings_shape_with_grouping(self, my_athena: BuildStockQuery): annual_up_consumption = my_athena.agg.aggregate_annual(upgrade_id='1', enduses=enduses, group_by=group_by, sort=True) assert len(annual_savings_full) == len(annual_savings_applied) == n_groups - assert annual_savings_full['sample_count'].sum() == success_report.loc[0].success - assert annual_savings_applied['sample_count'].sum() == success_report.loc[1].success - assert annual_up_consumption['sample_count'].sum() == success_report.loc[1].success + assert annual_savings_full['sample_count'].sum() == success_report.loc['0'].success + assert annual_savings_applied['sample_count'].sum() == success_report.loc['1'].success + assert annual_up_consumption['sample_count'].sum() == success_report.loc['1'].success applied_units = annual_savings_applied['units_count'].iloc[0] assert np.isclose(annual_savings_full[f"{enduses[0]}__baseline"], annual_bs_consumtion[f"{enduses[0]}"], @@ -123,8 +123,8 @@ def test_savings_shape_with_grouping(self, my_athena: BuildStockQuery): ts_savings_applied = my_athena.savings.savings_shape(upgrade_id='1', enduses=ts_enduses, applied_only=True, annual_only=False, group_by=group_by) assert len(ts_savings_full) == len(ts_savings_applied) == 35040 * n_groups - assert ts_savings_full.groupby(group_by)['sample_count'].mean().sum() == success_report.loc[0].success - assert ts_savings_applied.groupby(group_by)['sample_count'].mean().sum() == success_report.loc[1].success + assert ts_savings_full.groupby(group_by)['sample_count'].mean().sum() == success_report.loc['0'].success + assert ts_savings_applied.groupby(group_by)['sample_count'].mean().sum() == success_report.loc['1'].success # Match with annual result ts_full_bsline = ts_savings_full.groupby(group_by)[f"{ts_enduses[0]}__baseline"].sum() * KWH2MBTU assert np.isclose(ts_full_bsline, annual_savings_full[f"{enduses[0]}__baseline"],