Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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);
        }