Commit 39056735 authored by Fang Yuedong's avatar Fang Yuedong
Browse files

Merge branch 'master' into 'current_stable_for_tests'

checksum fixing in header

See merge request !20
parents c48d8742 59153d14
......@@ -8,3 +8,5 @@ dist/*
!*libshao.so
*.out
pnodes
.coverage
coverage
\ No newline at end of file
......@@ -280,774 +280,774 @@ class Chip(FocalPlane):
noise = self.dark_noise * exptime + self.read_noise**2
return noise
def addEffects(self, config, img, chip_output, filt, ra_cen, dec_cen, img_rot, exptime=150., pointing_ID=0, timestamp_obs=1621915200, pointing_type='SCI', sky_map=None, post_flash_map=None, tel=None, logger=None):
# Set random seeds
SeedGainNonuni = int(config["random_seeds"]["seed_gainNonUniform"])
SeedBiasNonuni = int(config["random_seeds"]["seed_biasNonUniform"])
SeedRnNonuni = int(config["random_seeds"]["seed_rnNonUniform"])
SeedBadColumns = int(config["random_seeds"]["seed_badcolumns"])
SeedDefective = int(config["random_seeds"]["seed_defective"])
SeedCosmicRay = int(config["random_seeds"]["seed_CR"])
fullwell = int(self.full_well)
if config["ins_effects"]["add_hotpixels"] == True:
BoolHotPix = True
else:
BoolHotPix = False
if config["ins_effects"]["add_deadpixels"] == True:
BoolDeadPix = True
else:
BoolDeadPix = False
self.logger = logger
# Get Poisson noise generator
rng_poisson, poisson_noise = chip_utils.get_poisson(
seed=int(config["random_seeds"]["seed_poisson"]) + pointing_ID*30 + self.chipID, sky_level=0.)
# Add sky background
if config["ins_effects"]["add_back"] == True:
img, sky_map = chip_utils.add_sky_background(
img=img, filt=filt, exptime=exptime, sky_map=sky_map, tel=tel)
del sky_map
# Apply flat-field large scale structure for one chip
if config["ins_effects"]["flat_fielding"] == True:
chip_utils.log_info(
msg=" Creating and applying Flat-Fielding", logger=self.logger)
chip_utils.log_info(msg=str(img.bounds), logger=self.logger)
flat_img, flat_normal = chip_utils.get_flat(
img=img, seed=int(config["random_seeds"]["seed_flat"]))
if self.survey_type == "photometric":
img *= flat_normal
del flat_normal
if config["output_setting"]["flat_output"] == False:
del flat_img
if post_flash_map is not None:
img = img + post_flash_map
# Apply Shutter-effect for one chip
if config["ins_effects"]["shutter_effect"] == True:
chip_utils.log_info(
msg=" Apply shutter effect", logger=self.logger)
# shutter effect normalized image for this chip
shuttimg = effects.ShutterEffectArr(
img, t_shutter=1.3, dist_bearing=735, dt=1E-3)
if self.survey_type == "photometric":
img *= shuttimg
# output 16-bit shutter effect image with pixel value <=65535
if config["output_setting"]["shutter_output"] == True:
shutt_gsimg = galsim.ImageUS(shuttimg*6E4)
shutt_gsimg.write("%s/ShutterEffect_%s_1.fits" %
(chip_output.subdir, self.chipID))
del shutt_gsimg
del shuttimg
# # Add Poisson noise to the resulting images
# # (NOTE): this can only applied to the slitless image
# # since it dose not use photon shooting to draw stamps
# if self.survey_type == "spectroscopic":
# img.addNoise(poisson_noise)
# Add cosmic-rays
if config["ins_effects"]["cosmic_ray"] == True and pointing_type == 'SCI':
chip_utils.log_info(msg=" Adding Cosmic-Ray", logger=self.logger)
img, crmap_gsimg, cr_event_num = chip_utils.add_cosmic_rays(img=img, chip=self, exptime=exptime,
seed=SeedCosmicRay+pointing_ID*30+self.chipID)
chip_utils.outputCal(
chip=self,
img=crmap_gsimg,
ra_cen=ra_cen,
dec_cen=dec_cen,
img_rot=img_rot,
im_type='CRS',
pointing_ID=pointing_ID,
output_dir=chip_output.subdir,
exptime=exptime,
project_cycle=config["project_cycle"],
run_counter=config["run_counter"],
timestamp=timestamp_obs)
del crmap_gsimg
# Apply PRNU effect and output PRNU flat file:
if config["ins_effects"]["prnu_effect"] == True:
chip_utils.log_info(
msg=" Applying PRNU effect", logger=self.logger)
img, prnu_img = chip_utils.add_PRNU(img=img, chip=self,
seed=int(config["random_seeds"]["seed_prnu"]+self.chipID))
if config["output_setting"]["prnu_output"] == True:
prnu_img.write("%s/FlatImg_PRNU_%s.fits" %
(chip_output.subdir, self.chipID))
if config["output_setting"]["flat_output"] == False:
del prnu_img
# # Add dark current
# def addEffects(self, config, img, chip_output, filt, ra_cen, dec_cen, img_rot, exptime=150., pointing_ID=0, timestamp_obs=1621915200, pointing_type='SCI', sky_map=None, post_flash_map=None, tel=None, logger=None):
# # Set random seeds
# SeedGainNonuni = int(config["random_seeds"]["seed_gainNonUniform"])
# SeedBiasNonuni = int(config["random_seeds"]["seed_biasNonUniform"])
# SeedRnNonuni = int(config["random_seeds"]["seed_rnNonUniform"])
# SeedBadColumns = int(config["random_seeds"]["seed_badcolumns"])
# SeedDefective = int(config["random_seeds"]["seed_defective"])
# SeedCosmicRay = int(config["random_seeds"]["seed_CR"])
# fullwell = int(self.full_well)
# if config["ins_effects"]["add_hotpixels"] == True:
# BoolHotPix = True
# else:
# BoolHotPix = False
# if config["ins_effects"]["add_deadpixels"] == True:
# BoolDeadPix = True
# else:
# BoolDeadPix = False
# self.logger = logger
# # Get Poisson noise generator
# rng_poisson, poisson_noise = chip_utils.get_poisson(
# seed=int(config["random_seeds"]["seed_poisson"]) + pointing_ID*30 + self.chipID, sky_level=0.)
# # Add sky background
# if config["ins_effects"]["add_back"] == True:
# img, sky_map = chip_utils.add_sky_background(
# img=img, filt=filt, exptime=exptime, sky_map=sky_map, tel=tel)
# del sky_map
# # Apply flat-field large scale structure for one chip
# if config["ins_effects"]["flat_fielding"] == True:
# chip_utils.log_info(
# msg=" Creating and applying Flat-Fielding", logger=self.logger)
# chip_utils.log_info(msg=str(img.bounds), logger=self.logger)
# flat_img, flat_normal = chip_utils.get_flat(
# img=img, seed=int(config["random_seeds"]["seed_flat"]))
# if self.survey_type == "photometric":
# img *= flat_normal
# del flat_normal
# if config["output_setting"]["flat_output"] == False:
# del flat_img
# if post_flash_map is not None:
# img = img + post_flash_map
# # Apply Shutter-effect for one chip
# if config["ins_effects"]["shutter_effect"] == True:
# chip_utils.log_info(
# msg=" Apply shutter effect", logger=self.logger)
# # shutter effect normalized image for this chip
# shuttimg = effects.ShutterEffectArr(
# img, t_shutter=1.3, dist_bearing=735, dt=1E-3)
# if self.survey_type == "photometric":
# img *= shuttimg
# # output 16-bit shutter effect image with pixel value <=65535
# if config["output_setting"]["shutter_output"] == True:
# shutt_gsimg = galsim.ImageUS(shuttimg*6E4)
# shutt_gsimg.write("%s/ShutterEffect_%s_1.fits" %
# (chip_output.subdir, self.chipID))
# del shutt_gsimg
# del shuttimg
# # # Add Poisson noise to the resulting images
# # # (NOTE): this can only applied to the slitless image
# # # since it dose not use photon shooting to draw stamps
# # if self.survey_type == "spectroscopic":
# # img.addNoise(poisson_noise)
# # Add cosmic-rays
# if config["ins_effects"]["cosmic_ray"] == True and pointing_type == 'SCI':
# chip_utils.log_info(msg=" Adding Cosmic-Ray", logger=self.logger)
# img, crmap_gsimg, cr_event_num = chip_utils.add_cosmic_rays(img=img, chip=self, exptime=exptime,
# seed=SeedCosmicRay+pointing_ID*30+self.chipID)
# chip_utils.outputCal(
# chip=self,
# img=crmap_gsimg,
# ra_cen=ra_cen,
# dec_cen=dec_cen,
# img_rot=img_rot,
# im_type='CRS',
# pointing_ID=pointing_ID,
# output_dir=chip_output.subdir,
# exptime=exptime,
# project_cycle=config["project_cycle"],
# run_counter=config["run_counter"],
# timestamp=timestamp_obs)
# del crmap_gsimg
# # Apply PRNU effect and output PRNU flat file:
# if config["ins_effects"]["prnu_effect"] == True:
# chip_utils.log_info(
# msg=" Applying PRNU effect", logger=self.logger)
# img, prnu_img = chip_utils.add_PRNU(img=img, chip=self,
# seed=int(config["random_seeds"]["seed_prnu"]+self.chipID))
# if config["output_setting"]["prnu_output"] == True:
# prnu_img.write("%s/FlatImg_PRNU_%s.fits" %
# (chip_output.subdir, self.chipID))
# if config["output_setting"]["flat_output"] == False:
# del prnu_img
# # # Add dark current
# # if config["ins_effects"]["add_dark"] == True:
# # dark_noise = galsim.DeviateNoise(galsim.PoissonDeviate(rng_poisson, self.dark_noise*(exptime+0.5*self.readout_time)))
# # img.addNoise(dark_noise)
# # Add dark current & Poisson noise
# InputDark = False
# if config["ins_effects"]["add_dark"] == True:
# dark_noise = galsim.DeviateNoise(galsim.PoissonDeviate(rng_poisson, self.dark_noise*(exptime+0.5*self.readout_time)))
# img.addNoise(dark_noise)
# Add dark current & Poisson noise
InputDark = False
if config["ins_effects"]["add_dark"] == True:
if InputDark:
img = chip_utils.add_inputdark(
img=img, chip=self, exptime=exptime)
else:
img, _ = chip_utils.add_poisson(
img=img, chip=self, exptime=exptime, poisson_noise=poisson_noise)
else:
img, _ = chip_utils.add_poisson(
img=img, chip=self, exptime=exptime, poisson_noise=poisson_noise, dark_noise=0.)
# Add diffusion & brighter-fatter effects
if config["ins_effects"]["bright_fatter"] == True:
img = chip_utils.add_brighter_fatter(img=img)
# Add Hot Pixels or/and Dead Pixels
rgbadpix = Generator(PCG64(int(SeedDefective+self.chipID)))
badfraction = 5E-5*(rgbadpix.random()*0.5+0.7)
img = effects.DefectivePixels(img, IfHotPix=BoolHotPix, IfDeadPix=BoolDeadPix,
fraction=badfraction, seed=SeedDefective+self.chipID, biaslevel=0)
# Apply Bad lines
if config["ins_effects"]["add_badcolumns"] == True:
img = effects.BadColumns(
img, seed=SeedBadColumns, chipid=self.chipID, logger=self.logger)
# Apply Nonlinearity on the chip image
if config["ins_effects"]["non_linear"] == True:
chip_utils.log_info(
msg=" Applying Non-Linearity on the chip image", logger=self.logger)
img = effects.NonLinearity(GSImage=img, beta1=5.e-7, beta2=0)
# Apply CCD Saturation & Blooming
if config["ins_effects"]["saturbloom"] == True:
chip_utils.log_info(
msg=" Applying CCD Saturation & Blooming", logger=self.logger)
img = effects.SaturBloom(
GSImage=img, nsect_x=1, nsect_y=1, fullwell=fullwell)
# Apply CTE Effect
# if InputDark:
# img = chip_utils.add_inputdark(
# img=img, chip=self, exptime=exptime)
# else:
# img, _ = chip_utils.add_poisson(
# img=img, chip=self, exptime=exptime, poisson_noise=poisson_noise)
# else:
# img, _ = chip_utils.add_poisson(
# img=img, chip=self, exptime=exptime, poisson_noise=poisson_noise, dark_noise=0.)
# # Add diffusion & brighter-fatter effects
# if config["ins_effects"]["bright_fatter"] == True:
# img = chip_utils.add_brighter_fatter(img=img)
# # Add Hot Pixels or/and Dead Pixels
# rgbadpix = Generator(PCG64(int(SeedDefective+self.chipID)))
# badfraction = 5E-5*(rgbadpix.random()*0.5+0.7)
# img = effects.DefectivePixels(img, IfHotPix=BoolHotPix, IfDeadPix=BoolDeadPix,
# fraction=badfraction, seed=SeedDefective+self.chipID, biaslevel=0)
# # Apply Bad lines
# if config["ins_effects"]["add_badcolumns"] == True:
# img = effects.BadColumns(
# img, seed=SeedBadColumns, chipid=self.chipID, logger=self.logger)
# # Apply Nonlinearity on the chip image
# if config["ins_effects"]["non_linear"] == True:
# chip_utils.log_info(
# msg=" Applying Non-Linearity on the chip image", logger=self.logger)
# img = effects.NonLinearity(GSImage=img, beta1=5.e-7, beta2=0)
# # Apply CCD Saturation & Blooming
# if config["ins_effects"]["saturbloom"] == True:
# chip_utils.log_info(
# msg=" Applying CCD Saturation & Blooming", logger=self.logger)
# img = effects.SaturBloom(
# GSImage=img, nsect_x=1, nsect_y=1, fullwell=fullwell)
# # Apply CTE Effect
# # if config["ins_effects"]["cte_trail"] == True:
# # chip_utils.log_info(msg=" Apply CTE Effect", logger=self.logger)
# # img = effects.CTE_Effect(GSImage=img, threshold=27)
# pre1 = self.prescan_x # 27
# over1 = self.overscan_x # 71
# pre2 = self.prescan_y # 0 #4
# over2 = self.overscan_y # 84 #80
# if config["ins_effects"]["cte_trail"] == True:
# chip_utils.log_info(msg=" Apply CTE Effect", logger=self.logger)
# img = effects.CTE_Effect(GSImage=img, threshold=27)
pre1 = self.prescan_x # 27
over1 = self.overscan_x # 71
pre2 = self.prescan_y # 0 #4
over2 = self.overscan_y # 84 #80
if config["ins_effects"]["cte_trail"] == True:
chip_utils.log_info(msg=" Apply CTE Effect", logger=self.logger)
# img = effects.CTE_Effect(GSImage=img, threshold=27)
# CTI_modeling
# 2*8 -> 1*16 img-layout
img = chip_utils.formatOutput(GSImage=img)
self.nsecy = 1
self.nsecx = 16
img_arr = img.array
ny, nx = img_arr.shape
dx = int(nx/self.nsecx)
dy = int(ny/self.nsecy)
newimg = galsim.Image(nx, int(ny+over2), init_value=0)
for ichannel in range(16):
print('\n***add CTI effects: pointing-{:} chip-{:} channel-{:}***'.format(
pointing_ID, self.chipID, ichannel+1))
# nx,ny,noverscan,nsp,nmax = 4608,4616,84,3,10
noverscan, nsp, nmax = over2, 3, 10
beta, w, c = 0.478, 84700, 0
t = np.array([0.74, 7.7, 37], dtype=np.float32)
rho_trap = np.array([0.6, 1.6, 1.4], dtype=np.float32)
trap_seeds = np.array(
[0, 1000, 10000], dtype=np.int32) + ichannel + self.chipID*16
release_seed = 50 + ichannel + pointing_ID*30 + self.chipID*16
newimg.array[:, 0+ichannel*dx:dx+ichannel*dx] = CTI_sim(
img_arr[:, 0+ichannel*dx:dx+ichannel*dx], dx, dy, noverscan, nsp, nmax, beta, w, c, t, rho_trap, trap_seeds, release_seed)
newimg.wcs = img.wcs
del img
img = newimg
# 1*16 -> 2*8 img-layout
img = chip_utils.formatRevert(GSImage=img)
self.nsecy = 2
self.nsecx = 8
# prescan & overscan
if config["ins_effects"]["add_prescan"] == True:
chip_utils.log_info(
msg=" Apply pre/over-scan", logger=self.logger)
if config["ins_effects"]["cte_trail"] == False:
img = chip_utils.AddPreScan(
GSImage=img, pre1=pre1, pre2=pre2, over1=over1, over2=over2)
if config["ins_effects"]["cte_trail"] == True:
img = chip_utils.AddPreScan(
GSImage=img, pre1=pre1, pre2=pre2, over1=over1, over2=0)
# 1*16 output
if config["ins_effects"]["format_output"] == True:
chip_utils.log_info(msg=" Apply 1*16 format", logger=self.logger)
img = chip_utils.formatOutput(GSImage=img)
self.nsecy = 1
self.nsecx = 16
# Add Bias level
if config["ins_effects"]["add_bias"] == True:
chip_utils.log_info(
msg=" Adding Bias level and 16-channel non-uniformity", logger=self.logger)
if config["ins_effects"]["bias_16channel"] == True:
img = effects.AddBiasNonUniform16(img,
bias_level=float(
self.bias_level),
nsecy=self.nsecy, nsecx=self.nsecx,
seed=SeedBiasNonuni+self.chipID,
logger=self.logger)
elif config["ins_effects"]["bias_16channel"] == False:
img += self.bias_level
# Add Read-out Noise
if config["ins_effects"]["add_readout"] == True:
seed = int(config["random_seeds"]["seed_readout"]
) + pointing_ID*30 + self.chipID
rng_readout = galsim.BaseDeviate(seed)
readout_noise = galsim.GaussianNoise(
rng=rng_readout, sigma=self.read_noise)
img.addNoise(readout_noise)
# Apply Gain & Quantization
chip_utils.log_info(
msg=" Applying Gain (and 16 channel non-uniformity) & Quantization", logger=self.logger)
if config["ins_effects"]["gain_16channel"] == True:
img, self.gain_channel = effects.ApplyGainNonUniform16(
img, gain=self.gain,
nsecy=self.nsecy, nsecx=self.nsecx,
seed=SeedGainNonuni+self.chipID,
logger=self.logger)
elif config["ins_effects"]["gain_16channel"] == False:
img /= self.gain
img.array[img.array > 65535] = 65535
img.replaceNegative(replace_value=0)
img.quantize()
######################################################################################
# Output images for calibration pointing
######################################################################################
# Bias output
if config["ins_effects"]["add_bias"] == True and config["output_setting"]["bias_output"] == True and pointing_type == 'CAL':
if self.logger is not None:
self.logger.info(" Output N frame Bias files")
else:
print(" Output N frame Bias files", flush=True)
NBias = int(config["output_setting"]["NBias"])
for i in range(NBias):
# BiasCombImg, BiasTag = effects.MakeBiasNcomb(
# self.npix_x, self.npix_y,
# bias_level=float(self.bias_level),
# ncombine=1, read_noise=self.read_noise, gain=1,
# # img = effects.CTE_Effect(GSImage=img, threshold=27)
# # CTI_modeling
# # 2*8 -> 1*16 img-layout
# img = chip_utils.formatOutput(GSImage=img)
# self.nsecy = 1
# self.nsecx = 16
# img_arr = img.array
# ny, nx = img_arr.shape
# dx = int(nx/self.nsecx)
# dy = int(ny/self.nsecy)
# newimg = galsim.Image(nx, int(ny+over2), init_value=0)
# for ichannel in range(16):
# print('\n***add CTI effects: pointing-{:} chip-{:} channel-{:}***'.format(
# pointing_ID, self.chipID, ichannel+1))
# # nx,ny,noverscan,nsp,nmax = 4608,4616,84,3,10
# noverscan, nsp, nmax = over2, 3, 10
# beta, w, c = 0.478, 84700, 0
# t = np.array([0.74, 7.7, 37], dtype=np.float32)
# rho_trap = np.array([0.6, 1.6, 1.4], dtype=np.float32)
# trap_seeds = np.array(
# [0, 1000, 10000], dtype=np.int32) + ichannel + self.chipID*16
# release_seed = 50 + ichannel + pointing_ID*30 + self.chipID*16
# newimg.array[:, 0+ichannel*dx:dx+ichannel*dx] = CTI_sim(
# img_arr[:, 0+ichannel*dx:dx+ichannel*dx], dx, dy, noverscan, nsp, nmax, beta, w, c, t, rho_trap, trap_seeds, release_seed)
# newimg.wcs = img.wcs
# del img
# img = newimg
# # 1*16 -> 2*8 img-layout
# img = chip_utils.formatRevert(GSImage=img)
# self.nsecy = 2
# self.nsecx = 8
# # prescan & overscan
# if config["ins_effects"]["add_prescan"] == True:
# chip_utils.log_info(
# msg=" Apply pre/over-scan", logger=self.logger)
# if config["ins_effects"]["cte_trail"] == False:
# img = chip_utils.AddPreScan(
# GSImage=img, pre1=pre1, pre2=pre2, over1=over1, over2=over2)
# if config["ins_effects"]["cte_trail"] == True:
# img = chip_utils.AddPreScan(
# GSImage=img, pre1=pre1, pre2=pre2, over1=over1, over2=0)
# # 1*16 output
# if config["ins_effects"]["format_output"] == True:
# chip_utils.log_info(msg=" Apply 1*16 format", logger=self.logger)
# img = chip_utils.formatOutput(GSImage=img)
# self.nsecy = 1
# self.nsecx = 16
# # Add Bias level
# if config["ins_effects"]["add_bias"] == True:
# chip_utils.log_info(
# msg=" Adding Bias level and 16-channel non-uniformity", logger=self.logger)
# if config["ins_effects"]["bias_16channel"] == True:
# img = effects.AddBiasNonUniform16(img,
# bias_level=float(
# self.bias_level),
# nsecy=self.nsecy, nsecx=self.nsecx,
# seed=SeedBiasNonuni+self.chipID,
# logger=self.logger)
BiasCombImg = galsim.Image(
self.npix_x, self.npix_y, init_value=0)
if config["ins_effects"]["add_bias"] == True:
biaslevel = self.bias_level
overscan = biaslevel-2
elif config["ins_effects"]["add_bias"] == False:
biaslevel = 0
overscan = 0
# Readout noise for Biases is not generated with random seeds. So readout noise for bias images can't be reproduced.
if config["ins_effects"]["cosmic_ray"] == True:
if config["ins_effects"]["cray_differ"] == True:
cr_map, cr_event_num = effects.produceCR_Map(
xLen=self.npix_x, yLen=self.npix_y,
exTime=0.01,
cr_pixelRatio=0.003 *
(0.01+0.5*self.readout_time)/150.,
gain=self.gain,
attachedSizes=self.attachedSizes,
seed=SeedCosmicRay+pointing_ID*30+self.chipID+1)
# seed: obj-imaging:+0; bias:+1; dark:+2; flat:+3;
BiasCombImg += cr_map
del cr_map
# Apply Bad lines
if config["ins_effects"]["add_badcolumns"] == True:
BiasCombImg = effects.BadColumns(
BiasCombImg-float(self.bias_level)+5, seed=SeedBadColumns, chipid=self.chipID, logger=self.logger) + float(self.bias_level)-5
# Non-Linearity for Bias
if config["ins_effects"]["non_linear"] == True:
if self.logger is not None:
self.logger.info(
" Applying Non-Linearity on the Bias image")
else:
print(
" Applying Non-Linearity on the Bias image", flush=True)
BiasCombImg = effects.NonLinearity(
GSImage=BiasCombImg, beta1=5.e-7, beta2=0)
# START
pre1 = self.prescan_x # 27
over1 = self.overscan_x # 71
pre2 = self.prescan_y # 0 #4
over2 = self.overscan_y # 84 #80
# prescan & overscan
if config["ins_effects"]["add_prescan"] == True:
chip_utils.log_info(
msg=" Apply pre/over-scan", logger=self.logger)
BiasCombImg = chip_utils.AddPreScan(
GSImage=BiasCombImg, pre1=pre1, pre2=pre2, over1=over1, over2=over2)
# 1*16 output
if config["ins_effects"]["format_output"] == True:
chip_utils.log_info(
msg=" Apply 1*16 format", logger=self.logger)
BiasCombImg = chip_utils.formatOutput(GSImage=BiasCombImg)
self.nsecy = 1
self.nsecx = 16
# END
# Add Bias level
if config["ins_effects"]["add_bias"] == True:
if self.logger is not None:
self.logger.info(
" Adding Bias level and 16-channel non-uniformity")
else:
print(" Adding Bias level and 16-channel non-uniformity")
BiasCombImg = effects.AddBiasNonUniform16(BiasCombImg,
bias_level=biaslevel,
nsecy=self.nsecy, nsecx=self.nsecx,
seed=SeedBiasNonuni+self.chipID,
logger=self.logger)
rng = galsim.UniformDeviate()
ncombine = 1
NoiseBias = galsim.GaussianNoise(
rng=rng, sigma=self.read_noise*ncombine**0.5)
BiasCombImg.addNoise(NoiseBias)
BiasCombImg, self.gain_channel = effects.ApplyGainNonUniform16(BiasCombImg, gain=self.gain,
nsecy=self.nsecy, nsecx=self.nsecx,
seed=SeedGainNonuni+self.chipID,
logger=self.logger)
# BiasCombImg = effects.AddOverscan(
# BiasCombImg,
# overscan=float(config["ins_effects"]["bias_level"])-2, gain=self.gain,
# widthl=27, widthr=27, widtht=8, widthb=8)
BiasCombImg.replaceNegative(replace_value=0)
BiasCombImg.quantize()
BiasCombImg = galsim.ImageUS(BiasCombImg)
timestamp_obs += 10 * 60
chip_utils.outputCal(
chip=self,
img=BiasCombImg,
ra_cen=ra_cen,
dec_cen=dec_cen,
img_rot=img_rot,
im_type='BIAS',
pointing_ID=pointing_ID,
output_dir=chip_output.subdir,
exptime=0.0,
project_cycle=config["project_cycle"],
run_counter=config["run_counter"],
timestamp=timestamp_obs)
del BiasCombImg
# Export combined (ncombine, Vignetting + PRNU) & single vignetting flat-field file
if config["ins_effects"]["flat_fielding"] == True and config["output_setting"]["flat_output"] == True and pointing_type == 'CAL':
if self.logger is not None:
self.logger.info(" Output N frame Flat-Field files")
else:
print(" Output N frame Flat-Field files", flush=True)
NFlat = int(config["output_setting"]["NFlat"])
if config["ins_effects"]["add_bias"] == True:
biaslevel = self.bias_level
overscan = biaslevel-2
elif config["ins_effects"]["add_bias"] == False:
biaslevel = 0
overscan = 0
darklevel = self.dark_noise * \
(self.flat_exptime+0.5*self.readout_time)
for i in range(NFlat):
FlatSingle = flat_img * prnu_img + darklevel
FlatCombImg, FlatTag = effects.MakeFlatNcomb(
flat_single_image=FlatSingle,
ncombine=1,
read_noise=self.read_noise,
gain=1,
overscan=overscan,
biaslevel=0,
seed_bias=SeedDefective+self.chipID,
logger=self.logger
)
if config["ins_effects"]["cosmic_ray"] == True:
if config["ins_effects"]["cray_differ"] == True:
cr_map, cr_event_num = effects.produceCR_Map(
xLen=self.npix_x, yLen=self.npix_y,
exTime=self.flat_exptime+0.5*self.readout_time,
cr_pixelRatio=0.003 *
(self.flat_exptime+0.5*self.readout_time)/150.,
gain=self.gain,
attachedSizes=self.attachedSizes,
seed=SeedCosmicRay+pointing_ID*30+self.chipID+3)
# seed: obj-imaging:+0; bias:+1; dark:+2; flat:+3;
FlatCombImg += cr_map
del cr_map
# Add Hot Pixels or/and Dead Pixels
rgbadpix = Generator(PCG64(int(SeedDefective+self.chipID)))
badfraction = 5E-5*(rgbadpix.random()*0.5+0.7)
FlatCombImg = effects.DefectivePixels(
FlatCombImg, IfHotPix=BoolHotPix, IfDeadPix=BoolDeadPix, fraction=badfraction, seed=SeedDefective+self.chipID, biaslevel=0)
# Apply Bad lines
if config["ins_effects"]["add_badcolumns"] == True:
FlatCombImg = effects.BadColumns(
FlatCombImg, seed=SeedBadColumns, chipid=self.chipID, logger=self.logger)
if config["ins_effects"]["non_linear"] == True:
if self.logger is not None:
self.logger.info(
" Applying Non-Linearity on the Flat image")
else:
print(
" Applying Non-Linearity on the Flat image", flush=True)
FlatCombImg = effects.NonLinearity(
GSImage=FlatCombImg, beta1=5.e-7, beta2=0)
# elif config["ins_effects"]["bias_16channel"] == False:
# img += self.bias_level
# # Add Read-out Noise
# if config["ins_effects"]["add_readout"] == True:
# seed = int(config["random_seeds"]["seed_readout"]
# ) + pointing_ID*30 + self.chipID
# rng_readout = galsim.BaseDeviate(seed)
# readout_noise = galsim.GaussianNoise(
# rng=rng_readout, sigma=self.read_noise)
# img.addNoise(readout_noise)
# # Apply Gain & Quantization
# chip_utils.log_info(
# msg=" Applying Gain (and 16 channel non-uniformity) & Quantization", logger=self.logger)
# if config["ins_effects"]["gain_16channel"] == True:
# img, self.gain_channel = effects.ApplyGainNonUniform16(
# img, gain=self.gain,
# nsecy=self.nsecy, nsecx=self.nsecx,
# seed=SeedGainNonuni+self.chipID,
# logger=self.logger)
# elif config["ins_effects"]["gain_16channel"] == False:
# img /= self.gain
# img.array[img.array > 65535] = 65535
# img.replaceNegative(replace_value=0)
# img.quantize()
# ######################################################################################
# # Output images for calibration pointing
# ######################################################################################
# # Bias output
# if config["ins_effects"]["add_bias"] == True and config["output_setting"]["bias_output"] == True and pointing_type == 'CAL':
# if self.logger is not None:
# self.logger.info(" Output N frame Bias files")
# else:
# print(" Output N frame Bias files", flush=True)
# NBias = int(config["output_setting"]["NBias"])
# for i in range(NBias):
# # BiasCombImg, BiasTag = effects.MakeBiasNcomb(
# # self.npix_x, self.npix_y,
# # bias_level=float(self.bias_level),
# # ncombine=1, read_noise=self.read_noise, gain=1,
# # seed=SeedBiasNonuni+self.chipID,
# # logger=self.logger)
# BiasCombImg = galsim.Image(
# self.npix_x, self.npix_y, init_value=0)
# if config["ins_effects"]["add_bias"] == True:
# biaslevel = self.bias_level
# overscan = biaslevel-2
# elif config["ins_effects"]["add_bias"] == False:
# biaslevel = 0
# overscan = 0
# # Readout noise for Biases is not generated with random seeds. So readout noise for bias images can't be reproduced.
# if config["ins_effects"]["cosmic_ray"] == True:
# if config["ins_effects"]["cray_differ"] == True:
# cr_map, cr_event_num = effects.produceCR_Map(
# xLen=self.npix_x, yLen=self.npix_y,
# exTime=0.01,
# cr_pixelRatio=0.003 *
# (0.01+0.5*self.readout_time)/150.,
# gain=self.gain,
# attachedSizes=self.attachedSizes,
# seed=SeedCosmicRay+pointing_ID*30+self.chipID+1)
# # seed: obj-imaging:+0; bias:+1; dark:+2; flat:+3;
# BiasCombImg += cr_map
# del cr_map
# # Apply Bad lines
# if config["ins_effects"]["add_badcolumns"] == True:
# BiasCombImg = effects.BadColumns(
# BiasCombImg-float(self.bias_level)+5, seed=SeedBadColumns, chipid=self.chipID, logger=self.logger) + float(self.bias_level)-5
# # Non-Linearity for Bias
# if config["ins_effects"]["non_linear"] == True:
# if self.logger is not None:
# self.logger.info(
# " Applying Non-Linearity on the Bias image")
# else:
# print(
# " Applying Non-Linearity on the Bias image", flush=True)
# BiasCombImg = effects.NonLinearity(
# GSImage=BiasCombImg, beta1=5.e-7, beta2=0)
# # START
# pre1 = self.prescan_x # 27
# over1 = self.overscan_x # 71
# pre2 = self.prescan_y # 0 #4
# over2 = self.overscan_y # 84 #80
# # prescan & overscan
# if config["ins_effects"]["add_prescan"] == True:
# chip_utils.log_info(
# msg=" Apply pre/over-scan", logger=self.logger)
# BiasCombImg = chip_utils.AddPreScan(
# GSImage=BiasCombImg, pre1=pre1, pre2=pre2, over1=over1, over2=over2)
# # 1*16 output
# if config["ins_effects"]["format_output"] == True:
# chip_utils.log_info(
# msg=" Apply 1*16 format", logger=self.logger)
# BiasCombImg = chip_utils.formatOutput(GSImage=BiasCombImg)
# self.nsecy = 1
# self.nsecx = 16
# # END
# # Add Bias level
# if config["ins_effects"]["add_bias"] == True:
# if self.logger is not None:
# self.logger.info(
# " Adding Bias level and 16-channel non-uniformity")
# else:
# print(" Adding Bias level and 16-channel non-uniformity")
# BiasCombImg = effects.AddBiasNonUniform16(BiasCombImg,
# bias_level=biaslevel,
# nsecy=self.nsecy, nsecx=self.nsecx,
# seed=SeedBiasNonuni+self.chipID,
# logger=self.logger)
# rng = galsim.UniformDeviate()
# ncombine = 1
# NoiseBias = galsim.GaussianNoise(
# rng=rng, sigma=self.read_noise*ncombine**0.5)
# BiasCombImg.addNoise(NoiseBias)
# BiasCombImg, self.gain_channel = effects.ApplyGainNonUniform16(BiasCombImg, gain=self.gain,
# nsecy=self.nsecy, nsecx=self.nsecx,
# seed=SeedGainNonuni+self.chipID,
# logger=self.logger)
# # BiasCombImg = effects.AddOverscan(
# # BiasCombImg,
# # overscan=float(config["ins_effects"]["bias_level"])-2, gain=self.gain,
# # widthl=27, widthr=27, widtht=8, widthb=8)
# BiasCombImg.replaceNegative(replace_value=0)
# BiasCombImg.quantize()
# BiasCombImg = galsim.ImageUS(BiasCombImg)
# timestamp_obs += 10 * 60
# chip_utils.outputCal(
# chip=self,
# img=BiasCombImg,
# ra_cen=ra_cen,
# dec_cen=dec_cen,
# img_rot=img_rot,
# im_type='BIAS',
# pointing_ID=pointing_ID,
# output_dir=chip_output.subdir,
# exptime=0.0,
# project_cycle=config["project_cycle"],
# run_counter=config["run_counter"],
# timestamp=timestamp_obs)
# del BiasCombImg
# # Export combined (ncombine, Vignetting + PRNU) & single vignetting flat-field file
# if config["ins_effects"]["flat_fielding"] == True and config["output_setting"]["flat_output"] == True and pointing_type == 'CAL':
# if self.logger is not None:
# self.logger.info(" Output N frame Flat-Field files")
# else:
# print(" Output N frame Flat-Field files", flush=True)
# NFlat = int(config["output_setting"]["NFlat"])
# if config["ins_effects"]["add_bias"] == True:
# biaslevel = self.bias_level
# overscan = biaslevel-2
# elif config["ins_effects"]["add_bias"] == False:
# biaslevel = 0
# overscan = 0
# darklevel = self.dark_noise * \
# (self.flat_exptime+0.5*self.readout_time)
# for i in range(NFlat):
# FlatSingle = flat_img * prnu_img + darklevel
# FlatCombImg, FlatTag = effects.MakeFlatNcomb(
# flat_single_image=FlatSingle,
# ncombine=1,
# read_noise=self.read_noise,
# gain=1,
# overscan=overscan,
# biaslevel=0,
# seed_bias=SeedDefective+self.chipID,
# logger=self.logger
# )
# if config["ins_effects"]["cosmic_ray"] == True:
# if config["ins_effects"]["cray_differ"] == True:
# cr_map, cr_event_num = effects.produceCR_Map(
# xLen=self.npix_x, yLen=self.npix_y,
# exTime=self.flat_exptime+0.5*self.readout_time,
# cr_pixelRatio=0.003 *
# (self.flat_exptime+0.5*self.readout_time)/150.,
# gain=self.gain,
# attachedSizes=self.attachedSizes,
# seed=SeedCosmicRay+pointing_ID*30+self.chipID+3)
# # seed: obj-imaging:+0; bias:+1; dark:+2; flat:+3;
# FlatCombImg += cr_map
# del cr_map
# # Add Hot Pixels or/and Dead Pixels
# rgbadpix = Generator(PCG64(int(SeedDefective+self.chipID)))
# badfraction = 5E-5*(rgbadpix.random()*0.5+0.7)
# FlatCombImg = effects.DefectivePixels(
# FlatCombImg, IfHotPix=BoolHotPix, IfDeadPix=BoolDeadPix, fraction=badfraction, seed=SeedDefective+self.chipID, biaslevel=0)
# # Apply Bad lines
# if config["ins_effects"]["add_badcolumns"] == True:
# FlatCombImg = effects.BadColumns(
# FlatCombImg, seed=SeedBadColumns, chipid=self.chipID, logger=self.logger)
# if config["ins_effects"]["non_linear"] == True:
# if self.logger is not None:
# self.logger.info(
# " Applying Non-Linearity on the Flat image")
# else:
# print(
# " Applying Non-Linearity on the Flat image", flush=True)
# FlatCombImg = effects.NonLinearity(
# GSImage=FlatCombImg, beta1=5.e-7, beta2=0)
# # if config["ins_effects"]["cte_trail"] == True:
# # FlatCombImg = effects.CTE_Effect(GSImage=FlatCombImg, threshold=3)
# # START
# pre1 = self.prescan_x # 27
# over1 = self.overscan_x # 71
# pre2 = self.prescan_y # 0 #4
# over2 = self.overscan_y # 84 #80
# if config["ins_effects"]["cte_trail"] == True:
# FlatCombImg = effects.CTE_Effect(GSImage=FlatCombImg, threshold=3)
# START
pre1 = self.prescan_x # 27
over1 = self.overscan_x # 71
pre2 = self.prescan_y # 0 #4
over2 = self.overscan_y # 84 #80
if config["ins_effects"]["cte_trail"] == True:
chip_utils.log_info(
msg=" Apply CTE Effect", logger=self.logger)
# img = effects.CTE_Effect(GSImage=img, threshold=27)
# CTI_modeling
# 2*8 -> 1*16 img-layout
FlatCombImg = chip_utils.formatOutput(GSImage=FlatCombImg)
self.nsecy = 1
self.nsecx = 16
img_arr = FlatCombImg.array
ny, nx = img_arr.shape
dx = int(nx/self.nsecx)
dy = int(ny/self.nsecy)
newimg = galsim.Image(nx, int(ny+over2), init_value=0)
for ichannel in range(16):
print('\n***add CTI effects: pointing-{:} chip-{:} channel-{:}***'.format(
pointing_ID, self.chipID, ichannel+1))
# nx,ny,noverscan,nsp,nmax = 4608,4616,84,3,10
noverscan, nsp, nmax = over2, 3, 10
beta, w, c = 0.478, 84700, 0
t = np.array([0.74, 7.7, 37], dtype=np.float32)
rho_trap = np.array([0.6, 1.6, 1.4], dtype=np.float32)
trap_seeds = np.array(
[0, 1000, 10000], dtype=np.int32) + ichannel + self.chipID*16
release_seed = 50 + ichannel + pointing_ID*30 + self.chipID*16
newimg.array[:, 0+ichannel*dx:dx+ichannel*dx] = CTI_sim(
img_arr[:, 0+ichannel*dx:dx+ichannel*dx], dx, dy, noverscan, nsp, nmax, beta, w, c, t, rho_trap, trap_seeds, release_seed)
newimg.wcs = FlatCombImg.wcs
del FlatCombImg
FlatCombImg = newimg
# 1*16 -> 2*8 img-layout
FlatCombImg = chip_utils.formatRevert(GSImage=FlatCombImg)
self.nsecy = 2
self.nsecx = 8
# prescan & overscan
if config["ins_effects"]["add_prescan"] == True:
chip_utils.log_info(
msg=" Apply pre/over-scan", logger=self.logger)
if config["ins_effects"]["cte_trail"] == False:
FlatCombImg = chip_utils.AddPreScan(
GSImage=FlatCombImg, pre1=pre1, pre2=pre2, over1=over1, over2=over2)
if config["ins_effects"]["cte_trail"] == True:
FlatCombImg = chip_utils.AddPreScan(
GSImage=FlatCombImg, pre1=pre1, pre2=pre2, over1=over1, over2=0)
# 1*16 output
if config["ins_effects"]["format_output"] == True:
chip_utils.log_info(
msg=" Apply 1*16 format", logger=self.logger)
FlatCombImg = chip_utils.formatOutput(GSImage=FlatCombImg)
self.nsecy = 1
self.nsecx = 16
# END
# Add Bias level
if config["ins_effects"]["add_bias"] == True:
if self.logger is not None:
self.logger.info(
" Adding Bias level and 16-channel non-uniformity")
else:
print(" Adding Bias level and 16-channel non-uniformity")
# img += float(config["ins_effects"]["bias_level"])
FlatCombImg = effects.AddBiasNonUniform16(FlatCombImg,
bias_level=biaslevel,
nsecy=self.nsecy, nsecx=self.nsecx,
seed=SeedBiasNonuni+self.chipID,
logger=self.logger)
# Add Read-out Noise
if config["ins_effects"]["add_readout"] == True:
seed = int(config["random_seeds"]["seed_readout"]
) + pointing_ID*30 + self.chipID + 3
rng_readout = galsim.BaseDeviate(seed)
readout_noise = galsim.GaussianNoise(
rng=rng_readout, sigma=self.read_noise)
FlatCombImg.addNoise(readout_noise)
FlatCombImg, self.gain_channel = effects.ApplyGainNonUniform16(FlatCombImg, gain=self.gain,
nsecy=self.nsecy, nsecx=self.nsecx,
seed=SeedGainNonuni+self.chipID,
logger=self.logger)
# FlatCombImg = effects.AddOverscan(FlatCombImg, overscan=overscan, gain=self.gain, widthl=27, widthr=27, widtht=8, widthb=8)
FlatCombImg.replaceNegative(replace_value=0)
FlatCombImg.quantize()
FlatCombImg = galsim.ImageUS(FlatCombImg)
timestamp_obs += 10 * 60
chip_utils.outputCal(
chip=self,
img=FlatCombImg,
ra_cen=ra_cen,
dec_cen=dec_cen,
img_rot=img_rot,
im_type='FLAT',
pointing_ID=pointing_ID,
output_dir=chip_output.subdir,
exptime=self.flat_exptime,
project_cycle=config["project_cycle"],
run_counter=config["run_counter"],
timestamp=timestamp_obs)
del FlatCombImg, FlatSingle, prnu_img
# flat_img.replaceNegative(replace_value=0)
# flat_img.quantize()
# galsim.ImageUS(flat_img).write("%s/FlatImg_Vignette_%s.fits" % (chip_output.subdir, self.chipID))
del flat_img
# Export Dark current images
if config["ins_effects"]["add_dark"] == True and config["output_setting"]["dark_output"] == True and pointing_type == 'CAL':
if self.logger is not None:
self.logger.info(" Output N frame Dark Current files")
else:
print(" Output N frame Dark Current files", flush=True)
NDark = int(config["output_setting"]["NDark"])
if config["ins_effects"]["add_bias"] == True:
biaslevel = self.bias_level
overscan = biaslevel-2
elif config["ins_effects"]["add_bias"] == False:
biaslevel = 0
overscan = 0
for i in range(NDark):
DarkCombImg, DarkTag = effects.MakeDarkNcomb(
self.npix_x, self.npix_y,
overscan=overscan, bias_level=0, darkpsec=0.02, exptime=self.dark_exptime+0.5*self.readout_time,
ncombine=1, read_noise=self.read_noise,
gain=1, seed_bias=SeedBiasNonuni+self.chipID,
logger=self.logger)
if config["ins_effects"]["cosmic_ray"] == True:
if config["ins_effects"]["cray_differ"] == True:
cr_map, cr_event_num = effects.produceCR_Map(
xLen=self.npix_x, yLen=self.npix_y,
exTime=self.dark_exptime+0.5*self.readout_time,
cr_pixelRatio=0.003 *
(self.dark_exptime+0.5*self.readout_time)/150.,
gain=self.gain,
attachedSizes=self.attachedSizes,
seed=SeedCosmicRay+pointing_ID*30+self.chipID+2)
# seed: obj-imaging:+0; bias:+1; dark:+2; flat:+3;
DarkCombImg += cr_map
cr_map[cr_map > 65535] = 65535
cr_map[cr_map < 0] = 0
crmap_gsimg = galsim.Image(cr_map, dtype=np.uint16)
del cr_map
# START
# prescan & overscan
if config["ins_effects"]["add_prescan"] == True:
chip_utils.log_info(
msg=" Apply pre/over-scan", logger=self.logger)
crmap_gsimg = chip_utils.AddPreScan(
GSImage=crmap_gsimg, pre1=pre1, pre2=pre2, over1=over1, over2=over2)
# 1*16 output
if config["ins_effects"]["format_output"] == True:
chip_utils.log_info(
msg=" Apply 1*16 format", logger=self.logger)
crmap_gsimg = chip_utils.formatOutput(
GSImage=crmap_gsimg)
self.nsecy = 1
self.nsecx = 16
# END
chip_utils.outputCal(
chip=self,
img=crmap_gsimg,
ra_cen=ra_cen,
dec_cen=dec_cen,
img_rot=img_rot,
im_type='CRD',
pointing_ID=pointing_ID,
output_dir=chip_output.subdir,
exptime=self.dark_exptime,
project_cycle=config["project_cycle"],
run_counter=config["run_counter"],
timestamp=timestamp_obs)
del crmap_gsimg
# Add Hot Pixels or/and Dead Pixels
rgbadpix = Generator(PCG64(int(SeedDefective+self.chipID)))
badfraction = 5E-5*(rgbadpix.random()*0.5+0.7)
DarkCombImg = effects.DefectivePixels(
DarkCombImg, IfHotPix=BoolHotPix, IfDeadPix=BoolDeadPix, fraction=badfraction, seed=SeedDefective+self.chipID, biaslevel=0)
# Apply Bad lines
if config["ins_effects"]["add_badcolumns"] == True:
DarkCombImg = effects.BadColumns(
DarkCombImg, seed=SeedBadColumns, chipid=self.chipID, logger=self.logger)
# Non-Linearity for Dark
if config["ins_effects"]["non_linear"] == True:
if self.logger is not None:
self.logger.info(
" Applying Non-Linearity on the Dark image")
else:
print(
" Applying Non-Linearity on the Dark image", flush=True)
DarkCombImg = effects.NonLinearity(
GSImage=DarkCombImg, beta1=5.e-7, beta2=0)
# chip_utils.log_info(
# msg=" Apply CTE Effect", logger=self.logger)
# # img = effects.CTE_Effect(GSImage=img, threshold=27)
# # CTI_modeling
# # 2*8 -> 1*16 img-layout
# FlatCombImg = chip_utils.formatOutput(GSImage=FlatCombImg)
# self.nsecy = 1
# self.nsecx = 16
# img_arr = FlatCombImg.array
# ny, nx = img_arr.shape
# dx = int(nx/self.nsecx)
# dy = int(ny/self.nsecy)
# newimg = galsim.Image(nx, int(ny+over2), init_value=0)
# for ichannel in range(16):
# print('\n***add CTI effects: pointing-{:} chip-{:} channel-{:}***'.format(
# pointing_ID, self.chipID, ichannel+1))
# # nx,ny,noverscan,nsp,nmax = 4608,4616,84,3,10
# noverscan, nsp, nmax = over2, 3, 10
# beta, w, c = 0.478, 84700, 0
# t = np.array([0.74, 7.7, 37], dtype=np.float32)
# rho_trap = np.array([0.6, 1.6, 1.4], dtype=np.float32)
# trap_seeds = np.array(
# [0, 1000, 10000], dtype=np.int32) + ichannel + self.chipID*16
# release_seed = 50 + ichannel + pointing_ID*30 + self.chipID*16
# newimg.array[:, 0+ichannel*dx:dx+ichannel*dx] = CTI_sim(
# img_arr[:, 0+ichannel*dx:dx+ichannel*dx], dx, dy, noverscan, nsp, nmax, beta, w, c, t, rho_trap, trap_seeds, release_seed)
# newimg.wcs = FlatCombImg.wcs
# del FlatCombImg
# FlatCombImg = newimg
# # 1*16 -> 2*8 img-layout
# FlatCombImg = chip_utils.formatRevert(GSImage=FlatCombImg)
# self.nsecy = 2
# self.nsecx = 8
# # prescan & overscan
# if config["ins_effects"]["add_prescan"] == True:
# chip_utils.log_info(
# msg=" Apply pre/over-scan", logger=self.logger)
# if config["ins_effects"]["cte_trail"] == False:
# FlatCombImg = chip_utils.AddPreScan(
# GSImage=FlatCombImg, pre1=pre1, pre2=pre2, over1=over1, over2=over2)
# if config["ins_effects"]["cte_trail"] == True:
# FlatCombImg = chip_utils.AddPreScan(
# GSImage=FlatCombImg, pre1=pre1, pre2=pre2, over1=over1, over2=0)
# # 1*16 output
# if config["ins_effects"]["format_output"] == True:
# chip_utils.log_info(
# msg=" Apply 1*16 format", logger=self.logger)
# FlatCombImg = chip_utils.formatOutput(GSImage=FlatCombImg)
# self.nsecy = 1
# self.nsecx = 16
# # END
# # Add Bias level
# if config["ins_effects"]["add_bias"] == True:
# if self.logger is not None:
# self.logger.info(
# " Adding Bias level and 16-channel non-uniformity")
# else:
# print(" Adding Bias level and 16-channel non-uniformity")
# # img += float(config["ins_effects"]["bias_level"])
# FlatCombImg = effects.AddBiasNonUniform16(FlatCombImg,
# bias_level=biaslevel,
# nsecy=self.nsecy, nsecx=self.nsecx,
# seed=SeedBiasNonuni+self.chipID,
# logger=self.logger)
# # Add Read-out Noise
# if config["ins_effects"]["add_readout"] == True:
# seed = int(config["random_seeds"]["seed_readout"]
# ) + pointing_ID*30 + self.chipID + 3
# rng_readout = galsim.BaseDeviate(seed)
# readout_noise = galsim.GaussianNoise(
# rng=rng_readout, sigma=self.read_noise)
# FlatCombImg.addNoise(readout_noise)
# FlatCombImg, self.gain_channel = effects.ApplyGainNonUniform16(FlatCombImg, gain=self.gain,
# nsecy=self.nsecy, nsecx=self.nsecx,
# seed=SeedGainNonuni+self.chipID,
# logger=self.logger)
# # FlatCombImg = effects.AddOverscan(FlatCombImg, overscan=overscan, gain=self.gain, widthl=27, widthr=27, widtht=8, widthb=8)
# FlatCombImg.replaceNegative(replace_value=0)
# FlatCombImg.quantize()
# FlatCombImg = galsim.ImageUS(FlatCombImg)
# timestamp_obs += 10 * 60
# chip_utils.outputCal(
# chip=self,
# img=FlatCombImg,
# ra_cen=ra_cen,
# dec_cen=dec_cen,
# img_rot=img_rot,
# im_type='FLAT',
# pointing_ID=pointing_ID,
# output_dir=chip_output.subdir,
# exptime=self.flat_exptime,
# project_cycle=config["project_cycle"],
# run_counter=config["run_counter"],
# timestamp=timestamp_obs)
# del FlatCombImg, FlatSingle, prnu_img
# # flat_img.replaceNegative(replace_value=0)
# # flat_img.quantize()
# # galsim.ImageUS(flat_img).write("%s/FlatImg_Vignette_%s.fits" % (chip_output.subdir, self.chipID))
# del flat_img
# # Export Dark current images
# if config["ins_effects"]["add_dark"] == True and config["output_setting"]["dark_output"] == True and pointing_type == 'CAL':
# if self.logger is not None:
# self.logger.info(" Output N frame Dark Current files")
# else:
# print(" Output N frame Dark Current files", flush=True)
# NDark = int(config["output_setting"]["NDark"])
# if config["ins_effects"]["add_bias"] == True:
# biaslevel = self.bias_level
# overscan = biaslevel-2
# elif config["ins_effects"]["add_bias"] == False:
# biaslevel = 0
# overscan = 0
# for i in range(NDark):
# DarkCombImg, DarkTag = effects.MakeDarkNcomb(
# self.npix_x, self.npix_y,
# overscan=overscan, bias_level=0, darkpsec=0.02, exptime=self.dark_exptime+0.5*self.readout_time,
# ncombine=1, read_noise=self.read_noise,
# gain=1, seed_bias=SeedBiasNonuni+self.chipID,
# logger=self.logger)
# if config["ins_effects"]["cosmic_ray"] == True:
# if config["ins_effects"]["cray_differ"] == True:
# cr_map, cr_event_num = effects.produceCR_Map(
# xLen=self.npix_x, yLen=self.npix_y,
# exTime=self.dark_exptime+0.5*self.readout_time,
# cr_pixelRatio=0.003 *
# (self.dark_exptime+0.5*self.readout_time)/150.,
# gain=self.gain,
# attachedSizes=self.attachedSizes,
# seed=SeedCosmicRay+pointing_ID*30+self.chipID+2)
# # seed: obj-imaging:+0; bias:+1; dark:+2; flat:+3;
# DarkCombImg += cr_map
# cr_map[cr_map > 65535] = 65535
# cr_map[cr_map < 0] = 0
# crmap_gsimg = galsim.Image(cr_map, dtype=np.uint16)
# del cr_map
# # START
# # prescan & overscan
# if config["ins_effects"]["add_prescan"] == True:
# chip_utils.log_info(
# msg=" Apply pre/over-scan", logger=self.logger)
# crmap_gsimg = chip_utils.AddPreScan(
# GSImage=crmap_gsimg, pre1=pre1, pre2=pre2, over1=over1, over2=over2)
# # 1*16 output
# if config["ins_effects"]["format_output"] == True:
# chip_utils.log_info(
# msg=" Apply 1*16 format", logger=self.logger)
# crmap_gsimg = chip_utils.formatOutput(
# GSImage=crmap_gsimg)
# self.nsecy = 1
# self.nsecx = 16
# # END
# chip_utils.outputCal(
# chip=self,
# img=crmap_gsimg,
# ra_cen=ra_cen,
# dec_cen=dec_cen,
# img_rot=img_rot,
# im_type='CRD',
# pointing_ID=pointing_ID,
# output_dir=chip_output.subdir,
# exptime=self.dark_exptime,
# project_cycle=config["project_cycle"],
# run_counter=config["run_counter"],
# timestamp=timestamp_obs)
# del crmap_gsimg
# # Add Hot Pixels or/and Dead Pixels
# rgbadpix = Generator(PCG64(int(SeedDefective+self.chipID)))
# badfraction = 5E-5*(rgbadpix.random()*0.5+0.7)
# DarkCombImg = effects.DefectivePixels(
# DarkCombImg, IfHotPix=BoolHotPix, IfDeadPix=BoolDeadPix, fraction=badfraction, seed=SeedDefective+self.chipID, biaslevel=0)
# # Apply Bad lines
# if config["ins_effects"]["add_badcolumns"] == True:
# DarkCombImg = effects.BadColumns(
# DarkCombImg, seed=SeedBadColumns, chipid=self.chipID, logger=self.logger)
# # Non-Linearity for Dark
# if config["ins_effects"]["non_linear"] == True:
# if self.logger is not None:
# self.logger.info(
# " Applying Non-Linearity on the Dark image")
# else:
# print(
# " Applying Non-Linearity on the Dark image", flush=True)
# DarkCombImg = effects.NonLinearity(
# GSImage=DarkCombImg, beta1=5.e-7, beta2=0)
# # if config["ins_effects"]["cte_trail"] == True:
# # DarkCombImg = effects.CTE_Effect(GSImage=DarkCombImg, threshold=3)
# # START
# pre1 = self.prescan_x # 27
# over1 = self.overscan_x # 71
# pre2 = self.prescan_y # 0 #4
# over2 = self.overscan_y # 84 #80
# if config["ins_effects"]["cte_trail"] == True:
# DarkCombImg = effects.CTE_Effect(GSImage=DarkCombImg, threshold=3)
# START
pre1 = self.prescan_x # 27
over1 = self.overscan_x # 71
pre2 = self.prescan_y # 0 #4
over2 = self.overscan_y # 84 #80
if config["ins_effects"]["cte_trail"] == True:
chip_utils.log_info(
msg=" Apply CTE Effect", logger=self.logger)
# img = effects.CTE_Effect(GSImage=img, threshold=27)
# CTI_modeling
# 2*8 -> 1*16 img-layout
DarkCombImg = chip_utils.formatOutput(GSImage=DarkCombImg)
self.nsecy = 1
self.nsecx = 16
img_arr = DarkCombImg.array
ny, nx = img_arr.shape
dx = int(nx/self.nsecx)
dy = int(ny/self.nsecy)
newimg = galsim.Image(nx, int(ny+over2), init_value=0)
for ichannel in range(16):
print('\n***add CTI effects: pointing-{:} chip-{:} channel-{:}***'.format(
pointing_ID, self.chipID, ichannel+1))
# nx,ny,noverscan,nsp,nmax = 4608,4616,84,3,10
noverscan, nsp, nmax = over2, 3, 10
beta, w, c = 0.478, 84700, 0
t = np.array([0.74, 7.7, 37], dtype=np.float32)
rho_trap = np.array([0.6, 1.6, 1.4], dtype=np.float32)
trap_seeds = np.array(
[0, 1000, 10000], dtype=np.int32) + ichannel + self.chipID*16
release_seed = 50 + ichannel + pointing_ID*30 + self.chipID*16
newimg.array[:, 0+ichannel*dx:dx+ichannel*dx] = CTI_sim(
img_arr[:, 0+ichannel*dx:dx+ichannel*dx], dx, dy, noverscan, nsp, nmax, beta, w, c, t, rho_trap, trap_seeds, release_seed)
newimg.wcs = DarkCombImg.wcs
del DarkCombImg
DarkCombImg = newimg
# 1*16 -> 2*8 img-layout
DarkCombImg = chip_utils.formatRevert(GSImage=DarkCombImg)
self.nsecy = 2
self.nsecx = 8
# chip_utils.log_info(
# msg=" Apply CTE Effect", logger=self.logger)
# # img = effects.CTE_Effect(GSImage=img, threshold=27)
# # CTI_modeling
# # 2*8 -> 1*16 img-layout
# DarkCombImg = chip_utils.formatOutput(GSImage=DarkCombImg)
# self.nsecy = 1
# self.nsecx = 16
# img_arr = DarkCombImg.array
# ny, nx = img_arr.shape
# dx = int(nx/self.nsecx)
# dy = int(ny/self.nsecy)
# newimg = galsim.Image(nx, int(ny+over2), init_value=0)
# for ichannel in range(16):
# print('\n***add CTI effects: pointing-{:} chip-{:} channel-{:}***'.format(
# pointing_ID, self.chipID, ichannel+1))
# # nx,ny,noverscan,nsp,nmax = 4608,4616,84,3,10
# noverscan, nsp, nmax = over2, 3, 10
# beta, w, c = 0.478, 84700, 0
# t = np.array([0.74, 7.7, 37], dtype=np.float32)
# rho_trap = np.array([0.6, 1.6, 1.4], dtype=np.float32)
# trap_seeds = np.array(
# [0, 1000, 10000], dtype=np.int32) + ichannel + self.chipID*16
# release_seed = 50 + ichannel + pointing_ID*30 + self.chipID*16
# newimg.array[:, 0+ichannel*dx:dx+ichannel*dx] = CTI_sim(
# img_arr[:, 0+ichannel*dx:dx+ichannel*dx], dx, dy, noverscan, nsp, nmax, beta, w, c, t, rho_trap, trap_seeds, release_seed)
# newimg.wcs = DarkCombImg.wcs
# del DarkCombImg
# DarkCombImg = newimg
# # 1*16 -> 2*8 img-layout
# DarkCombImg = chip_utils.formatRevert(GSImage=DarkCombImg)
# self.nsecy = 2
# self.nsecx = 8
# # prescan & overscan
# if config["ins_effects"]["add_prescan"] == True:
# chip_utils.log_info(
# msg=" Apply pre/over-scan", logger=self.logger)
# if config["ins_effects"]["cte_trail"] == False:
# DarkCombImg = chip_utils.AddPreScan(
# GSImage=DarkCombImg, pre1=pre1, pre2=pre2, over1=over1, over2=over2)
# if config["ins_effects"]["cte_trail"] == True:
# DarkCombImg = chip_utils.AddPreScan(
# GSImage=DarkCombImg, pre1=pre1, pre2=pre2, over1=over1, over2=0)
# # 1*16 output
# if config["ins_effects"]["format_output"] == True:
# chip_utils.log_info(
# msg=" Apply 1*16 format", logger=self.logger)
# DarkCombImg = chip_utils.formatOutput(GSImage=DarkCombImg)
# self.nsecy = 1
# self.nsecx = 16
# # END
# # Add Bias level
# if config["ins_effects"]["add_bias"] == True:
# if self.logger is not None:
# self.logger.info(
# " Adding Bias level and 16-channel non-uniformity")
# else:
# print(" Adding Bias level and 16-channel non-uniformity")
# # img += float(config["ins_effects"]["bias_level"])
# DarkCombImg = effects.AddBiasNonUniform16(DarkCombImg,
# bias_level=biaslevel,
# nsecy=self.nsecy, nsecx=self.nsecx,
# seed=SeedBiasNonuni+self.chipID,
# logger=self.logger)
# prescan & overscan
if config["ins_effects"]["add_prescan"] == True:
chip_utils.log_info(
msg=" Apply pre/over-scan", logger=self.logger)
if config["ins_effects"]["cte_trail"] == False:
DarkCombImg = chip_utils.AddPreScan(
GSImage=DarkCombImg, pre1=pre1, pre2=pre2, over1=over1, over2=over2)
if config["ins_effects"]["cte_trail"] == True:
DarkCombImg = chip_utils.AddPreScan(
GSImage=DarkCombImg, pre1=pre1, pre2=pre2, over1=over1, over2=0)
# 1*16 output
if config["ins_effects"]["format_output"] == True:
chip_utils.log_info(
msg=" Apply 1*16 format", logger=self.logger)
DarkCombImg = chip_utils.formatOutput(GSImage=DarkCombImg)
self.nsecy = 1
self.nsecx = 16
# END
# Add Bias level
if config["ins_effects"]["add_bias"] == True:
if self.logger is not None:
self.logger.info(
" Adding Bias level and 16-channel non-uniformity")
else:
print(" Adding Bias level and 16-channel non-uniformity")
# img += float(config["ins_effects"]["bias_level"])
DarkCombImg = effects.AddBiasNonUniform16(DarkCombImg,
bias_level=biaslevel,
nsecy=self.nsecy, nsecx=self.nsecx,
seed=SeedBiasNonuni+self.chipID,
logger=self.logger)
# Add Read-out Noise
if config["ins_effects"]["add_readout"] == True:
seed = int(config["random_seeds"]["seed_readout"]
) + pointing_ID*30 + self.chipID + 2
rng_readout = galsim.BaseDeviate(seed)
readout_noise = galsim.GaussianNoise(
rng=rng_readout, sigma=self.read_noise)
DarkCombImg.addNoise(readout_noise)
DarkCombImg, self.gain_channel = effects.ApplyGainNonUniform16(
DarkCombImg, gain=self.gain,
nsecy=self.nsecy, nsecx=self.nsecx,
seed=SeedGainNonuni+self.chipID,
logger=self.logger)
# DarkCombImg = effects.AddOverscan(
# DarkCombImg,
# overscan=overscan, gain=self.gain,
# widthl=27, widthr=27, widtht=8, widthb=8)
DarkCombImg.replaceNegative(replace_value=0)
DarkCombImg.quantize()
DarkCombImg = galsim.ImageUS(DarkCombImg)
timestamp_obs += 10 * 60
chip_utils.outputCal(
chip=self,
img=DarkCombImg,
ra_cen=ra_cen,
dec_cen=dec_cen,
img_rot=img_rot,
im_type='DARK',
pointing_ID=pointing_ID,
output_dir=chip_output.subdir,
exptime=self.dark_exptime,
project_cycle=config["project_cycle"],
run_counter=config["run_counter"],
timestamp=timestamp_obs)
del DarkCombImg
# img = galsim.ImageUS(img)
# # 16 output channel, with each a single image file
# if config["ins_effects"]["readout16"] == True:
# print(" 16 Output Channel simulation")
# for coli in [0, 1]:
# for rowi in range(8):
# sub_img = effects.readout16(
# GSImage=img,
# rowi=rowi,
# coli=coli,
# overscan_value=self.overscan)
# rowcoltag = str(rowi) + str(coli)
# img_name_root = chip_output.img_name.split(".")[0]
# sub_img.write("%s/%s_%s.fits" % (chip_output.subdir, img_name_root, rowcoltag))
# del sub_img
return img
# # Add Read-out Noise
# if config["ins_effects"]["add_readout"] == True:
# seed = int(config["random_seeds"]["seed_readout"]
# ) + pointing_ID*30 + self.chipID + 2
# rng_readout = galsim.BaseDeviate(seed)
# readout_noise = galsim.GaussianNoise(
# rng=rng_readout, sigma=self.read_noise)
# DarkCombImg.addNoise(readout_noise)
# DarkCombImg, self.gain_channel = effects.ApplyGainNonUniform16(
# DarkCombImg, gain=self.gain,
# nsecy=self.nsecy, nsecx=self.nsecx,
# seed=SeedGainNonuni+self.chipID,
# logger=self.logger)
# # DarkCombImg = effects.AddOverscan(
# # DarkCombImg,
# # overscan=overscan, gain=self.gain,
# # widthl=27, widthr=27, widtht=8, widthb=8)
# DarkCombImg.replaceNegative(replace_value=0)
# DarkCombImg.quantize()
# DarkCombImg = galsim.ImageUS(DarkCombImg)
# timestamp_obs += 10 * 60
# chip_utils.outputCal(
# chip=self,
# img=DarkCombImg,
# ra_cen=ra_cen,
# dec_cen=dec_cen,
# img_rot=img_rot,
# im_type='DARK',
# pointing_ID=pointing_ID,
# output_dir=chip_output.subdir,
# exptime=self.dark_exptime,
# project_cycle=config["project_cycle"],
# run_counter=config["run_counter"],
# timestamp=timestamp_obs)
# del DarkCombImg
# # img = galsim.ImageUS(img)
# # # 16 output channel, with each a single image file
# # if config["ins_effects"]["readout16"] == True:
# # print(" 16 Output Channel simulation")
# # for coli in [0, 1]:
# # for rowi in range(8):
# # sub_img = effects.readout16(
# # GSImage=img,
# # rowi=rowi,
# # coli=coli,
# # overscan_value=self.overscan)
# # rowcoltag = str(rowi) + str(coli)
# # img_name_root = chip_output.img_name.split(".")[0]
# # sub_img.write("%s/%s_%s.fits" % (chip_output.subdir, img_name_root, rowcoltag))
# # del sub_img
# return img
import galsim
import numpy as np
class FocalPlane(object):
def __init__(self, config=None, chip_list=None, survey_type='Photometric', bad_chips=None):
def __init__(self, chip_list=None, survey_type='Photometric', bad_chips=None):
"""Get the focal plane layout
"""
self.nchips = 42
......@@ -39,18 +40,18 @@ class FocalPlane(object):
for i in range(1, 31):
self.ignore_chips.append(i)
if config is not None:
self.nchip_x = config["nchip_x"]
self.nchip_y = config["nchip_y"]
self.npix_tot_x = config["npix_tot_x"]
self.npix_tot_y = config["npix_tot_y"]
self.npix_gap_x = config["npix_gap_x"]
self.npix_gap_y = config["npix_gap_y"]
if "chipLabelIDs" in config:
self.chipLabelIDs = config["chipLabelIDs"]
if "bad_chips" in config:
self.bad_chips = config["bad_chips"]
else:
# if config is not None:
# self.nchip_x = config["nchip_x"]
# self.nchip_y = config["nchip_y"]
# self.npix_tot_x = config["npix_tot_x"]
# self.npix_tot_y = config["npix_tot_y"]
# self.npix_gap_x = config["npix_gap_x"]
# self.npix_gap_y = config["npix_gap_y"]
# if "chipLabelIDs" in config:
# self.chipLabelIDs = config["chipLabelIDs"]
# if "bad_chips" in config:
# self.bad_chips = config["bad_chips"]
# else:
self.nchip_x = 6
self.nchip_y = 5
self.npix_tot_x = 59516
......@@ -65,7 +66,7 @@ class FocalPlane(object):
self.cen_pix_y = 0
def getChipLabel(self, chipID):
return str("0%d"%chipID)[-2:]
return str("0%d" % chipID)[-2:]
def isBadChip(self, chipID):
"""Check if chip #(chipID) on the focal plane is bad or not
......@@ -89,7 +90,8 @@ class FocalPlane(object):
WCS of the focal plane
"""
if logger is not None:
logger.info(" Construct the wcs of the entire image mosaic using Gnomonic/TAN projection")
logger.info(
" Construct the wcs of the entire image mosaic using Gnomonic/TAN projection")
if (xcen == None) or (ycen == None):
xcen = self.cen_pix_x
ycen = self.cen_pix_y
......@@ -104,7 +106,8 @@ class FocalPlane(object):
dvdy = -np.cos(img_rot.rad) * pix_scale
moscen = galsim.PositionD(x=xcen, y=ycen)
sky_center = galsim.CelestialCoord(ra=ra*galsim.degrees, dec=dec*galsim.degrees)
sky_center = galsim.CelestialCoord(
ra=ra*galsim.degrees, dec=dec*galsim.degrees)
affine = galsim.AffineTransform(dudx, dudy, dvdx, dvdy, origin=moscen)
WCS = galsim.TanWCS(affine, sky_center, units=galsim.arcsec)
......@@ -115,10 +118,10 @@ class FocalPlane(object):
The sky coverage of an area
"""
r2d = 180.0/np.pi
s1 = wcs.toWorld(galsim.PositionD(x0,y0))
s2 = wcs.toWorld(galsim.PositionD(x0,y1))
s3 = wcs.toWorld(galsim.PositionD(x1,y0))
s4 = wcs.toWorld(galsim.PositionD(x1,y1))
s1 = wcs.toWorld(galsim.PositionD(x0, y0))
s2 = wcs.toWorld(galsim.PositionD(x0, y1))
s3 = wcs.toWorld(galsim.PositionD(x1, y0))
s4 = wcs.toWorld(galsim.PositionD(x1, y1))
ra = [s1.ra.rad*r2d, s2.ra.rad*r2d, s3.ra.rad*r2d, s4.ra.rad*r2d]
dec = [s1.dec.rad*r2d, s2.dec.rad*r2d, s3.dec.rad*r2d, s4.dec.rad*r2d]
......
-5.6762217e-02 -1.1179007e+00 -2.0436628e+00 -2.8425037e+00 -3.5228787e+00 -4.0932431e+00 -4.5620519e+00 -4.9377604e+00 -5.2288239e+00 -5.4436975e+00 -5.5984256e+00 -5.7394089e+00 -5.9206373e+00 -6.1961006e+00 -6.6197888e+00 -7.2212055e+00 -7.9319101e+00 -8.6589761e+00 -9.3094766e+00 -9.7904850e+00 -1.0035258e+01 -1.0081788e+01 -9.9942484e+00 -9.8368156e+00 -9.6736641e+00 -9.5573981e+00 -9.4943368e+00 -9.4792287e+00 -9.5068220e+00 -9.5718652e+00 -9.6654976e+00 -9.7644232e+00 -9.8417369e+00 -9.8705338e+00 -9.8239087e+00 -9.6906665e+00 -9.5224502e+00 -9.3866128e+00 -9.3505071e+00 -9.4814861e+00 -9.8469024e+00 -1.0514109e+01 -1.1550459e+01 -1.3023305e+01 -1.5000000e+01
-5.6565136e-02 -1.1151415e+00 -2.0405204e+00 -2.8405001e+00 -3.5228787e+00 -4.0954548e+00 -4.5660264e+00 -4.9423918e+00 -5.2323494e+00 -5.4436975e+00 -5.5924387e+00 -5.7273935e+00 -5.9055868e+00 -6.1840436e+00 -6.6197888e+00 -7.2437066e+00 -7.9821192e+00 -8.7352080e+00 -9.4031545e+00 -9.8861402e+00 -1.0113397e+01 -1.0130361e+01 -1.0011518e+01 -9.8313537e+00 -9.6643546e+00 -9.5696097e+00 -9.5446213e+00 -9.5714945e+00 -9.6323346e+00 -9.7092467e+00 -9.7850940e+00 -9.8457719e+00 -9.8779333e+00 -9.8682317e+00 -9.8033200e+00 -9.6816702e+00 -9.5490287e+00 -9.4629605e+00 -9.4810307e+00 -9.6608043e+00 -1.0059846e+01 -1.0735722e+01 -1.1745996e+01 -1.3148234e+01 -1.5000000e+01
-5.6388704e-02 -1.1126715e+00 -2.0377073e+00 -2.8387063e+00 -3.5228787e+00 -4.0974347e+00 -4.5695844e+00 -4.9465380e+00 -5.2355056e+00 -5.4436975e+00 -5.5870791e+00 -5.7166370e+00 -5.8921133e+00 -6.1732499e+00 -6.6197888e+00 -7.2638482e+00 -8.0270519e+00 -8.8034000e+00 -9.4868924e+00 -9.9715293e+00 -1.0182945e+01 -1.0173315e+01 -1.0026446e+01 -9.8261467e+00 -9.6562267e+00 -9.5816195e+00 -9.5917603e+00 -9.6572096e+00 -9.7485279e+00 -9.8362757e+00 -9.8957676e+00 -9.9213351e+00 -9.9120638e+00 -9.8670391e+00 -9.7853468e+00 -9.6743218e+00 -9.5742972e+00 -9.5338552e+00 -9.6015784e+00 -9.8260490e+00 -1.0255850e+01 -1.0939563e+01 -1.1925770e+01 -1.3263055e+01 -1.5000000e+01
-5.6232254e-02 -1.1104812e+00 -2.0352128e+00 -2.8371158e+00 -3.5228787e+00 -4.0991904e+00 -4.5727395e+00 -4.9502145e+00 -5.2383043e+00 -5.4436975e+00 -5.5823265e+00 -5.7070988e+00 -5.8801658e+00 -6.1636787e+00 -6.6197888e+00 -7.2817066e+00 -8.0668792e+00 -8.8638132e+00 -9.5610148e+00 -1.0046990e+01 -1.0244191e+01 -1.0210845e+01 -1.0039125e+01 -9.8212036e+00 -9.6492544e+00 -9.5934349e+00 -9.6358423e+00 -9.7365586e+00 -9.8556661e+00 -9.9532467e+00 -9.9977731e+00 -9.9912794e+00 -9.9441899e+00 -9.8669292e+00 -9.7699219e+00 -9.6685851e+00 -9.5983077e+00 -9.5994710e+00 -9.7124565e+00 -9.9776458e+00 -1.0435420e+01 -1.1126161e+01 -1.2090251e+01 -1.3368070e+01 -1.5000000e+01
-5.6095120e-02 -1.1085613e+00 -2.0330263e+00 -2.8357216e+00 -3.5228787e+00 -4.1007294e+00 -4.5755050e+00 -4.9534372e+00 -5.2407575e+00 -5.4436975e+00 -5.5781606e+00 -5.6987382e+00 -5.8696933e+00 -6.1552891e+00 -6.6197888e+00 -7.2973579e+00 -8.1017720e+00 -8.9167088e+00 -9.6258462e+00 -1.0112862e+01 -1.0297422e+01 -1.0243148e+01 -1.0049649e+01 -9.8165337e+00 -9.6434115e+00 -9.6050633e+00 -9.6769555e+00 -9.8097261e+00 -9.9540131e+00 -1.0060454e+01 -1.0091365e+01 -1.0055771e+01 -9.9743735e+00 -9.8678750e+00 -9.7569779e+00 -9.6644239e+00 -9.6211123e+00 -9.6599819e+00 -9.8139715e+00 -1.0116020e+01 -1.0599066e+01 -1.1296048e+01 -1.2239905e+01 -1.3463576e+01 -1.5000000e+01
-5.5976633e-02 -1.1069025e+00 -2.0311371e+00 -2.8345169e+00 -3.5228787e+00 -4.1020591e+00 -4.5778945e+00 -4.9562216e+00 -5.2428771e+00 -5.4436975e+00 -5.5745613e+00 -5.6915144e+00 -5.8606448e+00 -6.1480403e+00 -6.6197888e+00 -7.3108787e+00 -8.1319012e+00 -8.9623480e+00 -9.6817109e+00 -1.0169482e+01 -1.0342928e+01 -1.0270422e+01 -1.0058112e+01 -9.8121462e+00 -9.6386719e+00 -9.6165122e+00 -9.7151885e+00 -9.8768968e+00 -1.0043833e+01 -1.0158193e+01 -1.0176799e+01 -1.0114977e+01 -1.0002676e+01 -9.8698495e+00 -9.7464477e+00 -9.6618020e+00 -9.6427632e+00 -9.7155622e+00 -9.9064297e+00 -1.0241597e+01 -1.0747294e+01 -1.1449752e+01 -1.2375202e+01 -1.3549874e+01 -1.5000000e+01
-5.5876127e-02 -1.1054954e+00 -2.0295345e+00 -2.8334951e+00 -3.5228787e+00 -4.1031870e+00 -4.5799214e+00 -4.9585835e+00 -5.2446751e+00 -5.4436975e+00 -5.5715081e+00 -5.6853869e+00 -5.8529695e+00 -6.1418916e+00 -6.6197888e+00 -7.3223450e+00 -8.1574376e+00 -9.0009919e+00 -9.7289336e+00 -1.0217188e+01 -1.0380997e+01 -1.0292864e+01 -1.0064608e+01 -9.8080503e+00 -9.6350093e+00 -9.6277891e+00 -9.7506297e+00 -9.9382553e+00 -1.0125390e+01 -1.0246758e+01 -1.0254329e+01 -1.0169062e+01 -1.0029160e+01 -9.8728258e+00 -9.7382640e+00 -9.6606832e+00 -9.6633125e+00 -9.7663858e+00 -9.9901375e+00 -1.0354801e+01 -1.0880612e+01 -1.1587803e+01 -1.2496608e+01 -1.3627263e+01 -1.5000000e+01
-5.5792935e-02 -1.1043307e+00 -2.0282081e+00 -2.8326493e+00 -3.5228787e+00 -4.1041206e+00 -4.5815991e+00 -4.9605386e+00 -5.2461633e+00 -5.4436975e+00 -5.5689809e+00 -5.6803150e+00 -5.8466164e+00 -6.1368021e+00 -6.6197888e+00 -7.3318332e+00 -8.1785521e+00 -9.0329017e+00 -9.7678388e+00 -1.0256320e+01 -1.0411917e+01 -1.0310669e+01 -1.0069231e+01 -9.8042552e+00 -9.6323976e+00 -9.6389014e+00 -9.7833675e+00 -9.9939862e+00 -1.0198948e+01 -1.0326442e+01 -1.0324211e+01 -1.0218195e+01 -1.0053886e+01 -9.8767769e+00 -9.7323595e+00 -9.6610314e+00 -9.6828122e+00 -9.8126270e+00 -1.0065401e+01 -1.0456060e+01 -1.0999528e+01 -1.1710731e+01 -1.2604594e+01 -1.3696042e+01 -1.5000000e+01
-5.5726389e-02 -1.1033991e+00 -2.0271471e+00 -2.8319728e+00 -3.5228787e+00 -4.1048674e+00 -4.5829411e+00 -4.9621024e+00 -5.2473537e+00 -5.4436975e+00 -5.5669594e+00 -5.6762579e+00 -5.8415345e+00 -6.1327309e+00 -6.6197888e+00 -7.3394197e+00 -8.1954156e+00 -9.0583386e+00 -9.7987508e+00 -1.0287214e+01 -1.0435977e+01 -1.0324036e+01 -1.0072073e+01 -9.8007702e+00 -9.6308107e+00 -9.6498566e+00 -9.8134904e+00 -1.0044274e+01 -1.0264771e+01 -1.0397542e+01 -1.0386698e+01 -1.0262540e+01 -1.0076916e+01 -9.8816759e+00 -9.7286670e+00 -9.6628103e+00 -9.7013144e+00 -9.8544599e+00 -1.0132527e+01 -1.0545797e+01 -1.1104550e+01 -1.1819066e+01 -1.2699626e+01 -1.3756510e+01 -1.5000000e+01
-5.5675822e-02 -1.1026911e+00 -2.0263408e+00 -2.8314587e+00 -3.5228787e+00 -4.1054348e+00 -4.5839608e+00 -4.9632907e+00 -5.2482583e+00 -5.4436975e+00 -5.5654233e+00 -5.6731750e+00 -5.8376729e+00 -6.1296374e+00 -6.6197888e+00 -7.3451806e+00 -8.2081991e+00 -9.0775638e+00 -9.8219941e+00 -1.0310210e+01 -1.0453466e+01 -1.0333160e+01 -1.0073229e+01 -9.7976045e+00 -9.6302224e+00 -9.6606622e+00 -9.8410867e+00 -1.0089304e+01 -1.0323123e+01 -1.0460351e+01 -1.0442046e+01 -1.0302265e+01 -1.0098313e+01 -9.8874958e+00 -9.7271192e+00 -9.6659838e+00 -9.7188714e+00 -9.8920585e+00 -1.0191822e+01 -1.0624438e+01 -1.1196184e+01 -1.1913337e+01 -1.2782173e+01 -1.3808968e+01 -1.5000000e+01
-5.5640568e-02 -1.1021976e+00 -2.0257787e+00 -2.8311003e+00 -3.5228787e+00 -4.1058305e+00 -4.5846718e+00 -4.9641192e+00 -5.2488889e+00 -5.4436975e+00 -5.5643524e+00 -5.6710257e+00 -5.8349807e+00 -6.1274806e+00 -6.6197888e+00 -7.3491922e+00 -8.2170733e+00 -9.0908383e+00 -9.8378934e+00 -1.0325645e+01 -1.0464671e+01 -1.0338240e+01 -1.0072792e+01 -9.7947672e+00 -9.6306064e+00 -9.6713256e+00 -9.8662449e+00 -1.0129260e+01 -1.0374268e+01 -1.0515163e+01 -1.0490510e+01 -1.0337536e+01 -1.0118137e+01 -9.8942098e+00 -9.7276488e+00 -9.6705157e+00 -9.7355351e+00 -9.9255970e+00 -1.0243592e+01 -1.0692409e+01 -1.1274940e+01 -1.1994075e+01 -1.2852703e+01 -1.3853714e+01 -1.5000000e+01
-5.5619959e-02 -1.1019090e+00 -2.0254501e+00 -2.8308908e+00 -3.5228787e+00 -4.1060617e+00 -4.5850874e+00 -4.9646035e+00 -5.2492576e+00 -5.4436975e+00 -5.5637263e+00 -5.6697692e+00 -5.8334068e+00 -6.1262198e+00 -6.6197888e+00 -7.3515309e+00 -8.2222093e+00 -9.0984234e+00 -9.8467729e+00 -1.0333857e+01 -1.0469881e+01 -1.0339471e+01 -1.0070856e+01 -9.7922676e+00 -9.6319367e+00 -9.6818544e+00 -9.8890535e+00 -1.0164328e+01 -1.0418470e+01 -1.0562274e+01 -1.0532344e+01 -1.0368519e+01 -1.0136451e+01 -9.9017907e+00 -9.7301886e+00 -9.6763699e+00 -9.7513576e+00 -9.9552495e+00 -1.0288143e+01 -1.0750135e+01 -1.1341325e+01 -1.2061808e+01 -1.2911684e+01 -1.3891048e+01 -1.5000000e+01
-5.5613327e-02 -1.1018162e+00 -2.0253443e+00 -2.8308233e+00 -3.5228787e+00 -4.1061362e+00 -4.5852212e+00 -4.9647593e+00 -5.2493763e+00 -5.4436975e+00 -5.5635248e+00 -5.6693649e+00 -5.8329004e+00 -6.1258141e+00 -6.6197888e+00 -7.3522729e+00 -8.2237778e+00 -9.1005803e+00 -9.8489573e+00 -1.0335186e+01 -1.0469386e+01 -1.0337050e+01 -1.0067515e+01 -9.7901149e+00 -9.6341872e+00 -9.6922558e+00 -9.9096008e+00 -1.0194690e+01 -1.0455993e+01 -1.0601978e+01 -1.0567803e+01 -1.0395381e+01 -1.0153316e+01 -9.9102118e+00 -9.7346713e+00 -9.6835100e+00 -9.7663912e+00 -9.9811900e+00 -1.0325782e+01 -1.0798042e+01 -1.1395845e+01 -1.2117068e+01 -1.2959584e+01 -1.3921270e+01 -1.5000000e+01
-5.5620006e-02 -1.1019097e+00 -2.0254508e+00 -2.8308912e+00 -3.5228787e+00 -4.1060612e+00 -4.5850865e+00 -4.9646024e+00 -5.2492568e+00 -5.4436975e+00 -5.5637277e+00 -5.6697721e+00 -5.8334104e+00 -6.1262227e+00 -6.6197888e+00 -7.3514946e+00 -8.2219498e+00 -9.0975700e+00 -9.8447710e+00 -1.0329968e+01 -1.0463473e+01 -1.0331175e+01 -1.0062862e+01 -9.7883183e+00 -9.6373315e+00 -9.7025376e+00 -9.9279752e+00 -1.0220534e+01 -1.0487102e+01 -1.0634570e+01 -1.0597142e+01 -1.0418288e+01 -1.0168794e+01 -9.9194460e+00 -9.7410298e+00 -9.6919001e+00 -9.7806878e+00 -1.0003593e+01 -1.0356815e+01 -1.0836554e+01 -1.1439010e+01 -1.2160383e+01 -1.2996872e+01 -1.3944678e+01 -1.5000000e+01
-5.5639328e-02 -1.1021802e+00 -2.0257589e+00 -2.8310877e+00 -3.5228787e+00 -4.1058444e+00 -4.5846968e+00 -4.9641483e+00 -5.2489111e+00 -5.4436975e+00 -5.5643147e+00 -5.6709501e+00 -5.8348860e+00 -6.1274048e+00 -6.6197888e+00 -7.3492721e+00 -8.2168961e+00 -9.0896539e+00 -9.8345384e+00 -1.0318543e+01 -1.0452430e+01 -1.0322042e+01 -1.0056991e+01 -9.7868871e+00 -9.6413436e+00 -9.7127070e+00 -9.9442653e+00 -1.0242042e+01 -1.0512060e+01 -1.0660343e+01 -1.0620615e+01 -1.0437406e+01 -1.0182946e+01 -9.9294664e+00 -9.7491966e+00 -9.7015038e+00 -9.7942996e+00 -1.0022632e+01 -1.0381549e+01 -1.0866097e+01 -1.1471326e+01 -1.2192283e+01 -1.3024016e+01 -1.3961572e+01 -1.5000000e+01
-5.5670627e-02 -1.1026184e+00 -2.0262580e+00 -2.8314059e+00 -3.5228787e+00 -4.1054931e+00 -4.5840656e+00 -4.9634128e+00 -5.2483512e+00 -5.4436975e+00 -5.5652655e+00 -5.6728583e+00 -5.8372762e+00 -6.1293196e+00 -6.6197888e+00 -7.3456818e+00 -8.2087877e+00 -9.0770930e+00 -9.8185842e+00 -1.0301248e+01 -1.0436547e+01 -1.0309848e+01 -1.0049995e+01 -9.7858304e+00 -9.6461973e+00 -9.7227716e+00 -9.9585594e+00 -1.0259400e+01 -1.0531131e+01 -1.0679593e+01 -1.0638478e+01 -1.0452903e+01 -1.0195835e+01 -9.9402461e+00 -9.7591046e+00 -9.7122850e+00 -9.8072787e+00 -1.0038481e+01 -1.0400289e+01 -1.0887097e+01 -1.1493302e+01 -1.2213299e+01 -1.3041484e+01 -1.3972252e+01 -1.5000000e+01
-5.5713235e-02 -1.1032149e+00 -2.0269373e+00 -2.8318391e+00 -3.5228787e+00 -4.1050150e+00 -4.5832064e+00 -4.9624115e+00 -5.2475890e+00 -5.4436975e+00 -5.5665598e+00 -5.6754559e+00 -5.8405300e+00 -6.1319262e+00 -6.6197888e+00 -7.3408001e+00 -8.1977954e+00 -9.0601485e+00 -9.7972327e+00 -1.0278422e+01 -1.0416112e+01 -1.0294791e+01 -1.0041969e+01 -9.7851574e+00 -9.6518664e+00 -9.7327388e+00 -9.9709460e+00 -1.0272792e+01 -1.0544580e+01 -1.0692614e+01 -1.0650986e+01 -1.0464944e+01 -1.0207522e+01 -9.9517580e+00 -9.7706865e+00 -9.7242075e+00 -9.8196771e+00 -1.0051316e+01 -1.0413343e+01 -1.0899979e+01 -1.1505445e+01 -1.2223959e+01 -1.3049743e+01 -1.3977017e+01 -1.5000000e+01
-5.5766485e-02 -1.1039604e+00 -2.0277864e+00 -2.8323804e+00 -3.5228787e+00 -4.1044174e+00 -4.5821325e+00 -4.9611601e+00 -5.2466364e+00 -5.4436975e+00 -5.5681774e+00 -5.6787024e+00 -5.8445965e+00 -6.1351839e+00 -6.6197888e+00 -7.3347030e+00 -8.1840902e+00 -9.0390815e+00 -9.7708084e+00 -1.0250402e+01 -1.0391413e+01 -1.0277066e+01 -1.0033006e+01 -9.7848773e+00 -9.6583248e+00 -9.7426161e+00 -9.9815135e+00 -1.0282403e+01 -1.0552670e+01 -1.0699700e+01 -1.0658393e+01 -1.0473695e+01 -1.0218069e+01 -9.9639753e+00 -9.7838750e+00 -9.7372351e+00 -9.8315471e+00 -1.0061308e+01 -1.0421016e+01 -1.0905168e+01 -1.1508262e+01 -1.2224794e+01 -1.3049263e+01 -1.3976166e+01 -1.5000000e+01
-5.5829710e-02 -1.1048456e+00 -2.0287944e+00 -2.8330232e+00 -3.5228787e+00 -4.1037079e+00 -4.5808575e+00 -4.9596743e+00 -5.2455054e+00 -5.4436975e+00 -5.5700981e+00 -5.6825570e+00 -5.8494248e+00 -6.1390519e+00 -6.6197888e+00 -7.3274671e+00 -8.1678429e+00 -9.0141534e+00 -9.7396358e+00 -1.0217527e+01 -1.0362738e+01 -1.0256871e+01 -1.0023199e+01 -9.7849995e+00 -9.6655462e+00 -9.7524109e+00 -9.9903503e+00 -1.0288417e+01 -1.0555665e+01 -1.0701147e+01 -1.0660953e+01 -1.0479324e+01 -1.0227537e+01 -9.9768710e+00 -9.7986029e+00 -9.7513317e+00 -9.8429406e+00 -1.0068634e+01 -1.0423616e+01 -1.0903090e+01 -1.1502261e+01 -1.2216334e+01 -1.3040512e+01 -1.3969999e+01 -1.5000000e+01
-5.5902242e-02 -1.1058610e+00 -2.0299509e+00 -2.8337606e+00 -3.5228787e+00 -4.1028939e+00 -4.5793947e+00 -4.9579698e+00 -5.2442079e+00 -5.4436975e+00 -5.5723014e+00 -5.6869791e+00 -5.8549638e+00 -6.1434892e+00 -6.6197888e+00 -7.3191684e+00 -8.1492243e+00 -8.9856251e+00 -9.7040394e+00 -1.0180136e+01 -1.0330377e+01 -1.0234402e+01 -1.0012643e+01 -9.7855330e+00 -9.6735047e+00 -9.7621308e+00 -9.9975448e+00 -1.0291020e+01 -1.0553830e+01 -1.0697248e+01 -1.0658922e+01 -1.0481996e+01 -1.0235989e+01 -9.9904182e+00 -9.8148029e+00 -9.7664610e+00 -9.8539098e+00 -1.0073466e+01 -1.0421447e+01 -1.0894170e+01 -1.1487951e+01 -1.2199108e+01 -1.3023957e+01 -1.3958815e+01 -1.5000000e+01
-5.5983415e-02 -1.1069974e+00 -2.0312452e+00 -2.8345859e+00 -3.5228787e+00 -4.1019830e+00 -4.5777577e+00 -4.9560623e+00 -5.2427558e+00 -5.4436975e+00 -5.5747673e+00 -5.6919279e+00 -5.8611627e+00 -6.1484552e+00 -6.6197888e+00 -7.3098834e+00 -8.1284055e+00 -8.9537580e+00 -9.6643437e+00 -1.0138566e+01 -1.0294618e+01 -1.0209857e+01 -1.0001431e+01 -9.7864872e+00 -9.6821739e+00 -9.7717832e+00 -1.0003185e+01 -1.0290396e+01 -1.0547428e+01 -1.0688299e+01 -1.0652555e+01 -1.0481879e+01 -1.0243485e+01 -1.0004590e+01 -9.8324078e+00 -9.7825869e+00 -9.8645068e+00 -1.0075980e+01 -1.0414818e+01 -1.0878833e+01 -1.1465838e+01 -1.2173645e+01 -1.3000066e+01 -1.3942914e+01 -1.5000000e+01
-5.6072561e-02 -1.1082455e+00 -2.0326666e+00 -2.8354922e+00 -3.5228787e+00 -4.1009825e+00 -4.5759600e+00 -4.9539673e+00 -5.2411611e+00 -5.4436975e+00 -5.5774753e+00 -5.6973628e+00 -5.8679705e+00 -6.1539090e+00 -6.6197888e+00 -7.2996883e+00 -8.1055572e+00 -8.9188130e+00 -9.6208732e+00 -1.0093155e+01 -1.0255749e+01 -1.0183432e+01 -9.9896562e+00 -9.7878711e+00 -9.6915277e+00 -9.7813755e+00 -1.0007361e+01 -1.0286729e+01 -1.0536724e+01 -1.0674593e+01 -1.0642106e+01 -1.0479137e+01 -1.0250088e+01 -1.0019359e+01 -9.8513502e+00 -9.7996733e+00 -9.8747837e+00 -1.0076348e+01 -1.0404033e+01 -1.0857505e+01 -1.1436431e+01 -1.2140477e+01 -1.2969309e+01 -1.3922595e+01 -1.5000000e+01
-5.6169013e-02 -1.1095958e+00 -2.0342045e+00 -2.8364728e+00 -3.5228787e+00 -4.0999001e+00 -4.5740148e+00 -4.9517007e+00 -5.2394356e+00 -5.4436975e+00 -5.5804054e+00 -5.7032432e+00 -5.8753362e+00 -6.1598097e+00 -6.6197888e+00 -7.2886594e+00 -8.0808504e+00 -8.8810516e+00 -9.5739523e+00 -1.0044242e+01 -1.0214058e+01 -1.0155325e+01 -9.9774128e+00 -9.7896941e+00 -9.7015399e+00 -9.7909153e+00 -1.0010159e+01 -1.0280204e+01 -1.0521982e+01 -1.0656426e+01 -1.0627830e+01 -1.0473939e+01 -1.0255860e+01 -1.0034699e+01 -9.8715631e+00 -9.8176838e+00 -9.8847927e+00 -1.0074746e+01 -1.0389400e+01 -1.0830611e+01 -1.1400236e+01 -1.2100131e+01 -1.2932153e+01 -1.3898157e+01 -1.5000000e+01
-5.6272104e-02 -1.1110391e+00 -2.0358482e+00 -2.8375209e+00 -3.5228787e+00 -4.0987432e+00 -4.5719358e+00 -4.9492781e+00 -5.2375915e+00 -5.4436975e+00 -5.5835370e+00 -5.7095283e+00 -5.8832090e+00 -6.1661166e+00 -6.6197888e+00 -7.2768729e+00 -8.0544560e+00 -8.8407346e+00 -9.5239056e+00 -9.9921656e+00 -1.0169835e+01 -1.0125731e+01 -9.9647945e+00 -9.7919653e+00 -9.7121845e+00 -9.8004099e+00 -1.0011669e+01 -1.0271006e+01 -1.0503465e+01 -1.0634091e+01 -1.0609982e+01 -1.0466450e+01 -1.0260862e+01 -1.0050582e+01 -9.8929790e+00 -9.8365824e+00 -9.8945857e+00 -1.0071347e+01 -1.0371225e+01 -1.0798577e+01 -1.1357763e+01 -1.2053140e+01 -1.2889066e+01 -1.3869900e+01 -1.5000000e+01
-5.6381167e-02 -1.1125660e+00 -2.0375871e+00 -2.8386297e+00 -3.5228787e+00 -4.0975193e+00 -4.5697364e+00 -4.9467151e+00 -5.2356404e+00 -5.4436975e+00 -5.5868501e+00 -5.7161775e+00 -5.8915378e+00 -6.1727888e+00 -6.6197888e+00 -7.2644053e+00 -8.0265448e+00 -8.7981235e+00 -9.4710575e+00 -9.9372628e+00 -1.0123368e+01 -1.0094849e+01 -9.9518947e+00 -9.7946939e+00 -9.7234351e+00 -9.8098670e+00 -1.0011979e+01 -1.0259319e+01 -1.0481438e+01 -1.0607884e+01 -1.0588816e+01 -1.0456836e+01 -1.0265155e+01 -1.0066983e+01 -9.9155307e+00 -9.8563328e+00 -9.9042149e+00 -1.0066326e+01 -1.0349814e+01 -1.0761828e+01 -1.1309518e+01 -1.2000031e+01 -1.2840516e+01 -1.3838123e+01 -1.5000000e+01
-5.6495535e-02 -1.1141671e+00 -2.0394107e+00 -2.8397924e+00 -3.5228787e+00 -4.0962358e+00 -4.5674300e+00 -4.9440274e+00 -5.2335945e+00 -5.4436975e+00 -5.5903244e+00 -5.7231502e+00 -5.9002716e+00 -6.1797856e+00 -6.6197888e+00 -7.2513327e+00 -7.9972878e+00 -8.7534793e+00 -9.4157324e+00 -9.8798724e+00 -1.0074945e+01 -1.0062874e+01 -9.9388073e+00 -9.7978893e+00 -9.7352657e+00 -9.8192938e+00 -1.0011177e+01 -1.0245328e+01 -1.0456164e+01 -1.0578098e+01 -1.0564588e+01 -1.0445265e+01 -1.0268802e+01 -1.0083873e+01 -9.9391510e+00 -9.8768989e+00 -9.9137324e+00 -1.0059856e+01 -1.0325473e+01 -1.0720789e+01 -1.1256008e+01 -1.1941335e+01 -1.2786972e+01 -1.3803126e+01 -1.5000000e+01
-5.6614540e-02 -1.1158332e+00 -2.0413081e+00 -2.8410023e+00 -3.5228787e+00 -4.0949003e+00 -4.5650300e+00 -4.9412308e+00 -5.2314657e+00 -5.4436975e+00 -5.5939395e+00 -5.7304055e+00 -5.9093597e+00 -6.1870661e+00 -6.6197888e+00 -7.2377314e+00 -7.9668557e+00 -8.7070632e+00 -9.3582550e+00 -9.8203325e+00 -1.0024854e+01 -1.0030004e+01 -9.9256259e+00 -9.8015605e+00 -9.7476501e+00 -9.8286979e+00 -1.0009351e+01 -1.0229219e+01 -1.0427908e+01 -1.0545029e+01 -1.0537553e+01 -1.0431902e+01 -1.0271864e+01 -1.0101226e+01 -9.9637726e+00 -9.8982445e+00 -9.9231904e+00 -1.0052112e+01 -1.0298510e+01 -1.0675886e+01 -1.1197743e+01 -1.1877581e+01 -1.2728902e+01 -1.3765208e+01 -1.5000000e+01
-5.6737516e-02 -1.1175548e+00 -2.0432689e+00 -2.8422526e+00 -3.5228787e+00 -4.0935203e+00 -4.5625500e+00 -4.9383409e+00 -5.2292658e+00 -5.4436975e+00 -5.5976752e+00 -5.7379029e+00 -5.9187509e+00 -6.1945894e+00 -6.6197888e+00 -7.2236777e+00 -7.9354196e+00 -8.6591363e+00 -9.2989496e+00 -9.7589813e+00 -9.9733845e+00 -9.9964360e+00 -9.9124441e+00 -9.8057168e+00 -9.7605621e+00 -9.8380868e+00 -1.0006591e+01 -1.0211174e+01 -1.0396934e+01 -1.0508971e+01 -1.0507964e+01 -1.0416914e+01 -1.0274403e+01 -1.0119014e+01 -9.9893283e+00 -9.9203335e+00 -9.9326408e+00 -1.0043267e+01 -1.0269229e+01 -1.0627544e+01 -1.1135229e+01 -1.1809300e+01 -1.2666774e+01 -1.3724669e+01 -1.5000000e+01
-5.6863795e-02 -1.1193228e+00 -2.0452824e+00 -2.8435364e+00 -3.5228787e+00 -4.0921031e+00 -4.5600034e+00 -4.9353733e+00 -5.2270068e+00 -5.4436975e+00 -5.6015113e+00 -5.7456017e+00 -5.9283944e+00 -6.2023149e+00 -6.6197888e+00 -7.2092480e+00 -7.9031503e+00 -8.6099598e+00 -9.2381407e+00 -9.6961570e+00 -9.9208247e+00 -9.9623661e+00 -9.8993556e+00 -9.8103673e+00 -9.7739756e+00 -9.8474678e+00 -1.0002985e+01 -1.0191379e+01 -1.0363506e+01 -1.0470219e+01 -1.0476077e+01 -1.0400467e+01 -1.0276481e+01 -1.0137212e+01 -1.0015751e+01 -9.9431295e+00 -9.9421359e+00 -1.0033497e+01 -1.0237939e+01 -1.0576189e+01 -1.1068974e+01 -1.1737021e+01 -1.2601056e+01 -1.3681807e+01 -1.5000000e+01
-5.6992709e-02 -1.1211276e+00 -2.0473378e+00 -2.8448471e+00 -3.5228787e+00 -4.0906564e+00 -4.5574036e+00 -4.9323439e+00 -5.2247006e+00 -5.4436975e+00 -5.6054274e+00 -5.7534612e+00 -5.9382392e+00 -6.2102016e+00 -6.6197888e+00 -7.1945185e+00 -7.8702187e+00 -8.5597950e+00 -9.1761529e+00 -9.6321979e+00 -9.8674630e+00 -9.9279915e+00 -9.8864541e+00 -9.8155214e+00 -9.7878644e+00 -9.8568486e+00 -9.9986200e+00 -1.0170020e+01 -1.0327888e+01 -1.0429066e+01 -1.0442147e+01 -1.0382728e+01 -1.0278160e+01 -1.0155791e+01 -1.0042973e+01 -9.9665965e+00 -9.9517277e+00 -1.0022974e+01 -1.0204944e+01 -1.0522245e+01 -1.0999486e+01 -1.1661274e+01 -1.2532217e+01 -1.3636923e+01 -1.5000000e+01
-5.7123593e-02 -1.1229599e+00 -2.0494247e+00 -2.8461777e+00 -3.5228787e+00 -4.0891876e+00 -4.5547641e+00 -4.9292681e+00 -5.2223593e+00 -5.4436975e+00 -5.6094034e+00 -5.7614408e+00 -5.9482343e+00 -6.2182088e+00 -6.6197888e+00 -7.1795654e+00 -7.8367957e+00 -8.5089029e+00 -9.1133106e+00 -9.5674420e+00 -9.8135880e+00 -9.8935091e+00 -9.8738332e+00 -9.8211883e+00 -9.8022023e+00 -9.8662365e+00 -9.9935859e+00 -1.0147279e+01 -1.0290344e+01 -1.0385809e+01 -1.0406428e+01 -1.0363863e+01 -1.0279500e+01 -1.0174726e+01 -1.0070927e+01 -9.9906982e+00 -9.9614683e+00 -1.0011874e+01 -1.0170552e+01 -1.0466139e+01 -1.0927272e+01 -1.1582588e+01 -1.2460724e+01 -1.3590315e+01 -1.5000000e+01
-5.7255778e-02 -1.1248105e+00 -2.0515323e+00 -2.8475216e+00 -3.5228787e+00 -4.0877042e+00 -4.5520984e+00 -4.9261617e+00 -5.2199946e+00 -5.4436975e+00 -5.6134189e+00 -5.7694997e+00 -5.9583289e+00 -6.2262956e+00 -6.6197888e+00 -7.1644651e+00 -7.8030521e+00 -8.4575448e+00 -9.0499382e+00 -9.5022276e+00 -9.7594880e+00 -9.8591157e+00 -9.8615866e+00 -9.8273771e+00 -9.8169632e+00 -9.8756390e+00 -9.9879707e+00 -1.0123342e+01 -1.0251137e+01 -1.0340740e+01 -1.0369176e+01 -1.0344039e+01 -1.0280565e+01 -1.0193989e+01 -1.0099546e+01 -1.0015399e+01 -9.9714098e+00 -1.0000370e+01 -1.0135069e+01 -1.0408296e+01 -1.0852841e+01 -1.1501494e+01 -1.2387045e+01 -1.3542284e+01 -1.5000000e+01
-5.7388598e-02 -1.1266700e+00 -2.0536501e+00 -2.8488719e+00 -3.5228787e+00 -4.0862137e+00 -4.5494199e+00 -4.9230405e+00 -5.2176186e+00 -5.4436975e+00 -5.6174536e+00 -5.7775972e+00 -5.9684719e+00 -6.2344212e+00 -6.6197888e+00 -7.1492939e+00 -7.7691589e+00 -8.4059817e+00 -8.9863604e+00 -9.4368928e+00 -9.7054517e+00 -9.8250082e+00 -9.8498080e+00 -9.8340970e+00 -9.8321208e+00 -9.8850637e+00 -9.9818628e+00 -1.0098394e+01 -1.0210533e+01 -1.0294155e+01 -1.0330644e+01 -1.0323422e+01 -1.0281415e+01 -1.0213553e+01 -1.0128763e+01 -1.0040661e+01 -9.9816044e+00 -9.9886362e+00 -1.0098800e+01 -1.0349140e+01 -1.0776699e+01 -1.1418521e+01 -1.2311649e+01 -1.3493128e+01 -1.5000000e+01
-5.7521385e-02 -1.1285290e+00 -2.0557673e+00 -2.8502219e+00 -3.5228787e+00 -4.0847235e+00 -4.5467420e+00 -4.9199200e+00 -5.2152432e+00 -5.4436975e+00 -5.6214874e+00 -5.7856928e+00 -5.9786124e+00 -6.2425448e+00 -6.6197888e+00 -7.1341280e+00 -7.7352869e+00 -8.3544749e+00 -8.9229015e+00 -9.3717760e+00 -9.6517675e+00 -9.7913835e+00 -9.8385911e+00 -9.8413573e+00 -9.8476491e+00 -9.8945178e+00 -9.9753506e+00 -1.0072619e+01 -1.0168794e+01 -1.0246348e+01 -1.0291089e+01 -1.0302178e+01 -1.0282112e+01 -1.0233391e+01 -1.0158511e+01 -1.0066450e+01 -9.9921041e+00 -9.9768469e+00 -1.0062053e+01 -1.0289098e+01 -1.0699355e+01 -1.1334199e+01 -1.2235005e+01 -1.3443147e+01 -1.5000000e+01
-5.7653472e-02 -1.1303782e+00 -2.0578733e+00 -2.8515648e+00 -3.5228787e+00 -4.0832412e+00 -4.5440782e+00 -4.9168159e+00 -5.2128803e+00 -5.4436975e+00 -5.6254999e+00 -5.7937457e+00 -5.9886995e+00 -6.2506256e+00 -6.6197888e+00 -7.1190438e+00 -7.7016071e+00 -8.3032856e+00 -8.8598860e+00 -9.3072152e+00 -9.5987239e+00 -9.7584385e+00 -9.8280295e+00 -9.8491671e+00 -9.8635219e+00 -9.9040090e+00 -9.9685226e+00 -1.0046202e+01 -1.0126186e+01 -1.0197614e+01 -1.0250764e+01 -1.0280473e+01 -1.0282719e+01 -1.0253476e+01 -1.0188721e+01 -1.0092729e+01 -1.0002961e+01 -9.9651763e+00 -1.0025134e+01 -1.0228594e+01 -1.0621316e+01 -1.1249058e+01 -1.2157579e+01 -1.3392640e+01 -1.5000000e+01
-5.7784193e-02 -1.1322083e+00 -2.0599576e+00 -2.8528938e+00 -3.5228787e+00 -4.0817742e+00 -4.5414420e+00 -4.9137440e+00 -5.2105419e+00 -5.4436975e+00 -5.6294709e+00 -5.8017153e+00 -5.9986821e+00 -6.2586228e+00 -6.6197888e+00 -7.1041174e+00 -7.6682903e+00 -8.2526749e+00 -8.7976385e+00 -9.2435487e+00 -9.5466093e+00 -9.7263700e+00 -9.8182168e+00 -9.8575358e+00 -9.8797130e+00 -9.9135446e+00 -9.9614672e+00 -1.0019327e+01 -1.0082972e+01 -1.0148247e+01 -1.0209924e+01 -1.0258475e+01 -1.0283296e+01 -1.0273781e+01 -1.0219328e+01 -1.0119462e+01 -1.0014227e+01 -9.9537983e+00 -9.9883495e+00 -1.0168055e+01 -1.0543089e+01 -1.1163627e+01 -1.2079841e+01 -1.3341908e+01 -1.5000000e+01
-5.7912879e-02 -1.1340099e+00 -2.0620094e+00 -2.8542021e+00 -3.5228787e+00 -4.0803301e+00 -4.5388469e+00 -4.9107199e+00 -5.2082398e+00 -5.4436975e+00 -5.6333801e+00 -5.8095609e+00 -6.0085095e+00 -6.2664955e+00 -6.6197888e+00 -7.0894253e+00 -7.6355075e+00 -8.2029039e+00 -8.7364833e+00 -9.1811146e+00 -9.4957123e+00 -9.6953749e+00 -9.8092468e+00 -9.8664725e+00 -9.8961963e+00 -9.9231322e+00 -9.9542727e+00 -9.9921798e+00 -1.0039415e+01 -1.0098542e+01 -1.0168825e+01 -1.0236350e+01 -1.0283905e+01 -1.0294280e+01 -1.0250264e+01 -1.0146613e+01 -1.0025955e+01 -9.9428872e+00 -9.9520053e+00 -1.0107905e+01 -1.0465184e+01 -1.1078436e+01 -1.2002259e+01 -1.3291248e+01 -1.5000000e+01
-5.8038864e-02 -1.1357737e+00 -2.0640182e+00 -2.8554830e+00 -3.5228787e+00 -4.0789163e+00 -4.5363062e+00 -4.9077592e+00 -5.2059861e+00 -5.4436975e+00 -5.6372073e+00 -5.8172418e+00 -6.0181305e+00 -6.2742030e+00 -6.6197888e+00 -7.0750437e+00 -7.6034294e+00 -8.1542338e+00 -8.6767451e+00 -9.1202512e+00 -9.4463213e+00 -9.6656500e+00 -9.8012131e+00 -9.8759864e+00 -9.9129455e+00 -9.9327792e+00 -9.9470278e+00 -9.9649441e+00 -9.9957815e+00 -1.0048793e+01 -1.0127721e+01 -1.0214263e+01 -1.0284609e+01 -1.0314945e+01 -1.0281461e+01 -1.0174145e+01 -1.0038196e+01 -9.9326170e+00 -9.9164081e+00 -1.0048571e+01 -1.0388106e+01 -1.0994015e+01 -1.1925300e+01 -1.3240961e+01 -1.5000000e+01
-5.8161480e-02 -1.1374903e+00 -2.0659732e+00 -2.8567296e+00 -3.5228787e+00 -4.0775402e+00 -4.5338334e+00 -4.9048777e+00 -5.2037926e+00 -5.4436975e+00 -5.6409321e+00 -5.8247173e+00 -6.0274943e+00 -6.2817044e+00 -6.6197888e+00 -7.0610488e+00 -7.5722270e+00 -8.1069259e+00 -8.6187482e+00 -9.0612966e+00 -9.3987249e+00 -9.6373923e+00 -9.7942094e+00 -9.8860867e+00 -9.9299346e+00 -9.9424931e+00 -9.9398206e+00 -9.9378049e+00 -9.9523338e+00 -9.9992951e+00 -1.0086866e+01 -1.0192382e+01 -1.0285469e+01 -1.0335750e+01 -1.0312852e+01 -1.0202022e+01 -1.0051003e+01 -9.9231618e+00 -9.8818641e+00 -9.9904762e+00 -1.0312364e+01 -1.0910894e+01 -1.1849433e+01 -1.3191346e+01 -1.5000000e+01
-5.8280061e-02 -1.1391505e+00 -2.0678639e+00 -2.8579351e+00 -3.5228787e+00 -4.0762095e+00 -4.5314420e+00 -4.9020911e+00 -5.2016713e+00 -5.4436975e+00 -5.6445343e+00 -5.8319468e+00 -6.0365499e+00 -6.2889589e+00 -6.6197888e+00 -7.0475170e+00 -7.5420712e+00 -8.0612413e+00 -8.5628172e+00 -9.0045890e+00 -9.3532115e+00 -9.6107986e+00 -9.7883294e+00 -9.8967826e+00 -9.9471373e+00 -9.9522813e+00 -9.9327398e+00 -9.9109467e+00 -9.9093363e+00 -9.9503426e+00 -1.0046516e+01 -1.0170873e+01 -1.0286546e+01 -1.0356667e+01 -1.0344370e+01 -1.0230208e+01 -1.0064428e+01 -9.9146958e+00 -9.8486799e+00 -9.9340475e+00 -1.0238466e+01 -1.0829603e+01 -1.1775126e+01 -1.3142703e+01 -1.5000000e+01
-5.8393939e-02 -1.1407448e+00 -2.0696797e+00 -2.8590929e+00 -3.5228787e+00 -4.0749315e+00 -4.5291455e+00 -4.8994150e+00 -5.1996342e+00 -5.4436975e+00 -5.6479937e+00 -5.8388895e+00 -6.0452464e+00 -6.2959257e+00 -6.6197888e+00 -7.0345246e+00 -7.5131329e+00 -8.0174411e+00 -8.5092765e+00 -8.9504667e+00 -9.3100696e+00 -9.5860658e+00 -9.7836667e+00 -9.9080835e+00 -9.9645274e+00 -9.9621514e+00 -9.9258737e+00 -9.8845543e+00 -9.8670531e+00 -9.9022301e+00 -1.0006926e+01 -1.0149902e+01 -1.0287903e+01 -1.0377670e+01 -1.0375948e+01 -1.0258668e+01 -1.0078522e+01 -9.9073931e+00 -9.8171617e+00 -9.8797099e+00 -1.0166919e+01 -1.0750671e+01 -1.1702847e+01 -1.3095330e+01 -1.5000000e+01
-5.8502447e-02 -1.1422639e+00 -2.0714098e+00 -2.8601961e+00 -3.5228787e+00 -4.0737138e+00 -4.5269573e+00 -4.8968650e+00 -5.1976931e+00 -5.4436975e+00 -5.6512899e+00 -5.8455049e+00 -6.0535328e+00 -6.3025640e+00 -6.6197888e+00 -7.0221478e+00 -7.4855829e+00 -7.9757865e+00 -8.4584507e+00 -8.8992678e+00 -9.2695877e+00 -9.5633907e+00 -9.7803149e+00 -9.9199983e+00 -9.9820790e+00 -9.9721107e+00 -9.9193107e+00 -9.8588122e+00 -9.8257483e+00 -9.8552521e+00 -9.9683492e+00 -1.0129636e+01 -1.0289600e+01 -1.0398731e+01 -1.0407518e+01 -1.0287364e+01 -1.0093339e+01 -9.9014277e+00 -9.7876160e+00 -9.8278887e+00 -1.0098231e+01 -1.0674628e+01 -1.1633065e+01 -1.3049527e+01 -1.5000000e+01
-5.8604918e-02 -1.1436985e+00 -2.0730436e+00 -2.8612378e+00 -3.5228787e+00 -4.0725639e+00 -4.5248908e+00 -4.8944570e+00 -5.1958600e+00 -5.4436975e+00 -5.6544027e+00 -5.8517522e+00 -6.0613582e+00 -6.3088329e+00 -6.6197888e+00 -7.0104629e+00 -7.4595922e+00 -7.9365387e+00 -8.4106641e+00 -8.8513305e+00 -9.2320543e+00 -9.5429702e+00 -9.7783679e+00 -9.9325365e+00 -9.9997656e+00 -9.9821667e+00 -9.9131393e+00 -9.8339051e+00 -9.7856858e+00 -9.8097031e+00 -9.9310419e+00 -1.0110241e+01 -1.0291701e+01 -1.0419824e+01 -1.0439013e+01 -1.0316260e+01 -1.0108929e+01 -9.8969738e+00 -9.7603490e+00 -9.7790094e+00 -1.0032909e+01 -1.0602004e+01 -1.1566248e+01 -1.3005595e+01 -1.5000000e+01
-5.8700684e-02 -1.1450392e+00 -2.0745705e+00 -2.8622115e+00 -3.5228787e+00 -4.0714892e+00 -4.5229595e+00 -4.8922064e+00 -5.1941469e+00 -5.4436975e+00 -5.6573119e+00 -5.8575908e+00 -6.0686715e+00 -6.3146917e+00 -6.6197888e+00 -6.9995462e+00 -7.4353316e+00 -7.8999588e+00 -8.3662414e+00 -8.8069930e+00 -9.1977578e+00 -9.5250013e+00 -9.7779191e+00 -9.9457072e+00 -1.0017561e+01 -9.9923269e+00 -9.9074479e+00 -9.8100177e+00 -9.7471298e+00 -9.7658777e+00 -9.8952583e+00 -1.0091883e+01 -1.0294266e+01 -1.0440922e+01 -1.0470366e+01 -1.0345322e+01 -1.0125346e+01 -9.8942056e+00 -9.7356672e+00 -9.7334973e+00 -9.9714622e+00 -1.0533328e+01 -1.1502863e+01 -1.2963831e+01 -1.5000000e+01
-5.8789079e-02 -1.1462767e+00 -2.0759800e+00 -2.8631101e+00 -3.5228787e+00 -4.0704972e+00 -4.5211768e+00 -4.8901292e+00 -5.1925656e+00 -5.4436975e+00 -5.6599971e+00 -5.8629799e+00 -6.0754220e+00 -6.3200995e+00 -6.6197888e+00 -6.9894740e+00 -7.4129721e+00 -7.8663080e+00 -8.3255069e+00 -8.7665936e+00 -9.1669869e+00 -9.5096806e+00 -9.7790623e+00 -9.9595196e+00 -1.0035440e+01 -1.0002599e+01 -9.9023250e+00 -9.7873346e+00 -9.7103442e+00 -9.7240703e+00 -9.8612533e+00 -1.0074729e+01 -1.0297357e+01 -1.0461998e+01 -1.0501510e+01 -1.0374511e+01 -1.0142641e+01 -9.8932970e+00 -9.7138770e+00 -9.6917778e+00 -9.9143969e+00 -1.0469131e+01 -1.1443379e+01 -1.2924536e+01 -1.5000000e+01
-5.8869436e-02 -1.1474017e+00 -2.0772612e+00 -2.8639271e+00 -3.5228787e+00 -4.0695954e+00 -4.5195563e+00 -4.8882408e+00 -5.1911281e+00 -5.4436975e+00 -5.6624382e+00 -5.8678790e+00 -6.0815585e+00 -6.3250156e+00 -6.6197888e+00 -6.9803226e+00 -7.3926844e+00 -7.8358476e+00 -8.2887851e+00 -8.7304703e+00 -9.1400299e+00 -9.4972052e+00 -9.7818912e+00 -9.9739828e+00 -1.0053375e+01 -1.0012990e+01 -9.8978589e+00 -9.7660404e+00 -9.6755932e+00 -9.6845757e+00 -9.8292816e+00 -1.0058945e+01 -1.0301036e+01 -1.0483024e+01 -1.0532377e+01 -1.0403792e+01 -1.0160866e+01 -9.8944223e+00 -9.6952846e+00 -9.6542763e+00 -9.8622211e+00 -1.0409942e+01 -1.1388264e+01 -1.2888008e+01 -1.5000000e+01
-5.8941086e-02 -1.1484048e+00 -2.0784036e+00 -2.8646556e+00 -3.5228787e+00 -4.0687913e+00 -4.5181114e+00 -4.8865570e+00 -5.1898463e+00 -5.4436975e+00 -5.6646148e+00 -5.8722473e+00 -6.0870303e+00 -6.3293990e+00 -6.6197888e+00 -6.9721682e+00 -7.3746396e+00 -7.8088385e+00 -8.2564006e+00 -8.6989614e+00 -9.1171753e+00 -9.4877719e+00 -9.7864994e+00 -9.9891063e+00 -1.0071341e+01 -1.0023508e+01 -9.8941380e+00 -9.7463198e+00 -9.6431406e+00 -9.6476882e+00 -9.7995982e+00 -1.0044699e+01 -1.0305365e+01 -1.0503974e+01 -1.0562901e+01 -1.0433129e+01 -1.0180074e+01 -9.8977556e+00 -9.6801965e+00 -9.6214182e+00 -9.8154426e+00 -1.0356291e+01 -1.1337986e+01 -1.2854548e+01 -1.5000000e+01
-5.9003364e-02 -1.1492767e+00 -2.0793966e+00 -2.8652887e+00 -3.5228787e+00 -4.0680924e+00 -4.5168554e+00 -4.8850935e+00 -5.1887323e+00 -5.4436975e+00 -5.6665066e+00 -5.8760441e+00 -6.0917862e+00 -6.3332090e+00 -6.6197888e+00 -6.9650872e+00 -7.3590085e+00 -7.7855421e+00 -8.2286778e+00 -8.6724051e+00 -9.0987117e+00 -9.4815775e+00 -9.7929807e+00 -1.0004899e+01 -1.0089311e+01 -1.0034159e+01 -9.8912509e+00 -9.7283574e+00 -9.6132507e+00 -9.6137024e+00 -9.7724577e+00 -1.0032155e+01 -1.0310405e+01 -1.0524821e+01 -1.0593013e+01 -1.0462486e+01 -1.0200316e+01 -9.9034708e+00 -9.6689190e+00 -9.5936289e+00 -9.7745690e+00 -1.0308708e+01 -1.1293014e+01 -1.2824455e+01 -1.5000000e+01
-5.9055602e-02 -1.1500081e+00 -2.0802295e+00 -2.8658198e+00 -3.5228787e+00 -4.0675062e+00 -4.5158020e+00 -4.8838659e+00 -5.1877978e+00 -5.4436975e+00 -5.6680935e+00 -5.8792289e+00 -6.0957754e+00 -6.3364048e+00 -6.6197888e+00 -6.9591559e+00 -7.3459619e+00 -7.7662195e+00 -8.2059412e+00 -8.6511395e+00 -9.0849275e+00 -9.4788190e+00 -9.8014285e+00 -1.0021370e+01 -1.0107259e+01 -1.0044953e+01 -9.8892860e+00 -9.7123380e+00 -9.5861873e+00 -9.5829128e+00 -9.7481149e+00 -1.0021481e+01 -1.0316219e+01 -1.0545538e+01 -1.0622647e+01 -1.0491827e+01 -1.0221645e+01 -9.9117423e+00 -9.6617585e+00 -9.5713337e+00 -9.7401081e+00 -1.0267722e+01 -1.1253815e+01 -1.2798028e+01 -1.5000000e+01
-5.9097132e-02 -1.1505895e+00 -2.0808917e+00 -2.8662420e+00 -3.5228787e+00 -4.0670401e+00 -4.5149644e+00 -4.8828899e+00 -5.1870549e+00 -5.4436975e+00 -5.6693551e+00 -5.8817609e+00 -6.0989469e+00 -6.3389455e+00 -6.6197888e+00 -6.9544505e+00 -7.3356709e+00 -7.7511319e+00 -8.1885153e+00 -8.6355030e+00 -9.0761112e+00 -9.4796932e+00 -9.8119367e+00 -1.0038529e+01 -1.0125159e+01 -1.0055895e+01 -9.8883315e+00 -9.6984460e+00 -9.5622146e+00 -9.5556141e+00 -9.7268247e+00 -1.0012842e+01 -1.0322867e+01 -1.0566098e+01 -1.0651735e+01 -1.0521114e+01 -1.0244113e+01 -9.9227440e+00 -9.6590213e+00 -9.5549580e+00 -9.7125675e+00 -1.0233863e+01 -1.1220858e+01 -1.2775566e+01 -1.5000000e+01
-5.9127288e-02 -1.1510117e+00 -2.0813725e+00 -2.8665486e+00 -3.5228787e+00 -4.0667017e+00 -4.5143563e+00 -4.8821813e+00 -5.1865154e+00 -5.4436975e+00 -5.6702712e+00 -5.8835994e+00 -6.1012498e+00 -6.3407904e+00 -6.6197888e+00 -6.9510472e+00 -7.3283062e+00 -7.7405403e+00 -8.1767245e+00 -8.6258336e+00 -9.0725513e+00 -9.4843969e+00 -9.8245989e+00 -1.0056386e+01 -1.0142985e+01 -1.0066993e+01 -9.8884761e+00 -9.6868662e+00 -9.5415967e+00 -9.5321006e+00 -9.7088418e+00 -1.0006407e+01 -1.0330412e+01 -1.0586474e+01 -1.0680211e+01 -1.0550313e+01 -1.0267772e+01 -9.9366502e+00 -9.6610139e+00 -9.5449272e+00 -9.6924548e+00 -1.0207661e+01 -1.1194611e+01 -1.2757369e+01 -1.5000000e+01
-5.9145402e-02 -1.1512653e+00 -2.0816613e+00 -2.8667328e+00 -3.5228787e+00 -4.0664984e+00 -4.5139910e+00 -4.8817556e+00 -5.1861914e+00 -5.4436975e+00 -5.6708214e+00 -5.8847037e+00 -6.1026332e+00 -6.3418986e+00 -6.6197888e+00 -6.9490225e+00 -7.3240387e+00 -7.7347061e+00 -8.1708934e+00 -8.6224696e+00 -9.0745363e+00 -9.4931271e+00 -9.8395088e+00 -1.0074948e+01 -1.0160711e+01 -1.0078256e+01 -9.8898082e+00 -9.6777832e+00 -9.5245974e+00 -9.5126671e+00 -9.6944211e+00 -1.0002339e+01 -1.0338915e+01 -1.0606639e+01 -1.0708006e+01 -1.0579387e+01 -1.0292673e+01 -9.9536349e+00 -9.6680426e+00 -9.5416668e+00 -9.6802778e+00 -1.0189646e+01 -1.1175542e+01 -1.2743737e+01 -1.5000000e+01
-5.9150808e-02 -1.1513409e+00 -2.0817475e+00 -2.8667877e+00 -3.5228787e+00 -4.0664378e+00 -4.5138820e+00 -4.8816285e+00 -5.1860947e+00 -5.4436975e+00 -5.6709857e+00 -5.8850333e+00 -6.1030460e+00 -6.3422293e+00 -6.6197888e+00 -6.9484526e+00 -7.3230394e+00 -7.7338903e+00 -8.1713464e+00 -8.6257491e+00 -9.0823546e+00 -9.5060806e+00 -9.8567600e+00 -1.0094226e+01 -1.0178310e+01 -1.0089690e+01 -9.8924160e+00 -9.6713816e+00 -9.5114809e+00 -9.4976079e+00 -9.6838174e+00 -1.0000808e+01 -1.0348438e+01 -1.0626567e+01 -1.0735054e+01 -1.0608299e+01 -1.0318870e+01 -9.9738721e+00 -9.6804137e+00 -9.5456020e+00 -9.6765442e+00 -1.0180348e+01 -1.1164120e+01 -1.2734968e+01 -1.5000000e+01
-5.9142837e-02 -1.1512293e+00 -2.0816204e+00 -2.8667067e+00 -3.5228787e+00 -4.0665272e+00 -4.5140427e+00 -4.8818158e+00 -5.1862372e+00 -5.4436975e+00 -5.6707435e+00 -5.8845474e+00 -6.1024373e+00 -6.3417417e+00 -6.6197888e+00 -6.9494137e+00 -7.3254791e+00 -7.7383541e+00 -8.1784081e+00 -8.6360103e+00 -9.0962948e+00 -9.5234543e+00 -9.8764462e+00 -1.0114228e+01 -1.0195757e+01 -1.0101303e+01 -9.8963881e+00 -9.6678462e+00 -9.5025113e+00 -9.4872177e+00 -9.6772853e+00 -1.0001977e+01 -1.0359042e+01 -1.0646229e+01 -1.0761287e+01 -1.0637015e+01 -1.0346414e+01 -9.9975362e+00 -9.6984337e+00 -9.5571582e+00 -9.6817615e+00 -1.0180296e+01 -1.1160812e+01 -1.2731363e+01 -1.5000000e+01
-5.9120824e-02 -1.1509212e+00 -2.0812694e+00 -2.8664829e+00 -3.5228787e+00 -4.0667743e+00 -4.5144867e+00 -4.8823332e+00 -5.1866310e+00 -5.4436975e+00 -5.6700748e+00 -5.8832053e+00 -6.1007562e+00 -6.3403949e+00 -6.6197888e+00 -6.9519822e+00 -7.3315287e+00 -7.7483587e+00 -8.1924028e+00 -8.6535915e+00 -9.1166454e+00 -9.5454451e+00 -9.8986611e+00 -1.0134964e+01 -1.0213025e+01 -1.0113102e+01 -9.9018130e+00 -9.6673614e+00 -9.4979525e+00 -9.4817910e+00 -9.6750798e+00 -1.0006015e+01 -1.0370790e+01 -1.0665600e+01 -1.0786638e+01 -1.0665496e+01 -1.0375357e+01 -1.0024801e+01 -9.7224089e+00 -9.5767609e+00 -9.6964375e+00 -1.0190019e+01 -1.1166087e+01 -1.2733220e+01 -1.5000000e+01
-5.9084100e-02 -1.1504070e+00 -2.0806839e+00 -2.8661095e+00 -3.5228787e+00 -4.0671864e+00 -4.5152272e+00 -4.8831962e+00 -5.1872880e+00 -5.4436975e+00 -5.6689592e+00 -5.8809663e+00 -6.0979517e+00 -6.3381482e+00 -6.6197888e+00 -6.9562344e+00 -7.3413591e+00 -7.7641653e+00 -8.2136551e+00 -8.6788308e+00 -9.1436948e+00 -9.5722497e+00 -9.9234983e+00 -1.0156443e+01 -1.0230087e+01 -1.0125095e+01 -9.9087790e+00 -9.6701121e+00 -9.4980686e+00 -9.4816222e+00 -9.6774557e+00 -1.0013087e+01 -1.0383744e+01 -1.0684652e+01 -1.0811040e+01 -1.0693708e+01 -1.0405751e+01 -1.0055841e+01 -9.7526456e+00 -9.6048354e+00 -9.7210799e+00 -1.0210049e+01 -1.1180412e+01 -1.2740839e+01 -1.5000000e+01
-5.9031999e-02 -1.1496776e+00 -2.0798532e+00 -2.8655798e+00 -3.5228787e+00 -4.0677711e+00 -4.5162780e+00 -4.8844206e+00 -5.1882200e+00 -5.4436975e+00 -5.6673765e+00 -5.8777899e+00 -6.0939729e+00 -6.3349608e+00 -6.6197888e+00 -6.9622465e+00 -7.3551413e+00 -7.7860350e+00 -8.2424895e+00 -8.7120665e+00 -9.1777316e+00 -9.6040652e+00 -9.9510515e+00 -1.0178675e+01 -1.0246919e+01 -1.0137290e+01 -9.9173745e+00 -9.6762828e+00 -9.5031236e+00 -9.4870060e+00 -9.6846676e+00 -1.0023360e+01 -1.0397964e+01 -1.0703359e+01 -1.0834425e+01 -1.0721613e+01 -1.0437650e+01 -1.0090830e+01 -9.7894502e+00 -9.6418071e+00 -9.7561963e+00 -1.0240914e+01 -1.1204257e+01 -1.2754520e+01 -1.5000000e+01
-5.8963853e-02 -1.1487236e+00 -2.0787666e+00 -2.8648870e+00 -3.5228787e+00 -4.0685358e+00 -4.5176522e+00 -4.8860220e+00 -5.1894391e+00 -5.4436975e+00 -5.6653064e+00 -5.8736353e+00 -6.0887688e+00 -6.3307918e+00 -6.6197888e+00 -6.9700947e+00 -7.3730460e+00 -7.8142290e+00 -8.2792304e+00 -8.7536367e+00 -9.2190441e+00 -9.6410883e+00 -9.9814144e+00 -1.0201668e+01 -1.0263494e+01 -1.0149693e+01 -9.9276880e+00 -9.6860582e+00 -9.5133816e+00 -9.4982369e+00 -9.6969705e+00 -1.0037000e+01 -1.0413512e+01 -1.0721693e+01 -1.0856727e+01 -1.0749177e+01 -1.0471103e+01 -1.0129942e+01 -9.8331292e+00 -9.6881013e+00 -9.8022945e+00 -1.0283145e+01 -1.1238088e+01 -1.2774561e+01 -1.5000000e+01
-5.8878995e-02 -1.1475356e+00 -2.0774136e+00 -2.8640243e+00 -3.5228787e+00 -4.0694881e+00 -4.5193635e+00 -4.8880161e+00 -5.1909571e+00 -5.4436975e+00 -5.6627286e+00 -5.8684618e+00 -6.0822886e+00 -6.3256004e+00 -6.6197888e+00 -6.9798555e+00 -7.3952442e+00 -7.8490085e+00 -8.3242023e+00 -8.8038795e+00 -9.2679210e+00 -9.6835159e+00 -1.0014681e+01 -1.0225431e+01 -1.0279784e+01 -1.0162312e+01 -9.9398079e+00 -9.6996229e+00 -9.5291067e+00 -9.5156095e+00 -9.7146190e+00 -1.0054174e+01 -1.0430451e+01 -1.0739627e+01 -1.0877878e+01 -1.0776362e+01 -1.0506165e+01 -1.0173351e+01 -9.8839888e+00 -9.7441436e+00 -9.8598820e+00 -1.0337270e+01 -1.1282375e+01 -1.2801263e+01 -1.5000000e+01
-5.8776759e-02 -1.1461042e+00 -2.0757835e+00 -2.8629849e+00 -3.5228787e+00 -4.0706354e+00 -4.5214253e+00 -4.8904187e+00 -5.1927860e+00 -5.4436975e+00 -5.6596229e+00 -5.8622288e+00 -6.0744811e+00 -6.3193458e+00 -6.6197888e+00 -6.9916051e+00 -7.4219067e+00 -7.8906346e+00 -8.3777298e+00 -8.8631333e+00 -9.3246506e+00 -9.7315449e+00 -1.0050944e+01 -1.0249975e+01 -1.0295766e+01 -1.0175155e+01 -9.9538227e+00 -9.7171615e+00 -9.5505628e+00 -9.5394181e+00 -9.7378681e+00 -1.0075048e+01 -1.0448842e+01 -1.0757135e+01 -1.0897811e+01 -1.0803133e+01 -1.0542886e+01 -1.0221232e+01 -9.9423354e+00 -9.8103591e+00 -9.9294665e+00 -1.0403821e+01 -1.1337586e+01 -1.2834924e+01 -1.5000000e+01
-5.8656476e-02 -1.1444203e+00 -2.0738657e+00 -2.8617620e+00 -3.5228787e+00 -4.0719853e+00 -4.5238510e+00 -4.8932453e+00 -5.1949377e+00 -5.4436975e+00 -5.6559690e+00 -5.8548955e+00 -6.0652955e+00 -6.3119872e+00 -6.6197888e+00 -7.0054198e+00 -7.4532045e+00 -7.9393685e+00 -8.4401372e+00 -8.9317362e+00 -9.3895216e+00 -9.7853722e+00 -1.0090298e+01 -1.0275308e+01 -1.0311411e+01 -1.0188229e+01 -9.9698208e+00 -9.7388588e+00 -9.5780139e+00 -9.5699575e+00 -9.7669725e+00 -1.0099789e+01 -1.0468747e+01 -1.0774190e+01 -1.0916458e+01 -1.0829453e+01 -1.0581319e+01 -1.0273758e+01 -1.0008475e+01 -9.8871735e+00 -1.0011556e+01 -1.0483326e+01 -1.1404188e+01 -1.2875845e+01 -1.5000000e+01
-5.8517480e-02 -1.1424743e+00 -2.0716495e+00 -2.8603489e+00 -3.5228787e+00 -4.0735451e+00 -4.5266541e+00 -4.8965117e+00 -5.1974242e+00 -5.4436975e+00 -5.6517466e+00 -5.8464214e+00 -6.0546809e+00 -6.3034837e+00 -6.6197888e+00 -7.0213758e+00 -7.4893085e+00 -7.9954714e+00 -8.5117492e+00 -9.0100264e+00 -9.4628223e+00 -9.8451947e+00 -1.0132836e+01 -1.0301439e+01 -1.0326695e+01 -1.0201541e+01 -9.9878905e+00 -9.7648993e+00 -9.6117243e+00 -9.6075222e+00 -9.8021870e+00 -1.0128562e+01 -1.0490227e+01 -1.0790764e+01 -1.0933752e+01 -1.0855286e+01 -1.0621516e+01 -1.0331104e+01 -1.0082715e+01 -9.9750119e+00 -1.0106658e+01 -1.0576316e+01 -1.1482650e+01 -1.2924324e+01 -1.5000000e+01
-5.8359104e-02 -1.1402571e+00 -2.0691242e+00 -2.8587387e+00 -3.5228787e+00 -4.0753224e+00 -4.5298480e+00 -4.9002336e+00 -5.2002574e+00 -5.4436975e+00 -5.6469355e+00 -5.8367657e+00 -6.0425862e+00 -6.2937946e+00 -6.6197888e+00 -7.0395495e+00 -7.5303895e+00 -8.0592044e+00 -8.5928900e+00 -9.0983421e+00 -9.5448413e+00 -9.9112091e+00 -1.0178652e+01 -1.0328377e+01 -1.0341590e+01 -1.0215100e+01 -1.0008120e+01 -9.7954677e+00 -9.6519577e+00 -9.6524065e+00 -9.8437663e+00 -1.0161534e+01 -1.0513345e+01 -1.0806831e+01 -1.0949627e+01 -1.0880596e+01 -1.0663529e+01 -1.0393444e+01 -1.0165361e+01 -1.0074300e+01 -1.0215279e+01 -1.0683320e+01 -1.1573440e+01 -1.2980660e+01 -1.5000000e+01
-5.8180680e-02 -1.1377591e+00 -2.0662794e+00 -2.8569248e+00 -3.5228787e+00 -4.0773248e+00 -4.5334462e+00 -4.9044265e+00 -5.2034492e+00 -5.4436975e+00 -5.6415153e+00 -5.8258878e+00 -6.0289606e+00 -6.2828790e+00 -6.6197888e+00 -7.0600171e+00 -7.5766184e+00 -8.1308287e+00 -8.6838844e+00 -9.1970214e+00 -9.6358670e+00 -9.9836125e+00 -1.0227840e+01 -1.0356132e+01 -1.0356071e+01 -1.0228912e+01 -1.0030599e+01 -9.8307486e+00 -9.6989784e+00 -9.7049053e+00 -9.8919654e+00 -1.0198873e+01 -1.0538161e+01 -1.0822364e+01 -1.0964014e+01 -1.0905347e+01 -1.0707411e+01 -1.0460952e+01 -1.0256720e+01 -1.0185463e+01 -1.0337929e+01 -1.0804867e+01 -1.1677026e+01 -1.3045154e+01 -1.5000000e+01
-5.7981542e-02 -1.1349712e+00 -2.0631042e+00 -2.8549002e+00 -3.5228787e+00 -4.0795595e+00 -4.5374622e+00 -4.9091063e+00 -5.2070115e+00 -5.4436975e+00 -5.6354659e+00 -5.8137470e+00 -6.0137530e+00 -6.2706962e+00 -6.6197888e+00 -7.0828549e+00 -7.6281661e+00 -8.2106055e+00 -8.7850566e+00 -9.3064026e+00 -9.7361880e+00 -1.0062602e+01 -1.0280493e+01 -1.0384714e+01 -1.0370112e+01 -1.0242985e+01 -1.0055414e+01 -9.8709267e+00 -9.7530504e+00 -9.7653128e+00 -9.9470389e+00 -1.0240743e+01 -1.0564738e+01 -1.0837335e+01 -1.0976846e+01 -1.0929503e+01 -1.0753212e+01 -1.0533801e+01 -1.0357097e+01 -1.0308926e+01 -1.0475114e+01 -1.0941489e+01 -1.1793877e+01 -1.3118105e+01 -1.5000000e+01
-5.7761021e-02 -1.1318839e+00 -2.0595881e+00 -2.8526582e+00 -3.5228787e+00 -4.0820343e+00 -4.5419093e+00 -4.9142885e+00 -5.2109564e+00 -5.4436975e+00 -5.6287670e+00 -5.8003026e+00 -5.9969126e+00 -6.2572052e+00 -6.6197888e+00 -7.1081392e+00 -7.6852035e+00 -8.2987960e+00 -8.8967313e+00 -9.4268239e+00 -9.8460926e+00 -1.0148373e+01 -1.0336706e+01 -1.0414130e+01 -1.0383686e+01 -1.0257327e+01 -1.0082655e+01 -9.9161867e+00 -9.8144376e+00 -9.8339237e+00 -1.0009242e+01 -1.0287312e+01 -1.0593137e+01 -1.0851718e+01 -1.0988057e+01 -1.0953027e+01 -1.0800986e+01 -1.0612167e+01 -1.0466800e+01 -1.0445114e+01 -1.0627342e+01 -1.1093714e+01 -1.1924460e+01 -1.3199812e+01 -1.5000000e+01
-5.7518451e-02 -1.1284879e+00 -2.0557205e+00 -2.8501921e+00 -3.5228787e+00 -4.0847564e+00 -4.5468012e+00 -4.9199889e+00 -5.2152957e+00 -5.4436975e+00 -5.6213983e+00 -5.7855140e+00 -5.9783884e+00 -6.2423653e+00 -6.6197888e+00 -7.1359464e+00 -7.7479014e+00 -8.3956612e+00 -9.0192328e+00 -9.5586234e+00 -9.9658695e+00 -1.0241124e+01 -1.0396571e+01 -1.0444391e+01 -1.0396767e+01 -1.0271944e+01 -1.0112410e+01 -9.9667131e+00 -9.8834042e+00 -9.9110326e+00 -1.0078829e+01 -1.0338746e+01 -1.0623421e+01 -1.0865486e+01 -1.0997579e+01 -1.0975883e+01 -1.0850785e+01 -1.0696223e+01 -1.0586134e+01 -1.0594454e+01 -1.0795121e+01 -1.1262072e+01 -1.2069244e+01 -1.3290575e+01 -1.5000000e+01
-5.7253166e-02 -1.1247739e+00 -2.0514907e+00 -2.8474950e+00 -3.5228787e+00 -4.0877335e+00 -4.5521511e+00 -4.9262231e+00 -5.2200414e+00 -5.4436975e+00 -5.6133395e+00 -5.7693404e+00 -5.9581294e+00 -6.2261357e+00 -6.6197888e+00 -7.1663526e+00 -7.8164309e+00 -8.5014624e+00 -9.1528857e+00 -9.7021394e+00 -1.0095807e+01 -1.0341052e+01 -1.0460182e+01 -1.0475505e+01 -1.0409330e+01 -1.0286845e+01 -1.0144766e+01 -1.0022691e+01 -9.9602142e+00 -9.9969339e+00 -1.0156054e+01 -1.0395212e+01 -1.0655650e+01 -1.0878613e+01 -1.1005344e+01 -1.0998035e+01 -1.0902660e+01 -1.0786143e+01 -1.0715406e+01 -1.0757370e+01 -1.0978959e+01 -1.1447094e+01 -1.2228697e+01 -1.3390692e+01 -1.5000000e+01
-5.6964496e-02 -1.1207326e+00 -2.0468880e+00 -2.8445602e+00 -3.5228787e+00 -4.0909730e+00 -4.5579726e+00 -4.9330069e+00 -5.2252053e+00 -5.4436975e+00 -5.6045704e+00 -5.7517412e+00 -5.9360847e+00 -6.2084756e+00 -6.6197888e+00 -7.1994341e+00 -7.8909627e+00 -8.6164608e+00 -9.2980145e+00 -9.8577101e+00 -1.0236194e+01 -1.0448353e+01 -1.0527633e+01 -1.0507482e+01 -1.0421347e+01 -1.0302037e+01 -1.0179814e+01 -1.0084304e+01 -1.0045132e+01 -1.0091922e+01 -1.0241174e+01 -1.0456875e+01 -1.0689886e+01 -1.0891070e+01 -1.1011286e+01 -1.1019447e+01 -1.0956664e+01 -1.0882102e+01 -1.0854922e+01 -1.0934288e+01 -1.1179362e+01 -1.1649308e+01 -1.2403287e+01 -1.3500464e+01 -1.5000000e+01
-5.6651777e-02 -1.1163545e+00 -2.0419018e+00 -2.8413809e+00 -3.5228787e+00 -4.0944825e+00 -4.5642791e+00 -4.9403558e+00 -5.2307995e+00 -5.4436975e+00 -5.5950706e+00 -5.7326757e+00 -5.9122033e+00 -6.1893441e+00 -6.6197888e+00 -7.2352674e+00 -7.9716678e+00 -8.7409174e+00 -9.4549436e+00 -1.0025674e+01 -1.0387318e+01 -1.0563224e+01 -1.0599018e+01 -1.0540332e+01 -1.0432793e+01 -1.0317527e+01 -1.0217641e+01 -1.0151738e+01 -1.0138420e+01 -1.0196292e+01 -1.0334442e+01 -1.0523902e+01 -1.0726192e+01 -1.0902831e+01 -1.1015337e+01 -1.1040082e+01 -1.1012849e+01 -1.0984273e+01 -1.1004989e+01 -1.1125633e+01 -1.1396840e+01 -1.1869244e+01 -1.2593482e+01 -1.3620189e+01 -1.5000000e+01
-5.6314339e-02 -1.1116304e+00 -2.0365216e+00 -2.8379503e+00 -3.5228787e+00 -4.0982693e+00 -4.5710841e+00 -4.9482856e+00 -5.2368359e+00 -5.4436975e+00 -5.5848200e+00 -5.7121032e+00 -5.8864343e+00 -6.1687004e+00 -6.6197888e+00 -7.2739285e+00 -8.0587170e+00 -8.8750936e+00 -9.6239975e+00 -1.0206368e+01 -1.0549469e+01 -1.0685861e+01 -1.0674431e+01 -1.0574062e+01 -1.0443641e+01 -1.0333323e+01 -1.0258335e+01 -1.0225176e+01 -1.0240345e+01 -1.0310338e+01 -1.0436113e+01 -1.0596460e+01 -1.0764629e+01 -1.0913869e+01 -1.1017430e+01 -1.1059905e+01 -1.1071267e+01 -1.1092831e+01 -1.1165914e+01 -1.1331831e+01 -1.1631898e+01 -1.2107433e+01 -1.2799751e+01 -1.3750168e+01 -1.5000000e+01
-5.5951517e-02 -1.1065509e+00 -2.0307366e+00 -2.8342616e+00 -3.5228787e+00 -4.1023409e+00 -4.5784010e+00 -4.9568119e+00 -5.2433264e+00 -5.4436975e+00 -5.5737983e+00 -5.6899832e+00 -5.8587268e+00 -6.1465038e+00 -6.6197888e+00 -7.3154939e+00 -8.1522813e+00 -9.0192504e+00 -9.8055007e+00 -1.0400132e+01 -1.0722934e+01 -1.0816463e+01 -1.0753964e+01 -1.0608683e+01 -1.0453866e+01 -1.0349432e+01 -1.0301985e+01 -1.0304805e+01 -1.0351169e+01 -1.0434355e+01 -1.0546442e+01 -1.0674715e+01 -1.0805258e+01 -1.0924158e+01 -1.1017498e+01 -1.1078880e+01 -1.1131970e+01 -1.1207950e+01 -1.1338001e+01 -1.1553306e+01 -1.1885047e+01 -1.2364404e+01 -1.3022561e+01 -1.3890699e+01 -1.5000000e+01
-5.5562642e-02 -1.1011066e+00 -2.0245362e+00 -2.8303080e+00 -3.5228787e+00 -4.1067050e+00 -4.5862433e+00 -4.9659504e+00 -5.2502830e+00 -5.4436975e+00 -5.5619852e+00 -5.6662748e+00 -5.8290297e+00 -6.1227133e+00 -6.6197888e+00 -7.3600398e+00 -8.2525315e+00 -9.1736490e+00 -9.9997778e+00 -1.0607303e+01 -1.0908003e+01 -1.0955225e+01 -1.0837712e+01 -1.0644204e+01 -1.0463442e+01 -1.0365861e+01 -1.0348680e+01 -1.0390808e+01 -1.0471156e+01 -1.0568636e+01 -1.0665684e+01 -1.0758833e+01 -1.0848142e+01 -1.0933669e+01 -1.1015473e+01 -1.1096969e+01 -1.1195010e+01 -1.1329803e+01 -1.1521559e+01 -1.1790485e+01 -1.2156791e+01 -1.2640687e+01 -1.3262381e+01 -1.4042082e+01 -1.5000000e+01
\ No newline at end of file
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.57635679021176 -7.34526645140160 -7.85073255601413 -8.02221820307311 -8.04431224968649 -8.07556632724485 -8.12601346721120 -8.16924554093974 -8.19468968686498 -8.20760831050175 -8.21395230723792 -8.21967257246139 -8.23072000156004 -8.25304548992176 -8.29259993293443 -8.35533422598593 -8.44719926446415 -8.57414594375697 -8.74212515925228 -8.95708780633797 -9.22498478040191 -9.55176697683200 -9.94338529101611 -10.4057906183421 -10.9449338541980 -11.5667658939715 -12.2772376330505 -13.0822999668231 -13.9879037906769 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.57954399257977 -7.35238615350243 -7.86214702493269 -8.03776993402027 -8.06380545228259 -8.09114618006360 -8.13767664069574 -8.17693540469025 -8.19835557279655 -8.20722566528701 -8.22441346710398 -8.24099267033252 -8.26293499177007 -8.29624357382127 -8.34695298449798 -8.39890647268186 -8.47993553408100 -8.59588909282390 -8.75258418808298 -8.95580597407452 -9.23070056516432 -9.56497042943397 -9.96471396342266 -10.4360477188144 -10.9851064024382 -11.6007298423735 -12.3042752338789 -13.1015070020966 -13.9981720983213 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.58273119494777 -7.35950585560325 -7.87356149385126 -8.05332166496743 -8.08329865487868 -8.10672603288236 -8.14933981418028 -8.18462526844077 -8.20202145872811 -8.20684302007228 -8.23487462697005 -8.26231276820364 -8.29514998198008 -8.33944165772078 -8.40130603606154 -8.44247871937780 -8.51267180369784 -8.61763224189084 -8.76304321691369 -8.95452414181107 -9.23641634992673 -9.57817388203595 -9.98604263582921 -10.4663048192867 -11.0252789506784 -11.6346937907754 -12.3313128347072 -13.1207140373701 -14.0084404059656 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.58591839731577 -7.36662555770408 -7.88497596276983 -8.06887339591459 -8.10279185747478 -8.12230588570111 -8.16100298766482 -8.19231513219128 -8.20568734465967 -8.20646037485755 -8.24533578683611 -8.28363286607477 -8.32736497219010 -8.38263974162029 -8.45565908762509 -8.48605096607374 -8.54540807331469 -8.63937539095777 -8.77350224574440 -8.95324230954762 -9.24213213468915 -9.59137733463793 -10.0073713082358 -10.4965619197590 -11.0654514989186 -11.6686577391774 -12.3583504355355 -13.1399210726437 -14.0187087136100 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.58910559968378 -7.37374525980490 -7.89639043168839 -8.08442512686175 -8.12228506007087 -8.13788573851986 -8.17266616114935 -8.20000499594179 -8.20935323059123 -8.20607772964282 -8.25579694670217 -8.30495296394589 -8.35957996240012 -8.42583782551980 -8.51001213918865 -8.52962321276968 -8.57814434293154 -8.66111854002470 -8.78396127457510 -8.95196047728417 -9.24784791945156 -9.60458078723991 -10.0286999806423 -10.5268190202313 -11.1056240471589 -11.7026216875794 -12.3853880363638 -13.1591281079172 -14.0289770212544 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.59229280205178 -7.38086496190573 -7.90780490060696 -8.09997685780891 -8.14177826266697 -8.15346559133862 -8.18432933463389 -8.20769485969230 -8.21301911652280 -8.20569508442809 -8.26625810656823 -8.32627306181702 -8.39179495261014 -8.46903590941931 -8.56436519075221 -8.57319545946561 -8.61088061254839 -8.68286168909163 -8.79442030340581 -8.95067864502072 -9.25356370421397 -9.61778423984188 -10.0500286530489 -10.5570761207036 -11.1457965953991 -11.7365856359814 -12.4124256371922 -13.1783351431907 -14.0392453288987 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.59548000441979 -7.38798466400656 -7.91921936952552 -8.11552858875607 -8.16127146526307 -8.16904544415737 -8.19599250811843 -8.21538472344282 -8.21668500245436 -8.20531243921336 -8.27671926643429 -8.34759315968814 -8.42400994282016 -8.51223399331882 -8.61871824231576 -8.61676770616155 -8.64361688216524 -8.70460483815857 -8.80487933223651 -8.94939681275727 -9.25927948897638 -9.63098769244386 -10.0713573254554 -10.5873332211759 -11.1859691436393 -11.7705495843834 -12.4394632380205 -13.1975421784643 -14.0495136365431 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.59866720678779 -7.39510436610738 -7.93063383844409 -8.13108031970323 -8.18076466785916 -8.18462529697612 -8.20765568160296 -8.22307458719333 -8.22035088838592 -8.20492979399862 -8.28718042630035 -8.36891325755927 -8.45622493303018 -8.55543207721833 -8.67307129387932 -8.66033995285749 -8.67635315178208 -8.72634798722550 -8.81533836106721 -8.94811498049382 -9.26499527373879 -9.64419114504584 -10.0926859978620 -10.6175903216482 -11.2261416918795 -11.8045135327854 -12.4665008388488 -13.2167492137378 -14.0597819441875 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.60185440915579 -7.40222406820821 -7.94204830736265 -8.14663205065039 -8.20025787045525 -8.20020514979488 -8.21931885508750 -8.23076445094384 -8.22401677431749 -8.20454714878389 -8.29764158616642 -8.39023335543039 -8.48843992324020 -8.59863016111783 -8.72742434544287 -8.70391219955343 -8.70908942139893 -8.74809113629243 -8.82579738989792 -8.94683314823037 -9.27071105850120 -9.65739459764781 -10.1140146702685 -10.6478474221205 -11.2663142401197 -11.8384774811874 -12.4935384396772 -13.2359562490114 -14.0700502518318 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.60504161152380 -7.40934377030903 -7.95346277628122 -8.16218378159755 -8.21975107305135 -8.21578500261363 -8.23098202857204 -8.23845431469435 -8.22768266024905 -8.20416450356916 -8.30810274603248 -8.41155345330152 -8.52065491345022 -8.64182824501734 -8.78177739700643 -8.74748444624936 -8.74182569101578 -8.76983428535936 -8.83625641872862 -8.94555131596692 -9.27642684326362 -9.67059805024979 -10.1353433426751 -10.6781045225928 -11.3064867883600 -11.8724414295894 -12.5205760405055 -13.2551632842849 -14.0803185594762 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.60822881389180 -7.41646347240986 -7.96487724519979 -8.17773551254471 -8.23924427564744 -8.23136485543239 -8.24264520205658 -8.24614417844486 -8.23134854618061 -8.20378185835443 -8.31856390589854 -8.43287355117264 -8.55286990366024 -8.68502632891685 -8.83613044856998 -8.79105669294530 -8.77456196063263 -8.79157743442629 -8.84671544755933 -8.94426948370347 -9.28214262802603 -9.68380150285177 -10.1566720150816 -10.7083616230651 -11.3466593366002 -11.9064053779913 -12.5476136413338 -13.2743703195584 -14.0905868671206 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.61141601625980 -7.42358317451068 -7.97629171411835 -8.19328724349187 -8.25873747824354 -8.24694470825114 -8.25430837554111 -8.25383404219538 -8.23501443211218 -8.20339921313969 -8.32902506576460 -8.45419364904377 -8.58508489387026 -8.72822441281636 -8.89048350013354 -8.83462893964124 -8.80729823024948 -8.81332058349323 -8.85717447639003 -8.94298765144002 -9.28785841278844 -9.69700495545375 -10.1780006874882 -10.7386187235374 -11.3868318848404 -11.9403693263933 -12.5746512421621 -13.2935773548320 -14.1008551747649 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.61460321862781 -7.43070287661151 -7.98770618303692 -8.20883897443903 -8.27823068083963 -8.26252456106989 -8.26597154902565 -8.26152390594589 -8.23868031804374 -8.20301656792496 -8.33948622563066 -8.47551374691489 -8.61729988408028 -8.77142249671587 -8.94483655169710 -8.87820118633717 -8.84003449986632 -8.83506373256016 -8.86763350522074 -8.94170581917657 -9.29357419755085 -9.71020840805572 -10.1993293598947 -10.7688758240097 -11.4270044330806 -11.9743332747953 -12.6016888429905 -13.3127843901055 -14.1111234824093 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.61779042099581 -7.43782257871233 -7.99912065195548 -8.22439070538619 -8.29772388343573 -8.27810441388865 -8.27763472251019 -8.26921376969640 -8.24234620397530 -8.20263392271023 -8.34994738549673 -8.49683384478602 -8.64951487429030 -8.81462058061538 -8.99918960326065 -8.92177343303311 -8.87277076948317 -8.85680688162709 -8.87809253405144 -8.94042398691312 -9.29928998231326 -9.72341186065770 -10.2206580323013 -10.7991329244820 -11.4671769813209 -12.0082972231973 -12.6287264438188 -13.3319914253790 -14.1213917900536 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.62097762336381 -7.44494228081316 -8.01053512087405 -8.23994243633335 -8.31721708603182 -8.29368426670740 -8.28929789599473 -8.27690363344691 -8.24601208990687 -8.20225127749550 -8.36040854536279 -8.51815394265714 -8.68172986450032 -8.85781866451489 -9.05354265482421 -8.96534567972905 -8.90550703910002 -8.87855003069402 -8.88855156288215 -8.93914215464967 -9.30500576707568 -9.73661531325968 -10.2419867047078 -10.8293900249543 -11.5073495295611 -12.0422611715993 -12.6557640446471 -13.3511984606526 -14.1316600976980 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.62416482573182 -7.45206198291398 -8.02194958979261 -8.25549416728051 -8.33671028862792 -8.30926411952616 -8.30096106947926 -8.28459349719742 -8.24967797583843 -8.20186863228077 -8.37086970522885 -8.53947404052827 -8.71394485471034 -8.90101674841440 -9.10789570638777 -9.00891792642499 -8.93824330871687 -8.90029317976096 -8.89901059171285 -8.93786032238622 -9.31072155183809 -9.74981876586166 -10.2633153771144 -10.8596471254266 -11.5475220778013 -12.0762251200013 -12.6828016454754 -13.3704054959261 -14.1419284053424 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.62735202809982 -7.45918168501481 -8.03336405871118 -8.27104589822767 -8.35620349122401 -8.32484397234491 -8.31262424296380 -8.29228336094794 -8.25334386176999 -8.20148598706603 -8.38133086509491 -8.56079413839939 -8.74615984492036 -8.94421483231391 -9.16224875795132 -9.05249017312092 -8.97097957833372 -8.92203632882789 -8.90946962054356 -8.93657849012277 -9.31643733660050 -9.76302221846364 -10.2846440495209 -10.8899042258989 -11.5876946260415 -12.1101890684033 -12.7098392463038 -13.3896125311997 -14.1521967129867 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.63053923046782 -7.46630138711563 -8.04477852762975 -8.28659762917483 -8.37569669382011 -8.34042382516366 -8.32428741644834 -8.29997322469845 -8.25700974770155 -8.20110334185130 -8.39179202496097 -8.58211423627052 -8.77837483513038 -8.98741291621342 -9.21660180951488 -9.09606241981686 -9.00371584795056 -8.94377947789482 -8.91992864937426 -8.93529665785932 -9.32215312136291 -9.77622567106561 -10.3059727219275 -10.9201613263712 -11.6278671742818 -12.1441530168053 -12.7368768471321 -13.4088195664732 -14.1624650206311 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.63372643283583 -7.47342108921646 -8.05619299654831 -8.30214936012199 -8.39518989641620 -8.35600367798242 -8.33595058993288 -8.30766308844896 -8.26067563363312 -8.20072069663657 -8.40225318482703 -8.60343433414164 -8.81058982534040 -9.03061100011293 -9.27095486107843 -9.13963466651280 -9.03645211756741 -8.96552262696176 -8.93038767820497 -8.93401482559587 -9.32786890612533 -9.78942912366759 -10.3273013943340 -10.9504184268435 -11.6680397225220 -12.1781169652073 -12.7639144479604 -13.4280266017467 -14.1727333282755 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.62599123517320 -7.45614189050547 -8.02849059076907 -8.26440600435648 -8.34788076516301 -8.32014873206375 -8.31158235610189 -8.29493820772242 -8.25972078529773 -8.21159262615475 -8.40521171072143 -8.59846759658195 -8.79767843406920 -9.00970507748518 -9.24195108510101 -9.12052435835738 -9.02735576883516 -8.96666729896348 -8.94213581264120 -8.95689305523694 -9.35531526260701 -9.82186917272379 -10.3652577925677 -10.9945209434079 -11.7190352608020 -12.2212312287217 -12.7982363187015 -13.4524082540303 -14.1857680472188 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.61825603751058 -7.43886269179447 -8.00078818498984 -8.22666264859097 -8.30057163390982 -8.28429378614508 -8.28721412227091 -8.28221332699589 -8.25876593696235 -8.22246455567293 -8.40817023661583 -8.59350085902226 -8.78476704279800 -8.98879915485744 -9.21294730912360 -9.10141405020195 -9.01825942010290 -8.96781197096521 -8.95388394707744 -8.97977128487801 -9.38276161908869 -9.85430922177999 -10.4032141908014 -11.0386234599723 -11.7700307990821 -12.2643454922361 -12.8325581894426 -13.4767899063138 -14.1988027661622 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.61052083984796 -7.42158349308348 -7.97308577921060 -8.18891929282547 -8.25326250265662 -8.24843884022642 -8.26284588843993 -8.26948844626935 -8.25781108862697 -8.23333648519112 -8.41112876251022 -8.58853412146257 -8.77185565152680 -8.96789323222970 -9.18394353314619 -9.08230374204653 -9.00916307137065 -8.96895664296694 -8.96563208151368 -9.00264951451907 -9.41020797557037 -9.88674927083619 -10.4411705890351 -11.0827259765367 -11.8210263373621 -12.3074597557505 -12.8668800601837 -13.5011715585974 -14.2118374851055 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.60278564218533 -7.40430429437249 -7.94538337343136 -8.15117593705996 -8.20595337140343 -8.21258389430775 -8.23847765460895 -8.25676356554281 -8.25685624029159 -8.24420841470930 -8.41408728840462 -8.58356738390288 -8.75894426025559 -8.94698730960195 -9.15493975716877 -9.06319343389111 -9.00006672263839 -8.97010131496866 -8.97738021594992 -9.02552774416014 -9.43765433205205 -9.91918931989238 -10.4791269872687 -11.1268284931012 -11.8720218756422 -12.3505740192650 -12.9012019309248 -13.5255532108810 -14.2248722040489 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.59505044452271 -7.38702509566149 -7.91768096765212 -8.11343258129445 -8.15864424015024 -8.17672894838908 -8.21410942077797 -8.24403868481627 -8.25590139195620 -8.25508034422748 -8.41704581429901 -8.57860064634319 -8.74603286898440 -8.92608138697421 -9.12593598119135 -9.04408312573569 -8.99097037390614 -8.97124598697039 -8.98912835038615 -9.04840597380121 -9.46510068853374 -9.95162936894858 -10.5170833855024 -11.1709310096656 -11.9230174139222 -12.3936882827794 -12.9355238016659 -13.5499348631645 -14.2379069229922 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.58731524686008 -7.36974589695050 -7.88997856187288 -8.07568922552894 -8.11133510889705 -8.14087400247042 -8.18974118694699 -8.23131380408973 -8.25494654362082 -8.26595227374566 -8.42000434019341 -8.57363390878350 -8.73312147771319 -8.90517546434646 -9.09693220521394 -9.02497281758027 -8.98187402517389 -8.97239065897212 -9.00087648482239 -9.07128420344228 -9.49254704501542 -9.98406941800478 -10.5550397837361 -11.2150335262300 -11.9740129522022 -12.4368025462938 -12.9698456724070 -13.5743165154481 -14.2509416419356 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.57958004919746 -7.35246669823951 -7.86227615609364 -8.03794586976344 -8.06402597764385 -8.10501905655175 -8.16537295311601 -8.21858892336320 -8.25399169528544 -8.27682420326384 -8.42296286608781 -8.56866717122381 -8.72021008644199 -8.88426954171872 -9.06792842923652 -9.00586250942485 -8.97277767644163 -8.97353533097384 -9.01262461925863 -9.09416243308334 -9.51999340149710 -10.0165094670610 -10.5929961819698 -11.2591360427944 -12.0250084904823 -12.4799168098082 -13.0041675431481 -13.5986981677317 -14.2639763608789 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.57184485153484 -7.33518749952851 -7.83457375031441 -8.00020251399793 -8.01671684639066 -8.06916411063308 -8.14100471928503 -8.20586404263666 -8.25303684695006 -8.28769613278202 -8.42592139198221 -8.56370043366411 -8.70729869517079 -8.86336361909098 -9.03892465325910 -8.98675220126942 -8.96368132770938 -8.97468000297557 -9.02437275369486 -9.11704066272441 -9.54743975797878 -10.0489495161172 -10.6309525802034 -11.3032385593589 -12.0760040287623 -12.5230310733227 -13.0384894138892 -13.6230798200152 -14.2770110798222 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.56410965387221 -7.31790830081752 -7.80687134453517 -7.96245915823242 -7.96940771513747 -8.03330916471442 -8.11663648545405 -8.19313916191012 -8.25208199861468 -8.29856806230020 -8.42887991787660 -8.55873369610442 -8.69438730389959 -8.84245769646323 -9.00992087728169 -8.96764189311400 -8.95458497897712 -8.97582467497730 -9.03612088813110 -9.13991889236548 -9.57488611446046 -10.0813895651734 -10.6689089784371 -11.3473410759233 -12.1269995670424 -12.5661453368371 -13.0728112846303 -13.6474614722988 -14.2900457987656 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.55637445620959 -7.30062910210652 -7.77916893875593 -7.92471580246691 -7.92209858388427 -7.99745421879575 -8.09226825162306 -8.18041428118358 -8.25112715027930 -8.30943999181839 -8.43183844377100 -8.55376695854473 -8.68147591262839 -8.82155177383549 -8.98091710130427 -8.94853158495858 -8.94548863024487 -8.97696934697902 -9.04786902256734 -9.16279712200655 -9.60233247094214 -10.1138296142296 -10.7068653766708 -11.3914435924877 -12.1779951053224 -12.6092596003515 -13.1071331553714 -13.6718431245824 -14.3030805177089 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.54863925854697 -7.28334990339553 -7.75146653297669 -7.88697244670140 -7.87478945263108 -7.96159927287709 -8.06790001779208 -8.16768940045705 -8.25017230194391 -8.32031192133657 -8.43479696966539 -8.54880022098504 -8.66856452135719 -8.80064585120774 -8.95191332532686 -8.92942127680316 -8.93639228151261 -8.97811401898075 -9.05961715700357 -9.18567535164761 -9.62977882742383 -10.1462696632858 -10.7448217749044 -11.4355461090521 -12.2289906436025 -12.6523738638659 -13.1414550261125 -13.6962247768659 -14.3161152366523 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.54090406088434 -7.26607070468454 -7.72376412719745 -7.84922909093590 -7.82748032137789 -7.92574432695842 -8.04353178396110 -8.15496451973051 -8.24921745360853 -8.33118385085475 -8.43775549555979 -8.54383348342535 -8.65565313008599 -8.77973992858000 -8.92290954934944 -8.91031096864774 -8.92729593278036 -8.97925869098248 -9.07136529143981 -9.20855358128868 -9.65722518390551 -10.1787097123420 -10.7827781731381 -11.4796486256166 -12.2799861818825 -12.6954881273804 -13.1757768968536 -13.7206064291495 -14.3291499555956 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.53316886322172 -7.24879150597354 -7.69606172141822 -7.81148573517039 -7.78017119012470 -7.88988938103975 -8.01916355013012 -8.14223963900397 -8.24826260527315 -8.34205578037293 -8.44071402145419 -8.53886674586566 -8.64274173881479 -8.75883400595226 -8.89390577337203 -8.89120066049232 -8.91819958404811 -8.98040336298420 -9.08311342587605 -9.23143181092975 -9.68467154038719 -10.2111497613982 -10.8207345713718 -11.5237511421810 -12.3309817201625 -12.7386023908948 -13.2100987675947 -13.7449880814330 -14.3421846745390 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.52543366555909 -7.23151230726255 -7.66835931563898 -7.77374237940488 -7.73286205887150 -7.85403443512109 -7.99479531629914 -8.12951475827743 -8.24730775693777 -8.35292770989111 -8.44367254734858 -8.53390000830597 -8.62983034754358 -8.73792808332451 -8.86490199739461 -8.87209035233689 -8.90910323531585 -8.98154803498593 -9.09486156031229 -9.25431004057081 -9.71211789686887 -10.2435898104544 -10.8586909696055 -11.5678536587454 -12.3819772584426 -12.7817166544092 -13.2444206383358 -13.7693697337166 -14.3552193934823 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.51769846789647 -7.21423310855156 -7.64065690985974 -7.73599902363937 -7.68555292761831 -7.81817948920242 -7.97042708246816 -8.11678987755089 -8.24635290860239 -8.36379963940929 -8.44663107324298 -8.52893327074628 -8.61691895627238 -8.71702216069677 -8.83589822141719 -8.85298004418147 -8.90000688658360 -8.98269270698765 -9.10660969474852 -9.27718827021188 -9.73956425335055 -10.2760298595106 -10.8966473678391 -11.6119561753099 -12.4329727967226 -12.8248309179236 -13.2787425090769 -13.7937513860002 -14.3682541124257 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.50996327023385 -7.19695390984056 -7.61295450408050 -7.69825566787387 -7.63824379636512 -7.78232454328375 -7.94605884863718 -8.10406499682436 -8.24539806026700 -8.37467156892747 -8.44958959913738 -8.52396653318659 -8.60400756500118 -8.69611623806902 -8.80689444543978 -8.83386973602605 -8.89091053785134 -8.98383737898938 -9.11835782918476 -9.30006649985295 -9.76701060983223 -10.3084699085668 -10.9346037660728 -11.6560586918743 -12.4839683350027 -12.8679451814381 -13.3130643798180 -13.8181330382837 -14.3812888313690 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.50222807257122 -7.17967471112957 -7.58525209830126 -7.66051231210836 -7.59093466511192 -7.74646959736509 -7.92169061480620 -8.09134011609782 -8.24444321193162 -8.38554349844566 -8.45254812503177 -8.51899979562690 -8.59109617372998 -8.67521031544128 -8.77789066946236 -8.81475942787063 -8.88181418911909 -8.98498205099111 -9.13010596362100 -9.32294472949402 -9.79445696631392 -10.3409099576230 -10.9725601643065 -11.7001612084387 -12.5349638732827 -12.9110594449525 -13.3473862505591 -13.8425146905673 -14.3943235503124 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.49449287490860 -7.16239551241858 -7.55754969252202 -7.62276895634285 -7.54362553385873 -7.71061465144642 -7.89732238097522 -8.07861523537128 -8.24348836359624 -8.39641542796384 -8.45550665092617 -8.51403305806721 -8.57818478245878 -8.65430439281354 -8.74888689348495 -8.79564911971521 -8.87271784038683 -8.98612672299284 -9.14185409805723 -9.34582295913508 -9.82190332279560 -10.3733500066791 -11.0105165625401 -11.7442637250031 -12.5859594115627 -12.9541737084669 -13.3817081213002 -13.8668963428509 -14.4073582692557 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.50513713726667 -7.18617309800062 -7.59567046046165 -7.67470688974349 -7.60872675388633 -7.76815948407767 -7.94736858445196 -8.12102778311636 -8.27810849340633 -8.42315312524878 -8.48139561520598 -8.53907004651466 -8.60238424676393 -8.67769595971136 -8.77151284528298 -8.82111812658596 -8.90116813775768 -9.01774643847585 -9.17688886341225 -9.38458352223268 -9.86343240783045 -10.4180164411176 -11.0587488561634 -11.7965542222769 -12.6428684440075 -13.0022875455579 -13.4200099908646 -13.8941053161779 -14.4219045073831 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.51578139962474 -7.20995068358267 -7.63379122840127 -7.72664482314413 -7.67382797391394 -7.82570431670891 -7.99741478792870 -8.16344033086145 -8.31272862321641 -8.44989082253373 -8.50728457948579 -8.56410703496210 -8.62658371106907 -8.70108752660919 -8.79413879708102 -8.84658713345672 -8.92961843512852 -9.04936615395887 -9.21192362876726 -9.42334408533029 -9.90496149286529 -10.4626828755561 -11.1069811497867 -11.8488447195507 -12.6997774764521 -13.0504013826488 -13.4583118604290 -13.9213142895050 -14.4364507455105 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.52642566198282 -7.23372826916471 -7.67191199634089 -7.77858275654476 -7.73892919394154 -7.88324914934016 -8.04746099140545 -8.20585287860653 -8.34734875302650 -8.47662851981867 -8.53317354376560 -8.58914402340955 -8.65078317537422 -8.72447909350702 -8.81676474887907 -8.87205614032748 -8.95806873249937 -9.08098586944189 -9.24695839412228 -9.46210464842789 -9.94649057790014 -10.5073493099946 -11.1552134434099 -11.9011352168245 -12.7566865088968 -13.0985152197398 -13.4966137299933 -13.9485232628320 -14.4509969836378 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.53706992434089 -7.25750585474676 -7.71003276428051 -7.83052068994540 -7.80403041396914 -7.94079398197141 -8.09750719488219 -8.24826542635162 -8.38196888283658 -8.50336621710362 -8.55906250804541 -8.61418101185700 -8.67498263967937 -8.74787066040484 -8.83939070067710 -8.89752514719823 -8.98651902987021 -9.11260558492491 -9.28199315947729 -9.50086521152549 -9.98801966293499 -10.5520157444331 -11.2034457370332 -11.9534257140983 -12.8135955413415 -13.1466290568308 -13.5349155995577 -13.9757322361591 -14.4655432217652 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.54771418669896 -7.28128344032881 -7.74815353222013 -7.88245862334604 -7.86913163399674 -7.99833881460266 -8.14755339835894 -8.29067797409670 -8.41658901264666 -8.53010391438856 -8.58495147232522 -8.63921800030444 -8.69918210398451 -8.77126222730267 -8.86201665247514 -8.92299415406898 -9.01496932724106 -9.14422530040793 -9.31702792483231 -9.53962577462309 -10.0295487479698 -10.5966821788716 -11.2516780306564 -12.0057162113721 -12.8705045737862 -13.1947428939217 -13.5732174691221 -14.0029412094862 -14.4800894598925 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.55835844905703 -7.30506102591085 -7.78627430015976 -7.93439655674668 -7.93423285402434 -8.05588364723391 -8.19759960183568 -8.33309052184179 -8.45120914245675 -8.55684161167351 -8.61084043660503 -8.66425498875189 -8.72338156828966 -8.79465379420049 -8.88464260427318 -8.94846316093974 -9.04341962461190 -9.17584501589094 -9.35206269018733 -9.57838633772069 -10.0710778330047 -10.6413486133101 -11.2999103242797 -12.0580067086459 -12.9274136062309 -13.2428567310127 -13.6115193386865 -14.0301501828132 -14.4946356980199 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.56900271141511 -7.32883861149290 -7.82439506809938 -7.98633449014732 -7.99933407405194 -8.11342847986516 -8.24764580531243 -8.37550306958687 -8.48582927226684 -8.58357930895845 -8.63672940088484 -8.68929197719934 -8.74758103259481 -8.81804536109832 -8.90726855607122 -8.97393216781050 -9.07186992198274 -9.20746473137396 -9.38709745554234 -9.61714690081829 -10.1126069180395 -10.6860150477486 -11.3481426179029 -12.1102972059197 -12.9843226386756 -13.2909705681036 -13.6498212082509 -14.0573591561403 -14.5091819361473 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.57964697377318 -7.35261619707494 -7.86251583603900 -8.03827242354796 -8.06443529407954 -8.17097331249640 -8.29769200878917 -8.41791561733196 -8.52044940207692 -8.61031700624340 -8.66261836516465 -8.71432896564679 -8.77178049689995 -8.84143692799615 -8.92989450786926 -8.99940117468125 -9.10032021935359 -9.23908444685698 -9.42213222089735 -9.65590746391589 -10.1541360030744 -10.7306814821871 -11.3963749115262 -12.1625877031935 -13.0412316711203 -13.3390844051946 -13.6881230778153 -14.0845681294673 -14.5237281742746 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.59029123613125 -7.37639378265699 -7.90063660397862 -8.09021035694859 -8.12953651410714 -8.22851814512765 -8.34773821226592 -8.46032816507704 -8.55506953188701 -8.63705470352834 -8.68850732944445 -8.73936595409423 -8.79597996120510 -8.86482849489397 -8.95252045966730 -9.02487018155201 -9.12877051672443 -9.27070416233999 -9.45716698625237 -9.69466802701349 -10.1956650881092 -10.7753479166256 -11.4446072051495 -12.2148782004673 -13.0981407035650 -13.3871982422856 -13.7264249473797 -14.1117771027944 -14.5382744124020 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.60093549848932 -7.40017136823904 -7.93875737191825 -8.14214829034923 -8.19463773413475 -8.28606297775890 -8.39778441574266 -8.50274071282213 -8.58968966169709 -8.66379240081329 -8.71439629372427 -8.76440294254168 -8.82017942551024 -8.88822006179180 -8.97514641146534 -9.05033918842276 -9.15722081409528 -9.30232387782301 -9.49220175160739 -9.73342859011109 -10.2371941731441 -10.8200143510641 -11.4928394987727 -12.2671686977411 -13.1550497360097 -13.4353120793765 -13.7647268169440 -14.1389860761214 -14.5528206505293 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.61157976084739 -7.42394895382108 -7.97687813985787 -8.19408622374987 -8.25973895416235 -8.34360781039015 -8.44783061921940 -8.54515326056721 -8.62430979150718 -8.69053009809823 -8.74028525800408 -8.78943993098913 -8.84437888981539 -8.91161162868963 -8.99777236326338 -9.07580819529352 -9.18567111146612 -9.33394359330603 -9.52723651696240 -9.77218915320869 -10.2787232581789 -10.8646807855026 -11.5410717923960 -12.3194591950149 -13.2119587684544 -13.4834259164675 -13.8030286865084 -14.1661950494485 -14.5673668886567 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.62222402320547 -7.44772653940313 -8.01499890779749 -8.24602415715050 -8.32484017418995 -8.40115264302139 -8.49787682269615 -8.58756580831230 -8.65892992131727 -8.71726779538318 -8.76617422228388 -8.81447691943657 -8.86857835412054 -8.93500319558745 -9.02039831506142 -9.10127720216427 -9.21412140883696 -9.36556330878905 -9.56227128231742 -9.81094971630629 -10.3202523432138 -10.9093472199410 -11.5893040860192 -12.3717496922887 -13.2688678008991 -13.5315397535584 -13.8413305560728 -14.1934040227756 -14.5819131267841 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.63286828556354 -7.47150412498517 -8.05311967573711 -8.29796209055114 -8.38994139421755 -8.45869747565264 -8.54792302617289 -8.62997835605738 -8.69355005112735 -8.74400549266813 -8.79206318656369 -8.83951390788402 -8.89277781842568 -8.95839476248528 -9.04302426685946 -9.12674620903503 -9.24257170620781 -9.39718302427207 -9.59730604767243 -9.84971027940389 -10.3617814282486 -10.9540136543795 -11.6375363796425 -12.4240401895625 -13.3257768333438 -13.5796535906494 -13.8796324256372 -14.2206129961026 -14.5964593649114 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.64351254792161 -7.49528171056722 -8.09124044367673 -8.34990002395178 -8.45504261424515 -8.51624230828389 -8.59796922964964 -8.67239090380247 -8.72817018093743 -8.77074318995307 -8.81795215084350 -8.86455089633147 -8.91697728273083 -8.98178632938311 -9.06565021865750 -9.15221521590579 -9.27102200357865 -9.42880273975509 -9.63234081302745 -9.88847084250149 -10.4033105132835 -10.9986800888180 -11.6857686732657 -12.4763306868363 -13.3826858657885 -13.6277674277404 -13.9179342952016 -14.2478219694297 -14.6110056030388 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.65415681027968 -7.51905929614927 -8.12936121161635 -8.40183795735242 -8.52014383427275 -8.57378714091514 -8.64801543312638 -8.71480345154755 -8.76279031074752 -8.79748088723801 -8.84384111512331 -8.88958788477892 -8.94117674703597 -9.00517789628093 -9.08827617045554 -9.17768422277654 -9.29947230094950 -9.46042245523810 -9.66737557838246 -9.92723140559910 -10.4448395983183 -11.0433465232565 -11.7340009668890 -12.5286211841101 -13.4395948982332 -13.6758812648313 -13.9562361647660 -14.2750309427567 -14.6255518411662 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.66480107263775 -7.54283688173131 -8.16748197955598 -8.45377589075306 -8.58524505430036 -8.63133197354639 -8.69806163660313 -8.75721599929264 -8.79741044055760 -8.82421858452296 -8.86973007940312 -8.91462487322636 -8.96537621134112 -9.02856946317876 -9.11090212225358 -9.20315322964730 -9.32792259832034 -9.49204217072112 -9.70241034373748 -9.96599196869670 -10.4863686833531 -11.0880129576950 -11.7822332605122 -12.5809116813839 -13.4965039306779 -13.7239951019223 -13.9945380343304 -14.3022399160838 -14.6400980792935 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.67544533499583 -7.56661446731336 -8.20560274749560 -8.50571382415370 -8.65034627432796 -8.68887680617763 -8.74810784007987 -8.79962854703772 -8.83203057036769 -8.85095628180791 -8.89561904368293 -8.93966186167381 -8.98957567564627 -9.05196103007659 -9.13352807405161 -9.22862223651805 -9.35637289569119 -9.52366188620414 -9.73744510909249 -10.0047525317943 -10.5278977683880 -11.1326793921335 -11.8304655541355 -12.6332021786577 -13.5534129631226 -13.7721089390132 -14.0328399038948 -14.3294488894108 -14.6546443174209 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.68608959735390 -7.59039205289540 -8.24372351543522 -8.55765175755433 -8.71544749435556 -8.74642163880888 -8.79815404355662 -8.84204109478281 -8.86665070017778 -8.87769397909285 -8.92150800796274 -8.96469885012126 -9.01377513995141 -9.07535259697441 -9.15615402584965 -9.25409124338881 -9.38482319306203 -9.55528160168716 -9.77247987444751 -10.0435130948919 -10.5694268534228 -11.1773458265720 -11.8786978477588 -12.6854926759315 -13.6103219955673 -13.8202227761042 -14.0711417734591 -14.3566578627379 -14.6691905555482 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.67999333029045 -7.57677396392353 -8.22189068435627 -8.52790544897204 -8.67816220298506 -8.70915189927755 -8.76081290042631 -8.80466356401375 -8.82931953277151 -8.84046699750446 -8.88219935792247 -8.92330850136238 -8.97027207670745 -9.02966886880482 -9.10817879846547 -9.20416029797754 -9.33273297480659 -9.50077406513548 -9.71523794582555 -9.98315613441668 -10.4947356271439 -11.0870358904753 -11.7711804834953 -12.5588425616209 -13.4622448766024 -13.6950307270968 -13.9714804323253 -14.2858602018537 -14.6313412908332 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.67389706322699 -7.56315587495165 -8.20005785327732 -8.49815914038975 -8.64087691161455 -8.67188215974621 -8.72347175729601 -8.76728603324469 -8.79198836536524 -8.80324001591606 -8.84289070788221 -8.88191815260350 -8.92676901346348 -8.98398514063523 -9.06020357108130 -9.15422935256627 -9.28064275655115 -9.44626652858380 -9.65799601720359 -9.92279917394146 -10.4200444008650 -10.9967259543787 -11.6636631192318 -12.4321924473104 -13.3141677576374 -13.5698386780894 -13.8718190911915 -14.2150625409696 -14.5934920261181 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.66780079616354 -7.54953778597977 -8.17822502219837 -8.46841283180746 -8.60359162024405 -8.63461242021488 -8.68613061416571 -8.72990850247563 -8.75465719795898 -8.76601303432767 -8.80358205784194 -8.84052780384462 -8.88326595021952 -8.93830141246564 -9.01222834369712 -9.10429840715500 -9.22855253829572 -9.39175899203213 -9.60075408858164 -9.86244221346624 -10.3453531745860 -10.9064160182820 -11.5561457549683 -12.3055423329999 -13.1660906386724 -13.4446466290821 -13.7721577500577 -14.1442648800854 -14.5556427614030 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.66170452910009 -7.53591969700789 -8.15639219111942 -8.43866652322517 -8.56630632887354 -8.59734268068354 -8.64878947103541 -8.69253097170657 -8.71732603055271 -8.72878605273927 -8.76427340780167 -8.79913745508573 -8.83976288697555 -8.89261768429604 -8.96425311631294 -9.05436746174372 -9.17646232004028 -9.33725145548045 -9.54351215995968 -9.80208525299102 -10.2706619483071 -10.8161060821853 -11.4486283907048 -12.1788922186894 -13.0180135197075 -13.3194545800747 -13.6724964089239 -14.0734672192013 -14.5177934966880 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.65560826203664 -7.52230160803601 -8.13455936004047 -8.40892021464288 -8.52902103750304 -8.56007294115221 -8.61144832790511 -8.65515344093751 -8.67999486314644 -8.69155907115088 -8.72496475776140 -8.75774710632685 -8.79625982373159 -8.84693395612645 -8.91627788892876 -9.00443651633245 -9.12437210178484 -9.28274391892877 -9.48627023133772 -9.74172829251581 -10.1959707220281 -10.7257961460887 -11.3411110264414 -12.0522421043789 -12.8699364007425 -13.1942625310673 -13.5728350677901 -14.0026695583171 -14.4799442319729 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.64951199497319 -7.50868351906414 -8.11272652896152 -8.37917390606059 -8.49173574613254 -8.52280320162087 -8.57410718477481 -8.61777591016845 -8.64266369574018 -8.65433208956248 -8.68565610772114 -8.71635675756797 -8.75275676048763 -8.80125022795686 -8.86830266154458 -8.95450557092118 -9.07228188352940 -9.22823638237709 -9.42902830271577 -9.68137133204059 -10.1212794957492 -10.6354862099920 -11.2335936621779 -11.9255919900684 -12.7218592817775 -13.0690704820600 -13.4731737266563 -13.9318718974330 -14.4420949672578 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.64341572790974 -7.49506543009226 -8.09089369788257 -8.34942759747830 -8.45445045476203 -8.48553346208954 -8.53676604164451 -8.58039837939939 -8.60533252833391 -8.61710510797409 -8.64634745768087 -8.67496640880909 -8.70925369724366 -8.75556649978727 -8.82032743416040 -8.90457462550991 -9.02019166527396 -9.17372884582542 -9.37178637409381 -9.62101437156537 -10.0465882694703 -10.5451762738953 -11.1260762979144 -11.7989418757578 -12.5737821628126 -12.9438784330526 -13.3735123855225 -13.8610742365488 -14.4042457025427 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.63731946084628 -7.48144734112038 -8.06906086680362 -8.31968128889601 -8.41716516339153 -8.44826372255820 -8.49942489851421 -8.54302084863033 -8.56800136092765 -8.57987812638569 -8.60703880764060 -8.63357606005021 -8.66575063399969 -8.70988277161768 -8.77235220677622 -8.85464368009864 -8.96810144701853 -9.11922130927374 -9.31454444547185 -9.56065741109015 -9.97189704319132 -10.4548663377987 -11.0185589336509 -11.6722917614473 -12.4257050438476 -12.8186863840452 -13.2738510443887 -13.7902765756646 -14.3663964378277 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.63122319378283 -7.46782925214850 -8.04722803572467 -8.28993498031372 -8.37987987202103 -8.41099398302687 -8.46208375538391 -8.50564331786127 -8.53067019352138 -8.54265114479730 -8.56773015760033 -8.59218571129133 -8.62224757075573 -8.66419904344808 -8.72437697939204 -8.80471273468737 -8.91601122876309 -9.06471377272206 -9.25730251684989 -9.50030045061493 -9.89720581691238 -10.3645564017020 -10.9110415693874 -11.5456416471368 -12.2776279248826 -12.6934943350378 -13.1741897032548 -13.7194789147805 -14.3285471731126 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.62512692671938 -7.45421116317663 -8.02539520464572 -8.26018867173143 -8.34259458065052 -8.37372424349553 -8.42474261225361 -8.46826578709221 -8.49333902611511 -8.50542416320890 -8.52842150756006 -8.55079536253244 -8.57874450751177 -8.61851531527849 -8.67640175200786 -8.75478178927610 -8.86392101050765 -9.01020623617039 -9.20006058822794 -9.43994349013971 -9.82251459063343 -10.2742464656053 -10.8035242051240 -11.4189915328263 -12.1295508059177 -12.5683022860305 -13.0745283621210 -13.6486812538963 -14.2906979083975 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.61903065965593 -7.44059307420475 -8.00356237356677 -8.23044236314914 -8.30530928928002 -8.33645450396420 -8.38740146912331 -8.43088825632316 -8.45600785870885 -8.46819718162051 -8.48911285751980 -8.50940501377356 -8.53524144426780 -8.57283158710890 -8.62842652462368 -8.70485084386482 -8.81183079225221 -8.95569869961871 -9.14281865960598 -9.37958652966450 -9.74782336435449 -10.1839365295087 -10.6960068408605 -11.2923414185158 -11.9814736869527 -12.4431102370231 -12.9748670209872 -13.5778835930122 -14.2528486436824 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.61293439259248 -7.42697498523287 -7.98172954248782 -8.20069605456685 -8.26802399790951 -8.29918476443286 -8.35006032599301 -8.39351072555410 -8.41867669130258 -8.43097020003211 -8.44980420747953 -8.46801466501468 -8.49173838102383 -8.52714785893931 -8.58045129723950 -8.65491989845356 -8.75974057399677 -8.90119116306703 -9.08557673098402 -9.31922956918928 -9.67313213807555 -10.0936265934120 -10.5884894765970 -11.1656913042052 -11.8333965679878 -12.3179181880157 -12.8752056798534 -13.5070859321280 -14.2149993789674 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.60683812552902 -7.41335689626099 -7.95989671140888 -8.17094974598456 -8.23073870653901 -8.26191502490153 -8.31271918286271 -8.35613319478504 -8.38134552389631 -8.39374321844372 -8.41049555743926 -8.42662431625580 -8.44823531777987 -8.48146413076972 -8.53247606985532 -8.60498895304228 -8.70765035574134 -8.84668362651535 -9.02833480236207 -9.25887260871406 -9.59844091179661 -10.0033166573153 -10.4809721123335 -11.0390411898947 -11.6853194490228 -12.1927261390083 -12.7755443387196 -13.4362882712439 -14.1771501142523 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.60074185846557 -7.39973880728911 -7.93806388032992 -8.14120343740227 -8.19345341516851 -8.22464528537019 -8.27537803973240 -8.31875566401598 -8.34401435649005 -8.35651623685532 -8.37118690739899 -8.38523396749692 -8.40473225453590 -8.43578040260013 -8.48450084247114 -8.55505800763101 -8.65556013748590 -8.79217608996368 -8.97109287374011 -9.19851564823884 -9.52374968551767 -9.91300672121866 -10.3734547480700 -10.9123910755842 -11.5372423300578 -12.0675340900010 -12.6758829975858 -13.3654906103597 -14.1393008495372 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.59464559140212 -7.38612071831724 -7.91623104925098 -8.11145712881998 -8.15616812379800 -8.18737554583885 -8.23803689660210 -8.28137813324692 -8.30668318908378 -8.31928925526693 -8.33187825735873 -8.34384361873804 -8.36122919129194 -8.39009667443053 -8.43652561508696 -8.50512706221974 -8.60346991923046 -8.73766855341200 -8.91385094511815 -9.13815868776362 -9.44905845923873 -9.82269678512200 -10.2659373838066 -10.7857409612737 -11.3891652110929 -11.9423420409936 -12.5762216564520 -13.2946929494755 -14.1014515848221 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.58854932433867 -7.37250262934536 -7.89439821817203 -8.08171082023769 -8.11888283242750 -8.15010580630752 -8.20069575347180 -8.24400060247786 -8.26935202167751 -8.28206227367854 -8.29256960731846 -8.30245326997916 -8.31772612804797 -8.34441294626094 -8.38855038770278 -8.45519611680847 -8.55137970097502 -8.68316101686032 -8.85660901649620 -9.07780172728840 -9.37436723295979 -9.73238684902533 -10.1584200195431 -10.6590908469632 -11.2410880921279 -11.8171499919862 -12.4765603153182 -13.2238952885914 -14.0636023201071 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.58245305727522 -7.35888454037348 -7.87256538709308 -8.05196451165540 -8.08159754105700 -8.11283606677618 -8.16335461034150 -8.20662307170880 -8.23202085427125 -8.24483529209014 -8.25326095727819 -8.26106292122027 -8.27422306480401 -8.29872921809135 -8.34057516031861 -8.40526517139720 -8.49928948271958 -8.62865348030865 -8.79936708787424 -9.01744476681319 -9.29967600668085 -9.64207691292866 -10.0509026552796 -10.5324407326527 -11.0930109731629 -11.6919579429788 -12.3768989741843 -13.1530976277072 -14.0257530553920 -15.0000000000000
-0.0567627734246728 -2.08585431699901 -3.66273479121380 -4.83585031956519 -5.65364702554936 -6.16457103266246 -6.41706846440066 -6.45958544426012 -6.34056809573699 -6.10846254232744 -5.81909442918487 -5.55780748809170 -5.41732497248756 -5.49037013581211 -5.86966623150499 -6.57635679021176 -7.34526645140160 -7.85073255601413 -8.02221820307311 -8.04431224968649 -8.07556632724485 -8.12601346721120 -8.16924554093974 -8.19468968686498 -8.20760831050175 -8.21395230723792 -8.21967257246139 -8.23072000156004 -8.25304548992176 -8.29259993293443 -8.35533422598593 -8.44719926446415 -8.57414594375697 -8.74212515925228 -8.95708780633797 -9.22498478040191 -9.55176697683200 -9.94338529101611 -10.4057906183421 -10.9449338541980 -11.5667658939715 -12.2772376330505 -13.0822999668231 -13.9879037906769 -15.0000000000000
\ No newline at end of file
......@@ -206,6 +206,12 @@ def add_objects(self, chip, filt, tel, pointing, catalog, obs_param):
except Exception as e:
traceback.print_exc()
self.chip_output.Log_error(e)
self.chip_output.Log_error(
"pointing: #%d, chipID: %d" % (pointing.id, chip.chipID))
if obj.type == "galaxy":
self.chip_output.Log_error("obj id: %s" % (obj.param['id']))
self.chip_output.Log_error(" e1: %.5f\n e2: %.5f\n size: %f\n bfrac: %f\n detA: %f\n g1: %.5f\n g2: %.5f\n" % (
obj.param['e1'], obj.param['e2'], obj.param['size'], obj.param['bfrac'], obj.param['detA'], obj.param['g1'], obj.param['g2']))
# Unload SED:
obj.unload_SED()
......
......@@ -82,17 +82,16 @@ def quantization_and_output(self, chip, filt, tel, pointing, catalog, obs_param)
hdu1 = fits.PrimaryHDU(header=self.h_prim)
hdu1.add_checksum()
hdu1.header.comments['CHECKSUM'] = 'HDU checksum'
hdu1.header.comments['DATASUM'] = 'data unit checksum'
self.updateHeaderInfo(header_flag='ext', keys = ['DATASECT'], values = [str(chip.img.array.shape[1])+'x'+str(chip.img.array.shape[0])])
self.updateHeaderInfo(header_flag='ext', keys = ['DATASECT'], values = [str(chip.img.array.shape[1]) + 'x' + str(chip.img.array.shape[0])])
hdu2 = fits.ImageHDU(chip.img.array, header=self.h_ext)
hdu2.add_checksum()
hdu2.header.comments['XTENSION'] = 'extension type'
hdu2.header.comments['CHECKSUM'] = 'HDU checksum'
hdu2.header.comments['DATASUM'] = 'data unit checksum'
hdu2.header.comments["XTENSION"] = "image extension"
hdu1 = fits.HDUList([hdu1, hdu2])
hdu1.writeto(fname, output_verify='ignore', overwrite=True)
hdu = fits.HDUList([hdu1, hdu2])
hdu[0].add_datasum(when='data unit checksum')
hdu[0].add_checksum(when='HDU checksum', override_datasum=True)
hdu[1].add_datasum(when='data unit checksum')
hdu[1].add_checksum(when='HDU checksum', override_datasum=True)
hdu.writeto(fname, output_verify='ignore', overwrite=True)
return chip, filt, tel, pointing
......@@ -11,7 +11,7 @@
# can add some of the command-line arguments here as well;
# ok to pass either way or both, as long as they are consistent
work_dir: "/public/home/fangyuedong/project/workplace/"
run_name: "magnification_test"
run_name: "no_nonlinearity_test"
# Project cycle and run counter are used to name the outputs
project_cycle: 9
......@@ -32,11 +32,13 @@ run_option:
catalog_options:
input_path:
cat_dir: "/public/share/yangxuliu/CSSOSDataProductsSims/data_50sqDeg/"
star_cat: "starcat/"
# star_cat: "starcat/"
star_cat: "starcat_C9/"
galaxy_cat: "qsocat/cat2CSSTSim_bundle-50sqDeg/"
SED_templates_path:
star_SED: "/public/share/yangxuliu/CSSOSDataProductsSims/data_50sqDeg/SpecLib.hdf5"
# star_SED: "/public/share/yangxuliu/CSSOSDataProductsSims/data_50sqDeg/SpecLib.hdf5"
star_SED: "/public/share/yangxuliu/CSSOSDataProductsSims/data_50sqDeg/starcat_C9/"
galaxy_SED: "/public/share/yangxuliu/CSSOSDataProductsSims/data_50sqDeg/sedlibs/"
AGN_SED: "/public/share/yangxuliu/CSSOSDataProductsSims/data_50sqDeg/qsocat/qsosed/"
......@@ -44,7 +46,7 @@ catalog_options:
star_only: NO
# Only simulate galaxies?
galaxy_only: YES
galaxy_only: NO
# rotate galaxy ellipticity
rotateEll: 0. # [degree]
......@@ -57,7 +59,8 @@ obs_setting:
# if you just want to run default pointing:
# - pointing_dir: null
# - pointing_file: null
pointing_file: "/public/share/yangxuliu/CSSOSDataProductsSims/data_50sqDeg/pointing50_C9/pointing_50_1_n.dat"
# pointing_file: "/public/share/yangxuliu/CSSOSDataProductsSims/data_50sqDeg/pointing50_C9/pointing_50_1_n.dat"
pointing_file: "/public/home/fangyuedong/project/unit_test_data/pointing_for_test.dat"
obs_config_file: "/public/home/fangyuedong/project/csst_msc_sim/config/obs_config_SCI_WIDE_phot.yaml"
......@@ -65,7 +68,7 @@ obs_setting:
# - give a list of indexes of pointings: [ip_1, ip_2...]
# - run all pointings: null
# Note: only valid when a pointing list is specified
run_pointings: [0]
run_pointings: [1]
# Whether to enable astrometric modeling
enable_astrometric_model: True
......
......@@ -16,7 +16,7 @@ obs_id: "00000001" # this setting will only be used if pointing list file is not
# Define list of chips
# run_chips: [6,7,8,9,11,12,13,14,15,16,17,18,19,20,22,23,24,25]
#run_chips: [1,2,3,4,5,10,21,26,27,28,29,30]
run_chips: [8]
run_chips: [9]
# Define observation sequence
call_sequence:
......
......@@ -2,9 +2,9 @@
#SBATCH -J CSSTSim
#SBATCH -N 1
#SBATCH --ntasks-per-node=40
#SBATCH --ntasks-per-node=6
#SBATCH -p debug
#SBATCH --mem=240G
#SBATCH --mem=60G
module load mpi/hpcx/2.4.1/gcc-7.3.1
date
......@@ -12,4 +12,4 @@ date
#限定单节点任务数
srun hostname -s | sort -n | awk -F"-" '{print $2}' | uniq > pnodes
mpirun -mca pml ucx -x UCX_NET_DEVICES=mlx5_0:1 -machinefile pnodes -np 40 --map-by node python3 /public/home/fangyuedong/project/csst_msc_sim/run_sim.py --config_file config_overall.yaml --catalog C6_50sqdeg -c /public/home/fangyuedong/project/csst_msc_sim/config
\ No newline at end of file
mpirun -mca pml ucx -x UCX_NET_DEVICES=mlx5_0:1 -machinefile pnodes -np 6 --map-by node python3 /public/home/fangyuedong/project/csst_msc_sim/run_sim.py --config_file config_overall.yaml --catalog C6_50sqdeg_ns -c /public/home/fangyuedong/project/csst_msc_sim/config
\ No newline at end of file
}q(U collectorqUcoverage v3.6b3qUlinesq}u.
\ No newline at end of file
import unittest
import os
import galsim
from ObservationSim.Instrument import FocalPlane, Chip
class TestFocalPlane(unittest.TestCase):
def __init__(self, methodName='runTest'):
super(TestFocalPlane, self).__init__(methodName)
self.dataPath = os.path.join(
os.getenv('UNIT_TEST_DATA_ROOT'), 'csst_msc_sim/csst_fz_msc')
self.focal_plane = FocalPlane(
chip_list=['8'])
self.assertTrue(self.focal_plane.cen_pix_x == 0)
self.assertTrue(self.focal_plane.cen_pix_y == 0)
test_focal_plane_phot = FocalPlane(survey_type='Photometric')
test_focal_plane_spec = FocalPlane(survey_type='Spectroscopic')
test_focal_plane_FGS = FocalPlane(survey_type='FGS')
test_focal_plane_bad_chips = FocalPlane(bad_chips=["1"])
def test_fp_method(self):
wcs = self.focal_plane.getTanWCS(
192.8595, 0., 0.*galsim.degrees, 0.0074)
sky_coverage = self.focal_plane.getSkyCoverage(
wcs, x0=-1, x1=0, y0=-1, y1=0)
print(sky_coverage.area())
self.assertTrue(abs(sky_coverage.area() - 0.0074**2/(3600.**2)) < 1e13)
if __name__ == '__main_':
unittest.main()
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment