# Simulate transparency vs airmass at LSST
Sylvie Dagoret-Campagne
affliliation : IJCLAB/IN2P3/CNRS
creation date : 24 February 2020
last update : August 27th 2024
[ ]:
%load_ext autoreload
%autoreload 2
[ ]:
import matplotlib.pyplot as plt
%matplotlib inline
import sys
import os
import numpy as np
[ ]:
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.colors as colors
import matplotlib.cm as cmx
[ ]:
matplotlib.rcParams.update({'font.size': 15, 'lines.linewidth': 2, 'lines.markersize': 15})
matplotlib.rcParams["axes.labelsize"]="small"
matplotlib.rcParams["axes.linewidth"]=2.0
matplotlib.rcParams["xtick.major.size"]=8
matplotlib.rcParams["ytick.major.size"]=8
matplotlib.rcParams["ytick.minor.size"]=5
matplotlib.rcParams["xtick.labelsize"]="large"
matplotlib.rcParams["ytick.labelsize"]="large"
matplotlib.rcParams["figure.figsize"]=(12,6)
matplotlib.rcParams['axes.titlesize'] = 15
matplotlib.rcParams['axes.titleweight'] = 'bold'
#matplotlib.rcParams['axes.facecolor'] = 'blue'
matplotlib.rcParams['xtick.direction'] = 'out'
matplotlib.rcParams['ytick.direction'] = 'out'
matplotlib.rcParams['lines.markeredgewidth'] = 0.3 # the line width around the marker symbol
matplotlib.rcParams['lines.markersize'] = 10 # markersize, in points
matplotlib.rcParams['grid.alpha'] = 1. # transparency, between 0.0 and 1.0
matplotlib.rcParams['grid.linestyle'] = '-' # simple line
matplotlib.rcParams['grid.linewidth'] = 0.4 # in points
[ ]:
from scipy.interpolate import interp1d
[ ]:
from libradtranpy import libsimulateVisible
[ ]:
os.getenv('LIBRADTRANDIR')
[ ]:
AMMIN=1
AMMAX=3.1
AMSTEP = 0.1
all_am=np.arange(AMMIN,AMMAX,AMSTEP)
pressure = 0. # use default value
pwv=4.0
aer=0
ozone=300.
cloudext=0
[ ]:
NBOBS=len(all_am)
[ ]:
jet = plt.get_cmap('jet')
cNorm = colors.Normalize(vmin=0, vmax=NBOBS)
scalarMap = cmx.ScalarMappable(norm=cNorm, cmap=jet)
all_colors = scalarMap.to_rgba(np.arange( NBOBS), alpha=1)
[ ]:
all_trans = []
for index in np.arange(NBOBS):
am = all_am[index]
print(f"simulate index = {index}, airmass = {am:.2f}")
wl,atm=libsimulateVisible.ProcessSimulation(am,pwv,ozone,pressure,aer_num=aer,
prof_str='us',proc_str='sa',cloudext=cloudext,altitude="LSST")
all_trans.append(atm)
[ ]:
for index in np.arange(NBOBS):
plt.semilogy(wl,all_trans[index],'-',color=all_colors[index])
plt.xlim(300,1200)
plt.grid()
plt.title(f"Atmospheric transmission for airmass from {AMMIN} to {AMMAX} by {AMSTEP} steps")
plt.xlabel("$\\lambda$ (nm)")
plt.ylabel("transmission")
plt.ylim(0.1,1)
figname="multitransmission_log.png"
plt.savefig(figname)
[ ]:
for index in np.arange(NBOBS):
plt.plot(wl,all_trans[index],'-',color=all_colors[index])
plt.xlim(300,1200)
plt.grid()
plt.title(f"Atmospheric transmission for airmass from {AMMIN} to {AMMAX} by {AMSTEP} steps")
plt.xlabel("$\\lambda$ (nm)")
plt.ylabel("transmission")
plt.ylim(0.0,1)
figname="multitransmission_lin.png"
plt.savefig(figname)
[ ]: