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();
- Return type: