韩忠民
吉林省延边地震台,吉林 延吉 133003
根据这些问题,用《Visual Basic》编写了《知经纬度计算两点精确距离》程序,使两点之间距离计算变得简单,为地震分析提供了方便而快捷的计算工具。
国家地震局地球物理所编制的《近震分析》中可以知道,在地面上计算两点距离的一般方法有:
1)在大比例地图上直接测量
在地图上根据比例直接换算距离,方法比较简单。
2)已知两点的大地坐标计算距离
设两点大地坐标值为 (x1,y1),(x2,y2)则:
2019年11月蓄水后,开挖半河床半河岸段(K0+0~K1+600,K4+200~K5)水面线以下部分,约150万m3,2019年11月~2020年8月,月平均开挖强度15万m3(开挖强度与填筑强度匹配,满足填筑要求)。
3)知两点的经纬度计算两点距离的近似公式
设定 A点(纬度φ1, 经度λ1) 和1B 点(纬度φ2,经度λ2)则
式中Δ是两点之间距离,单位是度而不是弧度。
4)知两点经纬度计算两点距离的精确公式
设定 A点(纬度φ1, 经度λ1) 和 B 点(纬度φ2,经度λ2)则
其中
这4种方法互相比较有如下特点:
第1种方法,直观易行,也是常用方法。即使要采用其他方法计算,也常常先直接测量一下大小,以便检查计算中因有效位数不够引起的计算误差或计算错误。
第2种方法,比起第一种方法还比较精确,计算也简单,但往往因查不到大地坐标值或坐标变换的数值而无法使用。
第3种方法,在书本上使用的较多。
第4种方法,计算较繁,特别是要求计算中的有效位数必须在六位以上,否则,计算误差影响很严重。但是,这种方法的原理不仅适用于近震,也适用于远震。
从上述4种方法的比较中可以知道,第4种方法虽然有计算繁、有效位数必须在六位以上等缺点,但非常适合地震分析中使用。此计算方法的缺点,完全可以用程序来克服。因此本程序编程采用了此计算方法。
在Windows环境下运行《知经纬度计算两点精确距离》程序,则弹出如图1画面。
程序中设计了A点和 B点两个已知经纬度的输入栏。因在地震分析资料中经纬度单位是度或度、分来表示,所以设计了<度为单位>、<度、分为单位>两个输入栏。计算时根据给定单位的经纬度来输入即可,不必进行单位转换。
输入栏相应位置输入已知两点的经纬度之后,点击<计算>按钮,即可计算出两点之间距离,非常方便实用。
图1 程序界面
例如,已知A点纬度为34.06°即34°3.6',经度为140.12°即140°7.2';B点纬度为38.18°即38°10.8',经度为21.98°即21°58.8'。则相应输入栏里输入数据后,点击<计算>按钮,则计算结果如图1。计算结果中可以看出以<度为单位>和<度、分为单位>计算结果一样,说明编程中单位转换是正确的。
1)本程序运行需要安装《Visual Basic》程序;
2)程序中有两个<计算>按钮,可以分别进行不同单位的经纬度计算;
3)如果重新输入数据或计算下一个,点击<清空>按钮,则清空相应位置栏里所有数据,以便输入新的数据;
4)程序中有<合并清空>按钮,用于清空两个输入栏里所有数据;
5)输入栏中所有项必须有数据,如果缺一项,则程序不进行计算;
6)输入数据时,可以按<Tab>键把光标移动到下一个栏里,避免频繁使用鼠标;
7)计算结果以度和公里为单位显示,便于地震分析中使用;
8)<计算结果>栏是显示计算结果的地方,该处只能显示结果,无法输入数据。
本程序计算结果的精度在地震分析或其他工程领域都很重要。从计算公式中可以知道,要求计算中的有效位数必须在六位以上,而实际程序中使用的有效位数达到了14位,完全符合要求。为了验证本程序编程是否正确、计算精度是否达到要求,首先,用计算器计算并且有效位数在六位以上,然后与程序计算结果相互比较。计算结果相差几乎零,说明本程序编程是正确的,精度也达到了要求,完全可以在地震分析中使用。
因本程序距离计算不仅适用于近震,也适用于远震,地震分析中可以不受限制的使用。同时也可以用于其他需要已知经纬度的情况下求两点之间距离的领域。从试用情况来看该程序具有操作简单、运行稳定、精度高等特点。由于该程序是日常数据处理软件,在使用中还需不断的改进和完善。
[1]国家地震局地球物理研究所.近震分析[M].北京:地震出版社,1978.
[2]王新民,于翔志.Visual Basic程序设计[M].北京:电子工业出版社,2006.
[3]时振梁,张少泉,赵荣国,吴开统,陆其鹤,张敏政.地震工作手册[M].北京:地震出版社,1992.
[4]刘克骧,孙自刚,等.2006.单台测震分析辅助软件的设计及实现[J].地震地磁观测与研究.
[5]邓存华,李雷,等.2006.CDSN日常分析工作辅助软件设计[J].地震地磁观测与研究.