diff --git a/contrib/app/SpotAnalysis/PeakFlux.py b/contrib/app/SpotAnalysis/PeakFlux.py index 9c5065c78..a0e82294d 100644 --- a/contrib/app/SpotAnalysis/PeakFlux.py +++ b/contrib/app/SpotAnalysis/PeakFlux.py @@ -63,8 +63,9 @@ def __init__(self, indir: str, outdir: str, experiment_name: str, settings_path_ BcsLocatorImageProcessor(), View3dImageProcessor(crop_to_threshold=20, max_resolution=(100, 100), interactive=False), HotspotImageProcessor(desired_shape=21, draw_debug_view=False), - ViewCrossSectionImageProcessor(self.get_bcs_origin, 'BCS', single_plot=False, - crop_to_threshold=20, interactive=True), + ViewCrossSectionImageProcessor( + self.get_bcs_origin, 'BCS', single_plot=False, crop_to_threshold=20, interactive=True + ), PopulationStatisticsImageProcessor(initial_min=0, initial_max=255), FalseColorImageProcessor(), AnnotationImageProcessor(), diff --git a/opencsp/common/lib/cv/spot_analysis/VisualizationCoordinator.py b/opencsp/common/lib/cv/spot_analysis/VisualizationCoordinator.py index e93712f5f..6bbeb494f 100644 --- a/opencsp/common/lib/cv/spot_analysis/VisualizationCoordinator.py +++ b/opencsp/common/lib/cv/spot_analysis/VisualizationCoordinator.py @@ -10,6 +10,7 @@ class VisualizationCoordinator: Coordinates visualizations across many image processors, so that the same image is seen from each processor at the same time. """ + max_tiles_x = 4 """ How many tiles we can have in the horizontal direction """ max_tiles_y = 2 @@ -62,11 +63,21 @@ def register_visualization_processors(self, all_processors: list[AbstractSpotAna for processor in self.visualization_processors: processor._init_figure_records(self.render_control_fig) - def is_visualize(self, visualization_processor: AbstractVisualizationImageProcessor, operable: SpotAnalysisOperable, is_last: bool) -> bool: + def is_visualize( + self, + visualization_processor: AbstractVisualizationImageProcessor, + operable: SpotAnalysisOperable, + is_last: bool, + ) -> bool: if visualization_processor == self.visualization_processors[-1]: return True return False - def visualize(self, visualization_processor: AbstractVisualizationImageProcessor, operable: SpotAnalysisOperable, is_last: bool): + def visualize( + self, + visualization_processor: AbstractVisualizationImageProcessor, + operable: SpotAnalysisOperable, + is_last: bool, + ): for processor in self.visualization_processors: processor._visualize_operable(operable, is_last) diff --git a/opencsp/common/lib/cv/spot_analysis/image_processor/AbstractVisualizationImageProcessor.py b/opencsp/common/lib/cv/spot_analysis/image_processor/AbstractVisualizationImageProcessor.py index c39bdc7b7..c53ad013f 100644 --- a/opencsp/common/lib/cv/spot_analysis/image_processor/AbstractVisualizationImageProcessor.py +++ b/opencsp/common/lib/cv/spot_analysis/image_processor/AbstractVisualizationImageProcessor.py @@ -1,7 +1,9 @@ from abc import ABC, abstractmethod from opencsp.common.lib.cv.spot_analysis.SpotAnalysisOperable import SpotAnalysisOperable -from opencsp.common.lib.cv.spot_analysis.image_processor.AbstractSpotAnalysisImageProcessor import AbstractSpotAnalysisImagesProcessor +from opencsp.common.lib.cv.spot_analysis.image_processor.AbstractSpotAnalysisImageProcessor import ( + AbstractSpotAnalysisImagesProcessor, +) import opencsp.common.lib.render_control.RenderControlFigure as rcf @@ -9,6 +11,7 @@ class AbstractVisualizationImageProcessor(AbstractSpotAnalysisImagesProcessor, A def __init__(self, name: str): # import here to avoid circular dependencies from opencsp.common.lib.cv.spot_analysis.VisualizationCoordinator import VisualizationCoordinator + super().__init__(name) self.visualization_coordinator: VisualizationCoordinator = None diff --git a/opencsp/common/lib/cv/spot_analysis/image_processor/ViewCrossSectionImageProcessor.py b/opencsp/common/lib/cv/spot_analysis/image_processor/ViewCrossSectionImageProcessor.py index fe0558dcc..14dfd95cb 100644 --- a/opencsp/common/lib/cv/spot_analysis/image_processor/ViewCrossSectionImageProcessor.py +++ b/opencsp/common/lib/cv/spot_analysis/image_processor/ViewCrossSectionImageProcessor.py @@ -120,7 +120,7 @@ def _init_figure_records(self, render_control_figure: rcf.RenderControlFigure): view_spec, equal=False, number_in_name=False, - name=self.label+name_suffix, + name=self.label + name_suffix, title="", code_tag=f"{__file__}.__init__()", ) @@ -201,9 +201,7 @@ def _visualize_operable(self, operable: SpotAnalysisOperable, is_last: bool): h_view = self.views[0] if not self.single_plot: h_view = self.views[1] - v_view.draw_pq_list( - zip(v_p_list, v_cross_section), style=self.vertical_style, label="Vertical Cross Section" - ) + v_view.draw_pq_list(zip(v_p_list, v_cross_section), style=self.vertical_style, label="Vertical Cross Section") h_view.draw_pq_list( zip(h_p_list, h_cross_section), style=self.horizontal_style, label="Horizontal Cross Section" ) diff --git a/opencsp/common/lib/cv/spot_analysis/image_processor/__init__.py b/opencsp/common/lib/cv/spot_analysis/image_processor/__init__.py index 2fc089d14..45d7cd7e3 100644 --- a/opencsp/common/lib/cv/spot_analysis/image_processor/__init__.py +++ b/opencsp/common/lib/cv/spot_analysis/image_processor/__init__.py @@ -4,7 +4,9 @@ from opencsp.common.lib.cv.spot_analysis.image_processor.AbstractSpotAnalysisImageProcessor import ( AbstractSpotAnalysisImagesProcessor, ) -from opencsp.common.lib.cv.spot_analysis.image_processor.AbstractVisualizationImageProcessor import AbstractVisualizationImageProcessor +from opencsp.common.lib.cv.spot_analysis.image_processor.AbstractVisualizationImageProcessor import ( + AbstractVisualizationImageProcessor, +) from opencsp.common.lib.cv.spot_analysis.image_processor.AnnotationImageProcessor import AnnotationImageProcessor from opencsp.common.lib.cv.spot_analysis.image_processor.AverageByGroupImageProcessor import ( AverageByGroupImageProcessor,