coating_witness_measured#

furst.feed_optics.materials.coating_witness_measured()[source]#

A reflectivity measurement of the witness samples to the feed optics.

This function assumes that the angle of incidence is 75 degrees from the normal. This is just a guess and will have to be updated with better information.

Examples

Load the witness sample measurement and plot it as a function of wavelength against the modeled reflectivity.

import numpy as np
import matplotlib.pyplot as plt
import astropy.visualization
import named_arrays as na
import optika
import furst

# Load the coating model
coating_model = furst.feed_optics.materials.coating_design()

# Load the model and the witness sample measurements
coating_measurement = furst.feed_optics.materials.coating_witness_measured()
measurement = coating_measurement.efficiency_measured

# Isolate the wavelengths of the measurement
wavelength = measurement.inputs.wavelength

# Isolate the incidence angle of the measurement
angle = measurement.inputs.direction

# Calculate the reflectivity of the model for the same
# wavelengths as the measurements
reflectivity_model = coating_model.efficiency(
    rays=optika.rays.RayVectorArray(
        wavelength=wavelength,
        direction=na.Cartesian3dVectorArray(
            x=np.sin(angle),
            y=0,
            z=np.cos(angle),
        ),
    ),
    normal=na.Cartesian3dVectorArray(0, 0, -1),
)

# Plot the measurement as a function of wavelength
with astropy.visualization.quantity_support():
    fig, ax = plt.subplots(constrained_layout=True)
    na.plt.plot(
        wavelength,
        reflectivity_model,
        axis="wavelength",
        ax=ax,
        label="model",
    )
    na.plt.plot(
        measurement.inputs.wavelength,
        measurement.outputs,
        ax=ax,
        label="measurement",
    )
    ax.set_xlabel(f"wavelength ({measurement.inputs.wavelength.unit:latex_inline})");
    ax.set_ylabel("reflectivity");
    ax.legend();
../_images/furst.feed_optics.materials.coating_witness_measured_0_1.png
Return type:

MeasuredMirror