コード例 #1
0
from fwmi import Copper
from lithosil_q import LITHOSIL_Q


switch_lam = 2
lam = 532e-9 * switch_lam
theta_t = 1.5 * np.pi / 180
gamma_m = 1.40e9 / switch_lam  # molecular signal spectral width
gamma_a = 50e6 / switch_lam  # aerosol signal spectral width
fopd = 0.15 * switch_lam
t_ref = 20
t = 20
p = 1
f = 0.1

h1 = Copper(fopd, theta_t, gamma_m, gamma_a, lam, t, t_ref, p, d_opd_d_t=lam / 5, glass=LITHOSIL_Q)
# print(h1.d1, h1.d2, h1.d3)
# dt = np.linspace(-0.5, 0.5, 25)
dt = np.linspace(-5, 5, 25)
opd = h1.opd_exact_pure(theta_t,
                   h1.generate_n_glass(t + dt),
                   h1.d_glass_thermal_expansion(t + dt),
                   h1.generate_n_air(t + dt),
                   h1.d_air_thermal_expansion(t + dt))
opd_variation = (opd - fopd) / lam

fig, ax = plt.subplots()
ax.plot(dt, opd_variation, color='black')
ax.grid(True)
ax.set_xlabel(r"$\Delta$T ($^\circ$C)")
ax.set_ylabel(r"$\Delta$OPD ($\lambda$)")
コード例 #2
0
import numpy as np
import matplotlib.pyplot as plt
from fwmi import Copper

switch_lam = 2
lam = 532e-9 * switch_lam
theta_t = 1.5 * np.pi / 180
gamma_m = 1.40e9 / switch_lam  # molecular signal spectral width
gamma_a = 50e6 / switch_lam  # aerosol signal spectral width
fopd = 0.1 * switch_lam
t_ref = 20
t = 20
p = 1
f = 0.1

h1 = Copper(fopd, theta_t, gamma_m, gamma_a, lam, t, t_ref, p)

n_T = 3000
theta_d = 0.5 * np.pi / 180
d_T = np.linspace(-4, 4, n_T)

t_m = np.zeros(n_T)
t_a = np.zeros(n_T)
sdr = np.zeros(n_T)
fsrs = np.zeros(n_T)
opds = np.zeros(n_T)
theta_t_0 = theta_t
for i in range(n_T):
    n1 = h1.generate_n_glass(h1.t + d_T[i])
    d1 = h1.d_glass_thermal_expansion(h1.t + d_T[i])
    print('glass', 2 * (h1.d_glass * h1.n_glass - n1 * d1) / lam)
コード例 #3
0
ファイル: sdr_v_tilt_angle.py プロジェクト: zb5003/FWMI_git
switch_lam = 2
lam = 532e-9 * switch_lam
theta_t = 1.5 * np.pi / 180
gamma_m = 1.40e9 / switch_lam  # molecular signal spectral width
gamma_a = 50e6 / switch_lam  # aerosol signal spectral width
fopd = 0.15 * switch_lam
t_ref = 20
t = 20
p = 1
f = 0.1

h1 = Copper(fopd,
            theta_t,
            gamma_m,
            gamma_a,
            lam,
            t,
            t_ref,
            p,
            d_opd_d_t=lam / 5,
            glass=LITHOSIL_Q)

n_theta = 400
theta_d = 0.002
d_theta_t = np.linspace(-6, 6, n_theta) * np.pi / 180

t_m = np.zeros(n_theta)
t_a = np.zeros(n_theta)
sdr = np.zeros(n_theta)
fsrs = np.zeros(n_theta)
theta_t_0 = theta_t
for i in range(n_theta):
コード例 #4
0
from fwmi import Copper
from lithosil_q import LITHOSIL_Q


switch_lam = 2
lam = 532e-9 * switch_lam
theta_t = 1.5 * np.pi / 180
gamma_m = 1.40e9 / switch_lam  # molecular signal spectral width
gamma_a = 50e6 / switch_lam  # aerosol signal spectral width
fopd = 0.15 * switch_lam
t_ref = 20
t = 20
p = 1
f = 0.1

h1 = Copper(fopd, theta_t, gamma_m, gamma_a, lam, t, t_ref, p, d_opd_d_t=lam / 5, glass=LITHOSIL_Q)
n_rms = 30
theta_d = 0.002
rms = np.linspace(0, 0.2, n_rms) * lam

t_m = np.zeros(n_rms)
t_a = np.zeros(n_rms)
sdr = np.zeros(n_rms)
for i in range(n_rms):
    t_m[i] = h1.overall_transmittance(theta_d, f, h1.gamma_m, h1.fsr(fopd), rms[i])
    t_a[i] = h1.overall_transmittance(theta_d, f, h1.gamma_a, h1.fsr(fopd), rms[i])
    sdr[i] = t_m[i] / t_a[i]

fig, ax = plt.subplots()
ax.plot(rms / lam, sdr, color='black')
ax.grid(True)
コード例 #5
0
from fwmi import Copper
from lithosil_q import LITHOSIL_Q


switch_lam = 2
lam = 532e-9 * switch_lam
theta_t = 1.5 * np.pi / 180
gamma_m = 1.40e9 / switch_lam  # molecular signal spectral width
gamma_a = 50e6 / switch_lam  # aerosol signal spectral width
fopd = 0.15 * switch_lam
t_ref = 20
t = 20
p = 1
f = 0.1

h1 = Copper(fopd, theta_t, gamma_m, gamma_a, lam, t, t_ref, p, d_opd_d_t=lam / 5, glass=LITHOSIL_Q)
n_nu = 100
theta_d = 0.002
d_nu = np.linspace(0.01e9, 0.1e9, n_nu)

t_m = np.zeros(n_nu)
t_a = np.zeros(n_nu)
sdr = np.zeros(n_nu)
opd = h1.opd_exact_pure(theta_t, h1.n_glass, h1.d_glass, h1.n_air, h1.d_air)
for i in range(n_nu):
    t_m[i] = h1.overall_transmittance(theta_d, f, h1.gamma_m, h1.fsr(opd), phase_dev=d_nu[i])
    t_a[i] = h1.overall_transmittance(theta_d, f, h1.gamma_a, h1.fsr(opd), phase_dev=d_nu[i])
    sdr[i] = t_m[i] / t_a[i]

fig, ax = plt.subplots()
ax.plot(d_nu / 1e9, sdr, color='black')
コード例 #6
0
ファイル: opd_var_v_theta.py プロジェクト: zb5003/FWMI_git
from fwmi import Copper
from lithosil_q import LITHOSIL_Q


switch_lam = 2
lam = 532e-9 * switch_lam
theta_t = 1.5 * np.pi / 180
gamma_m = 1.40e9 / switch_lam  # molecular signal spectral width
gamma_a = 50e6 / switch_lam  # aerosol signal spectral width
fopd = 0.15 * switch_lam
t_ref = 20
t = 20
p = 1
f = 0.1

h1 = Copper(fopd, theta_t, gamma_m, gamma_a, lam, t, t_ref, p, d_opd_d_t=lam / 5, glass=LITHOSIL_Q)

theta_t = 1.5 * np.pi / 180
theta = np.linspace(-5, 5, 25) * np.pi / 180

opd = h1.opd_exact_pure(theta, h1.n_glass, h1.d_glass, h1.n_air, h1.d_air)
opd_variation = (opd - fopd) / lam

fig, ax = plt.subplots()
ax.plot(theta * 1000, opd_variation, color='black')
ax.grid(True)
ax.set_xlabel(r"$\theta$ (mrad)")
ax.set_ylabel(r"$\Delta$OPD ($\lambda$)")
ax.set_title("OPD Variation v. Incident Angle")
plt.show()