基于站间距及方位角加权的邻区添加工具实现

上传人:aa****6 文档编号:29218506 上传时间:2018-01-22 格式:DOCX 页数:17 大小:1.39MB
返回 下载 相关 举报
基于站间距及方位角加权的邻区添加工具实现_第1页
第1页 / 共17页
基于站间距及方位角加权的邻区添加工具实现_第2页
第2页 / 共17页
基于站间距及方位角加权的邻区添加工具实现_第3页
第3页 / 共17页
基于站间距及方位角加权的邻区添加工具实现_第4页
第4页 / 共17页
基于站间距及方位角加权的邻区添加工具实现_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《基于站间距及方位角加权的邻区添加工具实现》由会员分享,可在线阅读,更多相关《基于站间距及方位角加权的邻区添加工具实现(17页珍藏版)》请在金锄头文库上搜索。

1、基于站间距及方位角加权的邻区添加工具实现龙颖2016/8/5摘要:本课题设计一个针对小区间方位角进行距离加权的算法,从而更加贴近网络现状进行添加邻区。基于站间距及方位角加权的邻区添加工具实现 新余电信2018-1-19 第 1 页, 共 17 页目录一、 设计背景 .2二、 设计目标及方法 .2三、 设计流程图 .33.1设计流程图 .3四、 设计过程及结果 .44.1 核心算法 .44.2 检索优化算法 .64.3经纬度算两点间距离算法 .104.4经纬度算两点间方位角算法 .11五、 设计结论与收获 .13六、 参考资料 .14七、 使用说明书及工具 .14基于站间距及方位角加权的邻区添加

2、工具实现 新余电信2018-1-19 第 2 页, 共 17 页一、 设计背景目前在众多软件中有很多邻区添加工具,但是较多工具中邻区添加算法大多没有对站点间小区的覆盖范围纳入考虑,故在小区对边缘站点添加邻区时,他们将邻站小区与本站小区正朝向的优先级与小区负朝向的优先级相同,显然按照此类邻区添加算法与现网网络模型不匹配。现本课题设计一个针对小区间方位角进行距离加权的算法,从而更加贴近网络现状进行添加邻区。二、 设计目标及方法主要设计目标如下:设计一个算法,使得在邻区关系添加过程中,能根据方位角和地理位置区分对原小区的邻区优先级,从而更合理的添加邻区。完成设计共需要实现4个功能: 小区间方位角加权

3、的距离实现 优化检索算法 计算本小区与邻区间的站间距 计算本小区与邻区间方位角差值本设计将采用VBA程序语言,结合EXCEL 界面做成一个工具,主要在EXCEL工具内部实现上述功能。基于站间距及方位角加权的邻区添加工具实现 新余电信2018-1-19 第 3 页, 共 17 页三、 设计流程图3.1 设计流程图本工具主要设计流程图如下:基于站间距及方位角加权的邻区添加工具实现 新余电信2018-1-19 第 4 页, 共 17 页四、 设计过程及结果4.1 核心算法方位角加权,可以把扇区考虑成一个扇形的区域,加权系数则是从扇柄到扇形外部的距离,当加权系数大时,距离扇柄的距离大,当加权系数小时,

4、则到扇柄的距离小。如下图所示:加权情况示意图则为了有效的将三个小区区分,可以对经纬度点根据方位角进行加权,这样加权越大,三个扇区的位置差异就越明显,从而能够对方位角与距离进行判断,添加更合理的网络邻区关系。如下图所示:加权情况在实际网络中的应用基于站间距及方位角加权的邻区添加工具实现 新余电信2018-1-19 第 5 页, 共 17 页核心算法由于小区距离的方位角DAL是由A 向B 的,所以夹角 a=方位角A-(DAL+180)夹角b=方位角B-DAL,算得夹角后。在垂直于小区连线方向通过SIN函数乘以加权系数D 得到D_SHORT,小区连线方向通过COS函数乘以加权系数D加上小区距离,得到

5、加权后连线的方向的长度D_LONG 。上述D_LONG 与D_SHORT 得到可以通过勾股定理,算得加权后的小区距离(见以下代码实现部分)核心代码实现部分Do While i field_0,tiers1-field_1,tiers2-field_2,,tiers19-field_19 。(一般20层即可)。每个对应笛卡尔层次的域将根据当前这条记录的经纬度通过笛卡尔算法计算出归属于当前层的网格,然后将gridId(网格唯一标示)以 term的方式存入索引。这样每条记录关于笛卡尔0-19的域将都会有一个gridId对应起来。目前索引的实现核心代码: ActiveCell.FormulaR1C1=

6、IF(MOD(RC-5,0.1)-MOD(R-1C-5,0.1)= & (xnow - 1), _Operator:=xlAnd, Criteria2:= & (ynow - 1), _Operator:=xlAnd, Criteria2:= & (xnow - 1), _Operator:=xlAnd, Criteria2:= & (ynow - 1), _Operator:=xlAnd, Criteria2:=和两向量的夹角K。用公式*=|OA|*|OB|*cosK可以得到; 4. 还有对相同点进行处理等。 代码实现部分:Public Function Cal_Long_Lat(ByVal

7、 long1 As Double, ByVal lat1 As Double, ByVal long2 As Double, ByVal lat2 As Double) As Double 单位公里Const pi As Double = 3.Dim AngleLong1, AngleLat1, AngleLong2, AngleLat2 As DoubleAngleLong1 = long1 * pi / 180基于站间距及方位角加权的邻区添加工具实现 新余电信2018-1-19 第 11 页, 共 17 页AngleLat1 = lat1 * pi / 180AngleLong2 = lo

8、ng2 * pi / 180AngleLat2 = lat2 * pi / 180Dim sinX, cosX As DoublesinX = Sin(AngleLat1) * Sin(AngleLat2)cosX = Cos(AngleLat1) * Cos(AngleLat2) * Cos(AngleLong2 - AngleLong1)X = sinX + cosXOn Error Resume Nextax = Atn(-X / Sqr(-X * X + 1) + 2 * Atn(1)Cal_Long_Lat = 6368.16 * axEnd Function4.4 经纬度算两点间方

9、位角算法经纬度算法示意图A,B,C表示球面上的三个点及球面上“弧线”在该点处所夹的角a,b,c表示A,B,C 三点的对“弧 ”两端点与地心连线所夹的角(其实这里解释成ABC三点对弧的弧度更方便)O为球心基于站间距及方位角加权的邻区添加工具实现 新余电信2018-1-19 第 12 页, 共 17 页L为AB两点间球面距离 首先:在知道AB点经纬度后,要用到第一个公式,三面角余弦公式,AOCB是面AOC与面BOC的二面角,为了方便,写成这个样子这里将已知数据代入,公式便写成:二面角AOCB的度数就是两点经度之差 其次:知道了角c的余弦值后要求得它的正弦值,所用的公式就是三角函数公式里最基本的“扣

10、方加赛方等于1”的一个变形 第三步:求得正弦后,接下来要用一个不太常用的公式,球面正弦公式将已知数据代入并稍微变形一下,公式写为:用反正弦函数求角度,于是上式可直接写成这里需要注意一点,一开始的假设便是求B点相对于A点的方位角,因此这里是Bj-Aj,不要写反,否则得不到正确结果。在此得到的结果并不总符合对方位角的定义,因此要根据B相对于A的位置在四个象限两个轴上进行讨论,依据不同情况对计算结果进行不同处理。假设A点固定于原点,则:B点在第一象限,Azimuth=A;B在第二象限,Azimuth=360+A;B在第三四象限,Azimuth=180-A。经过一系列计算,最后,就得到了最终结果。基于

11、站间距及方位角加权的邻区添加工具实现 新余电信2018-1-19 第 13 页, 共 17 页代码实现部分: Public Function qiufangweijiao(ByVal lon1 As Double, ByVal lat1 As Double, ByVal lon2 As Double, ByVal lat2 As Double) As IntegerConst pi As Double = 3.Dim avlat As DoubleDim qiufangweijiaos As Doubleavlat = (lat1 + lat2) / 2If lat1 - lat2 = 0 Thenqiufangweijiaos = 90Elseqiufangweijiaos = 180 - Atn(lon1 - lon2) * Cos(avlat) / (lat1 - lat2) * 180 / piEnd IfIf lat1 lat2 Thenqiufangweijiaos = qiufangweijiaos + 180End IfIf qiufangweijiaos = 360 Thenqiufangweijiaos = -360 + qiufangweijiaosEnd Ifqiufangweiji

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号