【问题标题】:consistent times of input variables for model input模型输入的输入变量的一致时间
【发布时间】:2013-06-30 23:51:07
【问题描述】:

我正在编写用于预测水温的模型的一些组件,并且我有一组输入文件 (i) 气温; (ii) 辐射; (iii) 云量; (iv) 风速; (v) 相对湿度。为了通过方程传递这些数据,我首先需要确保在一致的时间测量所有变量,其中一些输入数据可以以 30 分钟、60 分钟、每天等的分辨率进行测量,并且还可以有缺失数据点。考虑以下示例值:

JdayCC = datenum('2011-01-01 00:00','yyyy-mm-dd HH:MM'):60/(60*24):...
    datenum('2011-12-31 23:00','yyyy-mm-dd HH:MM');
DatCC = rand(1,length(JdayCC));

JdayAirT = datenum('2011-04-01 00:00','yyyy-mm-dd HH:MM'):30/(60*24):...
    datenum('2011-12-31 23:00','yyyy-mm-dd HH:MM');
JdayAirT(200:250) = [];
JdayAirT(400:420) = [];
DatAirT = rand(1,length(JdayAirT));

JdayRH = datenum('2011-02-06 00:00','yyyy-mm-dd HH:MM'):3600/(60*24):...
    datenum('2011-12-31 22:00','yyyy-mm-dd HH:MM');
DatRH = rand(1,length(JdayRH));

JdayWnd = datenum('2011-02-06 00:00','yyyy-mm-dd HH:MM'):60/(60*24):...
    datenum('2011-12-31 20:00','yyyy-mm-dd HH:MM');
JdayAirT(400:420) = [];
DatWnd = rand(1,length(JdayWnd));

JdaySW = datenum('2011-02-07 00:00','yyyy-mm-dd HH:MM'):60/(60*24):...
    datenum('2011-12-31 22:00','yyyy-mm-dd HH:MM');
DatSW = rand(1,length(JdaySW));

我想编写一个函数来查看所有这些变量并确定所有变量可以平均到的分辨率。例如,如果数据是

(i) 每小时一次; (ii) 每小时一次; (iii) 每天; (iv) 30 分钟; (v) 每天

然后该函数将所有变量平均为每日值,然后找到所有变量之间的一致时间,并保持这些变量通过方程。

【问题讨论】:

    标签: matlab average


    【解决方案1】:

    diff 将告诉您数据DatCCDatAirT 等的每个值之间的(时间)增量,以帮助您确定采样时间是多少(假设它是统一采样)。然后,您可以为每个数据创建一个时间序列,并使用 resample 以相同的采样时间(现有采样时间的最小值)获取所有数据。

    【讨论】:

      猜你喜欢
      • 2021-02-17
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 2021-04-11
      • 2017-05-20
      • 1970-01-01
      • 2021-08-05
      • 2020-12-26
      相关资源
      最近更新 更多