Skip to content

Commit

Permalink
Ran black . -S -C
Browse files Browse the repository at this point in the history
  • Loading branch information
e10harvey committed Mar 5, 2024
1 parent 19ffa6c commit ae82ffa
Show file tree
Hide file tree
Showing 385 changed files with 35,925 additions and 18,737 deletions.
4 changes: 2 additions & 2 deletions conftest.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#
# Ensure pytest adds root directory to the system path.
#
# Ensure pytest adds root directory to the system path.
#
114 changes: 72 additions & 42 deletions contrib/app/sofast/generate_processed_datasets.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
import os
from os.path import join

from opencsp.common.lib.deflectometry.Display import Display
from opencsp.common.lib.deflectometry.EnsembleData import EnsembleData
from opencsp.common.lib.deflectometry.FacetData import FacetData
from opencsp.app.sofast.lib.ImageCalibrationScaling import ImageCalibrationScaling
from opencsp.app.sofast.lib.Measurement import Measurement
from opencsp.app.sofast.lib.Sofast import Sofast
from opencsp.common.lib.camera.Camera import Camera


def gen_data_multi_facet(file_measurement: str,
file_camera: str,
file_display: str,
file_calibration: str,
file_facet: str,
file_ensemble: str,
file_dataset_out: str):
from os.path import join

from opencsp.common.lib.deflectometry.Display import Display
from opencsp.common.lib.deflectometry.EnsembleData import EnsembleData
from opencsp.common.lib.deflectometry.FacetData import FacetData
from opencsp.app.sofast.lib.ImageCalibrationScaling import ImageCalibrationScaling
from opencsp.app.sofast.lib.Measurement import Measurement
from opencsp.app.sofast.lib.Sofast import Sofast
from opencsp.common.lib.camera.Camera import Camera


def gen_data_multi_facet(
file_measurement: str,
file_camera: str,
file_display: str,
file_calibration: str,
file_facet: str,
file_ensemble: str,
file_dataset_out: str,
):
"""Generates full-resolution dataset of SOFAST characterization data for a multi-facet
Sofast data collection.
"""
Expand All @@ -35,10 +37,14 @@ def gen_data_multi_facet(file_measurement: str,
S = Sofast(measurement, camera, display)

# Define surface data
surface_data = [dict(surface_type='parabolic',
initial_focal_lengths_xy=(1000., 1000.),
robust_least_squares=False,
downsample=10)] * ensemble_data.num_facets
surface_data = [
dict(
surface_type='parabolic',
initial_focal_lengths_xy=(1000.0, 1000.0),
robust_least_squares=False,
downsample=10,
)
] * ensemble_data.num_facets

# Process optic data
S.process_optic_multifacet(facet_data, ensemble_data, surface_data)
Expand All @@ -51,12 +57,14 @@ def gen_data_multi_facet(file_measurement: str,
print(f'Multi-facet data saved to: {os.path.abspath(file_dataset_out):s}')


def gen_data_single_facet(file_measurement: str,
file_camera: str,
file_display: str,
file_calibration: str,
file_facet: str,
file_dataset_out: str):
def gen_data_single_facet(
file_measurement: str,
file_camera: str,
file_display: str,
file_calibration: str,
file_facet: str,
file_dataset_out: str,
):
"""Generates and saves dataset"""
# Load components
camera = Camera.load_from_hdf(file_camera)
Expand All @@ -72,10 +80,12 @@ def gen_data_single_facet(file_measurement: str,
S = Sofast(measurement, camera, display)

# Define surface data
surface_data = dict(surface_type='parabolic',
initial_focal_lengths_xy=(100., 100.),
robust_least_squares=True,
downsample=10)
surface_data = dict(
surface_type='parabolic',
initial_focal_lengths_xy=(100.0, 100.0),
robust_least_squares=True,
downsample=10,
)

# Process optic data
S.process_optic_singlefacet(facet_data, surface_data)
Expand All @@ -98,40 +108,60 @@ def example_driver():
"""

# Define location of sample data
sample_data_dir = os.path.join(os.path.dirname(__file__), '../../../sample_data/sofast')
print(f'Processing data from sample data directory: {os.path.abspath(sample_data_dir):s}')
sample_data_dir = os.path.join(
os.path.dirname(__file__), '../../../sample_data/sofast'
)
print(
f'Processing data from sample data directory: {os.path.abspath(sample_data_dir):s}'
)

# Generate multi-facet data for measurement set 1
gen_data_multi_facet(
file_measurement=join(sample_data_dir, 'measurement_set_1/measurement_ensemble.h5'),
file_measurement=join(
sample_data_dir, 'measurement_set_1/measurement_ensemble.h5'
),
file_camera=join(sample_data_dir, 'measurement_set_1/camera.h5'),
file_display=join(sample_data_dir, 'measurement_set_1/display_distorted_2d.h5'),
file_calibration=join(sample_data_dir, 'measurement_set_1/calibration.h5'),
file_facet=join(sample_data_dir, 'measurement_set_1/Facet_lab_6x4.json'),
file_ensemble=join(sample_data_dir, 'measurement_set_1/Ensemble_lab_6x4.json'),
file_dataset_out=join(sample_data_dir, 'measurement_set_1/calculations_facet_ensemble/data.h5')
file_dataset_out=join(
sample_data_dir, 'measurement_set_1/calculations_facet_ensemble/data.h5'
),
)

# Generate single-facet data for measurement set 1
gen_data_single_facet(
file_measurement=join(sample_data_dir, 'measurement_set_1/measurement_facet.h5'),
file_measurement=join(
sample_data_dir, 'measurement_set_1/measurement_facet.h5'
),
file_camera=join(sample_data_dir, 'measurement_set_1/camera.h5'),
file_display=join(sample_data_dir, 'measurement_set_1/display_distorted_2d.h5'),
file_calibration=join(sample_data_dir, 'measurement_set_1/calibration.h5'),
file_facet=join(sample_data_dir, 'measurement_set_1/Facet_NSTTF.json'),
file_dataset_out=join(sample_data_dir, 'measurement_set_1/calculations_facet/data.h5')
file_dataset_out=join(
sample_data_dir, 'measurement_set_1/calculations_facet/data.h5'
),
)

# Generate multi-facet data for measurement set 2
gen_data_multi_facet(
file_measurement=join(sample_data_dir, 'measurement_set_2/measurement_ensemble.h5'),
file_measurement=join(
sample_data_dir, 'measurement_set_2/measurement_ensemble.h5'
),
file_camera=join(sample_data_dir, 'measurement_set_2/camera.h5'),
file_display=join(sample_data_dir, 'measurement_set_2/display.h5'),
file_calibration=join(sample_data_dir, 'measurement_set_2/calibration.h5'),
file_facet=join(sample_data_dir, 'measurement_set_2/Facet_NSTTF.json'),
file_ensemble=join(sample_data_dir, 'measurement_set_2/Ensemble_NSTTF_heliostat_spherical_80m.json'),
file_dataset_out=join(sample_data_dir, 'measurement_set_2/calculations_facet_ensemble/data.h5')
file_ensemble=join(
sample_data_dir,
'measurement_set_2/Ensemble_NSTTF_heliostat_spherical_80m.json',
),
file_dataset_out=join(
sample_data_dir, 'measurement_set_2/calculations_facet_ensemble/data.h5'
),
)


if __name__ == '__main__':
example_driver()
example_driver()
49 changes: 32 additions & 17 deletions contrib/app/sofast/run_and_characterize_sofast_1_cam.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,25 @@

import numpy as np

from opencsp.common.lib.deflectometry.Display import Display
from opencsp.common.lib.deflectometry.FacetData import FacetData
from opencsp.app.sofast.lib.Fringes import Fringes
from opencsp.app.sofast.lib.ImageCalibrationScaling import ImageCalibrationScaling
from opencsp.app.sofast.lib.Sofast import Sofast
from opencsp.app.sofast.lib.System import System
from opencsp.common.lib.camera.Camera import Camera
from opencsp.common.lib.deflectometry.ImageProjection import ImageProjection
from opencsp.common.lib.camera.ImageAcquisition_DCAM_mono import ImageAcquisition
from opencsp.common.lib.geometry.Pxyz import Pxyz
from opencsp.common.lib.deflectometry.Display import Display
from opencsp.common.lib.deflectometry.FacetData import FacetData
from opencsp.app.sofast.lib.Fringes import Fringes
from opencsp.app.sofast.lib.ImageCalibrationScaling import ImageCalibrationScaling
from opencsp.app.sofast.lib.Sofast import Sofast
from opencsp.app.sofast.lib.System import System
from opencsp.common.lib.camera.Camera import Camera
from opencsp.common.lib.deflectometry.ImageProjection import ImageProjection
from opencsp.common.lib.camera.ImageAcquisition_DCAM_mono import ImageAcquisition
from opencsp.common.lib.geometry.Pxyz import Pxyz


def main():
# Define file locations
data_dir = '../../sofast_2_system_calibration_files/'

file_image_projection = os.path.join(data_dir, 'Image_Projection_optics_lab_landscape_rectangular.h5')
file_image_projection = os.path.join(
data_dir, 'Image_Projection_optics_lab_landscape_rectangular.h5'
)
file_display = os.path.join(data_dir, 'Display_optics_lab_landscape_distorted2D.h5')
file_camera = os.path.join(data_dir, 'Camera_optics_lab_landscape.h5')
file_facet = os.path.join(data_dir, 'Facet_NSTTF.json')
Expand All @@ -44,11 +46,16 @@ def main():
facet_data = FacetData.load_from_json(file_facet)

# Define surface fitting parameters
surface_data = dict(surface_type='parabolic', initial_focal_lengths_xy=(100., 100.), robust_least_squares=False, downsample=10)
surface_data = dict(
surface_type='parabolic',
initial_focal_lengths_xy=(100.0, 100.0),
robust_least_squares=False,
downsample=10,
)

# Create fringe object
periods_x = [0.9, 4., 16., 64.]
periods_y = [0.9, 4., 16., 64.]
periods_x = [0.9, 4.0, 16.0, 64.0]
periods_y = [0.9, 4.0, 16.0, 64.0]
fringes = Fringes(periods_x, periods_y)

# Load ImageProjection
Expand All @@ -75,13 +82,19 @@ def func_calibrate_exposure():
# Capture calibration data
def func_capture_calibration_frames():
print('Capturing display-camera response calibration data')
system.run_display_camera_response_calibration(res=10, run_next=system.run_next_in_queue)
system.run_display_camera_response_calibration(
res=10, run_next=system.run_next_in_queue
)

# Process calibration data
def func_process_calibration_data():
print('Processing calibration data')
calibration_images = system.get_calibration_images()
calibrations.append(ImageCalibrationScaling.from_data(calibration_images[0], system.calibration_display_values))
calibrations.append(
ImageCalibrationScaling.from_data(
calibration_images[0], system.calibration_display_values
)
)
system.run_next_in_queue()

# Load fringe object
Expand Down Expand Up @@ -123,7 +136,9 @@ def func_close_all():
print('Saving Data')

# Get Measurement object
measurement = system.get_measurements(optic_measure_point, optic_screen_dist, optic_name)[0]
measurement = system.get_measurements(
optic_measure_point, optic_screen_dist, optic_name
)[0]
calibration = calibrations[0]

# Process data
Expand Down
59 changes: 40 additions & 19 deletions contrib/app/sofast/run_and_characterize_sofast_2_cam.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,28 +11,34 @@

import numpy as np

from opencsp.common.lib.deflectometry.Display import Display
from opencsp.common.lib.deflectometry.FacetData import FacetData
from opencsp.app.sofast.lib.Fringes import Fringes
from opencsp.app.sofast.lib.ImageCalibrationScaling import ImageCalibrationScaling
from opencsp.app.sofast.lib.Sofast import Sofast
from opencsp.app.sofast.lib.System import System
from opencsp.common.lib.camera.Camera import Camera
from opencsp.common.lib.deflectometry.ImageProjection import ImageProjection
from opencsp.common.lib.camera.ImageAcquisition_DCAM_mono import ImageAcquisition
from opencsp.common.lib.geometry.Pxyz import Pxyz
from opencsp.common.lib.deflectometry.Display import Display
from opencsp.common.lib.deflectometry.FacetData import FacetData
from opencsp.app.sofast.lib.Fringes import Fringes
from opencsp.app.sofast.lib.ImageCalibrationScaling import ImageCalibrationScaling
from opencsp.app.sofast.lib.Sofast import Sofast
from opencsp.app.sofast.lib.System import System
from opencsp.common.lib.camera.Camera import Camera
from opencsp.common.lib.deflectometry.ImageProjection import ImageProjection
from opencsp.common.lib.camera.ImageAcquisition_DCAM_mono import ImageAcquisition
from opencsp.common.lib.geometry.Pxyz import Pxyz


def main():
# Define file locations
data_dir = '../../sofast_2_system_calibration_files/'

file_image_projection = os.path.join(data_dir, 'Image_Projection_optics_lab_landscape_rectangular.h5')
file_image_projection = os.path.join(
data_dir, 'Image_Projection_optics_lab_landscape_rectangular.h5'
)

file_display_0 = os.path.join(data_dir, 'Display_optics_lab_landscape_distorted2D.h5')
file_display_0 = os.path.join(
data_dir, 'Display_optics_lab_landscape_distorted2D.h5'
)
file_camera_0 = os.path.join(data_dir, 'Camera_optics_lab_landscape.h5')

file_display_1 = os.path.join(data_dir, 'Display_optics_lab_landscape_distorted2D.h5')
file_display_1 = os.path.join(
data_dir, 'Display_optics_lab_landscape_distorted2D.h5'
)
file_camera_1 = os.path.join(data_dir, 'Camera_optics_lab_landscape.h5')

file_facet = os.path.join(data_dir, 'Facet_NSTTF.json')
Expand All @@ -57,11 +63,18 @@ def main():
facet_data = FacetData.load_from_json(file_facet)

# Define surface fitting parameters
surface_data = [dict(surface_type='parabolic', initial_focal_lengths_xy=(100., 100.), robust_least_squares=False, downsample=10)]
surface_data = [
dict(
surface_type='parabolic',
initial_focal_lengths_xy=(100.0, 100.0),
robust_least_squares=False,
downsample=10,
)
]

# Create fringe object
periods_x = [0.9, 4., 16., 64.]
periods_y = [0.9, 4., 16., 64.]
periods_x = [0.9, 4.0, 16.0, 64.0]
periods_y = [0.9, 4.0, 16.0, 64.0]
fringes = Fringes(periods_x, periods_y)

# Load ImageProjection
Expand Down Expand Up @@ -94,14 +107,20 @@ def func_calibrate_exposure():
# Capture calibration data
def func_capture_calibration_frames():
print('Capturing display-camera response calibration data')
system.run_display_camera_response_calibration(res=10, run_next=system.run_next_in_queue)
system.run_display_camera_response_calibration(
res=10, run_next=system.run_next_in_queue
)

# Process calibration data
def func_process_calibration_data():
print('Processing calibration data')
calibration_images = system.get_calibration_images()
for ims in calibration_images:
calibrations.append(ImageCalibrationScaling.from_data(ims, system.calibration_display_values))
calibrations.append(
ImageCalibrationScaling.from_data(
ims, system.calibration_display_values
)
)
system.run_next_in_queue()

# Load fringe object
Expand Down Expand Up @@ -147,7 +166,9 @@ def func_close_all():
print('Saving Data')

# Get Measurement object
measurements = system.get_measurements(optic_measure_point, optic_screen_dist, optic_name)
measurements = system.get_measurements(
optic_measure_point, optic_screen_dist, optic_name
)

# Process data
print('Processing data')
Expand Down
Loading

0 comments on commit ae82ffa

Please sign in to comment.