예제 #1
0
first_pass_params = np.array([m.getParams() for m in first_pass_models], dtype=first_pass_models[0].dtype)
first_pass_lambdas = decomp.wl[::100]
logger.info('Done first pass modeling, time: %.2f' % (time.time() - t1))

logger.info('Smoothing parameters.')
smoothed_models = smooth_models(first_pass_models, decomp.wl, degree=1)
smoothed_params = np.array([m.getParams() for m in smoothed_models], dtype=smoothed_models[0].dtype)
        
logger.info('Starting second pass modeling...')
t1 = time.time()
fitted_models = decomp.fitSpectra(step=1, box_radius=0, initial_model=smoothed_models, mode='LM', insist=True)
fitted_params = np.array([m.getParams() for m in fitted_models], dtype=fitted_models[0].dtype)
logger.info('Done second pass modeling, time: %.2f' % (time.time() - t1))

logger.info('Computing model spectra.')
fitted_bulge_spectra, fitted_disk_spectra = decomp.getModelSpectra(fitted_models)

logger.info('Average fit results:')
original_params = np.array([m.getParams() for m in original_models], dtype=original_models[0].dtype)
print_params = ('I_e', 'r_e', 'n', 'PA_b', 'ell_b', 'I_0', 'h', 'PA_d', 'ell_d', )
for p in fitted_params.dtype.names:
    if p not in print_params: continue
    delta_p_norm = (fitted_params[p] - original_params[p]) / original_params[p]
    logger.info('    delta %s (norm.) = %.3f +/- %.3f' % (p, np.mean(delta_p_norm), np.std(delta_p_norm)))


################################################################################
##########
########## Decomposition plots 
##########
################################################################################
예제 #2
0
first_pass_params = np.array([m.getParams() for m in first_pass_models], dtype=first_pass_models[0].dtype)
first_pass_lambdas = decomp.wl[::100]
logger.info('Done first pass modeling, time: %.2f' % (time.time() - t1))

logger.info('Smoothing parameters with polynomial of degree %d.' % args.paramDegree)
smoothed_models = smooth_models(first_pass_models, decomp.wl, degree=args.paramDegree)
smoothed_params = np.array([m.getParams() for m in smoothed_models], dtype=smoothed_models[0].dtype)
        
logger.info('Starting second pass modeling...')
t1 = time.time()
fitted_models = decomp.fitSpectra(step=1, box_radius=0, initial_model=smoothed_models, mode='LM')
fitted_params = np.array([m.getParams() for m in fitted_models], dtype=fitted_models[0].dtype)
logger.info('Done second pass modeling, time: %.2f' % (time.time() - t1))

logger.info('Computing model spectra.')
fitted_bulge_ifs, fitted_disk_ifs = decomp.getModelSpectra(fitted_models)
fitted_bulge_ifs_nopsf, fitted_disk_ifs_nopsf = decomp.getModelSpectra(fitted_models, use_PSF=False)

logger.info('Average fit results:')
print_params = ('I_e', 'r_e', 'n', 'PA_b', 'ell_b', 'I_0', 'h', 'PA_d', 'ell_d', )
for p in fitted_params.dtype.names:
    if p not in print_params: continue
    logger.info('    %s = %.3f +/- %.3f' % (p, np.mean(fitted_params[p]), np.std(fitted_params[p])))


################################################################################
##########
########## Decomposition plots 
##########
################################################################################
예제 #3
0
first_pass_params = np.array([m.getParams() for m in first_pass_models], dtype=first_pass_models[0].dtype)
first_pass_lambdas = decomp.wl[::100]
logger.info("Done first pass modeling, time: %.2f" % (time.time() - t1))

logger.info("Smoothing parameters.")
smoothed_models = smooth_models(first_pass_models, decomp.wl, degree=1)
smoothed_params = np.array([m.getParams() for m in smoothed_models], dtype=smoothed_models[0].dtype)

logger.info("Starting second pass modeling...")
t1 = time.time()
fitted_models = decomp.fitSpectra(step=1, box_radius=0, initial_model=smoothed_models, mode="LM", insist=True)
fitted_params = np.array([m.getParams() for m in fitted_models], dtype=fitted_models[0].dtype)
logger.info("Done second pass modeling, time: %.2f" % (time.time() - t1))

logger.info("Computing model spectra.")
fitted_bulge_ifs, fitted_disk_ifs = decomp.getModelSpectra(fitted_models)

logger.info("Average fit results:")
print_params = ("I_e", "r_e", "n", "PA_b", "ell_b", "I_0", "h", "PA_d", "ell_d")
for p in fitted_params.dtype.names:
    if p not in print_params:
        continue
    logger.info("    %s = %.3f +/- %.3f" % (p, np.mean(fitted_params[p]), np.std(fitted_params[p])))


################################################################################
##########
########## Decomposition plots
##########
################################################################################