public SPMAdjustDT(IBaseService iBaseService, DataForAdjust dataForAdjust, IList<FileInfoBase> dtFileList) { base.m_IBaseService = iBaseService; this.m_antennaGain = ServiceHelper.Lookup<ICalcGain>(iBaseService); base.m_GeoDataObserver = ServiceHelper.Lookup<IPropaGeoDataObserver>(iBaseService); this.m_StatusBarService = ServiceHelper.Lookup<IStatusBarService>(iBaseService); this.m_SectionPathLossCalcParam = new SectionPathLossCalcParam(); base.modelBeforeAdjust = dataForAdjust.PropModel as SpmPropagationModel; base.modelAfterAdjust = (SpmPropagationModel) base.modelBeforeAdjust.Clone(); this.m_SectionPathLossCalcParam.PropagModel = base.modelAfterAdjust; this.m_ClutterLossMethod = base.modelAfterAdjust.ClutLossCalcuMethod as ClutterLossBase; this.m_EffTxHeightMethod = base.modelAfterAdjust.EffTxHeightCalcuMethod as EffectTxHeightBase; base.endCondition = dataForAdjust.EndCondition; base.isCoeNeedAdjust = dataForAdjust.IsCoeNeedAdjust; this.m_DTFileList = dtFileList; this.m_DataForAdjust = dataForAdjust; base.m_ClutterTypeNum = base.m_GeoDataObserver.GisInfo.GetAllClutter().Count; base.lossesperClutterMatrix = new float[base.m_ClutterTypeNum]; base.modelCoeValue = new float[] { base.modelBeforeAdjust.K1, base.modelBeforeAdjust.K2, base.modelBeforeAdjust.K3, base.modelBeforeAdjust.K4, base.modelBeforeAdjust.K5, base.modelBeforeAdjust.K6, base.modelBeforeAdjust.K7 }; base.modelCoeNum = base.isCoeNeedAdjust.Length; }
private float CalcEffecTxHt(CellInformation cellInfo, BinInformation binInfo) { GeoXYLine geoXYLine = new GeoXYLine(cellInfo.XYPoint, binInfo.XYPoint); short[] altitudes = base.m_GeoDataObserver.GisInfo.GetValueByGeoXYLine(geoXYLine, (double) cellInfo.Resolution, DemDataType.Height); this.m_EffTxHeightMethod = base.modelBeforeAdjust.EffTxHeightCalcuMethod as EffectTxHeightBase; SectionPathLossCalcParam param = new SectionPathLossCalcParam(); param.CalcResolution = cellInfo.Resolution; param.TxAntennaHeight = cellInfo.TxHeight; param.RxAntennaHeight = 1.5f; param.MergeEdgeMaxDis = 80f; param.PropagModel = base.modelBeforeAdjust; param.Frequency = cellInfo.Frequency; param.TransmitterName = cellInfo.CellName; float num = (this.m_EffTxHeightMethod == null) ? cellInfo.TxHeight : this.m_EffTxHeightMethod.CalcPointEffTxHt(param, altitudes); return (float) Math.Log10((double) num); }