Skip to content
Snippets Groups Projects
Commit 30c349e2 authored by Gregory Ashton's avatar Gregory Ashton
Browse files

Merge branch 'calibration_fix_new' into 'master'

Calibration fix

See merge request lscsoft/bilby!607
parents 91713b39 b6fabf2c
No related branches found
No related tags found
No related merge requests found
import os
import numpy as np
from scipy.interpolate import UnivariateSpline
from scipy.interpolate import InterpolatedUnivariateSpline
from ..core.prior import (PriorDict, Uniform, Prior, DeltaFunction, Gaussian,
Interped, Constraint)
......@@ -528,23 +528,23 @@ class CalibrationPriorDict(PriorDict):
This includes the frequencies of the nodes which are _not_ sampled.
"""
calibration_data = np.genfromtxt(envelope_file).T
frequency_array = calibration_data[0]
log_frequency_array = np.log(calibration_data[0])
amplitude_median = calibration_data[1] - 1
phase_median = calibration_data[2]
amplitude_sigma = (calibration_data[5] - calibration_data[3]) / 2
phase_sigma = (calibration_data[6] - calibration_data[4]) / 2
nodes = np.logspace(np.log10(minimum_frequency),
np.log10(maximum_frequency), n_nodes)
log_nodes = np.linspace(np.log(minimum_frequency),
np.log(maximum_frequency), n_nodes)
amplitude_mean_nodes = \
UnivariateSpline(frequency_array, amplitude_median)(nodes)
InterpolatedUnivariateSpline(log_frequency_array, amplitude_median)(log_nodes)
amplitude_sigma_nodes = \
UnivariateSpline(frequency_array, amplitude_sigma)(nodes)
InterpolatedUnivariateSpline(log_frequency_array, amplitude_sigma)(log_nodes)
phase_mean_nodes = \
UnivariateSpline(frequency_array, phase_median)(nodes)
InterpolatedUnivariateSpline(log_frequency_array, phase_median)(log_nodes)
phase_sigma_nodes = \
UnivariateSpline(frequency_array, phase_sigma)(nodes)
InterpolatedUnivariateSpline(log_frequency_array, phase_sigma)(log_nodes)
prior = CalibrationPriorDict()
for ii in range(n_nodes):
......@@ -564,7 +564,7 @@ class CalibrationPriorDict(PriorDict):
for ii in range(n_nodes):
name = "recalib_{}_frequency_{}".format(label, ii)
latex_label = "$f^{}_{}$".format(label, ii)
prior[name] = DeltaFunction(peak=nodes[ii], name=name,
prior[name] = DeltaFunction(peak=np.exp(log_nodes[ii]), name=name,
latex_label=latex_label)
prior.source = os.path.abspath(envelope_file)
return prior
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment