Quickstart
Ensure you have followed the installation instructions before proceeding.
Ensure that the data resources have been downloaded.
PSFs
from liger_iris_sim.utils import get_psf
psf, psfinfo = get_psf(
instrument_name='Liger',
instrument_mode='IMG',
wave=1.25, # microns
xs=0, ys=0, # arcsec offsets from field center
)
Source Creation
from liger_iris_sim.sources import make_point_source_image
from liger_iris_sim.utils import compute_filter_photon_flux
from liger_iris_drp_resources.filters import load_filters_summary
from liger_iris_sim.utils import get_psf
import numpy as np
filt = 'J'
scale = 0.01 # arcsec / pixel
size = (512, 512)
filter_info = load_filters_summary(filter_name=filt)
psf, psf_info = get_psf(
instrument_name='Liger',
instrument_mode='IMG',
wave=filter_info['wavecenter'],
xs=0, ys=0
)
mag = 15.5
photon_flux = compute_filter_photon_flux(mag, zp=filter_info['zpphot'])
source_rate = np.zeros(size, dtype=np.float32)
xpix, ypix = size[1] // 2, size[0] // 2
make_point_source_image(
xpix, ypix, photon_flux,
psf=psf,
image_out=source_rate,
)
Sky Background
from liger_iris_sim.sky import get_maunakea_sky_background
from liger_iris_sim.utils import generate_wave_grid_for_filter
from liger_iris_drp_resources.filters import load_filters_summary
filter_info = load_filters_summary(filter_name='J')
wave = generate_wave_grid_for_filter(filter_info, resolution=4000)
sky_data = get_maunakea_sky_background(
wave, resolution=4000,
T_tel=275, T_atm=258, T_aos=243, T_zod=5800,
Em_tel=0.09, Em_atm=0.2, Em_aos=0.01,
airmass=1.4,
plate_scale=scale,
)
Throughput
from liger_iris_sim.expose import compute_throughput
from liger_iris_drp_resources.filters import load_filters_summary
# Load filter info for J band
filter_info = load_filters_summary(filter_name='J')
wave = filter_info['wavecenter'] # Central wavelength in microns
# Total Liger Imager throughput
tput_img = compute_throughput(
instrument_name='Liger',
instrument_mode='IMG',
wave=wave,
tel=0.8, ao=0.65, filt=0.9, # Default values
)
# Total Liger Imager throughput
tput_ifs = compute_throughput(
instrument_name='Liger',
instrument_mode='IMG',
ifs_mode='LENSLET',
wave=wave,
tel=0.8, ao=0.65, filt=0.9, # Default values
)
# Instrument-only throughput
# Total Liger Imager throughput
tput_inst = compute_throughput(
instrument_name='Liger',
instrument_mode='IMG',
ifs_mode='LENSLET',
wave=wave,
instrument_only=True,
)
Expose
from liger_iris_sim.expose import expose_imager
from liger_iris_sim.utils import LIGER_PROPS, compute_filter_photon_flux
from liger_iris_sim.sky import get_maunakea_sky_background
from liger_iris_drp_resources import load_filters_summary
filter_info = load_filters_summary(filter_name='J')
scale = 0.01
sky_em_rate = get_maunakea_sky_background(
wave, resolution=4000,
T_tel=275, T_atm=258, T_aos=243, T_zod=5800,
Em_tel=0.09, Em_atm=0.2, Em_aos=0.01,
airmass=1,
plate_scale=scale,
)
source_rate = np.ones((2048, 2048), dtype=np.float32)
sim = expose_imager(
source_rate,
itime=10, n_frames=1,
collarea=LIGER_PROPS['collarea'],
sky_emission_rate=sky_em_rate,
tput=tput_img,
read_noise=9, dark_current=0.025,
)
print(f"Peak SNR: {sim['snr'].max():.1f}")