public virtual DataCube <double> GetTransformedValues(ITimeSeriesQueryCriteria qc, ITimeSeriesTransform provider, double multiplier) { if (provider != null && qc != null) { return(provider.GetTransformedTimeSeries(qc, multiplier)); } else { return(null); } }
public override DataCube <double> GetValues(ITimeSeriesQueryCriteria qc, ITimeSeriesTransform provider) { if (SitesMeasured.Count > 0) { int count = SitesMeasured.Count; DataCube <double>[] tss = new DataCube <double> [count]; int i = 0; foreach (HydroPoint hp in SitesMeasured) { Variable v = new Variable(this.VariableID); v.SiteID = hp.ID; qc.SiteID = hp.ID; qc.VariableID = this.VariableID; tss[i] = v.GetValues(qc, provider); i++; } int length = tss[0].Size[1]; double[] values = new double[length]; DateTime[] time = new DateTime[length]; Array.Copy(tss[0].DateTimes, time, length); for (int j = 0; j < length; j++) { double sum = 0; for (i = 0; i < tss.Length; i++) { sum += tss[i][0, j, 0]; } values[i] = sum / tss.Length; } DataCube <double> summedts = new DataCube <double>(values, time); return(summedts); } else { TimeSpan span = qc.End - qc.Start; double[] values = new double[span.Days]; DateTime[] time = new DateTime[span.Days]; DataCube <double> summedts = new DataCube <double>(values, time); return(summedts); } }
public DataCube <double> GetTransformedTimeSeries(ITimeSeriesQueryCriteria qc, double multiplier) { DataCube <double> ts = null; if (qc != null) { string sql = "select * from " + Configuration.DataValuesTableName + " where VariableID =" + qc.VariableID + " and SiteID=" + qc.SiteID + " and " + DBFieldFormater.FormatDateTime("DateTimeUTC", qc.Start, qc.End, mDbase.DBKind); DataTable dt = mDbase.QueryDataTable(sql); if (dt != null) { double[] dv = dt.AsEnumerable().Select(row => row.Field <double>("DataValue")).ToArray(); DateTime[] dtime = dt.AsEnumerable().Select(row => row.Field <DateTime>("DateTimeUTC")).ToArray(); ts = new DataCube <double>(dv, dtime); Variable variable = GetVariableInfo(qc.VariableID); DataRepairer dr = new DataRepairer(variable.NoDataValue); dr.Repair(ts, multiplier); } } return(ts); }
public DataTable GetDataValues(ITimeSeriesQueryCriteria qc) { string sql = ""; if (qc != null) { if (qc.Start == DateTime.MinValue || qc.End == DateTime.MinValue) { sql = "select ValueID,DateTimeUTC,DataValue from " + Configuration.DataValuesTableName + " where VariableID =" + qc.VariableID + " and SiteID=" + qc.SiteID; } else { sql = "select ValueID,DateTimeUTC,DataValue from " + Configuration.DataValuesTableName + " where VariableID =" + qc.VariableID + " and SiteID=" + qc.SiteID + " and " + DBFieldFormater.FormatDateTime("DateTimeUTC", qc.Start, qc.End, mDbase.DBKind); } return(mDbase.QueryDataTable(sql)); } else { return(null); } }