From 86425a9d69211ab3346fde2f1754e23adcadb05f Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bayle <j2b.bayle@gmail.com> Date: Fri, 12 Mar 2021 12:33:35 +0100 Subject: [PATCH] Read orbits from orbit file by default --- lisainstrument/instrument.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lisainstrument/instrument.py b/lisainstrument/instrument.py index c13a260..2928d08 100644 --- a/lisainstrument/instrument.py +++ b/lisainstrument/instrument.py @@ -34,7 +34,7 @@ class Instrument: SCS = ForEachSC.indices() MOSAS = ForEachMOSA.indices() - def __init__(self, size=2592000, dt=1/4, t0=0, + def __init__(self, size=2592000, dt=1/4, t0='orbits', # Inter-spacecraft propagation orbits=None, gws=None, glitches=None, interpolation=('lagrange', 31), # Lasers @@ -54,7 +54,7 @@ class Instrument: Args: size: number of samples to generate dt: sampling period [s] - t0: initial time [s] + t0: initial time [s], or 'orbits' to match that of the orbits orbits: path to orbit file, or dictionary of scalars or time series for PPRs, or None for default set of PPRs corresponding to static arms fit from Keplerian orbits (from LISA Orbits v1.0) around t = 0 @@ -89,7 +89,7 @@ class Instrument: ('kaiser', attenuation [dB], f1 [Hz], f2 [Hz]) with f1 < f2 the frequencies defining the transition band """ - # pylint: disable=too-many-arguments,too-many-statements + # pylint: disable=too-many-arguments,too-many-statements,too-many-locals,too-many-branches logger.info("Initializing instrumental simulation") self.git_url = 'https://gitlab.in2p3.fr/lisa-simulation/instrument' self.version = meta.__version__ @@ -98,7 +98,15 @@ class Instrument: # Measurement sampling self.size = int(size) self.dt = float(dt) - self.t0 = float(t0) + if t0 == 'orbits': + if isinstance(orbits, str): + logger.debug("Reading initial time from orbit file '%s'", orbits) + with h5py.File(orbits, 'r') as orbitf: + self.t0 = float(orbitf.attrs['tau0']) + else: + self.t0 = 0.0 + else: + self.t0 = float(t0) self.fs = 1 / self.dt logger.info("Computing measurement time vector (size=%s, dt=%s)", self.size, self.dt) self.t = self.t0 + numpy.arange(self.size, dtype=numpy.float64) * self.dt -- GitLab