util_ExtractSubPeriod extracts subperiod (months) from time series. Extracts certain months from time series, e.g. the low flow season and the high flow season. See also Euser et al. (2013) who use May to September as low flow season and November to April as high flow season. INPUT X: time series - should be continuous (e.g. Q, typically [mm/timestep]) t: time [Matlab datetime] subperiod: subperiod to be extracted, e.g. [11:12, 1:4] for November to April or [5:9] for May to September OPTIONAL option: option to delete values outside subperiod ('delete') or assign NaN to values outside subperiod ('nan') OUTPUT X_sub: subperiod time series t_sub: subperiod time EXAMPLE % load example data data = load('example/example_data/33029_daily.mat'); Q = data.Q; t = data.t; subperiod = [11:12, 1:4]; [Q_sub, t_sub] = ... util_ExtractSubPeriod(Q, t, subperiod); References Euser, T., Winsemius, H.C., Hrachowitz, M., Fenicia, F., Uhlenbrook, S. and Savenije, H.H.G., 2013. A framework to assess the realism of model structures using hydrological signatures. Hydrology and Earth System Sciences, 17 (5), 2013. Copyright (C) 2020 This software is distributed under the GNU Public License Version 3. See <https://www.gnu.org/licenses/gpl-3.0.en.html> for details.
0001 function [X_sub, t_sub] = util_ExtractSubPeriod(X, t, subperiod, option) 0002 %util_ExtractSubPeriod extracts subperiod (months) from time series. 0003 % Extracts certain months from time series, e.g. the low flow season and 0004 % the high flow season. See also Euser et al. (2013) who use May to 0005 % September as low flow season and November to April as high flow season. 0006 % 0007 % INPUT 0008 % X: time series - should be continuous (e.g. Q, typically [mm/timestep]) 0009 % t: time [Matlab datetime] 0010 % subperiod: subperiod to be extracted, e.g. [11:12, 1:4] for November 0011 % to April or [5:9] for May to September 0012 % OPTIONAL 0013 % option: option to delete values outside subperiod ('delete') or assign 0014 % NaN to values outside subperiod ('nan') 0015 % 0016 % OUTPUT 0017 % X_sub: subperiod time series 0018 % t_sub: subperiod time 0019 % 0020 % EXAMPLE 0021 % % load example data 0022 % data = load('example/example_data/33029_daily.mat'); 0023 % Q = data.Q; 0024 % t = data.t; 0025 % subperiod = [11:12, 1:4]; 0026 % [Q_sub, t_sub] = ... 0027 % util_ExtractSubPeriod(Q, t, subperiod); 0028 % 0029 % References 0030 % Euser, T., Winsemius, H.C., Hrachowitz, M., Fenicia, F., Uhlenbrook, S. 0031 % and Savenije, H.H.G., 2013. A framework to assess the realism of model 0032 % structures using hydrological signatures. Hydrology and Earth System 0033 % Sciences, 17 (5), 2013. 0034 % 0035 % Copyright (C) 2020 0036 % This software is distributed under the GNU Public License Version 3. 0037 % See <https://www.gnu.org/licenses/gpl-3.0.en.html> for details. 0038 0039 if nargin < 4 0040 option = 'delete'; 0041 end 0042 0043 % get months 0044 [~, month_vec, ~] = ymd(t); 0045 0046 if strcmp(option,'delete') 0047 % option 1 - delete values outside subperiod 0048 t_sub = t(ismember(month_vec,subperiod)); 0049 X_sub = X(ismember(month_vec,subperiod)); 0050 elseif strcmp(option,'nan') 0051 % option 2 - assign NaN to values outside subperiod 0052 t_sub = t; 0053 X_sub = X; 0054 X_sub(ismember(month_vec,subperiod)) = NaN; 0055 else 0056 error('Subperiod option specified incorrectly, the options are delete or nan.') 0057 end 0058 0059 %{ 0060 figure; hold on; 0061 plot(t,X); 0062 plot(t_sub,X_sub,'--') 0063 xlabel('Date') 0064 ylabel('Flow') 0065 %} 0066 0067 end