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); }
private void FillOneProportionBinValue(FileInfoBase dtFileInfo, int rowIndex, BinInformation binInfo) { if (binInfo.ClutterProportion != null) { for (int i = 0; i < base.m_ClutterTypeNum; i++) { base.proportionMatrix[(rowIndex * base.m_ClutterTypeNum) + i] = binInfo.ClutterProportion[i]; } } }
private float CalSFadingMarginAndPentroless(BinInformation binInfo) { short clutterID = base.m_GeoDataObserver.IGeoProvider.GetGeoInfo.GetValueByGeoXYPoint(binInfo.XYPoint, DemDataType.Clutter); short buildHeight = base.m_GeoDataObserver.IGeoProvider.GetGeoInfo.GetValueByGeoXYPoint(binInfo.XYPoint, DemDataType.Building); SFadingMarginAndPentrLoss loss = new SFadingMarginAndPentrLoss(base.m_GeoDataObserver.IGeoProvider.ClutterParams); return loss.GetSFadingMarginAndPenetrationLoss(this.m_DataForAdjust.CellEdgeCoverProbility, clutterID, buildHeight, true, false); }
private bool FillOneBinValue(FileInfoBase dtFileInfo, int rowIndex, BinInformation binInfo) { float[] tempModelValue = new float[base.modelCoeNum]; this.CalculateModelValue(dtFileInfo.CellInfo, binInfo, ref tempModelValue); int num = 0; for (int i = 0; i < base.modelCoeNum; i++) { base.allCoeValueMatrix[(rowIndex * base.modelCoeNum) + num] = tempModelValue[i]; num++; } base.actualLossMatrix[rowIndex] = binInfo.ActualPathLoss; return true; }
private void CalculateModelValue(CellInformation cellInfo, BinInformation binInfo, ref float[] tempModelValue) { float num = 0f; if ((cellInfo.TxHeight == 0f) || float.IsNegativeInfinity(cellInfo.TxHeight)) { num = 0f; } else { num = this.CalcEffecTxHt(cellInfo, binInfo); } float num2 = 1.5f; tempModelValue[0] = 1f; tempModelValue[1] = binInfo.LogDistance; tempModelValue[2] = num; tempModelValue[3] = binInfo.DiffLoss; tempModelValue[4] = binInfo.LogDistance * num; tempModelValue[5] = num2; tempModelValue[6] = binInfo.ClutterLoss; }