Skip to content

Commit

Permalink
Merge pull request #3171 from SEED-platform/2843-fix/emissions-reduct…
Browse files Browse the repository at this point in the history
…ion-units

feat: updated units and added unit multiplier
  • Loading branch information
Ryo committed Mar 18, 2022
2 parents aaab564 + eaf678c commit be73d73
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 8 deletions.
3 changes: 2 additions & 1 deletion seed/analysis_pipelines/better/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,9 @@ def __init__(self, analysis, progress_data, better_client):
# Used to define json paths to parse from analysis results, which are linked to an extra data column
# column_name: Column.column_name (also the extra_data key)
# column_display_name: Column.display_name
# unit_multiplier: applied to result before being saved to extra_data
# json_path: naive json path -- dot separated keys into the parsed analysis results dict
ExtraDataColumnPath = namedtuple('ExtraDataColumnPath', ['column_name', 'column_display_name', 'json_path'])
ExtraDataColumnPath = namedtuple('ExtraDataColumnPath', ['column_name', 'column_display_name', 'unit_multiplier', 'json_path'])


def _check_errors(errors, what_failed_desc, context, analysis_property_view_id=None, fail_on_error=False):
Expand Down
30 changes: 23 additions & 7 deletions seed/analysis_pipelines/better/pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -356,6 +356,7 @@ def _process_results(self, analysis_id):
ExtraDataColumnPath(
f'better_recommendation_{ee_measure_name.lower().replace(" ", "_")}',
f'BETTER Recommendation: {ee_measure_name}',
1,
f'assessment.ee_measures.{ee_measure_name}'
) for ee_measure_name in ee_measure_names
]
Expand All @@ -368,69 +369,82 @@ def _process_results(self, analysis_id):
ExtraDataColumnPath(
'better_cost_savings_combined',
'BETTER Potential Cost Savings (USD)',
1,
'assessment.assessment_energy_use.cost_savings_combined'
),
ExtraDataColumnPath(
'better_energy_savings_combined',
'BETTER Potential Energy Savings (kWh)',
1,
'assessment.assessment_energy_use.energy_savings_combined'
),
ExtraDataColumnPath(
'better_ghg_reductions_combined',
'BETTER Potential GHG Emissions Reduction (kgCO2e)',
'BETTER Potential GHG Emissions Reduction (MTCO2e)',
.001,
'assessment.assessment_energy_use.ghg_reductions_combined'
),
# Energy-specific Savings
ExtraDataColumnPath(
BETTER_VALID_MODEL_E_COL,
'BETTER Valid Electricity Model',
1,
'assessment.assessment_energy_use.valid_model_e'
),
ExtraDataColumnPath(
BETTER_VALID_MODEL_F_COL,
'BETTER Valid Fuel Model',
1,
'assessment.assessment_energy_use.valid_model_f'
),
ExtraDataColumnPath(
'better_cost_savings_electricity',
'BETTER Potential Electricity Cost Savings (USD)',
1,
'assessment.assessment_energy_use.cost_savings_e'
),
ExtraDataColumnPath(
'better_cost_savings_fuel',
'BETTER Potential Fuel Cost Savings (USD)',
1,
'assessment.assessment_energy_use.cost_savings_f'
),
ExtraDataColumnPath(
'better_energy_savings_electricity',
'BETTER Potential Electricity Energy Savings (kWh)',
1,
'assessment.assessment_energy_use.energy_savings_e'
),
ExtraDataColumnPath(
'better_energy_savings_fuel',
'BETTER Potential Fuel Energy Savings (kWh)',
1,
'assessment.assessment_energy_use.energy_savings_f'
),
ExtraDataColumnPath(
'better_ghg_reductions_electricity',
'BETTER Potential Electricity GHG Emissions Reduction (kgCO2e)',
'BETTER Potential Electricity GHG Emissions Reduction (MTCO2e)',
.001,
'assessment.assessment_energy_use.ghg_reductions_e'
),
ExtraDataColumnPath(
'better_ghg_reductions_fuel',
'BETTER Potential Fuel GHG Emissions Reduction (kgCO2e)',
'BETTER Potential Fuel GHG Emissions Reduction (MTCO2e)',
.001,
'assessment.assessment_energy_use.ghg_reductions_f'
),
ExtraDataColumnPath(
# we will manually add this to the data later (it's not part of BETTER's results)
# Provides info so user knows which SEED analysis last updated these stored values
'better_seed_analysis_id',
'BETTER Analysis Id',
1,
'better_seed_analysis_id'
),
ExtraDataColumnPath(
'better_min_model_r_squared',
'BETTER Min Model R^2',
1,
'min_model_r_squared'
),
] + ee_measure_column_data_paths
Expand All @@ -453,10 +467,12 @@ def _process_results(self, analysis_id):
raw_better_results = copy.deepcopy(analysis_property_view.parsed_results)
raw_better_results.update({'better_seed_analysis_id': analysis_id})

simplified_results = {
data_path.column_name: get_json_path(data_path.json_path, raw_better_results)
for data_path in column_data_paths
}
simplified_results = {}
for data_path in column_data_paths:
value = get_json_path(data_path.json_path, raw_better_results)
if value is not None:
value = float(value) * data_path.unit_multiplier
simplified_results[data_path.column_name] = value

electricity_model_is_valid = bool(simplified_results[BETTER_VALID_MODEL_E_COL])
fuel_model_is_valid = bool(simplified_results[BETTER_VALID_MODEL_F_COL])
Expand Down

0 comments on commit be73d73

Please sign in to comment.