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}