Skip to content

Commit

Permalink
fix(recipe): Group post-processing tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
mikkelkp committed Jun 21, 2023
1 parent a92f97d commit 32306f3
Show file tree
Hide file tree
Showing 5 changed files with 119 additions and 29 deletions.
93 changes: 93 additions & 0 deletions pollination/annual_daylight/_post_process.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
"""Post-process DAG for annual daylight."""
from dataclasses import dataclass
from pollination_dsl.dag import Inputs, GroupedDAG, task, Outputs
from pollination.honeybee_radiance_postprocess.grid import MergeFolderData, \
MergeFolderMetrics
from pollination.honeybee_display.translate import ModelToVis


@dataclass
class AnnualDaylightPostProcess(GroupedDAG):
"""Post-process for annual daylight."""

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

initial_results = Inputs.folder(
description='Folder with initial results. This is the distributed '
'results.',
path='initial_results'
)

dist_info = Inputs.file(
description='Distribution information file.',
path='dist_info.json'
)

grids_info = Inputs.file(
description='Grid information file.',
path='grids_info.json'
)

@task(
template=MergeFolderData,
sub_paths={
'input_folder': 'final'
}
)
def restructure_results(
self, input_folder=initial_results, extension='ill',
dist_info=dist_info
):
return [
{
'from': MergeFolderData()._outputs.output_folder,
'to': 'results/__static_apertures__/default/total'
}
]

@task(
template=MergeFolderMetrics,
sub_paths={
'input_folder': 'metrics'
}
)
def restructure_metrics(
self, input_folder=initial_results,
dist_info=dist_info,
grids_info=grids_info
):
return [
{
'from': MergeFolderMetrics()._outputs.output_folder,
'to': 'metrics'
}
]

@task(template=ModelToVis, needs=[restructure_metrics])
def create_vsf(
self, model=model, grid_data='metrics', active_grid_data='udi',
output_format='vsf'
):
return [
{
'from': ModelToVis()._outputs.output_file,
'to': 'visualization.vsf'
}
]

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

metrics = Outputs.folder(
source='metrics', description='metrics folder.'
)

visualization = Outputs.file(
source='visualization.vsf',
description='Annual Daylight result visualization in VisualizationSet format.'
)
3 changes: 2 additions & 1 deletion pollination/annual_daylight/_prepare_folder.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
"""Prepare folder DAG for annual daylight."""
from dataclasses import dataclass
from pollination_dsl.dag import Inputs, GroupedDAG, task, Outputs
from pollination.path.copy import CopyFile
Expand Down Expand Up @@ -79,7 +80,7 @@ def generate_sunpath(self, north=north, wea=wea):
}
]

@task(template=CreateRadianceFolderGrid)
@task(template=CreateRadianceFolderGrid, annotations={'main_task': True})
def create_rad_folder(self, input_model=model, grid_filter=grid_filter):
"""Translate the input model to a radiance folder."""
return [
Expand Down
1 change: 0 additions & 1 deletion pollination/annual_daylight/_raytracing.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ def total_sky(
)
def annual_metrics_file(
self,
name=grid_name,
file=total_sky._outputs.result_file,
sun_up_hours=sun_up_hours,
schedule=schedule,
Expand Down
49 changes: 23 additions & 26 deletions pollination/annual_daylight/entry.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
from pollination_dsl.dag import Inputs, DAG, task, Outputs
from dataclasses import dataclass
from pollination.honeybee_radiance_postprocess.grid import MergeFolderData, \
MergeFolderMetrics

# input/output alias
from pollination.alias.inputs.model import hbjson_model_grid_input
Expand All @@ -19,6 +17,7 @@

from ._prepare_folder import AnnualDaylightPrepareFolder
from ._raytracing import AnnualDaylightRayTracing
from ._post_process import AnnualDaylightPostProcess


@dataclass
Expand Down Expand Up @@ -153,41 +152,39 @@ def annual_daylight_raytracing(
pass

@task(
template=MergeFolderData,
template=AnnualDaylightPostProcess,
needs=[prepare_folder_annual_daylight, annual_daylight_raytracing],
sub_paths={
'dist_info': 'grid/_redist_info.json'
'dist_info': 'grid/_redist_info.json',
'grids_info': 'grids_info.json'
}
)
def restructure_results(
self, input_folder='initial_results/final', extension='ill',
dist_info=prepare_folder_annual_daylight._outputs.resources
):
def post_process_annual_daylight(
self, initial_results='initial_results',
dist_info=prepare_folder_annual_daylight._outputs.resources,
grids_info=prepare_folder_annual_daylight._outputs.results,
model=model
):
return [
{
'from': MergeFolderData()._outputs.output_folder,
'to': 'results/__static_apertures__/default/total'
}
]

@task(
template=MergeFolderMetrics,
needs=[prepare_folder_annual_daylight, annual_daylight_raytracing],
sub_paths={
'dist_info': 'grid/_redist_info.json'
}
)
def restructure_metrics(
self, input_folder='initial_results/metrics',
dist_info=prepare_folder_annual_daylight._outputs.resources
):
return [
'from': AnnualDaylightPostProcess()._outputs.results,
'to': 'results'
},
{
'from': MergeFolderMetrics()._outputs.output_folder,
'from': AnnualDaylightPostProcess()._outputs.metrics,
'to': 'metrics'
},
{
'from': AnnualDaylightPostProcess()._outputs.visualization,
'to': 'visualization.vsf'
}
]

visualization = Outputs.file(
source='visualization.vsf',
description='Result visualization in VisualizationSet format.'
)

results = Outputs.folder(
source='results', description='Folder with raw result files (.ill) that '
'contain illuminance matrices for each sensor at each timestep of the analysis.'
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
pollination-honeybee-radiance==0.22.33
pollination-honeybee-radiance-postprocess==0.0.32
pollination-honeybee-radiance-postprocess==0.0.33
pollination-dsl>=0.14.3
pollination-alias==0.11.5
pollination-path==0.3.2

0 comments on commit 32306f3

Please sign in to comment.