public ComparableCell(IGeoPoint <double> point, IOutdoorCell cell, IList <ILinkBudget <double> > budgetList,
                              byte modBase = 3)
        {
            SetupComparableCell(point, cell);
            ILinkBudget <double> budget = budgetList.FirstOrDefault(
                x => Math.Abs(x.TransmitPower - cell.RsPower) < Eps &&
                Math.Abs(x.AntennaGain - cell.AntennaGain) < Eps &&
                x.Model.Earfcn == cell.Frequency);

            if (budget == null)
            {
                budget = new LinkBudget(cell);
                budgetList.Add(budget);
            }
            Budget  = budget;
            PciModx = (byte)(cell.Pci % modBase);
        }
        public ComparableCell(IGeoPoint <double> point, IOutdoorCell cell, IList <ILinkBudget <double> > budgetList,
                              IBroadcastModel model, byte pciModx = 0)
        {
            SetupComparableCell(point, cell);
            ILinkBudget <double> budget = budgetList.FirstOrDefault(
                x => Math.Abs(x.TransmitPower - cell.RsPower) < Eps &&
                Math.Abs(x.AntennaGain - cell.AntennaGain) < Eps);

            if (budget == null)
            {
                budget = new LinkBudget(model, cell.RsPower, cell.AntennaGain);
                budgetList.Add(budget);
            }

            Budget  = budget;
            PciModx = pciModx;
        }