as_built#
- esis.flights.f1.optics.as_built(grid=None, axis_channel='channel', num_distribution=11)[source]#
Load the as-built optical model.
Based on
design(), but includes efficiency and figure measurements of the primary mirror and gratings, as well as gain measurements of the sensor.- Parameters:
grid (None | ObjectVectorArray) – sampling of wavelength, field, and pupil positions that will be used to characterize the optical system.
axis_channel (str) – The name of the logical axis corresponding to changing camera channel.
num_distribution (int) – number of Monte Carlo samples to draw when computing uncertainties
- Return type:
Examples
Load the as-built optical model and print its parameters.
import esis esis.flights.f1.optics.as_built()
Instrument( name='ESIS 1 final design (all channels)', axis_channel='channel', front_aperture=<esis.optics._front_apertures._front_apertures.FrontAperture object at 0x7fe6e5ef6010>, central_obscuration=CentralObscuration( num_folds=8, halfwidth=35.31326554 mm, remove_last_vertex=True, translation=Cartesian3dVectorArray( x=0. mm, y=0. mm, z=-1404.27 mm, ), ), primary_mirror=PrimaryMirror( sag=ParabolicSag( transformation=None, parameters_slope_error=SlopeErrorParameters( step_size=4. mm, kernel_size=2. mm, ), parameters_roughness=RoughnessParameters( period_min=0.06 mm, period_max=6. mm, ), parameters_microroughness=RoughnessParameters( period_min=1.6 um, period_max=70. um, ), focal_length=-1000. mm, ), num_folds=8, width_clear=143.94043117 mm, width_border=5.35850129 mm, material=MultilayerMirror( layers=[ Layer( chemical='SiO2', thickness=1. nm, interface=ErfInterfaceProfile( width=3.44068978 nm, ), kwargs_plot={'color': 'tab:blue', 'alpha': 0.3}, x_label=None, ), Layer( chemical='SiC', thickness=21.27827884 nm, interface=ErfInterfaceProfile( width=3.44068978 nm, ), kwargs_plot={'color': 'tab:blue', 'alpha': 0.5}, x_label=None, ), Layer( chemical='Cr', thickness=5. nm, interface=ErfInterfaceProfile( width=1.77840007 nm, ), kwargs_plot={'color': 'tab:orange', 'alpha': 0.5}, x_label=None, ), ], substrate=Layer( chemical='SiO2', thickness=30. mm, interface=ErfInterfaceProfile( width=5.53 Angstrom, ), kwargs_plot={'color': 'gray', 'alpha': 0.5}, x_label=None, ), ), translation=Cartesian3dVectorArray( x=UniformUncertainScalarArray( nominal=0. mm, width=1. mm, num_distribution=11, seed=71967619082360938115356412507343569871, ), y=UniformUncertainScalarArray( nominal=0. mm, width=1. mm, num_distribution=11, seed=15699433473226962310783336660888875425, ), z=0. mm, ), pitch=0. deg, yaw=0. deg, roll=0. deg, ), field_stop=FieldStop( num_folds=8, radius_clear=1.82 mm, radius_mechanical=2.81 mm, translation=Cartesian3dVectorArray( x=UniformUncertainScalarArray( nominal=0. mm, width=1. mm, num_distribution=11, seed=71967619082360938115356412507343569871, ), y=UniformUncertainScalarArray( nominal=0. mm, width=1. mm, num_distribution=11, seed=15699433473226962310783336660888875425, ), z=-1000. mm, ), ), grating=Grating( serial_number=ScalarArray( ndarray=['89025', '89024', '89026', '89027'], axes=('channel',), ), manufacturing_number=ScalarArray( ndarray=['UBO-16-024', 'UBO-16-017', 'UBO-16-019', 'UBO-16-014'], axes=('channel',), ), angle_input=1.301 deg, angle_output=8.057 deg, sag=SphericalSag( transformation=None, parameters_slope_error=SlopeErrorParameters( step_size=2. mm, kernel_size=1. mm, ), parameters_roughness=RoughnessParameters( period_min=0.024 mm, period_max=2.4 mm, ), parameters_microroughness=RoughnessParameters( period_min=0.02 um, period_max=2. um, ), radius=ScalarArray( ndarray=[596.88 , 597.05333333, 597.04333333, 597.19166667] mm, axes=('channel',), ), ), material=MultilayerMirror( layers=[ Layer( chemical='SiO2', thickness=1. nm, interface=ErfInterfaceProfile( width=1. nm, ), kwargs_plot={'color': 'gray'}, x_label=1.1, ), Layer( chemical=Chemical( formula='SiC', is_amorphous=True, table='kortright', ), thickness=9.60594508 nm, interface=ErfInterfaceProfile( width=1.90483881 nm, ), kwargs_plot={'color': 'lightgray'}, x_label=None, ), Layer( chemical='Al', thickness=4.80725357 nm, interface=ErfInterfaceProfile( width=1.90483881 nm, ), kwargs_plot={'color': 'lightblue'}, x_label=1.1, ), Layer( chemical=Chemical( formula='Mg', is_amorphous=False, table='fernandez_perea', ), thickness=26.62708342 nm, interface=ErfInterfaceProfile( width=1.90483881 nm, ), kwargs_plot={'color': 'pink'}, x_label=None, ), PeriodicLayerSequence( layers=[ Layer( chemical='Al', thickness=1.20181339 nm, interface=ErfInterfaceProfile( width=1.90483881 nm, ), kwargs_plot={'color': 'lightblue'}, x_label=1.1, ), Layer( chemical=Chemical( formula='SiC', is_amorphous=True, table='kortright', ), thickness=9.60594508 nm, interface=ErfInterfaceProfile( width=1.90483881 nm, ), kwargs_plot={'color': 'lightgray'}, x_label=None, ), Layer( chemical=Chemical( formula='Mg', is_amorphous=False, table='fernandez_perea', ), thickness=26.62708342 nm, interface=ErfInterfaceProfile( width=1.90483881 nm, ), kwargs_plot={'color': 'pink'}, x_label=None, ), ], num_periods=3, ), Layer( chemical='Al', thickness=12.01813392 nm, interface=ErfInterfaceProfile( width=1.90483881 nm, ), kwargs_plot={'color': 'lightblue'}, x_label=1.1, ), ], substrate=Layer( chemical='SiO2', thickness=10. mm, interface=ErfInterfaceProfile( width=0.5 nm, ), kwargs_plot={'color': 'gray'}, x_label=None, ), ), rulings=MeasuredRulings( spacing=Polynomial1dRulingSpacing( coefficients={0: UncertainScalarArray( nominal=0.00038677 mm, distribution=ScalarArray( ndarray=[0.00038687, 0.00038682, 0.00038668, 0.00038676, 0.00038692, 0.00038691, 0.00038677, 0.00038678, 0.00038678, 0.00038681, 0.00038691] mm, axes=('_distribution',), ), ), 1: UniformUncertainScalarArray( nominal=-3.3849e-05 um / mm, width=5.12e-07 um / mm, num_distribution=11, seed=329869872466312402796082487199101091404, ), 2: UniformUncertainScalarArray( nominal=-1.3625e-07 um / mm2, width=8.558e-09 um / mm2, num_distribution=11, seed=112968521009357236984484910939464160130, )}, normal=Cartesian3dVectorArray(x=1, y=0, z=0), transformation=None, ), diffraction_order=-1, efficiency_measured=FunctionArray( inputs=TemporalSpectralDirectionalVectorArray( time=<Time object: scale='utc' format='iso' value=2018-01-21 00:00:00.000>, wavelength=ScalarArray( ndarray=[449.9605, 455.0952, 460.0931, 465.0887, 470.089 , 475.0917, 480.1014, 485.0828, 490.0831, 495.0905, 500.0861, 505.0863, 510.089 , 515.1011, 520.0967, 525.0922, 530.0902, 535.0858, 540.0861, 545.0816, 550.0914, 555.0869, 560.0919, 565.0899, 570.0878, 575.0905, 580.0884, 585.0911, 590.0866, 595.0964, 600.0919, 605.0899, 610.0925, 615.0952, 620.0931, 625.0934, 630.0843, 635.0822, 640.0896, 645.0875, 650.0949, 655.0905, 660.0837, 665.0887, 670.0961, 675.0846, 680.0802, 685.0899, 690.0902, 695.0881, 700.0908, 705.0863, 710.0984, 715.0916, 720.0754, 725.0852, 730.0831, 735.0787, 740.0861, 745.0863, 750.0937, 755.0916, 760.0872, 765.0875, 770.0902, 775.0881, 780.0837, 785.0911, 790.0866, 795.0893, 800.0802, 805.097 , 810.0902, 815.0881, 820.0837, 825.0911, 830.089 , 835.0893, 840.0943, 845.0875, 850.0902, 855.0881, 860.0837, 865.0863, 870.0914, 875.0846, 880.092 , 885.0875, 890.0878, 895.0928, 900.0861, 905.0887, 910.0914, 915.094 , 920.0967, 925.0852, 930.0925, 935.0928, 940.0861, 945.0887, 950.0749] Angstrom, axes=('wavelength',), ), direction=0. deg, ), outputs=ScalarArray( ndarray=[0.12321582, 0.59322994, 0.31578597, 0.37807883, 0.17012928, 0.10194699, 0.18328038, 0.13686031, 0.17249875, 0.23871327, 0.29489931, 0.42754583, 0.47872766, 0.45725882, 0.46379642, 0.47099969, 0.49313259, 0.51549805, 0.53398935, 0.5273769 , 0.51934506, 0.51059013, 0.49531883, 0.48487497, 0.47691071, 0.4673829 , 0.45800468, 0.44929878, 0.44494296, 0.44225212, 0.43921125, 0.43504338, 0.4323591 , 0.43168854, 0.43338953, 0.43193699, 0.4241297 , 0.40739984, 0.38069944, 0.34527646, 0.30570771, 0.26643472, 0.23812677, 0.22188315, 0.22124548, 0.23516671, 0.25738814, 0.28634021, 0.32160106, 0.34335857, 0.35209299, 0.35816431, 0.34814608, 0.33287109, 0.31726986, 0.29441473, 0.29216422, 0.29250187, 0.2702469 , 0.26815913, 0.2805732 , 0.28988671, 0.27849082, 0.29253054, 0.27877292, 0.33070687, 0.29231947, 0.32340672, 0.26830668, 0.36282648, 0.34440822, 0.26244641, 0.2573431 , 0.29912549, 0.29644082, 0.19558709, 0.34615717, 0.27346896, 0.32036365, 0.29543568, 0.24915719, 0.23839011, 0.34789841, 0.31262912, 0.30885046, 0.27228885, 0.34258837, 0.34673988, 0.37144668, 0.19229355, 0.39421528, 0.24486465, 0.18794816, 0.16429062, 0.35197533, 0.35929711, 0.58378151, 0.06519925, 0.46418769, 0.26846698, 0.04033995] , axes=('wavelength',), ), ), ), num_folds=8, halfwidth_inner=8.44 mm, halfwidth_outer=8.49 mm, width_border=2. mm, width_border_inner=4.58 mm, clearance=1.25 mm, distance_radial=20.74999998 mm, azimuth=ScalarArray( ndarray=[ 22.5, 67.5, 112.5, 157.5] deg, axes=('channel',), ), translation=Cartesian3dVectorArray( x=UniformUncertainScalarArray( nominal=0. mm, width=1. mm, num_distribution=11, seed=268827035523857317240856824879161492947, ), y=UniformUncertainScalarArray( nominal=0. mm, width=1. mm, num_distribution=11, seed=271848020833971290943398258332359372941, ), z=UniformUncertainScalarArray( nominal=-1374.7 mm, width=1.52752523e-05 m, num_distribution=11, seed=334495149580179008661797779475673063279, ), ), pitch=0. deg, yaw=-4.46956724 deg, roll=UniformUncertainScalarArray( nominal=0. deg, width=0.013 rad, num_distribution=11, seed=264238292223191947886392788461005086671, ), ), filter=Filter( material=ThinFilmFilter( layer=Layer( chemical='Al', thickness=100. nm, interface=None, kwargs_plot={'color': 'lightgray'}, x_label=None, ), layer_oxide=Layer( chemical=Chemical( formula='Al2O3', is_amorphous=True, table='palik', ), thickness=4. nm, interface=None, kwargs_plot={'color': 'gray'}, x_label=1.1, ), mesh=Mesh( chemical='Ni', efficiency=0.82, pitch=70. 1 / inch, ), ), radius_clear=15. mm, width_border=0. mm, distance_radial=95.9 mm, azimuth=ScalarArray( ndarray=[ 22.5, 67.5, 112.5, 157.5] deg, axes=('channel',), ), translation=Cartesian3dVectorArray( x=0. mm, y=0. mm, z=-73.03800115 mm, ), pitch=0. deg, yaw=-3.45 deg, roll=45. deg, ), camera=Camera( sensor=Sensor( manufacturer='Teledyne/e2v', family='CCD230-42', serial_number=ScalarArray( ndarray=['SN6', 'SN7', 'SN9', 'SN10'], axes=('channel',), ), grade=None, width_pixel=15. um, num_pixel_x=2048, num_pixel_y=2064, num_blank=50, num_overscan=2, cte=99.9995 %, readout_noise=6. electron, readout_mode='transfer', temperature=-55. deg_C, width_package_x=42. mm, width_package_y=61. mm, distance_radial=108. mm, azimuth=ScalarArray( ndarray=[ 22.5, 67.5, 112.5, 157.5] deg, axes=('channel',), ), translation=Cartesian3dVectorArray( x=0. mm, y=0. mm, z=126.96199885 mm, ), pitch=0. deg, yaw=-12.252 deg, roll=0. deg, position_image=0. mm, ), gain=ScalarArray( ndarray=[[[2.55, 2.63], [2.57, 2.57]], [[2.57, 2.53], [2.5 , 2.52]], [[2.57, 2.59], [2.53, 2.52]], [[2.6 , 2.58], [2.6 , 2.54]]] electron / DN, axes=('channel', 'tap_y', 'tap_x'), ), bits_adc=16, timedelta_exposure=10. s, timedelta_exposure_min=2. s, timedelta_exposure_max=600. s, timedelta_exposure_step=100. ms, timedelta_transfer=50. ms, timedelta_readout=1.1 s, axis_tap_x='tap_x', axis_tap_y='tap_y', timedelta_sync=1. ms, channel=ScalarArray( ndarray=[1, 2, 3, 4], axes=('channel',), ), channel_trigger=1, ), wavelength=629.77 Angstrom, field=Cartesian2dVectorLinearSpace( start=-1, stop=1, axis=Cartesian2dVectorArray(x='field_x', y='field_y'), num=11, endpoint=True, centers=True, ), pupil=Cartesian2dVectorLinearSpace( start=-1, stop=1, axis=Cartesian2dVectorArray(x='pupil_x', y='pupil_y'), num=11, endpoint=True, centers=True, ), pitch=0. deg, yaw=0. deg, roll=0. deg, kwargs_plot=None, )References to
esis.flights.f1.optics.as_built