Esempio n. 1
0
        public int UpdateMobileAgisPoint(AgpsCoverageView view, string district, string town)
        {
            var date  = view.StatDate.Date;
            var point =
                _agisDtPointRepository.FirstOrDefault(
                    x => x.StatDate == date && x.X == view.X && x.Y == view.Y && x.Operator == district + town);

            if (point == null)
            {
                point = new AgisDtPoint
                {
                    X             = view.X,
                    Y             = view.Y,
                    Longtitute    = view.Longtitute,
                    Lattitute     = view.Lattitute,
                    StatDate      = date,
                    MobileRsrp    = view.AverageRsrp,
                    MobileRate100 = view.CoverageRate100,
                    MobileRate105 = view.CoverageRate105,
                    MobileRate110 = view.CoverageRate110,
                    Operator      = district + town
                };
                _agisDtPointRepository.Insert(point);
            }
            else
            {
                point.MobileRsrp    = view.AverageRsrp;
                point.MobileRate100 = view.CoverageRate100;
                point.MobileRate105 = view.CoverageRate105;
                point.MobileRate110 = view.CoverageRate110;
            }
            return(_agisDtPointRepository.SaveChanges());
        }
Esempio n. 2
0
 public void Test_RectanglePoints()
 {
     using (var reader = new StreamReader(_resultFileName))
     {
         using (var writer = new StreamWriter(_lastFileName))
         {
             string line;
             while (!string.IsNullOrEmpty(line = reader.ReadLine()))
             {
                 var fields  = line.Split(',');
                 var dtPoint = new AgisDtPoint
                 {
                     Operator    = "小范围",
                     Longtitute  = fields[1].ConvertToDouble(0),
                     Lattitute   = fields[2].ConvertToDouble(0),
                     UnicomRsrp  = fields[3].ConvertToInt(-140),
                     MobileRsrp  = fields[4].ConvertToInt(-140),
                     TelecomRsrp = fields[5].ConvertToInt(-140)
                 };
                 if (dtPoint.Longtitute > 113.08 && dtPoint.Longtitute < 113.11 && dtPoint.Lattitute > 23 &&
                     dtPoint.Lattitute < 23.02)
                 {
                     writer.WriteLine(dtPoint.Operator + "," + dtPoint.Longtitute + "," + dtPoint.Lattitute +
                                      "," + dtPoint.UnicomRsrp + "," + dtPoint.MobileRsrp + "," +
                                      dtPoint.TelecomRsrp);
                 }
             }
         }
     }
 }
Esempio n. 3
0
        public void Test_ProcessPoints()
        {
            var points = new List <GeoPoint>();

            using (var reader = new StreamReader(_mergeFileName))
            {
                string line;
                while (!string.IsNullOrEmpty(line = reader.ReadLine()))
                {
                    var fields     = line.Split(',');
                    var longtitute = fields[0].ConvertToDouble(0);
                    var lattitute  = fields[1].ConvertToDouble(0);
                    points.Add(new GeoPoint(longtitute, lattitute));
                }
            }
            var dtPoints = new List <AgisDtPoint>();

            using (var reader = new StreamReader(_resultFileName))
            {
                string line;
                while (!string.IsNullOrEmpty(line = reader.ReadLine()))
                {
                    var fields  = line.Split(',');
                    var dtPoint = new AgisDtPoint
                    {
                        Operator    = fields[0],
                        Longtitute  = fields[1].ConvertToDouble(0),
                        Lattitute   = fields[2].ConvertToDouble(0),
                        UnicomRsrp  = fields[3].ConvertToInt(-140),
                        MobileRsrp  = fields[4].ConvertToInt(-140),
                        TelecomRsrp = fields[5].ConvertToInt(-140)
                    };
                    dtPoints.Add(dtPoint);
                }
            }
            using (var writer = new StreamWriter(_lastFileName))
            {
                foreach (var point in points)
                {
                    var mergePoints =
                        dtPoints.Where(
                            x =>
                            x.Longtitute > point.Longtitute - 0.0002 && x.Longtitute <point.Longtitute + 0.0002 &&
                                                                                      x.Lattitute> point.Lattitute - 0.0002 && x.Lattitute < point.Lattitute + 0.0002);
                    if (mergePoints.Any())
                    {
                        writer.WriteLine(mergePoints.First().Operator + "," + point.Longtitute + "," + point.Lattitute +
                                         "," + mergePoints.Average(x => x.UnicomRsrp) + "," +
                                         mergePoints.Average(x => x.MobileRsrp) + "," +
                                         mergePoints.Average(x => x.TelecomRsrp));
                    }
                }
            }
        }
Esempio n. 4
0
        public IEnumerable <AgisDtPoint> QueryAgisDtPoints(DateTime begin, DateTime end)
        {
            var points = _agisRepository.GetAllList(x => x.StatDate > begin && x.StatDate <= end);

            if (!points.Any())
            {
                return(new List <AgisDtPoint>());
            }
            return(points.GroupBy(x => new { x.X, x.Y }).Select(g =>
            {
                var telecomGroups = g.Where(x => x.TelecomRsrp > 0).ToList();
                var mobileGroups = g.Where(x => x.MobileRsrp > 0).ToList();
                var unicomGroups = g.Where(x => x.UnicomRsrp > 0).ToList();
                var stat = new AgisDtPoint
                {
                    X = g.Key.X,
                    Y = g.Key.Y,
                    Longtitute = g.First().Longtitute,
                    Lattitute = g.First().Lattitute,
                    StatDate = g.First().StatDate
                };
                if (telecomGroups.Any())
                {
                    stat.TelecomRsrp = telecomGroups.Average(x => x.TelecomRsrp);
                    stat.TelecomRate100 = telecomGroups.Average(x => x.TelecomRate100);
                    stat.TelecomRate105 = telecomGroups.Average(x => x.TelecomRate105);
                    stat.TelecomRate110 = telecomGroups.Average(x => x.TelecomRate110);
                }
                if (mobileGroups.Any())
                {
                    stat.MobileRsrp = mobileGroups.Average(x => x.MobileRsrp);
                    stat.MobileRate100 = mobileGroups.Average(x => x.MobileRate100);
                    stat.MobileRate105 = mobileGroups.Average(x => x.MobileRate105);
                    stat.MobileRate110 = mobileGroups.Average(x => x.MobileRate110);
                }
                if (unicomGroups.Any())
                {
                    stat.UnicomRsrp = unicomGroups.Average(x => x.UnicomRsrp);
                    stat.UnicomRate100 = unicomGroups.Average(x => x.UnicomRate100);
                    stat.UnicomRate105 = unicomGroups.Average(x => x.UnicomRate105);
                    stat.UnicomRate110 = unicomGroups.Average(x => x.UnicomRate110);
                }
                return stat;
            }));
        }