Skip to content

Commit

Permalink
fix(postprocess): Add custom grid metrics
Browse files Browse the repository at this point in the history
  • Loading branch information
mikkelkp committed Jul 17, 2023
1 parent 62a3bf6 commit dce3260
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 2 deletions.
31 changes: 31 additions & 0 deletions pollination/daylight_factor/_postprocess_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,18 @@
from pollination.path.copy import CopyFile

from pollination.honeybee_radiance.grid import MergeFolderData
from pollination.honeybee_radiance_postprocess.post_process import GridSummaryMetrics


@dataclass
class DaylightFactorPostProcessResults(GroupedDAG):
"""Daylight factor results post-process."""

model = Inputs.file(
description='Input Honeybee model.',
extensions=['json', 'hbjson', 'pkl', 'hbpkl', 'zip']
)

results_folder = Inputs.folder(
description='Daylight factor results input folder.'
)
Expand All @@ -18,6 +24,11 @@ class DaylightFactorPostProcessResults(GroupedDAG):
description='Grids information from the original model.'
)

grid_metrics = Inputs.file(
description='A JSON file with additional custom metrics to calculate.',
path='grid_metrics.json', optional=True
)

@task(template=MergeFolderData, annotations={'main_task': True})
def restructure_results(self, input_folder=results_folder, extension='res'):
return [
Expand All @@ -36,7 +47,27 @@ def copy_grid_info(self, src=grids_info):
}
]

@task(
template=GridSummaryMetrics,
needs=[restructure_results]
)
def grid_summary_metrics(
self, folder=restructure_results._outputs.output_folder,
model=model, grids_info=grids_info, grid_metrics=grid_metrics,
folder_level='main-folder'
):
return [
{
'from': GridSummaryMetrics()._outputs.grid_summary,
'to': 'grid_summary.csv'
}
]

results = Outputs.folder(
source='results',
description='Daylight factor results.'
)

grid_summary = Outputs.file(
source='grid_summary.csv', description='grid summary.'
)
19 changes: 17 additions & 2 deletions pollination/daylight_factor/entry.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from pollination.alias.inputs.radiancepar import rad_par_daylight_factor_input
from pollination.alias.inputs.grid import grid_filter_input, \
min_sensor_count_input, cpu_count
from pollination.alias.inputs.postprocess import grid_metrics_input
from pollination.alias.outputs.daylight import daylight_factor_results


Expand Down Expand Up @@ -60,6 +61,11 @@ class DaylightFactorEntryPoint(DAG):
alias=grid_filter_input
)

grid_metrics = Inputs.file(
description='A JSON file with additional custom metrics to calculate.',
extensions=['json'], optional=True, alias=grid_metrics_input
)

@task(template=DaylightFactorPrepareFolder)
def prepare_daylight_factor_folder(
self, cpu_count=cpu_count, min_sensor_count=min_sensor_count,
Expand Down Expand Up @@ -113,13 +119,18 @@ def daylight_factor_ray_tracing(
needs=[daylight_factor_ray_tracing]
)
def post_process_results(
self, results_folder='initial_results',
grids_info='resources/grids_info.json'
self, results_folder='initial_results',
grids_info='resources/grids_info.json',
model=model, grid_metrics=grid_metrics
):
return [
{
'from': DaylightFactorPostProcessResults()._outputs.results,
'to': 'results'
},
{
'from': DaylightFactorPostProcessResults()._outputs.grid_summary,
'to': 'grid_summary.csv'
}
]

Expand All @@ -128,3 +139,7 @@ def post_process_results(
'(.res) that contain daylight factor values for each sensor.',
alias=daylight_factor_results
)

grid_summary = Outputs.file(
source='grid_summary.csv', description='grid summary.'
)

0 comments on commit dce3260

Please sign in to comment.