/// <summary> /// 时段基线网 /// </summary> /// <param name="isRebuit"></param> /// <returns></returns> public MultiPeriodBaseLineNet GetOrBuildPeriodBaseLineNet(bool isRebuit) { if (BaseLineNets == null || isRebuit) { BaseLineNets = new MultiPeriodBaseLineNet(); foreach (var item in this.KeyValues) { BaseLineNets[item.Key] = item.Value.BuidBaseLineNet(); } } return(BaseLineNets); }
/// <summary> /// 构建独立基线 /// </summary> /// <param name="IndependentLineSelectType"></param> /// <returns></returns> public MultiPeriodBaseLineNet BuidIndependentNets(IndependentLineSelectType IndependentLineSelectType) { MultiPeriodBaseLineNet result = new MultiPeriodBaseLineNet(); foreach (var kvs in this.KeyValues) { var BaseLineNet = kvs.Value.BuidBaseLineNet(); //注意这里返回的是不同时段的独立基线集合 var independentLineNet = BaseLineNet.GetIndependentNet(IndependentLineSelectType); result[kvs.Key] = (independentLineNet); } return(result); }
/// <summary> /// 比较 /// </summary> /// <param name="netA"></param> /// <param name="netB"></param> /// <returns></returns> public static Dictionary <TimePeriod, List <NamedXyzEnu> > Compare(MultiPeriodBaseLineNet netA, MultiPeriodBaseLineNet netB) { var keyValuePairs = new Dictionary <TimePeriod, List <NamedXyzEnu> >(); foreach (var netKv in netA.KeyValues) { var netPeriod = netKv.Key; var neta = netKv.Value; TimePeriod samePeriod = netB.GetInterSectPeriod(netPeriod); if (samePeriod == null) { continue; } var netb = netB[samePeriod]; keyValuePairs[netPeriod] = BaseLineNet.Compare(neta, netb); } return(keyValuePairs); }
/// <summary> /// 多时段单表解析 /// </summary> /// <param name="table"></param> /// <returns></returns> public static MultiPeriodBaseLineNet Parse(ObjectTableStorage table) { var data = new MultiPeriodBaseLineNet(); // var data = new BaseLineNet(); foreach (var row in table.BufferedValues) { EstimatedBaseline obj = EstimatedBaseline.Parse(row); var period = TimePeriod.GetMaxCommon(data.Keys, obj.ApporxNetPeriod); BaseLineNet BaseLineNet = null; if (period == null) { BaseLineNet = data.GetOrCreate(obj.ApporxNetPeriod); } else { BaseLineNet = data.GetOrCreate(period); } BaseLineNet.Set(obj.BaseLineName, obj); } data.Init(); return(data); }