Source code for pycif.plugins.models.lagrangian.ini_periods
import pandas as pd
import numpy as np
import itertools
from ....utils.dates import date_range
[docs]
def ini_periods(self, **kwargs):
# Hardcoded 1h for now
datei = self.datei
datef = self.datef
period = self.period
subperiod = self.subperiod
# List of sub-simulation windows
self.subsimu_dates = date_range(datei, datef, period=period, close="right")
# Time steps per day
freq = '{:.0f}s'.format(3600)
# List of time steps
self.tstep_dates = {
ddi: date_range(ddi, ddf, period=freq)
for ddi, ddf in zip(self.subsimu_dates[:-1],
self.subsimu_dates[1:])
}
# List of input dates
self.input_dates = {
ddi: date_range(ddi - pd.to_timedelta(self.backward_trajdays), ddf,
period=period, subperiod=subperiod)
for ddi, ddf in zip(self.subsimu_dates[:-1],
self.subsimu_dates[1:])
}
self.input_background = {
ddi: date_range(ddi - pd.to_timedelta(self.backward_trajdays),
ddf - pd.to_timedelta(self.backward_trajdays),
period=period, subperiod=subperiod)
for ddi, ddf in zip(self.subsimu_dates[:-1],
self.subsimu_dates[1:])
}
# Merged list of time steps
self.tstep_all = np.sort(np.unique(
np.concatenate(list(self.tstep_dates.values()))))
# Initializes dictionary to keep in memory whether observations were
# already dumped for a given period
self.iniobs = {ddi: False for ddi in self.subsimu_dates}
self.reset_obs = {ddi: True for ddi in self.subsimu_dates}