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)); }
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); }