Example #1
0
        public static object GetProfilePoints(double txLat, double txLon, double rxLat, double rxLon)
        {
            /*
             *  Test data to paste into excel:
             *
             *      start	-33.83953500	151.20694600
             *      end	-33.87644513	151.22115513
             *
             *      =GetProfilePoints(B1,C1,B2,C2)
             *
             */

            if (diffLossCalc == null)
            {
                diffLossCalc = new DiffractionLossCalculator();
            }

            GlobalCoordinates start = new GlobalCoordinates(new Angle(txLat), new Angle(txLon));
            GlobalCoordinates end   = new GlobalCoordinates(new Angle(rxLat), new Angle(rxLon));

            var points      = diffLossCalc.GenerateIntermediateProfilePoints(start, end);
            var pointsArray = new object[points.Count, 3];

            for (int i = 0; i < points.Count; i++)
            {
                pointsArray[i, 0] = points[i].coordinate.Latitude.Degrees;
                pointsArray[i, 1] = points[i].coordinate.Longitude.Degrees;
                pointsArray[i, 2] = points[i].height;
            }

            return(ArrayResizer.Resize(pointsArray));
        }
Example #2
0
        public static double CalculateDiffractionLoss(double txLat, double txLon, double TxAntennaeHeight, double rxLat, double rxLon, double RxAntennaeHeight, double frequency)
        {
            if (diffLossCalc == null)
            {
                diffLossCalc = new DiffractionLossCalculator();
            }

            GlobalCoordinates start = new GlobalCoordinates(new Angle(txLat), new Angle(txLon));
            GlobalCoordinates end   = new GlobalCoordinates(new Angle(rxLat), new Angle(rxLon));

            double result = diffLossCalc.CalculateDiffractionLoss(start, TxAntennaeHeight, end, RxAntennaeHeight, frequency);

            return(result);
        }