From 8ed62e7640974912266f95520b6032584a82c37c Mon Sep 17 00:00:00 2001 From: Braden Date: Mon, 2 Dec 2024 13:44:27 -0700 Subject: [PATCH 01/19] Added function to plot all corners of facet ensemble in DefinitionEnsemble.py --- opencsp/app/sofast/lib/DefinitionEnsemble.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/opencsp/app/sofast/lib/DefinitionEnsemble.py b/opencsp/app/sofast/lib/DefinitionEnsemble.py index bc22c9f19..af2ffd271 100644 --- a/opencsp/app/sofast/lib/DefinitionEnsemble.py +++ b/opencsp/app/sofast/lib/DefinitionEnsemble.py @@ -4,9 +4,11 @@ from copy import deepcopy import json +import matplotlib.pyplot as plt import numpy as np from scipy.spatial.transform import Rotation +from opencsp.app.sofast.lib.DefinitionFacet import DefinitionFacet from opencsp.common.lib.geometry.Vxyz import Vxyz from opencsp.common.lib.tool import hdf5_tools @@ -164,6 +166,14 @@ def load_from_hdf(cls, file: str, prefix: str = '') -> 'DefinitionEnsemble': v_centroid_ensemble = Vxyz(data['v_centroid_ensemble']) return cls(v_facet_locations, r_facet_ensemble, ensemble_perimeter, v_centroid_ensemble) + def plot_facet_corners_xy_proj(self, facets: list[DefinitionFacet]) -> None: + """Plots the xy projection of all facet corners given accompanying facet definitions""" + for idx_facet, (facet, R, T) in enumerate(zip(facets, self.r_facet_ensemble, self.v_facet_locations)): + facet: DefinitionFacet + corners_cur_facet = facet.v_facet_corners + corners_cur_ensemble: Vxyz = corners_cur_facet.rotate(R) + T + plt.scatter(corners_cur_ensemble.x, corners_cur_ensemble.y, label=f'Facet {idx_facet:d}') + def _Vxyz_to_dict(V: Vxyz) -> dict: d = {'x': V.x.tolist(), 'y': V.y.tolist(), 'z': V.z.tolist()} From e32afcadb27b34ccf4ff7153097591173ab81b1c Mon Sep 17 00:00:00 2001 From: Braden Date: Mon, 2 Dec 2024 13:46:10 -0700 Subject: [PATCH 02/19] Added debug class to BlobIndex and added more visualization functions. --- opencsp/app/sofast/lib/BlobIndex.py | 72 +++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 3 deletions(-) diff --git a/opencsp/app/sofast/lib/BlobIndex.py b/opencsp/app/sofast/lib/BlobIndex.py index 226522c16..afc43ef9d 100644 --- a/opencsp/app/sofast/lib/BlobIndex.py +++ b/opencsp/app/sofast/lib/BlobIndex.py @@ -19,6 +19,29 @@ class Step(Enum): LEFT_OR_UP = -1 +class DebugBlobIndex: + """Debug class for BlobIndex + + Parameters + ---------- + debug_active : bool + Flag to turn on debugging, default false + figures : list[Figure] + Container to hold debug figures + bg_image : ndarray + 2d ndarray, by default None. Background image (i.e. the image with the blobs present) + to plot in debugging plots. If None, background image is not plotted. + name : str + Name of current instance to prepend to plot titles + """ + + def __init__(self): + self.debug_active: bool = False + self.figures: list = [] + self.bg_image: np.ndarray = None + self.name: str = '' + + class BlobIndex: """Class containing blob indexing algorithms to assign indices to blobs in a rough grid pattern. X/Y axes correspond to image axes; +x is to right, +y is down. Class takes in points (in units @@ -70,6 +93,8 @@ def __init__(self, points: Vxy, x_min: int, x_max: int, y_min: int, y_max: int) """Ratio of point distances: (perpendicular to axis) / (along axis) used to search for points. Default 3.0""" self.apply_filter: bool = False """To filter bad points (experimental, not implemented yet). Default False""" + self.debug: DebugBlobIndex = DebugBlobIndex() + """BlobIndex debug object""" self._offset_x = -x_min # index self._offset_y = -y_min # index @@ -238,7 +263,6 @@ def _find_nearest_in_direction( mask = np.logical_and(unassigned_deltas.y > 0, unassigned_deltas.y > (2 * np.abs(unassigned_deltas.x))) idx_x_out = idx_x idx_y_out = idx_y + 1 - # Down elif direction == 'down': mask = np.logical_and(unassigned_deltas.y < 0, -unassigned_deltas.y > (2 * np.abs(unassigned_deltas.x))) idx_x_out = idx_x @@ -406,10 +430,39 @@ def run(self, pt_known: Vxy, x_known: int, y_known: int) -> None: x/y_known : int XY indies of known points """ + # Plot all input blobs + if self.debug.debug_active: + fig = plt.figure() + if self.debug.bg_image is not None: + plt.imshow(self.debug.bg_image) + self.plot_all_points() + plt.title('1: All found dots in image' + self.debug.name) + self.debug.figures.append(fig) + # Assign center point self._assign_center(pt_known, x_known, y_known) + + # Plot assigned known center point + if self.debug.debug_active: + fig = plt.figure() + if self.debug.bg_image is not None: + plt.imshow(self.debug.bg_image) + self.plot_assigned_points_labels(labels=True) + plt.title('2: Locations of known, center dot' + self.debug.name) + self.debug.figures.append(fig) + # Find 3x3 core point block self._find_3x3_center_block(x_known, y_known) + + # Plot 3x3 core block + if self.debug.debug_active: + fig = plt.figure() + if self.debug.bg_image is not None: + plt.imshow(self.debug.bg_image) + self.plot_assigned_points_labels(labels=True) + plt.title('3: Locations of 3x3 center block' + self.debug.name) + self.debug.figures.append(fig) + # Extend rows prev_num_unassigned = self._num_unassigned() for idx in range(self.max_num_iters): @@ -429,8 +482,17 @@ def run(self, pt_known: Vxy, x_known: int, y_known: int) -> None: break prev_num_unassigned = cur_num_unassigned - def plot_points_labels(self, labels: bool = False) -> None: - """Plots points and labels + # Plot all found points + if self.debug.debug_active: + fig = plt.figure() + if self.debug.bg_image is not None: + plt.imshow(self.debug.bg_image) + self.plot_points_connections() + plt.title('4: Row assignments' + self.debug.name) + self.debug.figures.append(fig) + + def plot_assigned_points_labels(self, labels: bool = False) -> None: + """Plots all assigned points with [optionally] labels Parameters ---------- @@ -444,6 +506,10 @@ def plot_points_labels(self, labels: bool = False) -> None: ): plt.text(*pt.data, f'({x:.0f}, {y:.0f})') + def plot_all_points(self) -> None: + """Plots all points""" + plt.scatter(*self._points.data, color='red') + def plot_points_connections(self, labels: bool = False) -> None: """Plots points and connections for rows/collumns From e21e5630b314e4d569ad6d97eb3095310963c679 Mon Sep 17 00:00:00 2001 From: Braden Date: Mon, 2 Dec 2024 13:47:49 -0700 Subject: [PATCH 03/19] Fixed error in CalibrateSofastFixedDots.py where y/x axes were switched. Only became a problem when dot array was not square. --- opencsp/app/sofast/lib/CalibrateSofastFixedDots.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opencsp/app/sofast/lib/CalibrateSofastFixedDots.py b/opencsp/app/sofast/lib/CalibrateSofastFixedDots.py index 395a1beb6..d8802cd50 100644 --- a/opencsp/app/sofast/lib/CalibrateSofastFixedDots.py +++ b/opencsp/app/sofast/lib/CalibrateSofastFixedDots.py @@ -140,7 +140,7 @@ def __init__( self._dot_image_points_indices: Vxy self._dot_image_points_indices_x: ndarray self._dot_image_points_indices_y: ndarray - self._dot_points_xyz_mat = np.ndarray((x_max - x_min + 1, y_max - y_min + 1, 3)) * np.nan + self._dot_points_xyz_mat = np.ndarray((y_max - y_min + 1, x_max - x_min + 1, 3)) * np.nan self._num_dots: int self._rots_cams: list[Rotation] = [] self._vecs_cams: list[Vxyz] = [] From e5819f52c873e178c230bd8f2170a66b93257350 Mon Sep 17 00:00:00 2001 From: Braden Date: Mon, 2 Dec 2024 13:53:17 -0700 Subject: [PATCH 04/19] Added Blob Index debug option to ProcessSofastFixed. --- opencsp/app/sofast/lib/ProcessSofastFixed.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opencsp/app/sofast/lib/ProcessSofastFixed.py b/opencsp/app/sofast/lib/ProcessSofastFixed.py index 95ae9d58a..0136f98a0 100644 --- a/opencsp/app/sofast/lib/ProcessSofastFixed.py +++ b/opencsp/app/sofast/lib/ProcessSofastFixed.py @@ -5,7 +5,7 @@ import numpy as np from numpy import ndarray -from opencsp.app.sofast.lib.BlobIndex import BlobIndex +from opencsp.app.sofast.lib.BlobIndex import BlobIndex, DebugBlobIndex from opencsp.app.sofast.lib.DefinitionEnsemble import DefinitionEnsemble from opencsp.app.sofast.lib.DefinitionFacet import DefinitionFacet from opencsp.app.sofast.lib.DotLocationsFixedPattern import DotLocationsFixedPattern @@ -18,6 +18,7 @@ from opencsp.common.lib.camera.Camera import Camera from opencsp.common.lib.deflectometry.SlopeSolver import SlopeSolver from opencsp.common.lib.deflectometry.Surface2DAbstract import Surface2DAbstract +from opencsp.common.lib.geometry.LoopXY import LoopXY from opencsp.common.lib.geometry.Vxy import Vxy import opencsp.common.lib.tool.log_tools as lt @@ -60,6 +61,7 @@ def __init__( # Instantiate other data containers self.slope_solvers: list[SlopeSolver] = None self.blob_index: BlobIndex = None + self.debug_blob_index: DebugBlobIndex = DebugBlobIndex() def find_blobs(self, pts_known: Vxy, xys_known: tuple[tuple[int, int]]) -> BlobIndex: """Finds blobs in image From 04f9fa0f90cb5bffca82dbdaf236b591d8711e36 Mon Sep 17 00:00:00 2001 From: Braden Date: Mon, 2 Dec 2024 13:54:48 -0700 Subject: [PATCH 05/19] Updated find_blobs in PSF. Can filter by loopXY --- opencsp/app/sofast/lib/ProcessSofastFixed.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/opencsp/app/sofast/lib/ProcessSofastFixed.py b/opencsp/app/sofast/lib/ProcessSofastFixed.py index 0136f98a0..10deff1a4 100644 --- a/opencsp/app/sofast/lib/ProcessSofastFixed.py +++ b/opencsp/app/sofast/lib/ProcessSofastFixed.py @@ -63,26 +63,34 @@ def __init__( self.blob_index: BlobIndex = None self.debug_blob_index: DebugBlobIndex = DebugBlobIndex() - def find_blobs(self, pts_known: Vxy, xys_known: tuple[tuple[int, int]]) -> BlobIndex: + def find_blobs(self, pts_known: Vxy, xys_known: tuple[tuple[int, int]], loop: LoopXY = None) -> BlobIndex: """Finds blobs in image Parameters ---------- pts_known : Vxy Length N, xy pixel location of known point(s) with known xy dot index locations - xys_known : tuple[tuple[int]] + xys_known : tuple[tuple[int, int]] Length N integer xy dot indices + loop : LoopXY | None + Only consider points inside this loop. If None, consider all points. NOTE: N=number of facets """ + # Find all blobs in image pts_blob = ip.detect_blobs(self.measurement.image, self.blob_detector) + # Filter blobs if loop is given + if loop is not None: + mask = loop.is_inside(pts_blob) + pts_blob = pts_blob[mask] + # Index blobs blob_index = BlobIndex(pts_blob, *self.fixed_pattern_dot_locs.dot_extent) blob_index.search_thresh = self.params.blob_search_thresh blob_index.search_perp_axis_ratio = self.params.search_perp_axis_ratio - for pt_known, xy_known in zip(pts_known, xys_known): - blob_index.run(pt_known, xy_known[0], xy_known[1]) + blob_index.debug = self.debug_blob_index + blob_index.run(pts_known, xys_known[0], xys_known[1]) return blob_index From 960db446d331986bf6baa881010ed1fdf2e35eec Mon Sep 17 00:00:00 2001 From: Braden Date: Mon, 2 Dec 2024 13:55:28 -0700 Subject: [PATCH 06/19] Removes NaNs in points in PSF --- opencsp/app/sofast/lib/ProcessSofastFixed.py | 69 ++++++++++++-------- 1 file changed, 42 insertions(+), 27 deletions(-) diff --git a/opencsp/app/sofast/lib/ProcessSofastFixed.py b/opencsp/app/sofast/lib/ProcessSofastFixed.py index 10deff1a4..eaad5800a 100644 --- a/opencsp/app/sofast/lib/ProcessSofastFixed.py +++ b/opencsp/app/sofast/lib/ProcessSofastFixed.py @@ -187,33 +187,12 @@ def _process_optic_singlefacet_geometry(self, blob_index: BlobIndex, mask_raw: n 'surface': self.data_surfaces[0], } - def _process_optic_multifacet_geometry(self, blob_index: BlobIndex, mask_raw: np.ndarray) -> list[dict]: - # Process optic geometry (find mask corners, etc.) - ( - self.data_geometry_general, - self.data_image_processing_general, - self.data_geometry_facet, # list - self.data_image_processing_facet, # list - self.data_error, - ) = pr.process_multifacet_geometry( - self.data_facet_def, - self.data_ensemble_def, - mask_raw, - self.measurement.v_measure_point_facet, - self.orientation, - self.camera, - self.measurement.dist_optic_screen, - self.params.geometry, - self.params.debug_geometry, - ) + def _process_optic_multifacet_geometry(self, blob_index: list[BlobIndex]) -> list[dict]: kwargs_list = [] for idx_facet in range(self.num_facets): - # Get pixel region of current facet - loop = self.data_image_processing_facet[idx_facet].loop_facet_image_refine - # Get image points and blob indices - pts_image, pts_index_xy = blob_index.get_data_in_region(loop) + pts_image, pts_index_xy = blob_index[idx_facet].get_data() # Define optic orientation w.r.t. camera rot_facet_ensemble = self.data_ensemble_def.r_facet_ensemble[idx_facet] @@ -240,6 +219,18 @@ def _process_optic_multifacet_geometry(self, blob_index: BlobIndex, mask_raw: np v_screen_points_screen = self.fixed_pattern_dot_locs.xy_indices_to_screen_coordinates(pts_index_xy) v_screen_points_facet = v_facet_screen_facet + v_screen_points_screen.rotate(rot_screen_facet) + # Check for nans returning from screen point calculation + nan_mask = np.isnan(v_screen_points_screen.data).sum(0).astype(bool) + if np.any(nan_mask): + lt.warn( + f'{nan_mask.sum():d} / {nan_mask.size:d} points are NANs in calculated ' + f'screen points for facet {idx_facet:d}. These data points will be removed.' + ) + # Remove nan data points from screen points + active_point_mask = np.logical_not(nan_mask) + pts_image = pts_image[active_point_mask] + v_screen_points_facet = v_screen_points_facet[active_point_mask] + # Calculate active pixel pointing u_pixel_pointing_cam = self.camera.vector_from_pixel(pts_image) u_pixel_pointing_facet = u_pixel_pointing_cam.rotate(rot_cam_facet).as_Vxyz() @@ -348,14 +339,38 @@ def process_multi_facet_optic( self.data_ensemble_def = data_ensemble_def.copy() self.data_surfaces = surfaces - # Find blobs - self.blob_index = self.find_blobs(pts_known, xys_known) - # Calculate mask mask_raw = self._calculate_mask() + # Process optic geometry (find mask corners, etc.) + ( + self.data_geometry_general, + self.data_image_processing_general, + self.data_geometry_facet, # list + self.data_image_processing_facet, # list + self.data_error, + ) = pr.process_multifacet_geometry( + self.data_facet_def, + self.data_ensemble_def, + mask_raw, + self.measurement.v_measure_point_facet, + self.orientation, + self.camera, + self.measurement.dist_optic_screen, + self.params.geometry, + self.params.debug_geometry, + ) + + # Find blobs + self.blob_index: list[BlobIndex] = [] + + for idx_facet, geom in enumerate(self.data_image_processing_facet): + loop = geom.loop_facet_image_refine + self.debug_blob_index.name = f' - Facet {idx_facet:d}' + self.blob_index.append(self.find_blobs(pts_known[idx_facet], xys_known[idx_facet], loop)) + # Generate geometry and slope solver inputs - kwargs_list = self._process_optic_multifacet_geometry(self.blob_index, mask_raw) + kwargs_list = self._process_optic_multifacet_geometry(self.blob_index) # Calculate slope self.slope_solvers = [] From c2e5c967c29665ce5fde1cee36d83e73d6579de1 Mon Sep 17 00:00:00 2001 From: Braden Date: Tue, 3 Dec 2024 09:02:37 -0700 Subject: [PATCH 07/19] Added shape_ys_data_mat and pts_index_to_mat_index to BlobIndex --- opencsp/app/sofast/lib/BlobIndex.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/opencsp/app/sofast/lib/BlobIndex.py b/opencsp/app/sofast/lib/BlobIndex.py index afc43ef9d..f409f43e1 100644 --- a/opencsp/app/sofast/lib/BlobIndex.py +++ b/opencsp/app/sofast/lib/BlobIndex.py @@ -95,14 +95,16 @@ def __init__(self, points: Vxy, x_min: int, x_max: int, y_min: int, y_max: int) """To filter bad points (experimental, not implemented yet). Default False""" self.debug: DebugBlobIndex = DebugBlobIndex() """BlobIndex debug object""" + self.shape_yx_data_mat: tuple[int, int] = (y_max - y_min + 1, x_max - x_min + 1) + """The yx shape of the internal data matrix that holds the point pixel locations and xy indices""" self._offset_x = -x_min # index self._offset_y = -y_min # index idx_x_vec = np.arange(x_min, x_max + 1) # index idx_y_vec = np.arange(y_min, y_max + 1) # index self._idx_x_mat, self._idx_y_mat = np.meshgrid(idx_x_vec, idx_y_vec) # index - self._points_mat = np.zeros((y_max - y_min + 1, x_max - x_min + 1, 2)) * np.nan # pixels - self._point_indices_mat = np.zeros((y_max - y_min + 1, x_max - x_min + 1)) * np.nan # index + self._points_mat = np.zeros(self.shape_yx_data_mat + (2,)) * np.nan # pixels + self._point_indices_mat = np.zeros(self.shape_yx_data_mat) * np.nan # index def _get_assigned_point_indices(self) -> np.ndarray[int]: """Returns found point indices""" @@ -563,6 +565,22 @@ def get_data(self) -> tuple[Vxy, Vxy]: points = Vxy((x_pts[mask_assigned], y_pts[mask_assigned])) return points, indices + def pts_index_to_mat_index(self, pts_index: Vxy) -> tuple[np.ndarray, np.ndarray]: + """Returns corresponding matrix indices (see self.get_data_mat) given point + indices (assigned x/y indies of points.) + + Parameters + ---------- + pts_index : Vxy + Assigned point xy indices, length N. + + Returns + ------- + x, y + Length N 1d arrays of corresponding data matrix indices (see self.get_data_mat) + """ + return pts_index.x - self._offset_x, pts_index.y - self._offset_y + def get_data_in_region(self, loop: LoopXY) -> tuple[Vxy, Vxy]: """Returns found points and indices within given region From e41f0dc08af279a9c59427b9da78d1d3f0cf5123 Mon Sep 17 00:00:00 2001 From: Braden Date: Tue, 3 Dec 2024 09:05:19 -0700 Subject: [PATCH 08/19] Added CalculationBlobAssignment data class to ProcessSofastFixed. Saves blob assignment data to HDF5. --- opencsp/app/sofast/lib/ProcessSofastFixed.py | 39 ++++++++++++++++++- .../sofast/lib/calculation_data_classes.py | 30 ++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/opencsp/app/sofast/lib/ProcessSofastFixed.py b/opencsp/app/sofast/lib/ProcessSofastFixed.py index eaad5800a..7e49efb1e 100644 --- a/opencsp/app/sofast/lib/ProcessSofastFixed.py +++ b/opencsp/app/sofast/lib/ProcessSofastFixed.py @@ -6,6 +6,7 @@ from numpy import ndarray from opencsp.app.sofast.lib.BlobIndex import BlobIndex, DebugBlobIndex +from opencsp.app.sofast.lib.calculation_data_classes import CalculationBlobAssignment from opencsp.app.sofast.lib.DefinitionEnsemble import DefinitionEnsemble from opencsp.app.sofast.lib.DefinitionFacet import DefinitionFacet from opencsp.app.sofast.lib.DotLocationsFixedPattern import DotLocationsFixedPattern @@ -62,6 +63,7 @@ def __init__( self.slope_solvers: list[SlopeSolver] = None self.blob_index: BlobIndex = None self.debug_blob_index: DebugBlobIndex = DebugBlobIndex() + self.data_calculation_blob_assignment: list[CalculationBlobAssignment] = [] def find_blobs(self, pts_known: Vxy, xys_known: tuple[tuple[int, int]], loop: LoopXY = None) -> BlobIndex: """Finds blobs in image @@ -190,6 +192,7 @@ def _process_optic_singlefacet_geometry(self, blob_index: BlobIndex, mask_raw: n def _process_optic_multifacet_geometry(self, blob_index: list[BlobIndex]) -> list[dict]: kwargs_list = [] + self.data_calculation_blob_assignment = [] for idx_facet in range(self.num_facets): # Get image points and blob indices pts_image, pts_index_xy = blob_index[idx_facet].get_data() @@ -221,16 +224,29 @@ def _process_optic_multifacet_geometry(self, blob_index: list[BlobIndex]) -> lis # Check for nans returning from screen point calculation nan_mask = np.isnan(v_screen_points_screen.data).sum(0).astype(bool) + active_point_mask: np.ndarray = np.logical_not(nan_mask) + + # Remove nans if any present if np.any(nan_mask): lt.warn( f'{nan_mask.sum():d} / {nan_mask.size:d} points are NANs in calculated ' f'screen points for facet {idx_facet:d}. These data points will be removed.' ) # Remove nan data points from screen points - active_point_mask = np.logical_not(nan_mask) pts_image = pts_image[active_point_mask] + pts_index_xy = pts_index_xy[active_point_mask] v_screen_points_facet = v_screen_points_facet[active_point_mask] + # Make 2d mask of active points (w.r.t. BlobIndex internal 2d arrays) + x_idx_mat, y_idx_mat = self.blob_index[idx_facet].pts_index_to_mat_index(pts_index_xy) + active_point_mask_mat = np.zeros(self.blob_index[idx_facet].shape_yx_data_mat, dtype=bool) + active_point_mask_mat[y_idx_mat, x_idx_mat] = True + + # Save Sofast Fixed calculation parameters (specific to Sofast Fixed calculations) + self.data_calculation_blob_assignment.append( + CalculationBlobAssignment(pts_image, pts_index_xy, active_point_mask_mat) + ) + # Calculate active pixel pointing u_pixel_pointing_cam = self.camera.vector_from_pixel(pts_image) u_pixel_pointing_facet = u_pixel_pointing_cam.rotate(rot_cam_facet).as_Vxyz() @@ -384,3 +400,24 @@ def process_multi_facet_optic( # Calculate facet pointing self._calculate_facet_pointing() + + def save_to_hdf(self, file: str, prefix: str = ''): + """Saves data to given file. Data is stored as: PREFIX + Folder/Field_1 + + Parameters + ---------- + file : str + HDF file to save to + prefix : str + Prefix to append to folder path within HDF file (folders must be separated by "/") + """ + # Save default data + super().save_to_hdf(file, prefix) + + # Calculations, one per facet + for idx_facet in range(self.num_facets): + # Save facet blob index calcluations (specific to Sofast Fixed) + if self.data_calculation_blob_assignment is not None: + self.data_calculation_blob_assignment[idx_facet].save_to_hdf( + file, f'{prefix:s}DataSofastCalculation/facet/facet_{idx_facet:03d}/' + ) diff --git a/opencsp/app/sofast/lib/calculation_data_classes.py b/opencsp/app/sofast/lib/calculation_data_classes.py index 2fb457b03..0679d8f48 100644 --- a/opencsp/app/sofast/lib/calculation_data_classes.py +++ b/opencsp/app/sofast/lib/calculation_data_classes.py @@ -232,6 +232,36 @@ def save_to_hdf(self, file: str, prefix: str = ''): _save_data_in_file(data, datasets, file) +@dataclass +class CalculationBlobAssignment(hdf5_tools.HDF5_SaveAbstract): + """Data class for holding calculated parameters from Sofast Fixed blob assignment""" + + pts_image: Vxy = None + """Positions in the measured image that correspond to blobs (units of image pixels from upper-left corner)""" + pts_index_xy: Vxy = None + """XY indices relative to user-defined origin point (0, 0) corresponding to positions in the image (pts_image)""" + active_point_mask: ndarray[bool] = None + """2d ndarray, mask of active points""" + + def save_to_hdf(self, file: str, prefix: str = '') -> None: + """Saves data to given HDF5 file. Data is stored in PREFIX + CalculationBlobAssignment/... + + Parameters + ---------- + file : str + HDF file to save to + prefix : str + Prefix to append to folder path within HDF file (folders must be separated by "/") + """ + data = [self.pts_image.data, self.pts_index_xy.data, self.active_point_mask] + datasets = [ + prefix + 'CalculationBlobAssignment/pts_image', + prefix + 'CalculationBlobAssignment/pts_index_xy.data', + prefix + 'CalculationBlobAssignment/active_point_mask', + ] + _save_data_in_file(data, datasets, file) + + @dataclass class CalculationFacetEnsemble(hdf5_tools.HDF5_SaveAbstract): """Data class used in deflectometry calculations. Holds calculations From 2a5905a8b5c48186ea98422cbc53f2038c6ffcc8 Mon Sep 17 00:00:00 2001 From: Braden Date: Tue, 3 Dec 2024 09:13:20 -0700 Subject: [PATCH 09/19] Update SofastConfiguration class to calculate average xy sample distances for Sofast Fixed runs. --- opencsp/app/sofast/lib/SofastConfiguration.py | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/opencsp/app/sofast/lib/SofastConfiguration.py b/opencsp/app/sofast/lib/SofastConfiguration.py index f12d7e703..a3af91b0a 100644 --- a/opencsp/app/sofast/lib/SofastConfiguration.py +++ b/opencsp/app/sofast/lib/SofastConfiguration.py @@ -51,22 +51,17 @@ def get_measurement_stats(self) -> list[dict]: - focal_lengths_parabolic_xy """ self._check_sofast_object_loaded() - - if self._is_fringe: - num_facets = self.data_sofast_object.num_facets - elif isinstance(self.data_sofast_object, ProcessSofastFixed): - num_facets = 1 + num_facets = self.data_sofast_object.num_facets stats = [] - for idx_facet in range(num_facets): if self._is_fringe: - # Get data + # Get surface data data_calc = self.data_sofast_object.data_calculation_facet[idx_facet] data_im_proc = self.data_sofast_object.data_image_processing_facet[idx_facet] data_surf = self.data_sofast_object.data_surfaces[idx_facet] - # Sample resolution + # Assemble surface points in 2d arrays mask = data_im_proc.mask_processed im_x = np.zeros(mask.shape) * np.nan im_y = np.zeros(mask.shape) * np.nan @@ -76,19 +71,18 @@ def get_measurement_stats(self) -> list[dict]: # Number of points num_samps = len(data_calc.v_surf_points_facet) else: - # Get data + # Get surface data data_surf = self.data_sofast_object.slope_solvers[idx_facet].surface data_calc = self.data_sofast_object.data_calculation_facet[idx_facet] - # Sample resolution + + # Assemble surface points in 2d arrays surf_points = self.data_sofast_object.data_calculation_facet[idx_facet].v_surf_points_facet - pts_index_xy = self.data_sofast_object.blob_index.get_data()[1] - point_indices_mat = self.data_sofast_object.blob_index.get_data_mat()[1] - offset_x = self.data_sofast_object.blob_index._offset_x - offset_y = self.data_sofast_object.blob_index._offset_y - im_x = np.zeros(point_indices_mat.shape[:2]) * np.nan - im_y = np.zeros(point_indices_mat.shape[:2]) * np.nan - im_y[pts_index_xy.y - offset_y, pts_index_xy.x - offset_x] = surf_points.y - im_x[pts_index_xy.y - offset_y, pts_index_xy.x - offset_x] = surf_points.x + mask = self.data_sofast_object.data_calculation_blob_assignment[idx_facet].active_point_mask + im_x = mask.astype(float) * np.nan + im_y = mask.astype(float) * np.nan + im_x[mask] = surf_points.x + im_y[mask] = surf_points.y + # Number of points num_samps = len(surf_points) From 6b5f058344136b6bedb4f83167bbc0bb56488de6 Mon Sep 17 00:00:00 2001 From: Braden Date: Tue, 3 Dec 2024 09:34:51 -0700 Subject: [PATCH 10/19] Updated SofastConfiguration to plot screen points for SofastFixed cases. --- opencsp/app/sofast/lib/SofastConfiguration.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/opencsp/app/sofast/lib/SofastConfiguration.py b/opencsp/app/sofast/lib/SofastConfiguration.py index a3af91b0a..832cc4f18 100644 --- a/opencsp/app/sofast/lib/SofastConfiguration.py +++ b/opencsp/app/sofast/lib/SofastConfiguration.py @@ -177,7 +177,8 @@ def visualize_setup( p_screen_outline = display.interp_func(Vxy(([0, 0.95, 0.95, 0, 0], [0, 0, 0.95, 0.95, 0]))) p_screen_cent = display.interp_func(Vxy((0.5, 0.5))) elif self._is_fixed: - p_screen_outline = Vxyz([np.nan, np.nan, 0]) + locs = self.data_sofast_object.fixed_pattern_dot_locs.xyz_dot_loc + p_screen_outline = Vxyz((locs[..., 0], locs[..., 1], locs[..., 2])) p_screen_cent = self.data_sofast_object.fixed_pattern_dot_locs.xy_indices_to_screen_coordinates( Vxy([0, 0], dtype=int) ) @@ -233,8 +234,12 @@ def visualize_setup( ax.plot([x, x], [y, y], [z, z + lz2], color='black') ax.text(x, y, z + lz1, 'z') - # Add screen outline - ax.plot(*p_screen_outline.data) + if self._is_fixed: + # Add screen points + ax.scatter(*p_screen_outline.data, marker='.', alpha=0.5, color='blue', label='Screen Points') + else: + # Add screen outline + ax.plot(*p_screen_outline.data, color='red', label='Screen Outline') # Add camera position origin ax.scatter(*v_screen_cam_screen.data, color='black') From c864aacbab182381fa069dc460ee59bd53ab8930 Mon Sep 17 00:00:00 2001 From: Braden Date: Tue, 3 Dec 2024 10:07:29 -0700 Subject: [PATCH 11/19] Changed find_blobs() to private _find_blobs() in PSF. Modified process_optic_singlefacet_geometry to be compatible with necessary changes to process_optic_multifacet_geometry. --- opencsp/app/sofast/lib/ProcessSofastFixed.py | 69 +++++++++++++------- 1 file changed, 45 insertions(+), 24 deletions(-) diff --git a/opencsp/app/sofast/lib/ProcessSofastFixed.py b/opencsp/app/sofast/lib/ProcessSofastFixed.py index 7e49efb1e..626bb2e3c 100644 --- a/opencsp/app/sofast/lib/ProcessSofastFixed.py +++ b/opencsp/app/sofast/lib/ProcessSofastFixed.py @@ -61,24 +61,19 @@ def __init__( # Instantiate other data containers self.slope_solvers: list[SlopeSolver] = None - self.blob_index: BlobIndex = None + self.blob_index: list[BlobIndex] = None self.debug_blob_index: DebugBlobIndex = DebugBlobIndex() - self.data_calculation_blob_assignment: list[CalculationBlobAssignment] = [] + self.data_calculation_blob_assignment: list[CalculationBlobAssignment] = None - def find_blobs(self, pts_known: Vxy, xys_known: tuple[tuple[int, int]], loop: LoopXY = None) -> BlobIndex: - """Finds blobs in image + def _find_blobs(self, pt_known: Vxy, xy_known: tuple[int, int], loop: LoopXY = None) -> BlobIndex: + # Finds and assigns indices to blobs in image + # Parameters: + # pt_known, Vxy, xy pixel location of known point in image, units of pixels. + # xy_known, tuple[int, int], length 2 tuple. Integer xy dot indices + # loop, LoopXY | None, only consider points inside this loop. If None, consider all points. + # Returns: + # BlobIndex class with found/assigned blobs - Parameters - ---------- - pts_known : Vxy - Length N, xy pixel location of known point(s) with known xy dot index locations - xys_known : tuple[tuple[int, int]] - Length N integer xy dot indices - loop : LoopXY | None - Only consider points inside this loop. If None, consider all points. - - NOTE: N=number of facets - """ # Find all blobs in image pts_blob = ip.detect_blobs(self.measurement.image, self.blob_detector) @@ -92,7 +87,7 @@ def find_blobs(self, pts_known: Vxy, xys_known: tuple[tuple[int, int]], loop: Lo blob_index.search_thresh = self.params.blob_search_thresh blob_index.search_perp_axis_ratio = self.params.search_perp_axis_ratio blob_index.debug = self.debug_blob_index - blob_index.run(pts_known, xys_known[0], xys_known[1]) + blob_index.run(pt_known, xy_known[0], xy_known[1]) return blob_index @@ -129,7 +124,7 @@ def load_measurement_data(self, measurement: MeasurementSofastFixed) -> None: """ self.measurement = measurement - def _process_optic_singlefacet_geometry(self, blob_index: BlobIndex, mask_raw: np.ndarray) -> dict: + def _process_optic_singlefacet_geometry(self, mask_raw: np.ndarray) -> dict: # Process optic geometry (find mask corners, etc.) ( self.data_geometry_general, @@ -149,7 +144,8 @@ def _process_optic_singlefacet_geometry(self, blob_index: BlobIndex, mask_raw: n ) # Get image points and blob indices - pts_image, pts_index_xy = blob_index.get_data() + idx_facet = 0 # there canonly be one facet here + pts_image, pts_index_xy = self.blob_index[idx_facet].get_data() # Define optic orientation w.r.t. camera rot_optic_cam = self.data_geometry_general.r_optic_cam_refine_1 @@ -169,6 +165,31 @@ def _process_optic_singlefacet_geometry(self, blob_index: BlobIndex, mask_raw: n v_screen_points_screen = self.fixed_pattern_dot_locs.xy_indices_to_screen_coordinates(pts_index_xy) v_screen_points_facet = v_optic_screen_optic + v_screen_points_screen.rotate(rot_screen_optic) + # Check for nans returning from screen point calculation + nan_mask = np.isnan(v_screen_points_screen.data).sum(0).astype(bool) + active_point_mask: np.ndarray = np.logical_not(nan_mask) + + # Remove nans if any present + if np.any(nan_mask): + lt.warn( + f'{nan_mask.sum():d} / {nan_mask.size:d} points are NANs in calculated ' + f'screen points for facet 0. These data points will be removed.' + ) + # Remove nan data points from screen points + pts_image = pts_image[active_point_mask] + pts_index_xy = pts_index_xy[active_point_mask] + v_screen_points_facet = v_screen_points_facet[active_point_mask] + + # Make 2d mask of active points (w.r.t. BlobIndex internal 2d arrays) + x_idx_mat, y_idx_mat = self.blob_index[idx_facet].pts_index_to_mat_index(pts_index_xy) + active_point_mask_mat = np.zeros(self.blob_index[idx_facet].shape_yx_data_mat, dtype=bool) + active_point_mask_mat[y_idx_mat, x_idx_mat] = True + + # Save Sofast Fixed calculation parameters (specific to Sofast Fixed calculations) + self.data_calculation_blob_assignment = [ + CalculationBlobAssignment(pts_image, pts_index_xy, active_point_mask_mat) + ] + # Calculate active pixel pointing u_pixel_pointing_cam = self.camera.vector_from_pixel(pts_image) u_pixel_pointing_facet = u_pixel_pointing_cam.rotate(rot_cam_optic).as_Vxyz() @@ -189,13 +210,13 @@ def _process_optic_singlefacet_geometry(self, blob_index: BlobIndex, mask_raw: n 'surface': self.data_surfaces[0], } - def _process_optic_multifacet_geometry(self, blob_index: list[BlobIndex]) -> list[dict]: + def _process_optic_multifacet_geometry(self) -> list[dict]: kwargs_list = [] self.data_calculation_blob_assignment = [] for idx_facet in range(self.num_facets): # Get image points and blob indices - pts_image, pts_index_xy = blob_index[idx_facet].get_data() + pts_image, pts_index_xy = self.blob_index[idx_facet].get_data() # Define optic orientation w.r.t. camera rot_facet_ensemble = self.data_ensemble_def.r_facet_ensemble[idx_facet] @@ -299,13 +320,13 @@ def process_single_facet_optic( self.data_surfaces = [surface] # Find blobs - self.blob_index = self.find_blobs(pt_known, (xy_known,)) + self.blob_index = [self._find_blobs(pt_known, xy_known)] # Calculate mask mask_raw = self._calculate_mask() # Generate geometry and slope solver inputs - kwargs = self._process_optic_singlefacet_geometry(self.blob_index, mask_raw) + kwargs = self._process_optic_singlefacet_geometry(mask_raw) # Calculate slope slope_solver = SlopeSolver(**kwargs) @@ -383,10 +404,10 @@ def process_multi_facet_optic( for idx_facet, geom in enumerate(self.data_image_processing_facet): loop = geom.loop_facet_image_refine self.debug_blob_index.name = f' - Facet {idx_facet:d}' - self.blob_index.append(self.find_blobs(pts_known[idx_facet], xys_known[idx_facet], loop)) + self.blob_index.append(self._find_blobs(pts_known[idx_facet], xys_known[idx_facet], loop)) # Generate geometry and slope solver inputs - kwargs_list = self._process_optic_multifacet_geometry(self.blob_index) + kwargs_list = self._process_optic_multifacet_geometry() # Calculate slope self.slope_solvers = [] From 4ffbf37f7202286b5c97dca27f7f2d22f96a94d8 Mon Sep 17 00:00:00 2001 From: Braden Date: Tue, 3 Dec 2024 10:10:15 -0700 Subject: [PATCH 12/19] Moved processing single facet geometry data classes out of _process_optic_singlefacet_geometry. --- opencsp/app/sofast/lib/ProcessSofastFixed.py | 46 ++++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/opencsp/app/sofast/lib/ProcessSofastFixed.py b/opencsp/app/sofast/lib/ProcessSofastFixed.py index 626bb2e3c..b36e1e56d 100644 --- a/opencsp/app/sofast/lib/ProcessSofastFixed.py +++ b/opencsp/app/sofast/lib/ProcessSofastFixed.py @@ -124,25 +124,7 @@ def load_measurement_data(self, measurement: MeasurementSofastFixed) -> None: """ self.measurement = measurement - def _process_optic_singlefacet_geometry(self, mask_raw: np.ndarray) -> dict: - # Process optic geometry (find mask corners, etc.) - ( - self.data_geometry_general, - self.data_image_processing_general, - self.data_geometry_facet, # list - self.data_image_processing_facet, # list - self.data_error, - ) = pr.process_singlefacet_geometry( - self.data_facet_def[0], - mask_raw, - self.measurement.v_measure_point_facet, - self.measurement.dist_optic_screen, - self.orientation, - self.camera, - self.params.geometry, - self.params.debug_geometry, - ) - + def _process_optic_singlefacet_geometry(self) -> dict: # Get image points and blob indices idx_facet = 0 # there canonly be one facet here pts_image, pts_index_xy = self.blob_index[idx_facet].get_data() @@ -319,14 +301,32 @@ def process_single_facet_optic( self.data_facet_def = [data_facet_def.copy()] self.data_surfaces = [surface] - # Find blobs - self.blob_index = [self._find_blobs(pt_known, xy_known)] - # Calculate mask mask_raw = self._calculate_mask() + # Process optic geometry (find mask corners, etc.) + ( + self.data_geometry_general, + self.data_image_processing_general, + self.data_geometry_facet, # list + self.data_image_processing_facet, # list + self.data_error, + ) = pr.process_singlefacet_geometry( + self.data_facet_def[0], + mask_raw, + self.measurement.v_measure_point_facet, + self.measurement.dist_optic_screen, + self.orientation, + self.camera, + self.params.geometry, + self.params.debug_geometry, + ) + + # Find blobs + self.blob_index = [self._find_blobs(pt_known, xy_known)] + # Generate geometry and slope solver inputs - kwargs = self._process_optic_singlefacet_geometry(mask_raw) + kwargs = self._process_optic_singlefacet_geometry() # Calculate slope slope_solver = SlopeSolver(**kwargs) From 7b2366259d922d8cc33ab73656be193a2548b1bf Mon Sep 17 00:00:00 2001 From: Braden Date: Tue, 3 Dec 2024 10:17:24 -0700 Subject: [PATCH 13/19] Improved single facet processing code readability in PSF. --- opencsp/app/sofast/lib/ProcessSofastFixed.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opencsp/app/sofast/lib/ProcessSofastFixed.py b/opencsp/app/sofast/lib/ProcessSofastFixed.py index b36e1e56d..5303edf8c 100644 --- a/opencsp/app/sofast/lib/ProcessSofastFixed.py +++ b/opencsp/app/sofast/lib/ProcessSofastFixed.py @@ -132,7 +132,7 @@ def _process_optic_singlefacet_geometry(self) -> dict: # Define optic orientation w.r.t. camera rot_optic_cam = self.data_geometry_general.r_optic_cam_refine_1 v_cam_optic_cam = self.data_geometry_general.v_cam_optic_cam_refine_2 - u_cam_measure_point_facet = self.data_geometry_facet[0].u_cam_measure_point_facet + u_cam_measure_point_facet = self.data_geometry_facet[idx_facet].u_cam_measure_point_facet # Get screen/camera poses rot_cam_optic = rot_optic_cam.inv() @@ -177,7 +177,7 @@ def _process_optic_singlefacet_geometry(self) -> dict: u_pixel_pointing_facet = u_pixel_pointing_cam.rotate(rot_cam_optic).as_Vxyz() # Update debug data - self.params.debug_slope_solver.optic_data = self.data_facet_def[0] + self.params.debug_slope_solver.optic_data = self.data_facet_def[idx_facet] # Construct surface kwargs return { @@ -186,10 +186,10 @@ def _process_optic_singlefacet_geometry(self) -> dict: 'u_measure_pixel_pointing_optic': u_cam_measure_point_facet, 'v_screen_points_facet': v_screen_points_facet, 'v_optic_screen_optic': v_optic_screen_optic, - 'v_align_point_optic': self.data_facet_def[0].v_facet_centroid, - 'dist_optic_screen': self.measurement.dist_optic_screen, + 'v_align_point_optic': self.data_geometry_facet[idx_facet].v_align_point_facet, + 'dist_optic_screen': self.data_geometry_facet[idx_facet].measure_point_screen_distance, 'debug': self.params.debug_slope_solver, - 'surface': self.data_surfaces[0], + 'surface': self.data_surfaces[idx_facet], } def _process_optic_multifacet_geometry(self) -> list[dict]: @@ -312,7 +312,7 @@ def process_single_facet_optic( self.data_image_processing_facet, # list self.data_error, ) = pr.process_singlefacet_geometry( - self.data_facet_def[0], + self.data_facet_def[0], # 0 because there is only one facet mask_raw, self.measurement.v_measure_point_facet, self.measurement.dist_optic_screen, From 847b5cbbb61ffa8f7eae67fe9c12ea9ed1b1a86f Mon Sep 17 00:00:00 2001 From: Braden Date: Tue, 3 Dec 2024 10:22:17 -0700 Subject: [PATCH 14/19] Updated plotting of Sofast Fringe/Fixed setups. --- .../fixed_setup_visualize.png | Bin 67305 -> 66032 bytes .../fringe_setup_visualize.png | Bin 65904 -> 65885 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/opencsp/app/sofast/test/data/input/SofastConfiguration/fixed_setup_visualize.png b/opencsp/app/sofast/test/data/input/SofastConfiguration/fixed_setup_visualize.png index 393d12a4713f8a9fb43798e8b36614e66cad81db..18c939be516609617839a797f892d4d229a5df80 100755 GIT binary patch literal 66032 zcmeFZby!tv^fkID0YOASKw3mV8bP{2L{w0ekPhi?Bm`+hLOGN)h=@pc!=_ZEM5J5l zP#Zx)>dxi)-S2yz``r8Q_t!noK1Ysj_g?FL-#Ob3;^t)M=w@ea%Hm<};%e>aAjBue zC&a^I<>uz(D#6ch|G(bA=jdX|-?gao5I%(1N#(ICf}A%&|HXMPn`e#SAjoYc`A1%< zYiUn?Da}v1WaEUbzfIiUtgpzOU<2FA#F?2m= zAqs@ovQW6UHx9l$IlO{BFXO17Kj05^vHTzZNvU|TgT@HIO@Nc1e{U@HaCaTAO<<(j zG2>R}>CZUz76DQh7Z<7PGVv?iLmocexK6gdHF5&Hq^~?rM0t%|a1TVm~e- zwbf3!znJ2PosW@K$ht4~RnWAZNa}cJuy8R!H5YTbw>BD-oz2?b)nzu{8I>gNYEf`3 z>NxdMa-#S9Yildx3)euFBP5!ID8ur{$H)3ADn#0kACLZ9`}#FSSTnOP zR-O#0c9^WwI&3=L9cMr`vci~LMwn=5x(qxg-P4NZr+hXSl%p9w7aG(jJmjR(H!v_L z@H=ykuKgU7RFbWY&A)DiQn#WRW)UZP5xZr#b5h-j{7ZFFXd!q z$$LHf_VzZdjIURU*}J!IjXPgn!b}@IJGiPGMMn^?N>HgA1;@p7eXJ6*z21SG?2bDo z-LR#0lVGGeOAvaFei2*uFi*_{PUP}%G4qq_moRN@rN*tev{9XWj3nB<1l?siA7YV|b9+-hj`fEV zKAVjtx`iWE_9<;1ksX1*ez}B&HOh_ExpTw$aav0AWR;R)h~rT2?2Mux*I(V3tT&)e z+F%tDg3uD6WvJ>)79y;ytkkJ>xw`l@IY?dR0H42c=QZ|7dT$~K?zU2*6ZX6{goMUv zZ_*PF@z|J%sC8XZ$Qv{n`k=YrC42Jxa~#L~OluHhk?m4%8hSW29zKM~QJ?7%oo@f< z+CyyHd0DZwxcK-G*aox7I(KycwiXhNOyQW$i1jX*&3>uXsj#|`!1Fk8Yre}2HXupX zUq-}XBK(q&1(9=(?T?T0Zf?S7NNEH5WKS6~{7=Nw{ZF1I4ig|ND=Rhg(UJnLi+4Zj z*HYl%;MBnBE_Ge%<%_yS9vrz-LHwE}ymz$JjF5vmQoK~>YZRko!eO`33C4c9DNQJ) zhwM=L;Ab4fLwf|}dbIn|zB9y$*OsY?p1wWvPZEb zL_{;HckVED8Z|$YCJcyE&7FW7tugOTaF#ti60$5G9W!|7so!F4ZLRrcf zE1|xzF$)bfb?4CVu;f}boSd*>*y^6tR%7y$q7NVD;7IMQmG?=k?d{LUNY>P6c+C;3 z6>7O^6;w`Eu20q{;NQGI%{*Nmz9_g@=6R@T7! zwX$vrUv+%>8p1M!BAD6f_mK8H+;_)0(TM=rlYPA6#$7s#uSw4#OWRG>X^s?ERZ%0E z8u??4k^V*I@79t8%}QLC)WQfIZwu2!jWqd5F7~EzulcVQRtK8U`X2utCY$HcDM7}o z?Av~Rj@#Q*(mSzj)0FIY0|u<9qJxxkTBAg#!u?MVrvoc{EXrr06k+a(PO`D}SXJtNA0DoM zk}u&rhYyKp3yN8l%lvr#y#<$Atbg3+V2Bj`rwj2&zSB)O%=|zq^)St`G&qw$oBn^qGZu+naiiyz<=Bayn?W_);N3cWM zMy;l$GiBX;ipt7ou3x`?|G|Ujf@Yl+D`(OL&CXOgPDg+Ez=al&7^z=GF0QW5u#Pzu z72kQgf|i<3kNMGv^gGlLaHPxW=+ORj zsb#Ul$*ilZYa6Z#6Ix=GmS!9p8X`J(?xu=Lcw0_UQSbT^Df0UDYuye~NO8=_`=-nC zUN~HMisa8iA8~ao59A1X?^x}?A8jx7bwOG#^*wMQWe_8mbG_age&NcP?{WUaJOl|k zbI!$E&G2Uwvusn(Qh8Y!eyNrE{rlwXcas93K(fHfL2{ya_Gg7-0;--`-{d7q4mBkw zC#Sr_h>kgtYFCd^cOi?f=v6oE&yn0s6}w>MyF~zbno;#faA@cp96R(}qMvZIGpIgN zVuH8PxM%45XC-gao8NWuYb#WMk|&=jUeXHU0)pY`o*T0*hQvNeSD)kBTE+vVYMg2t zA*Z1Dwz9t-KT$erH>oQsPoDl9pGAIOFwy9lIFkAPJrROtr0@+#on2l4H zY5kyCfCY480syA4JqH$aZM0m_XV{^ZiY6i=Vx-cRrZa|lb0*XwayOXC@j>B-4=zrw zON)zDwf=At#iCtlH!&e3$eZ$D;y^6VPh55)S>w&AMth6rC)20L%mIsHVn}#IMC;MP zcB$VBNcreX z#V|57vncrbN-g$f@UPW-|F%h$^=I-w+0G~hnArNQ+V9ZAZnTUbj{P1c#j$B+XM$eT zp&br3IVI)b;t>HsU?t&mx0*?D5{T8RU>8 zX&;Y0ve2+v$i@OsK9So^HC)0YBx{EyU`+R)c}|Gt2Z$C{2?@H|+FG4z2S(+Ww3lmU z^jIk(uz=xA06L>L2G<%B9!`W_sbyb!$L{)gmR5nF^PEz{?wD41>Ygv@aqe=imIxD zl@%u-t{1jNwP#98OKVO~4oe|;&~tyZ)kQ>1EN^INSWx*JB7bk%UpAUSJP=?J`e&Ti zuC)TBsyli{9O(2s{jNMa5k?#hONZ7#f{6eeJh5Dj&$n|m_^w@x@L4PE8e3cL|Ngzb z(6I3hJzPWHea@Q9OcsZqpI%M8xnZjtA3a;MEBPEy(o4J+UcIW1la&iUe>x#GdFkFS z=4%$qu6j;ALy?fUqI5A4xK6)&{mHP{#-5IHYyt-MK ze%R-K(q`b=b3-3)lOtZWc4S1y0noetg9ool)Vr?>NTIyN6UwA3SNscr%o8OhZ444s z09KvQ^OHAZBOayPHu>yueWD|hMlb%Sa~0{!f~7eCL_Yy@cA(ditKkd>Y~kcrVzUzs zzaiD`H9o$@qWTR9^iL25RSbGh^gDDCwp;ffdR0$CbJIuHtc z`H@y(HJSMLh93H)@uQ}V~__P0gA9kyYxy`21bYr3xBLcuW zf|6tI_pnh{Ffk?eho0kX?NWLhgk-7pAiI8zQx<&V(*%B_=xYz(&3sK3LecD$|EV9( z<1&26X*Iup=)pVRr5l=tt&No8NqVedml;m?{7=ImJAck`MOqZkO9ulIG3!g0X3B^J z#F}+o0Ds^PTA&?NjpjZ z6DgE5#Kw|;T5x&$_U#Nn44QQRtqz)20a9QAXa$qc8=U=6P(+b_Iv2?=VDp_5-n#tT zd*bO*+NZug#~XW&&Bvj(#f{W-QD@}k<)J!I0M%VCIWMaXRp|do;j#wJ%AnN22cSuW zY%azUNL3d7WBh0EE^hc{F=5e7+X5Kt z`F|+Z3nKmkBjY(Bd9bMfyxL|fQP}U$eCz>21FL`lxuBpR8hQOABb;kOj#E+%KzT6U z2ZZPUKPV!ZE2FeG6$)LPoCJQlh@U9 zAptidsb}XpB1dXnIb=?cwzalVoRZ=Dix{o1z)Vmu=LMpK^ISVIgOnFJMFf6sZf?!u z8(YALfw^}Q6$*w}IXLoqXuBWeD4YELcL-GiLP;;p?Hqy{g6D)Uzc0<-fW;*YC@3s+ zADQa!Z^?c87D^Yeeh1JRCjR_h1r6u5mKkiztB3iI^c@_E+B_1>Lr(dPno{vvdeS6^ zO)^qb8Ps^FU5lIkd}!N+ob3u!7z6LB{rU5W0|W`#yoj){6EQLI1Tc~`F|ybHo~@Oj<6 zz0_6eZ-gUK00Cn6fLXy?TAt(8zI(@RayV9L3;(+^m=|Jy?%cV;siiOR+~T1o482=d zVx%yY?%XJUfp(1u;hu9u?(I zo5Nc$3px2Gb`L5!UV=HQH~o{CND_m^IzjxH!Qn&#;2fi5274)hV8ciEkcm8 zva(?NUFwcMf4t!u%_eG`XT-=LfS28(0T(Fd49q|l@es@VkJD21UUM8ho(*G`h|2%I z;)VnO6<(SG#K07!--18TJzyp5wO%=l1t@e`RFtOPbF-7)vEezaHa+BMbl+JRQr)|+ zvayLBrKP8nMbF2krcNxL_>vlWdrKfQO@|w{o@*c~$a5lAS5*#{xVX9XIs|@U$8BwG zCB5l!0k*2Bsd;c_;0bf^Vf(gEAsJLrB=GLdTR%ay}Y)YW4d)pvjWXar4!5%gUv*R=$#uT`CR{U)rffWZ(XPd&rIli6`b zRX>B<&Eu|}2z^o0ADc%&r6EIiz*{o!bKcj{34gl1D6YwwYW^4~sVP)*dl_a53f#=c zUyqk$Pg`f(!nRN{0Af6vHK#xfWRUS4nf3jpAS@;}lDh}T`w(p!G$MvrDA8sB64Ew` z2UlW~lENWXBM4*+LIg8i^g1bt2zCdU)5-CnXAN_|U6yTf>6+S~z0H_^{-HuC3m|*@ zt6X{%G&Et5)1R9^Cgh$0nJ#4Mz~6IyY)I9rdZM_z*6YrDY0$FLnguz;{r(8^>DL6P z%N|n!<0~%l1J$o^*S?Pq&~>;$y@$!s{+1f?C=^Z#SjDSo*|8g|Aol+=n1Kb+Z|*rE z6Z!7v-rh4#pG{TCmHOlXa1M~rLXHVobYa+qvd(PZskgAW$a>?3rjul7aIo=Qd&E8{ zVy_Ytmr5LOC5WV>zz!k?wp*j%SUfstzzV-VmEa9rfasJL9w4s5&THJK)d)%n*b{9=dA+Iphi0fP)rR*w6wH-6y+9jW2qGmT~Q2OWH4@H)D&u_sTtq4 z3k9*oqTB?;twKYyO5KoSZU})i*QvVhuB2b6lna3rM0nm~HZH4?ttlZor%>GA$Z{ECN&-GvDy}Vy9H}OVs-knV~sW=Q0WVFy+|lev{A}-<5lM% zLr_aRmjWFEl_CTH?x42_WMdx)R1n;!Y0sM*ft8LxOi?`_rCmRN{xsgl&W?aATV*#I z2-s7j#L1)G=;Rj-s+iOOMMWiKB6DLe?zfV(0>%ghCFRyvp}x$L5^|eLI^bvidL6j9 zJ=qKhnn%AT3F5(lKuI3^y*I&7v`rSi#EU)s#a2|iNTbXw62d@LvEL8CE z0zn%U^{xmCUVucfKiqtRwg8~`iGQsG9TWI@3J@9$&GM@Wvp|-KUdS*V*Wy*felb6O z{CHyeWLI?K3wQBP1x3Z$fB=M#jV-tycu|eC&u#_XJV2@mU>jepD|J!6dF|S@i8Ax< z;H86aJkT+*FPa68$?rL&sqK6=BoO6}D2uzr^fVaKnd`_Vh|v?g)f1RYq-Xd91Y#p2 zBj*8Xx2;b#)(_S~f2IF}zUr;Dsm7H0txkHzsZ)SywZMDD*0eP=Fg+Qv86;$6i*Gfq ziMlP{cK{`&uoKY5Lb~_A*Z8hqe;ud7rtji%eGmFwlK)iB)+}BZ0CiC%#a6=oUn)`S zZ*1r#KX~w9;>AVon%}F#k_KliVD-r6%`Gim5r!WrZ{B>lmm!n(kSksv;8(TNtilGA zFRRLoA)5tM>OdF6jP{-8?Ict#M;SXuVz+p_YR5T7iGTj8?*barM zCnAzSLQ48~F;|P5(iBK=vM@>EWQXdEC(WWDs3*pdIfy{{$1qGDhI$(;eM`$Jp6h-)WqBSGYBtf3aBtM=RXoDeHeDUP1*+U zYPAy1&dfvr@=>HOWl%U&XcEc!0Szw2NRU3bt< zK$-efwiGlHsZgpz+VXTy5N>5T4ZRG^)v>a*g{7r7D`8VmCYjQzi)XH7naetOnx4H) zMG<_8wsXThoPR`h3%tBVpld{NDP1DEx2m@Mboj)bF+!oKfEYdu%Zz>mC%D+YHSiee8hG=SPiUA1gjAkSWfQ#EFK?Sn&a}K3T)+EO2EoD45wzdxp z40xrW1B@Wh!~iB}Wn-h@?tbGD*F`1P2j`1x%qE^bTf2F=O#qG@=5UEOggP>WCj@`C z4Q?ackgUs@lb83Vv2mv2>rlxpPa1(P=l2B#iqKQHv9Y;tU=RgV5Fa03u22ie1&g@& zrN6C`?4lwvkT8`D3>c%CWyw-{&OlQ=N*S+G_Z+-J6b2UD590*p`s)ANo>|GiU#8@f z&-{;du$$QF96P$q>4UTJ(XQpV~OO9oTBP zmVB2TP9EF=+$PJlYkyRH%LhqA^f$ug~ZroU=A(1|Zd9(Lq`TzjanF`d5Qj>+=(ZXV02g z65!xnex-u%Y2)Q329zHc56{OtU+u~(mCWJQtl`xVd&2WfO3<654V8cTR2*2Vaiwk+ zaC4rJvmqGsg52hatb~lwjZUi9oNVED(1_w6NH;HrG=^kq6-di8=Q-uI{1hVtfq=|m z0@|Viq(LCvz@4GJRJy3n{I_TQ6(KWj*km4f!5y`Jc?_};2@PMsyqG-sub70}+`IcJ z1hIMLrEnmWhEc;6Q_DqBzBU2l$3Jpbw=_vun3smG-)^%gCr&6zN}|mQz6bo=$NRHk zm3Bj?FaqxY8``*2CzkdC?uct>+s!$;lCQbrPW3!u`U%!BLbi9#&+1Rb$VaezaCMST~Zu`SJaG za+&%k*Vz8h!8c+Eq~bGY&*3cFlVlFr*vG#b9~nU}3Nj!ls35(`f7S_zmU_GGVb1Z&oN*PU)JkM?~&y^|fg+|#d_$TIeP zUX1GE#a3ehs5b}hfuW*{P{clUce`4pP}9y~1nmS_G(nyAF{{j(cX(vXY# zSKQ!L14$NCtxTY9!_LsE1oC1mlA?DtnKS+ilcVF3HO|P7{q@?I1HuS}|2hx-P3D^* zxuXt~z`#H$5mA0V=_tuKVJKsI9qTx9w{J)Ei$tk^bD~L?Q1)9_=8adqz`*cwX2#eg z#qafPYwK&!T}LzNo6Yx)X|j4q8e=oB{H^R*tS97KKQe7f;iKEBmAAB~38zJ(Xb63a z^=0rhVRJxZ1+C!V;DA=zyMj<_dQa(1^{dZMAR?iyK;U$ZGNqb|nu;p3s;a7I*Mq0q z`w`;(dgJ5dr3YRoM^7Q{A&bOvviXux1Sl21s~7Z{D(QV{MrP@FJ+1OyB(&i&<%4vG zGGXDjuZezWo?lOIwC^dt&xyZiF? zpEOkVVWT4q@vd6ch}_a1d-t1-O~8lxaMwc$I4rbP&}D|Qg{q?vDOrtajfXYd5i(74 zxEowN-BqgBXP2(-2@VWGupN;#2^2lza<7T?=8|t4yzvL=i==OwG6cDiWp~Ub<(*bR z{Ug?P?N!o0S56+4Jm#Uk!pTVlT03+PaAroPit6gk~BNS0AF-pXtl?eK_ zcznQ1hUx+cDU;MlS~oSe)0vgTY!Ca-h_l56XhM*PE8wI34PgUf6B5|jXtvJBef}vL z@@_o4p7?rN1P0VJ1`y>zp8-!~q0;4{VK#|C8OC7s64Q>eDB+Bx=Ka^r=p=jj-0(-y zMduFOPt(GZuucP3y78-^`aSP3-TJP_G7&ENg1Mevd)Rh*iVxga0cJk+5d2wWJoqF)`qe_H-PD=;PL>iYXgqF2eiB3(a$NBkI}ypoW>ErT^{da5 zdKR^A)Ad%|b2TUPoZXzKH0Ux|$}QaW0HutRiwl~v?-hOOTUuJQ7Od(h>i@mNH&fK2 zN2{lM)?Or~Ymv?SJh~q(nmEgabDyWU1~6qjTwGiX6E%=m6~=|Zvbev$&u94%H{CsJ z_acozcNru{jX4gPUv=@~p2|*x8jwI;*San>l>XlQ?9a-{8vInk5cP}u<0{o=)og=6Dem=bdzNuwB?wch;`k0RpD zzo+4?M*bZ^o2fFyL))rqNTd*qNvy9_$bBwcxBzsIR`yu~z4k_Up5vJ*CmbJdyMiIE zaOo4H$PQcpD1}<6l))LVdb#@#2>k-dcg4K0ENm1JPBKqRXKlB%PaYX|4wdRvRnK=b zZC$3idiAP`x;kNZ85HZlkp4kgR%!dJ?Jlne7*A{=H`RdU$~o$m1pC4LTisRG|24HR zA@xwi;Re!u>7U@(;qZSg`0xQ0S;oe6*TyPIAck}csU_0LK%Ot02-hmmB){O>e{7y; z5DM>*7h7Cfl5DrJsT}h-T&}7X@vqO{t3d3C+XU1qtIKtG#K4zUkUg|fw(MQd@20m+ zp=1f+?2GIF5~sp3r881y%Ji*P0j$My9K16XE|QgRMcwGPe$&d8kFL#pDJ&{F(_IF} zCk4TI=uo&{tAF&r5yDz|B?$?M^TvcYVFCZ?vg(|I_SO^9%si*15&O#Oaqy*r+mXku zV|IL;03TnB2vZblw(s-u@<2Tt-hF(He5$CZD78&~iiidqoS&0H>y`IFm{2w~HBB6Q zci>$pZ`2Z>lIr*JD*yg|Fdb|K#5A<%h%i#Jvdpm34&1!BawRf=?1*j4_p~u^n)}V(7E7H@eL0<448Z5v5QY75i}I|hDy8I1wGDw4`Uiuk-Yyy{@A(jt^c+Pbi>0!dA=c z$-zod5FcpPTJfq+e_Pldf+iwy7kr*>R00HXlPrOwP;2}uw~%a;Y+Zm~YY5jX6)WOB;g)IRL(qo-k=N>zg_<~l;Smmh z%$ zffIl!Ekx|0&#>U>Q+Eq8&v}x^Ee4GBlJlNFrZym=fMSTb{0vvLSJ3WF6xw{w6QHEM zby~naz>N(iC@~+efIHVI{Gm4ft}-=GG+d}iu03?e3O}3Z$;w{*Ck$r|4jc(z|l#ya2``)OG+418vv} zU0$#Ufb^`;1?!KQ(yAvt`_&s!B<@`)wiyqY#FF^g$npM7`$?FWFG<0UNV2}Z7I#-7QgGMpHSzyMNRbXwsKpJW8(OdT4GsA! z?#=7T*XG#M#Z>FI9{5nGSYofbt`RUJmx~JhPfs9B*XzcP#k;?2>Q{P?CMLq(5X|Ug zzptsGrQy>L=&?|=vEd>;6I9YHNnv($gJfiqx@Ff&yy^I0&U$pJsHCJs(?>E&d64U* zywPmaHp3bt`ZrR+?_6b<(y8}CiS+`YEAk5$W_PQscXy~)Q$<&iG9GR=8*Dc8ZXc9% zDk~`&&$K+h&lS%%`QG<);L0lW&RKhh! z#0K-}!FfqnsWf{>%Tk@-uV%nYz|n0(aLes)kg&w74t)QPx*!yDHHf#2dB@*f<={ZO zR};0a{Wg^4{!~h;{PS3{c;}JgMaueeg?V*Gog`=@-_ORos%RyX))wxbvVT z16GjN(Mjr`0=J1Ploh6RUbP)E0HxBM&`#ajYd&Q}M=78i2-gYy&bfcMhxHl*d>)b- zYkyh99=kkk)z;JFrfRR+OtckADfK^ncDX+dE4!wbyS4PHxZWzmeFDH#h2(deN>Bn= zNsI~SeZJ-PIx_%Qf+lD%idyTwYep>BLtr2Xbe`J4&phV40bSBAuy2n0I)F20q}ji@ ztqN_3Lwjn|trvQaGoVu=0nnM70|&TT*VfZP+~vr*kKC?q%D0YPZqS`WV`s?5=cCX~ zqX?XxC#@FRT^A!e3QY%fcf}Vez3;NejUO@`mLofEFE97+Ze55_dNv>(y8IMw9tm)s z@63At{*%c#DCZ?Udk*@~4i*@jJirHuT3kY!fw$_XH*<$%HV%=D=`xNG@m zp-w|2%&0nV3a>W6FD${~Q$>X^KnpM|LDMh?+?i06?03aIhUgYI4V00-XCC8Rc=Ls8 z7MN2A2E>Zm*w;WXQ(Vp$rVG5ld?wKtiz*KdRoqy2B(0Ithufi754V31Br|xu&CMnL zAuUs@Trl)Usd=JznH$Q01^kl)&Zh#*ep7 zW9`AQ-l6i%GsNi(oVOJ4R9{rixd0Z~O}FVNdQoVc1U+VUmkmc&Rc-VI6Egta$*xqX9{3>N3G8Pe!nJlxK^%m z=S~~6zvsXC8dwtyLo?)g(PZYjkm%pzHvYk=sKZnqd>p8mVPgRg`%KWlbKaJkQau!R zr@h8E!z@<=o#;WFmR-RGf9-p1Iltokmm95`4YRl#*GO38#qfw*412%j-YK;i`arfP z4&n`XE?JHYfPb!!SIcZ`Br0~NqQ;LSr)Vl&vYk!-<#mM!su~k=nP0bKU6+f4jNajlF>c(0% zmdOed^JELA$OG1ElMm`*@CPoiAwJ^J+7t%k(eSJctdHxy542Cf8G^Rr^wS*y_#*+3 z&l3qUx%p;*jjg>mDpJm|9^$Vq7nhnOep|RVqvk8GkBXV|Vi~KqC*o@EERXDoFWz~R zD)p2Cu%1h;{wE2C(IuUNA&+aRS)%QT2ETDOs9|dhBVDs%cwNr_<4d06i+4tQSO^h~ zljYVBkFjGX^5!o4BQ33}QU1iu!0aKLdi{lI8vIAvE5x>E_*)KKHPD6Dj_Y0s9IC6T z`ms>uG1ZwNqzI7`%+w_}?iY5WYuQ~%2_HtBbP{eto&B}F{lLg5 z2Ar`0CbX?|3uL0XvXkE%9~AVZC-_A_PH0osh+XCa`a+1B79l@~ zx8wi9nk&)K(ILW-RcQMedW~SIy><64sYBy$tp+THgs-prRJU5UP%WNyE00$0aD;sd z)wA(Rb$I@1M*_gI1O=zoY_t%|AwR&hL6vwUp8xS9)r(7;{|lRgCD{IlJSf{B#lx%> zBvIV%vKp}HGU)$qNYQ|L6(Q!UZ=pUPlM&SWgNGsl#v~z!$<`+{JYH! zNcJ-yDrk;;)eZ6=aS=f`cih3`iT_>Ptx8?L-W~Cx!a{;J0hE&AKX|WIFu5ze6Y5@c zMO27bF;Z~Z6jJ@ z14igHNKH+hT~g9txL*F>d{hYT%C79$HC~N|@uX^sx*R{%ULextFi1tjQg)kGPqS56^Ty8 zG$%f{cC?$SGs}>BsIARWQ8_<!GEQCQA<=zzKk7`y#8q zw8Z|;Y0rSjfE~^Qc8yQTT-~9!3p#voO0YiPEhrFhEYb9@n0ZiOo(W#28#iu%THgjf z60{BACgJ>}W9mYa3*JJx9ux}z(`UiC2*ff>N8vDg`lv0rFNdSMW#5)HP-wNP`edtO z%{BF}uP1mLvpF4SZv38Hc$O5^41oB1@t*0QdeKfI13(y#J%HDpZhI@M7MKu2Z9ogP zsjY*Iw~nq7w>RzIaGbQYvXX1N$h3Z7LDn>f`QDpXB`f8jYjo z_S`LFmeM*IenR(kyXuzWuS0LCoZ{CEq#>GFMc5jZU zKADL#*w6k1G>|+(3A6O(bod#m=X@kQ z$AUEE%eu4ZRe-A)(twN2baa{P`puhq$1d}8b0D*()$M!d&jjtk@bH&u z+m!jI=^bbQ1qU|yHcu4Q88r-?CBvSw#a7L9gg3hPfqbYSB_qQGqQmv%ulc_ZvIzz$ z-EJj~bbajT>^w_Q9Ho4vH%&5ZVnRPv+DB{u8CDCkYeTUse8PnsY#o?=5gco z#pjAqJ2GN+U!1K3b1Mm#l{k{5Wis@%v|geS$hh`cLn9En6{yY;VAiZ3r93Y}62?!H zx|_RoAP%jBvm_)TS~kAx(oLY==)HXvpJR(9zI*xdWwe(AUNA77qb9f#mgcn;1R=tA;LFn{&x6%N!kEEcO~yLmxcQBF>-fbY_-mRr+z z;tX>0=`Teby}2M58!%?@D-M?R3Hm#ry{Z0wmL2h`Q9CF%o_c*w*^ct4GU?^H0iK5d z)Tlkz9-+{zKXv`W#fw*U*kL!oi4-DJ2P9E2V9Mo&=kIr2(5%ch??YwtnG{Eq!zH z@4Md>h+CM?k0$im01nQGEQ*oA*co_DKgJqogOS%+otzP_Z}|aQIKfABA?!S}@`DE# z&@oY%D61ajA5NcQ|BCdTWzcqX1C*)BePhZzcW{NAnR)ud?i4sPCmYvf?x^eC!^6Y7 zKuyg~rBubA(r#HfW+ws-1&BrH|MjlOOcl-a;r2hAzr#iW&5t%?0Txg#z>{%t;txQ= zCLL*cH+*6_1r|7bkn+jKwTkp3z$RODNC&JDEZcPGL@t<|1k5@~8xA+>F;O`}&{z`m zSksaE{r#a%gO?!c^PhmJinOL^8jJL%aG!4IPh^cgNRw%bPHuEBhWVYdA-EE0YVRXP z9{Y)_GjTgseE)UPcO?vo(cytr4ua7*r+oIyMlmHooIy4X#Lh5J77j04<1F8<&KJdJ zN3zUWjF>*bIy6qP3`jx^62t!L<~IZGftlut|Il`v0bZITsGcJYPlce_g_@ZsT)KHd zJj{H!jgFLJPR*|;-*HE9`i!15j>@+IV*rH;fM=FxQI7>oFFsexYXjF$-S@4x{1L+b zZIfNSP3*HUDT12IgIZbG5@DF(0+cULqS+a}(OOouqfy-D6$;*6=wsI5LK4D>R}BF} zYTho0c%9(-L&p*Brb%2xU=ZaDn)P6lJL9ztSH4XYQ3WpYdry6^U+Pnc~U7xFxx-f3krfy4vVCrc%$MkdUm?Ym=2>4>yb6M8ZCLuB^6}XC4tZ2 z1x%^9*Yp935HM~*cnlkKM!i%5tsmZ+EUQ#sH?Pa>CDUv@UGys-`U6*t)6Msz+EpGFJ!!f+L3v;F5f&@D{A^6b> z)6btjPxB>YL=WeVs%mQVm5Q#5G$qx+$)X_^-Fukfsq$)Ua*st;ysoKfwv&*Xg>UB4 zO<)=kDGWx-b=ldtFxsxrYLHp`^V}(r>h~&E*0ZYw&=Ayuvl_Ad;lH({QxRBFGWg=Fr&z^uZGEA911oiw=9B1M(!5%}~z- z?Z<@C`NEpH7u?X`bb_%Iv#q&~{?*_23x-fZK>(6jBBfk_1x-nZsk67gBbD{;KMOC5 z8@uZ3pcQjpODh!Gw99T1O3KO-nm&Dxk0x=K9rj6w07^i|H4EAyVPuRH?exr&qt|g> z#5{;s&4p040vrZvRftX%`aT+(E4;k--luiNtlaI!L`!(Mg{4bu(u=+*b<3x^bSbJN zhP8H{?Akx7@YscDe{AK|>~>SZ9q-1O(CSk@O>OOYnEq5?yyGK3q7i%OL+#|Vnzt!7 z%LA1i>4`su(YHGd`*V?~vqV85@P2A?muV@wUGNX4YN$XP`tY+bDdozWxT09jr$P zbiyY+Ha*=7H!`KOt|a2QF6wL@Ea3zqN58s}_I9TvvC?^F&B@2*ASOXykG#p0SzQkd zIDpFlFM{xj0jENCf7)jU=@rx6+<@g{g$%C)1vZy)qBC7at2cXOq(KUk`uz6Wc+9 zQ*-FRohp5CL(I~i*yZF_;*iZv3yXL6dN zJ1c5IsmJI1OOdfIpDjUOhA!g5?;umAo>kbiB2%9&hW=Wq9%y)hBlA8q1&_EOP!h{> ze9r!F+s@6KI93}YAcjPMA)bYw|2#NJDZN*J`FYhpJb9bk{pRUv*EuGfv;f6cbvQUj;-1y=6SBD!T0(#E>4HW-$Z;q=O&g4SYhj^yaLe|Cn;- zSY<}T;W!w4Wgqpb$u^r$Wj0{a%kZFEoh!cXAN;u}9^+@}z;Z!z$^j+{C>2ZtXr713 zSTH;!ez{+fnv*x-)e+p`6kO}Q9p|ZR@ z4)}FKesMIgxcyKV8q6qsy8Y2>DGi~zD429TmtX$>(#tyC<0{87#&QVyh=%lHgCF$zEgN*r=C}kI0&RqcUG431 z1w-C9o@aBw=pmVT>Kf(a{h~{xZO|LseHQLj_vnu0*JQH}*S^~&CW^?(Z~mo^M^n@R zyrBF-a)cL*-w+^SS{`6t02WKBRO`nrc{28$QZV3zVNw3?wRXZd_KO!U<a0#L@Fu zZ~&W)Ran17)8iX! z&l>#OaHsmi2UX6j?BUf{|NIjS-H0a^7OdB<<>w`in^o}mfBV&?s-_kl+dmW4PLW;} z{7KY$dPZ&v=j*a4o)D#_LJp2Y!$9czct?_Sz3U#oEZ>aYZxZvr4~7X**aHr#!gr0I z|JHve{>gP{Pf`Q7yYj>O1rA#sm=l?wH`Bu7N*qzQ9X#g%3Kf(=334-cYb5{`#elcviil9`4WT7AA^Qn9r>y%`1{Gk z@&0m5jBzZzfRHmgGBbDcjOT<&NcmIVCQd|;f}FhH;T{GWJ5&zs zO|^c<5oW2tjpp&jdX&EXQcNC!u^w2P!h)lqii2?m0=pfM;H7VAvyngU7-5>23_(VK z3P5oO9=~EzK3d{9Eps_EieF z%&T<%DAa?2R-=6b#Xr4HLj)5V;M%%T>9X{TMi-nCU?btXIQ?6z>s310cTYl|?(C+f zDS0gT{Vpqtf-w^KwMPE;T<60t=X%mIa6(O361!n45!{QxphcrkAR*(M2Q4ORhnSzp zz}{py;p&ICP520T5ouSA^YurXf;y#`z>{Nx@{#S$HcBsUWqtvH{w($^fHU^?g^E1z zLy&HvM+t?;F5_hqmH`9ErkqDKDW}8mKooSo6{ZLR(T9)#sA*I~>P*q2#M6zj5{6ec zBqgZVf$mp8TZE}n_dBv$juArsZbGgMVQ^J2x|9iI3Z5%+!88+)6g2xMEbiPe%Bj|) zd0Gk$JCq0R3{~nD29nQ8T7V@~j7T9~b>WdHna>(;z*28=UBhBkrw5Jn(AnOmE5yx4 zii$zTSHJ$J`jEfDL}C(5F04OBd=4#>otT^aG}-Y1gn&*5wl^|HiSL8mTSSZ<$gc?8 zU1}MyECLh;z5~pre__n0cdmHuE2S&e!Tm7!91{2`G9p4ApvbMj!IjR%XK2$`H3Q2_ za_}}3^!hAnrVQ(eZw8~k8k`t7bdWYG69dDPW)e9|y;ea|ybuK(XxV=Hq=F>A9{f;H z5Hj^`x8vgtx~SMo>f{C?_?gTD<3deq1jc4&ImXE|l9JfMhQOepSE;El!MqA?x~$lO zJS>g#B56^tNu@4~v(eNlWpZwvbIva9JCNI5V;NaW6@08h=?FEM> zRi!%ORomUt8Gb!scd^ulCq7AuiG*;cmAbrZ!x}1@NnFNNH~eGjxe-74O!xSWkIm-9 zEHd*crx#K)GGahjL5EwQ1C?DO8G?yuA|#f}?kd$SL>0%xK|q#S$Zxmn{J^E+ihf`DU*f);q5+hxVjidC(>q3c3^$&o|sN%lQIR+rA} zU63uIYs3}l8W|pUx7T9VW0OG}~LLwwHapeMS|8Ff1>CrpG z!=2TA`-^>wy1I0LC}2(s+6?ei9PWSeFG+co=q+CL76tnn(*jH_gG)yWk`&CQod?8% zK3oI!iQS*dmTrLVo_2e(aqe@w z4|o6nZ(QH&`m75hAi9LpcfFB6)(^^*4-se}HF>+e-)dCA$&-FQecDu}zn7hck%AW! zT1rk@J7CR#^M40vn3$N{c&Rzg^t|AsqU3na+YiO|^mkvXhAdc7&0242-rK&q{t8o% zjQbl|7WCvW8&W7EVYg|nX%$QIL77L4$I#>obL@rmmO>#8Z_9#RAixR32o{8SXc-Vk z#n%)oXp=UrH>}_cdq`1JI1LCADhR+0a1Si-q52UzoFvi=fCnc6L)P6$wL)HAUP$)Qf`qlTwYB)aNic-2Ck8Q)B9(5-B;EkA7X?%PFf9=s0WnSAaZsP`mSz4U%!92xKQ8iy zo5)2`9xx7FV(nO%;x?~QXI{~?j9kkR=AtBk%qh6oL^p2KH*iJEh9UKI8XZf(r&B$>3%LOP z(cy+h1I=+l3mt%LLR^*CN^_6lbSp+m+O}=m{^dlWOR~b@4Srqyu!ko!lNb$U*hNIn zL%`tl`JwYZE2_Yto4mye^YL`Twx*_N{{4Lr)0GT+LQ?>SbP`wt zH5Qs~a8X0>L^c2&jesN&g%zf9Mx-1zQ>(E!n6J<1AOiR8ml6lk+FVur`d3Z0>%lgNcwC4^@0(;#1^tOd$|%9mZ+|#huξkYYvYY8C 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 RGVq^0>ig9acb;WMe+au literal 67305 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Ñ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 Q4E)-sa!5Hv@x`csZ~&1K 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 %wG-Xo~V8q0*pr(1u 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%0Ao?wTg#o`aJV&G`^1zYOpM z0@4Of_rKQ)=j!TqWi1n-L=B9)rks0Q``xt%#dXwjv64-12 zQS&rHhP=e|AKBy&UvpGh5nsRWGw4N zwY;kCt68>l<_b0iEO!{wt}Sx|{9y5yh=ZsDYTno(wH!{JtN$`n;H)Tk8h3EK`Gaeu z2+;>cdEq#wqo4*b#K+H%d%$FzCq=E%Ggv03k|Igy^hcfqcT3z=nT

_i zz9CYpyVUQPtdEGzEmY2+fGqY{z`_eh4{_QJ4UQGz#vo)Vr=9BQ*^$RPG4P`(^RAjb zSKkG%z6+A&l6Ku{n1jXkO3Q4Hq+~?wPv9K~pcFlLvP%n}QSw}qB+%)8RGu_|C=U5br$fa1S+;eyGgW64HH+c&BV+hPjZ zdH{!zUI;XcUm0B`*QL?Y!M$o#6=a$dAo238PP}xHo&Rw38y3bSkNb6ajGG|Vyr-TG zzn;L4A=@F3uH1Q9$raEcd1_Ty9Il=Ij=8DEqHwfj&iv9aToWt!}!>g4thlv&$%-86h@l z)-7^1eN>{}4h!@DTM@X@i>gbSYYHirxMn=Iz7hj~egHJLrDWlO^6>D8m>n*!SR4** zqX?dOn3Z*82EDu|X7_YFLS%{wlA)cEhcPHud|D#hb;e-@uc?bw5OT1BP#VMP*9}zE zXxZ+9KSK@v7>Em+vpTGDeV*u%`FriRL*M|e^I0ipO>h z6c*%RZ;5vKAzBqFpW5dBONQEGf$?6tj(5Y?`YHcIgsc_j1W3f@)6&Rt^{(aO8mFUNIMXraU1Oil}7`Ow^=&Y_E{J(b2(Z%hF-G zk+yjGJopOHY46NRc!htpy09njjZ(Xifw2jx=(^z`)L zaeJ06QKVB8in^DK9%yi*a1F0%0q{JNlaqu&@X6Cm%9hY!2XL*5F3xkgCNZ0g2ZqgT zv+m9_|CLj6eVHkIs5F|>a{-H5$;Vsk_mgU>G}RZ&a0U1jo0;w~80Q#lmV54YUi-&;2wP(#U9o(hDDp9@Tr| z@W$n|nu)bUhY3M?2AlLKJV}o8C4uf2-=a&vT&1Iia2)5~;UXjGF=NLnsKg6yTLW0b z)5{A3>i<@%Z(5%xR4(W-=5wSo@ss87G-!2noPVsX_4JsV?jX-|yZgA|DrGlxk|ZTy z^+KkjQES~ozqLK4xIj!?$1&TDWR?kxi5MQK)9yh$`W`e0Uy0<2qKyf*lHrD#sIej4 z)QpfN2wd*`JHiFA<=VDlLTpMM?SK zfDwH*`^U2S^mYB87s|lmIywG7xkH zJlb&Z{wutybg&Ub}J$TsG9ImJU zz}s~8_WB@*k_FCz>;V>$fhDHFJ6*3ncA8ADdi&u+1+0Tqevl1^ScHUwQA;`#7z{vy zVHu?%KAN)VQPh$ikCT|4gX1c+2otCUdLJDAD-@9Yj`D+uB|O7HC0l)c{*#x!uJAf` zl*#zexij1LvX8yNo!$g{eG{N&X%4n7HolA;hDxNTBqaFkKquQ~DXBx}aAq0d#27%P zd96zon&N2;V844IZf-R9RPbg#>yoi&jhgI$@Li^iU2TSi#5ITW>+T7F2w1s|p%R`0 za2Nn;c&;>-ai&riOvnifi^Pef`2lF-E8)>VH6l{Q;&+zxb&bB7?-sR{9frI2~E3ctaIKY(-H3}>>kqQ~sa7Cf`L5dt^g zrQTj+120xzt+`Bu7=FX8Y z*xu7%MwSBDk;A4(q-MoQkG~G(yru|jfr4u{0E%&WNL_7hF)F%pkSyVFy1FF8LaTo~|^Vl9)hvF#8=Q^!b63w6L#J$iuNKj4~U+qYKVU|HW*qosS9& z1p#?YiXi8&fL9s(jZc#!*m5+PAoi0X_a0vxoc7e4PP0zH2%sZ%Vywls%#>;q4F9SS z4pB0>cHBylXhN)Kq~a_6ej}XgI2iHTeHn&QXE>R4UtCyE!`xwq zh=sR+y2!w~UBx-_H1qCRsqnaUC9hw1aZiif(Okfw3#`}L)^-TFj=;d(AOXtZGfu~V za6l&F45-2i>A|*yh)=}@-q}I~`!X_+SB%Eo6A^$L4KW!Kup$9~m+GH0ooF7pw20F? z<)Ls$Uk=1ew2T7MBAJCT_mU3f0=l^5Z8JvLWDja6x|PAbmi`S{wVe?z7TENc;%gwQ zHXfRWtfKy++l5T!Y6AaQScsw^@puT)8A{RwmPzS8-+h}!242pZfdJP<(mw$+av*@g zD1*E7BfOtZb2y`FKD}AY#)hHRdzzMlbH|pn^1Fb#9R`TR{k|7Yp4zm+0NRf8&llf_ zw5G%UKhXkcJ}m*LB%T_{pGMfn6UdyS0~hoL5*Ts566^x@3ebDX`U}rd04g zboJ@z+-ib*!y8lrh_Zz+=~IgaMnif7$q8ZMpiou-AA$@kU%(fb*ID^w79j*`myQl6 z_9K;HAOOkHj!PCkH`ol)2P2J`3)ls7x4*N*7Y7_!j=0y5$I&iNxsI#zV)da2ZrJqh z4l zzwgOnwajG`!`7tTMHjeH_M!ZBKc6q&kK~IJ~m0o zH0cgbPszoQ0iQ#&)bH=ei|wFn16)+E;LABTjS`4b6KFsNgN^zN8VX3aF=8f_&;*)} z?h6{#i!UA~+hSr>M}HiJw?`P(Zfv~;3^b#a*dJWokB%kLa6Z^xR-?$$>(6KuU5CRB zE+?5j9$s#4ALN{*SVM6qdtTXZUva$4#pHf|yLGOx_v_c!Fz*4iAZ&oVSGcA85&Mq8 zfAVDQK>h=zr5wEP3-16qm~q5za~@iQ#28V*OqAyE0urZ3hoLd3Jow;4sXxPqUxXiP8Qxr}xsS%LSO19t7;=?{WRwwJvytim~t+DECqYGETT7 z`sac>X2+iY3juM~VQz*IbYW=loa&z#sId<_oC4F1~V2i zeEAW(YEcVyDfc7R1a-Nz|{8A8Dbj9$H7g2Dp8dO0 zv9ECsdeVNxuh)Qf7VSQEBBf(-p*VIgr$=d&s+q$BcD3U@%RDCL^Gly)MRw3!H4=xa zfI-b1@vd>w1DBtJ%_AoNMtY=S34Rz(^V0(;vP`D25bq)DdDEs%rh!s9fUI&LwvOrQ zz5z*MbLr$A%`->$uQUwXe4?0)fAsTmFselk`VjZ><)t9VcufO$j5V2_gXzFzj&5!A zE99UkaYXkqMBA-ia+2VXT?SR@gTJI2dvwcm9@;#ceHcT>T1|BZ2e6%Q63A^;c?C!E8wM z(*+S3iuN5M#8LXpV?buADv(f<2Z$rx=QaW~felQxaZh;=m_g3EWpN}9z!%$Xi#5n_ zg|c}Jkj)d);Ery)%`^Urcj1aq8m&K!1Q&{BM>|0}UIl!NnX4}jcb83IjRcWt1>DFh zvM4}!PO(qOzA2chbb$_AswHUH1-TIr?)8$53#}5A07~gUIb{_U!f1NN1wm!w6=Wq5 zHHDAD^$;jg{5aXFwJYz|vtxEa-I4>bW=c@dfW{Y(T(wnd7haY9Q6` zS+bYF=jgh*6}%pW(=`HkvDxvETrWggBlIycO@pfXj5TorznEq5V&nZ`o4(@KSVQH(=g-+lK<@DNTYv}Wl&=f%MX8hiiBM3ovv!vvWmoPCgj}s+!(cb-5_YedY1v4Y0%4zz7cRum9z0+lP55wWwnU z{m#2vQMLqui8sPNHqi&rH!(5E%BxpZRUK}<_+c#-Ry`d8svX9jeHZL=7}xv$yz=O# zHjIi?J(R0_>=L4y7HG8DFXF&GY3aCE@z9Zl) zhv4F_ngHz2G2Ceu*7>2iAT&NhEIE)DqVmXy0_dvc{>_G?Dg?*Or_cM-d660xcr+j= zXvLvZ?j0)&2eH2CxBLb4tarJO!Eq1hJ>&hRzkK@iUFRQ8HK%Jr5U1v|2D$ko*#+bt zb)6t{N_g$sdDxepsi_hm#INI}_kb^15i*YfjGQi_(r2M~ky~}5|J0m64jKSJzrW~- z_y^=Wxm>5)MG?bh404OuY^&P8sMw{zns`NfkCnneTlPdn)g!OG3bGhsWJ$C4s}Qg9 zF!Y$sC0^6>7cQt^&r%Q^uR1-6HL%`9we4jus-wIAguTU_RmaWkm#3|z+7@2%4ci*E zcOq)+<(ftNRn$K+)%c}FI^@!X36+q;$B$Fk7in1xHqjGLlaeTck<8HG|J1Rq(C+t9n^Sr3RWySQF;40bmhFj!uMX%}trBaFkfczhp!1m0kCoEi9~Y zaqIAQn3ImBWc>bdj)lho$|n^VU^>oM&KS5W{T->JrVFauXK>I}P#4zu&RtmgdwwL*jA znAsu*S3uuFmsVAjA`dvF=mzWmNB%Wz?liaz_LPrl@PH7Deb4_+(@vUHK+ z?(x&{wuKfT3Gm2QF8%3!U0uzFGE^P44<<5gEIkF@hsMl9;?55rFcKpH9dg_dIJ5Q( zE%>`EwcT1;Y*YuL?164)3fU7OG`sF{dB7e)Gsur6>t2Nw*RCaMVv?^LN`@-npdFNz z`MH;>jvqZr_biEu=)@YmyaDjkj~E*iX5EgQmznHb5pTopv=OqlDhLNWnsQCGGe~;s zoB+_G7DRaYGh_f2jh92NC@8_tw>;di$kj(}^={qO_;9<~y$yHqh%*^0f-%KEG3~aO z?$Zfav&eJJqL@f@i2VP5_y6_pKvQJgoPmL%aG%=lBmbAKiQzeh9D{C)gOw*t@gxlU N_8e4urefszzW}blE5`r; literal 65904 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 Date: Tue, 3 Dec 2024 12:52:46 -0700 Subject: [PATCH 15/19] Moved common geometry processing code into separate common function. --- opencsp/app/sofast/lib/ProcessSofastFixed.py | 107 ++++++------------- 1 file changed, 34 insertions(+), 73 deletions(-) diff --git a/opencsp/app/sofast/lib/ProcessSofastFixed.py b/opencsp/app/sofast/lib/ProcessSofastFixed.py index 5303edf8c..cafca9b3c 100644 --- a/opencsp/app/sofast/lib/ProcessSofastFixed.py +++ b/opencsp/app/sofast/lib/ProcessSofastFixed.py @@ -4,6 +4,7 @@ import cv2 as cv import numpy as np from numpy import ndarray +from scipy.spatial.transform import Rotation from opencsp.app.sofast.lib.BlobIndex import BlobIndex, DebugBlobIndex from opencsp.app.sofast.lib.calculation_data_classes import CalculationBlobAssignment @@ -21,6 +22,7 @@ from opencsp.common.lib.deflectometry.Surface2DAbstract import Surface2DAbstract from opencsp.common.lib.geometry.LoopXY import LoopXY from opencsp.common.lib.geometry.Vxy import Vxy +from opencsp.common.lib.geometry.Vxyz import Vxyz import opencsp.common.lib.tool.log_tools as lt @@ -124,14 +126,13 @@ def load_measurement_data(self, measurement: MeasurementSofastFixed) -> None: """ self.measurement = measurement - def _process_optic_singlefacet_geometry(self) -> dict: - # Get image points and blob indices - idx_facet = 0 # there canonly be one facet here + def _process_optic_common_geometry( + self, rot_optic_cam: Rotation, v_cam_optic_cam: Vxyz, idx_facet: int + ) -> tuple[dict, CalculationBlobAssignment]: + # Get blob index data for current facet pts_image, pts_index_xy = self.blob_index[idx_facet].get_data() - # Define optic orientation w.r.t. camera - rot_optic_cam = self.data_geometry_general.r_optic_cam_refine_1 - v_cam_optic_cam = self.data_geometry_general.v_cam_optic_cam_refine_2 + # Get measure point unit vector u_cam_measure_point_facet = self.data_geometry_facet[idx_facet].u_cam_measure_point_facet # Get screen/camera poses @@ -168,9 +169,7 @@ def _process_optic_singlefacet_geometry(self) -> dict: active_point_mask_mat[y_idx_mat, x_idx_mat] = True # Save Sofast Fixed calculation parameters (specific to Sofast Fixed calculations) - self.data_calculation_blob_assignment = [ - CalculationBlobAssignment(pts_image, pts_index_xy, active_point_mask_mat) - ] + data_calculation_blob_assignment = CalculationBlobAssignment(pts_image, pts_index_xy, active_point_mask_mat) # Calculate active pixel pointing u_pixel_pointing_cam = self.camera.vector_from_pixel(pts_image) @@ -180,7 +179,7 @@ def _process_optic_singlefacet_geometry(self) -> dict: self.params.debug_slope_solver.optic_data = self.data_facet_def[idx_facet] # Construct surface kwargs - return { + kwargs = { 'v_optic_cam_optic': v_optic_cam_optic, 'u_active_pixel_pointing_optic': u_pixel_pointing_facet, 'u_measure_pixel_pointing_optic': u_cam_measure_point_facet, @@ -192,14 +191,30 @@ def _process_optic_singlefacet_geometry(self) -> dict: 'surface': self.data_surfaces[idx_facet], } + return kwargs, data_calculation_blob_assignment + + def _process_optic_singlefacet_geometry(self) -> dict: + # Define optic orientation w.r.t. camera + rot_optic_cam = self.data_geometry_general.r_optic_cam_refine_1 + v_cam_optic_cam = self.data_geometry_general.v_cam_optic_cam_refine_2 + + # Calculate optic geometry for single facet (facet index = 0) + kwargs, data_calculation_blob_assignment = self._process_optic_common_geometry( + rot_optic_cam, v_cam_optic_cam, idx_facet=0 + ) + + # Save blob assignment data + self.data_calculation_blob_assignment = [data_calculation_blob_assignment] + + return kwargs + def _process_optic_multifacet_geometry(self) -> list[dict]: + # Clear blob assignment calculations data container + self.data_calculation_blob_assignment = [] + # Loop through all facets and calcualte geometry data kwargs_list = [] - self.data_calculation_blob_assignment = [] for idx_facet in range(self.num_facets): - # Get image points and blob indices - pts_image, pts_index_xy = self.blob_index[idx_facet].get_data() - # Define optic orientation w.r.t. camera rot_facet_ensemble = self.data_ensemble_def.r_facet_ensemble[idx_facet] rot_ensemble_cam = self.data_geometry_general.r_optic_cam_refine_2 @@ -210,67 +225,13 @@ def _process_optic_multifacet_geometry(self) -> list[dict]: v_ensemble_facet_cam = v_ensemble_facet_ensemble.rotate(rot_ensemble_cam) v_cam_facet_cam = v_cam_ensemble_cam + v_ensemble_facet_cam - u_cam_measure_point_facet = self.data_geometry_facet[idx_facet].u_cam_measure_point_facet - - # Get screen/camera poses - rot_cam_facet = rot_facet_cam.inv() - rot_facet_screen = self.orientation.r_cam_screen * rot_facet_cam - rot_screen_facet = rot_facet_screen.inv() - - v_facet_cam_facet = -v_cam_facet_cam.rotate(rot_cam_facet) - v_cam_screen_facet = self.orientation.v_cam_screen_cam.rotate(rot_cam_facet) - v_facet_screen_facet = v_facet_cam_facet + v_cam_screen_facet - - # Calculate xyz screen points - v_screen_points_screen = self.fixed_pattern_dot_locs.xy_indices_to_screen_coordinates(pts_index_xy) - v_screen_points_facet = v_facet_screen_facet + v_screen_points_screen.rotate(rot_screen_facet) - - # Check for nans returning from screen point calculation - nan_mask = np.isnan(v_screen_points_screen.data).sum(0).astype(bool) - active_point_mask: np.ndarray = np.logical_not(nan_mask) - - # Remove nans if any present - if np.any(nan_mask): - lt.warn( - f'{nan_mask.sum():d} / {nan_mask.size:d} points are NANs in calculated ' - f'screen points for facet {idx_facet:d}. These data points will be removed.' - ) - # Remove nan data points from screen points - pts_image = pts_image[active_point_mask] - pts_index_xy = pts_index_xy[active_point_mask] - v_screen_points_facet = v_screen_points_facet[active_point_mask] - - # Make 2d mask of active points (w.r.t. BlobIndex internal 2d arrays) - x_idx_mat, y_idx_mat = self.blob_index[idx_facet].pts_index_to_mat_index(pts_index_xy) - active_point_mask_mat = np.zeros(self.blob_index[idx_facet].shape_yx_data_mat, dtype=bool) - active_point_mask_mat[y_idx_mat, x_idx_mat] = True - - # Save Sofast Fixed calculation parameters (specific to Sofast Fixed calculations) - self.data_calculation_blob_assignment.append( - CalculationBlobAssignment(pts_image, pts_index_xy, active_point_mask_mat) + # Calculate optic geometry for all facets + kwargs, data_calculation_blob_assignment = self._process_optic_common_geometry( + rot_facet_cam, v_cam_facet_cam, idx_facet ) + kwargs_list.append(kwargs) + self.data_calculation_blob_assignment.append(data_calculation_blob_assignment) - # Calculate active pixel pointing - u_pixel_pointing_cam = self.camera.vector_from_pixel(pts_image) - u_pixel_pointing_facet = u_pixel_pointing_cam.rotate(rot_cam_facet).as_Vxyz() - - # Update debug data - self.params.debug_slope_solver.optic_data = self.data_facet_def[idx_facet] - - # Construct list of surface kwargs - kwargs_list.append( - { - 'v_optic_cam_optic': v_facet_cam_facet, - 'u_active_pixel_pointing_optic': u_pixel_pointing_facet, - 'u_measure_pixel_pointing_optic': u_cam_measure_point_facet, - 'v_screen_points_facet': v_screen_points_facet, - 'v_optic_screen_optic': v_facet_screen_facet, - 'v_align_point_optic': self.data_geometry_facet[idx_facet].v_align_point_facet, - 'dist_optic_screen': self.data_geometry_facet[idx_facet].measure_point_screen_distance, - 'debug': self.params.debug_slope_solver, - 'surface': self.data_surfaces[idx_facet], - } - ) return kwargs_list def process_single_facet_optic( From 520ebcd480aeac7281cf40024b1bb78dc1f314cf Mon Sep 17 00:00:00 2001 From: Braden Date: Tue, 10 Dec 2024 11:42:43 -0700 Subject: [PATCH 16/19] Added documentation to ParamsOpticGeometry parameters. --- opencsp/app/sofast/lib/ParamsOpticGeometry.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/opencsp/app/sofast/lib/ParamsOpticGeometry.py b/opencsp/app/sofast/lib/ParamsOpticGeometry.py index 8e48ec041..62bdf6563 100644 --- a/opencsp/app/sofast/lib/ParamsOpticGeometry.py +++ b/opencsp/app/sofast/lib/ParamsOpticGeometry.py @@ -8,10 +8,15 @@ class ParamsOpticGeometry(hdf5_tools.HDF5_IO_Abstract): """Parameter dataclass for processing optic geometry""" perimeter_refine_axial_search_dist: float = 50.0 + """The length of the search box (along the search direction) to use when finding optic perimeter. Default 50.0""" perimeter_refine_perpendicular_search_dist: float = 50.0 + """The half-width of the search box (perpendicular to the search direction) to use when finding optic perimeter. Default 50.0""" facet_corns_refine_step_length: float = 10.0 + """The length of the search box (along the search direction) to use when refining facet corner locations (when processing a facet ensemble). Default 10.0""" facet_corns_refine_perpendicular_search_dist: float = 10.0 + """The half-width of the search box (perpendicular to the search direction) to use when refining facet corner locations (when processing a facet ensemble). Default 10.0""" facet_corns_refine_frac_keep: float = 0.5 + """The fraction of pixels to consider within search box when finding optic edges. Default 0.5""" def save_to_hdf(self, file: str, prefix: str = ''): """Saves data to given HDF5 file. Data is stored in PREFIX + ParamsOpticGeometry/... From 7ed01958a17408c97607ab351f62d0ccf9a2b650 Mon Sep 17 00:00:00 2001 From: Braden Date: Tue, 10 Dec 2024 11:43:00 -0700 Subject: [PATCH 17/19] Added more context to warnings in PSF. --- opencsp/app/sofast/lib/ProcessSofastFixed.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/opencsp/app/sofast/lib/ProcessSofastFixed.py b/opencsp/app/sofast/lib/ProcessSofastFixed.py index cafca9b3c..061b957b7 100644 --- a/opencsp/app/sofast/lib/ProcessSofastFixed.py +++ b/opencsp/app/sofast/lib/ProcessSofastFixed.py @@ -155,8 +155,9 @@ def _process_optic_common_geometry( # Remove nans if any present if np.any(nan_mask): lt.warn( - f'{nan_mask.sum():d} / {nan_mask.size:d} points are NANs in calculated ' - f'screen points for facet 0. These data points will be removed.' + 'ProcessSofastFixed._process_optic_common_geometry(): ' + f'{nan_mask.sum():d} / {nan_mask.size:d} screen points are undefined ' + f'for facet {idx_facet:d}. These data points will be removed.' ) # Remove nan data points from screen points pts_image = pts_image[active_point_mask] @@ -326,7 +327,7 @@ def process_multi_facet_optic( if len(data_facet_def) != len(surfaces) != len(pts_known) != len(xys_known): lt.error_and_raise( ValueError, - 'Length of data_facet_def does not equal length of data_surfaces' + 'ProcessSofastFixed: Length of data_facet_def does not equal length of data_surfaces' + f'data_facet_def={len(data_facet_def)}, surface_data={len(surfaces)}, ' + f'pts_known={len(pts_known)}, xys_known={len(xys_known)}', ) From c2788fcaabe1732170b9f4e001891d3ba92922c1 Mon Sep 17 00:00:00 2001 From: Braden Date: Fri, 13 Dec 2024 13:56:26 -0700 Subject: [PATCH 18/19] Added AbstractPlotHandler to BlobIndex. --- opencsp/app/sofast/lib/BlobIndex.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/opencsp/app/sofast/lib/BlobIndex.py b/opencsp/app/sofast/lib/BlobIndex.py index f409f43e1..d465873ff 100644 --- a/opencsp/app/sofast/lib/BlobIndex.py +++ b/opencsp/app/sofast/lib/BlobIndex.py @@ -6,6 +6,7 @@ from opencsp.common.lib.geometry.Vxy import Vxy from opencsp.common.lib.geometry.LoopXY import LoopXY +from opencsp.common.lib.render.lib.AbstractPlotHandler import AbstractPlotHandler from opencsp.common.lib.tool import log_tools as lt @@ -42,7 +43,7 @@ def __init__(self): self.name: str = '' -class BlobIndex: +class BlobIndex(AbstractPlotHandler): """Class containing blob indexing algorithms to assign indices to blobs in a rough grid pattern. X/Y axes correspond to image axes; +x is to right, +y is down. Class takes in points (in units of pixels) that have been previously found with a blob detector and attempts to assign all found @@ -74,6 +75,8 @@ def __init__(self, points: Vxy, x_min: int, x_max: int, y_min: int, y_max: int) x_min/x_max/y_min/y_max : int Expected min/max of blob indices in x/y directions """ + super().__init__() + self._points = points self._num_pts = len(points) @@ -435,6 +438,7 @@ def run(self, pt_known: Vxy, x_known: int, y_known: int) -> None: # Plot all input blobs if self.debug.debug_active: fig = plt.figure() + self._register_plot(fig) if self.debug.bg_image is not None: plt.imshow(self.debug.bg_image) self.plot_all_points() @@ -447,6 +451,7 @@ def run(self, pt_known: Vxy, x_known: int, y_known: int) -> None: # Plot assigned known center point if self.debug.debug_active: fig = plt.figure() + self._register_plot(fig) if self.debug.bg_image is not None: plt.imshow(self.debug.bg_image) self.plot_assigned_points_labels(labels=True) @@ -459,6 +464,7 @@ def run(self, pt_known: Vxy, x_known: int, y_known: int) -> None: # Plot 3x3 core block if self.debug.debug_active: fig = plt.figure() + self._register_plot(fig) if self.debug.bg_image is not None: plt.imshow(self.debug.bg_image) self.plot_assigned_points_labels(labels=True) @@ -487,6 +493,7 @@ def run(self, pt_known: Vxy, x_known: int, y_known: int) -> None: # Plot all found points if self.debug.debug_active: fig = plt.figure() + self._register_plot(fig) if self.debug.bg_image is not None: plt.imshow(self.debug.bg_image) self.plot_points_connections() From f26cde1ffd5837982aa0667819a84c629cbc37f2 Mon Sep 17 00:00:00 2001 From: Braden Date: Fri, 13 Dec 2024 13:58:35 -0700 Subject: [PATCH 19/19] Added units to new docs. --- opencsp/app/sofast/lib/ParamsOpticGeometry.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/opencsp/app/sofast/lib/ParamsOpticGeometry.py b/opencsp/app/sofast/lib/ParamsOpticGeometry.py index 62bdf6563..953ab00fa 100644 --- a/opencsp/app/sofast/lib/ParamsOpticGeometry.py +++ b/opencsp/app/sofast/lib/ParamsOpticGeometry.py @@ -8,13 +8,17 @@ class ParamsOpticGeometry(hdf5_tools.HDF5_IO_Abstract): """Parameter dataclass for processing optic geometry""" perimeter_refine_axial_search_dist: float = 50.0 - """The length of the search box (along the search direction) to use when finding optic perimeter. Default 50.0""" + """The length of the search box (along the search direction) to use when finding optic + perimeter. Units pixels. Default 50.0""" perimeter_refine_perpendicular_search_dist: float = 50.0 - """The half-width of the search box (perpendicular to the search direction) to use when finding optic perimeter. Default 50.0""" + """The half-width of the search box (perpendicular to the search direction) to use when finding + optic perimeter. Units pixels. Default 50.0""" facet_corns_refine_step_length: float = 10.0 - """The length of the search box (along the search direction) to use when refining facet corner locations (when processing a facet ensemble). Default 10.0""" + """The length of the search box (along the search direction) to use when refining facet corner + locations (when processing a facet ensemble). Units pixels. Default 10.0""" facet_corns_refine_perpendicular_search_dist: float = 10.0 - """The half-width of the search box (perpendicular to the search direction) to use when refining facet corner locations (when processing a facet ensemble). Default 10.0""" + """The half-width of the search box (perpendicular to the search direction) to use when + refining facet corner locations (when processing a facet ensemble). Units pixels. Default 10.0""" facet_corns_refine_frac_keep: float = 0.5 """The fraction of pixels to consider within search box when finding optic edges. Default 0.5"""