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",
- " job_id | \n",
- " started_at | \n",
- " completed_at | \n",
- " completed_status | \n",
- " apply_upgrade.applicable | \n",
- " apply_upgrade.upgrade_name | \n",
- " apply_upgrade.reference_scenario | \n",
- " build_existing_model.ahs_region | \n",
- " build_existing_model.applicable | \n",
- " build_existing_model.ashrae_iecc_climate_zone_2004 | \n",
- " ... | \n",
- " qoi_report.qoi_average_maximum_daily_use_overlap_kw | \n",
- " qoi_report.qoi_average_minimum_daily_use_cooling_kw | \n",
- " qoi_report.qoi_average_minimum_daily_use_heating_kw | \n",
- " qoi_report.qoi_average_minimum_daily_use_overlap_kw | \n",
- " qoi_report.qoi_average_of_top_ten_highest_peaks_timing_cooling_hour | \n",
- " qoi_report.qoi_average_of_top_ten_highest_peaks_timing_heating_hour | \n",
- " qoi_report.qoi_average_of_top_ten_highest_peaks_use_cooling_kw | \n",
- " qoi_report.qoi_average_of_top_ten_highest_peaks_use_heating_kw | \n",
- " qoi_report.qoi_peak_magnitude_timing_hour | \n",
- " qoi_report.qoi_peak_magnitude_use_kw | \n",
- "
\n",
- " \n",
- " building_id | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 5279 | \n",
- " 31 | \n",
- " 2022-06-08 04:32:57 | \n",
- " 2022-06-08 04:33:29 | \n",
- " Success | \n",
- " <NA> | \n",
- " <NA> | \n",
- " NaN | \n",
- " Non-CBSA Mountain | \n",
- " True | \n",
- " 5B | \n",
- " ... | \n",
- " 1.90 | \n",
- " 0.27 | \n",
- " 0.30 | \n",
- " 0.26 | \n",
- " 14.27 | \n",
- " 14.45 | \n",
- " 3.86 | \n",
- " 3.44 | \n",
- " 4769.0 | \n",
- " 4.60 | \n",
- "
\n",
- " \n",
- " 3354 | \n",
- " 45 | \n",
- " 2022-06-08 04:33:25 | \n",
- " 2022-06-08 04:33:53 | \n",
- " Success | \n",
- " <NA> | \n",
- " <NA> | \n",
- " NaN | \n",
- " Non-CBSA Mountain | \n",
- " True | \n",
- " 5B | \n",
- " ... | \n",
- " 2.94 | \n",
- " 0.53 | \n",
- " 0.47 | \n",
- " 0.44 | \n",
- " 16.64 | \n",
- " 18.55 | \n",
- " 5.17 | \n",
- " 4.53 | \n",
- " 3834.0 | \n",
- " 5.60 | \n",
- "
\n",
- " \n",
- " 4945 | \n",
- " 13 | \n",
- " 2022-06-08 04:33:20 | \n",
- " 2022-06-08 04:33:47 | \n",
- " Success | \n",
- " <NA> | \n",
- " <NA> | \n",
- " NaN | \n",
- " Non-CBSA Mountain | \n",
- " True | \n",
- " 5B | \n",
- " ... | \n",
- " 1.47 | \n",
- " 0.25 | \n",
- " 0.33 | \n",
- " 0.26 | \n",
- " 13.91 | \n",
- " 13.09 | \n",
- " 4.14 | \n",
- " 4.61 | \n",
- " 3784.0 | \n",
- " 5.47 | \n",
- "
\n",
- " \n",
- " 8853 | \n",
- " 41 | \n",
- " 2022-06-08 04:33:35 | \n",
- " 2022-06-08 04:33:58 | \n",
- " Success | \n",
- " <NA> | \n",
- " <NA> | \n",
- " NaN | \n",
- " Non-CBSA Mountain | \n",
- " True | \n",
- " 5B | \n",
- " ... | \n",
- " 2.37 | \n",
- " 0.56 | \n",
- " 0.57 | \n",
- " 0.56 | \n",
- " 14.27 | \n",
- " 17.73 | \n",
- " 4.23 | \n",
- " 5.06 | \n",
- " 8609.0 | \n",
- " 5.37 | \n",
- "
\n",
- " \n",
- " 477 | \n",
- " 48 | \n",
- " 2022-06-08 04:35:28 | \n",
- " 2022-06-08 04:35:53 | \n",
- " Success | \n",
- " <NA> | \n",
- " <NA> | \n",
- " NaN | \n",
- " Non-CBSA Mountain | \n",
- " True | \n",
- " 5B | \n",
- " ... | \n",
- " 2.18 | \n",
- " 0.33 | \n",
- " 0.40 | \n",
- " 0.33 | \n",
- " 14.27 | \n",
- " 18.55 | \n",
- " 5.12 | \n",
- " 6.40 | \n",
- " 8225.0 | \n",
- " 6.79 | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 2926 | \n",
- " 49 | \n",
- " 2022-06-08 05:21:51 | \n",
- " 2022-06-08 05:22:38 | \n",
- " Success | \n",
- " <NA> | \n",
- " <NA> | \n",
- " NaN | \n",
- " Non-CBSA Mountain | \n",
- " True | \n",
- " 7B | \n",
- " ... | \n",
- " 0.37 | \n",
- " NaN | \n",
- " 0.16 | \n",
- " 0.14 | \n",
- " NaN | \n",
- " 15.55 | \n",
- " NaN | \n",
- " 0.37 | \n",
- " 4887.0 | \n",
- " 0.60 | \n",
- "
\n",
- " \n",
- " 4988 | \n",
- " 2 | \n",
- " 2022-06-08 05:19:01 | \n",
- " 2022-06-08 05:19:32 | \n",
- " Success | \n",
- " <NA> | \n",
- " <NA> | \n",
- " NaN | \n",
- " Non-CBSA Mountain | \n",
- " True | \n",
- " 5B | \n",
- " ... | \n",
- " 2.30 | \n",
- " 0.26 | \n",
- " 0.28 | \n",
- " 0.26 | \n",
- " 14.36 | \n",
- " 15.18 | \n",
- " 5.71 | \n",
- " 3.49 | \n",
- " 4570.0 | \n",
- " 6.26 | \n",
- "
\n",
- " \n",
- " 3430 | \n",
- " 7 | \n",
- " 2022-06-08 05:19:45 | \n",
- " 2022-06-08 05:20:11 | \n",
- " Success | \n",
- " <NA> | \n",
- " <NA> | \n",
- " NaN | \n",
- " Non-CBSA Mountain | \n",
- " True | \n",
- " 5B | \n",
- " ... | \n",
- " 1.80 | \n",
- " 0.29 | \n",
- " 0.35 | \n",
- " 0.28 | \n",
- " 13.09 | \n",
- " 16.64 | \n",
- " 4.22 | \n",
- " 4.34 | \n",
- " 3850.0 | \n",
- " 5.09 | \n",
- "
\n",
- " \n",
- " 8727 | \n",
- " 38 | \n",
- " 2022-06-08 05:22:43 | \n",
- " 2022-06-08 05:23:39 | \n",
- " Success | \n",
- " <NA> | \n",
- " <NA> | \n",
- " NaN | \n",
- " Non-CBSA Mountain | \n",
- " True | \n",
- " 7B | \n",
- " ... | \n",
- " 0.08 | \n",
- " 0.04 | \n",
- " 0.25 | \n",
- " 0.04 | \n",
- " 20.00 | \n",
- " 7.00 | \n",
- " 0.09 | \n",
- " 3.96 | \n",
- " 1231.0 | \n",
- " 4.70 | \n",
- "
\n",
- " \n",
- " 722 | \n",
- " 36 | \n",
- " 2022-06-08 05:22:43 | \n",
- " 2022-06-08 05:23:21 | \n",
- " Success | \n",
- " <NA> | \n",
- " <NA> | \n",
- " NaN | \n",
- " Non-CBSA Mountain | \n",
- " True | \n",
- " 5B | \n",
- " ... | \n",
- " 1.30 | \n",
- " 0.40 | \n",
- " 0.40 | \n",
- " 0.40 | \n",
- " 14.91 | \n",
- " 17.09 | \n",
- " 1.63 | \n",
- " 2.19 | \n",
- " 8610.0 | \n",
- " 2.51 | \n",
- "
\n",
- " \n",
- "
\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"],