计算大圆属性的函数集合
great-circle-calculator的Python项目详细描述
大圆计算器
这是一个方程式和公式的集合,我已经在我的许多项目中使用它们来计算各种 使用大圆计算的距离。这里的公式是从 这里和这里
因为我已经在几个项目中使用了这些公式,所以我决定将其上传到pypi以便于 保持更新和分发。可以根据需要克隆、分叉或修改代码。我相信有 更有活力的套餐。一个例子是大地测量学。 但我想我可以使用python实践。
任何问题,请随时联系。
如何安装
克隆/下载包到您的项目中,或使用pip install great circle calculator
(pypi)
如何使用
这是您可用功能的概要。
库Great_Circle_Calculator
根据我的需要,我将此库导入为
importgreat_circle_calculator.great_circle_calculatorasgcc
或
fromgreat_circle_calculator.great_circle_calculatorimport*
其中*可以是一个特定的函数(或保留为*表示所有函数)
这些函数是点之间的距离,点对点对点对点,点对点对点,中点="nofollow">中间点,给定点起始点和方向角
函数两点之间的距离()
函数两点之间的距离(p1,p2,单位为米,haversine=true)
计算单位参数中给定的两点之间的距离。它将使用余弦定律计算距离,除非用户指定haversine
为true
。p1
和p2
是以十进制度数(lon,lat)形式存在的点(即元组,长度列表2)。unit
是一种测量单位,可以通过大圆圈计算器.常量访问。合格单位
,默认值为'meters'
。haversine=true
使用haversine公式,该公式在短距离内被认为是优越的(这是我经常使用的用例)。将其更改为haversine=false
yeilds thelaw of cosines它通常具有更快的计算时间。
功能
函数bearing_at_p1(p1,p2)
计算给定目的地p2的p1处的方位(即航向)。与middpoint()
和中间点()
一起使用,以查找路线沿线的路线。使用bearing_at_p2()
查找端点处的轴承,p2
。p1
和p2
是以十进制度数(lon,lat)形式存在的点(即元组,长度列表2)。
途中查找课程的示例:
importgreat_circle_calculator.great_circle_calculatorasgcc""" This code snippit will find the the course at a point p3 which is 20% the way between points p1 and p2"""p1,p2=(lon1,lat1),(lon2,lat2)frac_along_route=0.2course_enroute=gcc.bearing_at_p1(gcc.intermediate_point(p1,p2,frac_along_route),p2)
功能
函数bearing_at_p2(p1,p2)
计算给定p1开头的p2处的方位(即航向)。与middpoint()
和中间点()一起使用. 使用
bearing_at_p1()
在起点处查找轴承,p1
。p1
和p2
是以十进制度数(lon,lat)形式存在的点(即元组,长度列表2)。
函数中点()
函数中点(p1,p2)
是两点之间沿大圆路径的中间点。p1
和p2
是以十进制度数(lon,lat)形式存在的点(即元组,长度列表2)。例如,假设p3=中点(p1,p2)
,两点之间的距离(p1,p3)==两点之间的距离(p2,p3)
函数中间点()
函数中间点(p1,p2,分数=0.5)给定分数距离时,沿p1
到p2
的路线布置的中间点。分数
是p1
和p2
之间距离的分数,其中0是p1
,0.5相当于中点()
,1是p2
函数给定点的起始点和方向角()
给定的功能点_开始_和_方位(p1,航向,距离,单位为米)被给定一个起点p1
,初始方位course
,距离distance
,这将计算沿(最短距离)大圆弧行进的终点方位。单位
是一种测量单位,可以通过大循环计算器.常量访问。合格单位
,默认值为'meters'
库指南针
创建这个libaray的目的是让我调用compass.east,这样我就可以得到90度的温度。 起初,保存它是因为它可能有用…
它有两个类,分别称为compasssimple和compasscomplex。CompassComplex
仍在待办事项列表中,但它包含有关每个指南针点的更多信息。
要查看Eligble点,请参见此处的。只需使用"指南针点"中的术语,在有空格或破折号的地方使用小写和下划线。或者,您可以使用"缩写"和适当的大小写来调用相同的值。
使用指南针简单
importgreat_circle_calculator.CompassSimpleascompassprint(compass.east)# prints 90print(compass.north)# prints 0print(compass.northwest_by_north)# prints 326.250print(compass.SEbE)# Southeast by east, prints 123.750print(compass.SWbS==compass.southwest_by_south)# prints True
库\u常量
它的创建有两个目的:
以各种单位方便地存储地球半径
为了简化程序中的代码,这样我就不必每次需要sin、cos等时都调用
math.*
。 < > >- 1.1.0-更改了
haversine=true
作为默认值,因为它更准确地反映了我在项目中使用的小距离计算。 - 1.0.2-压缩中间函数中的错误。错误的数目令人尴尬。我希望你不要对我太苛刻。
- 1.0.1.post1-包括
asin()
和acos()
的域检查器,因为舍入错误可能导致函数超出范围。 - 1.0.post1-我把编号顺序弄错了,现在还是新的…请忽略。
- 1.0.1-修复了(
point_given_start_and_bearing
)中的错误。[point_given_start_and_bearing] - 1.0.0-第一版、初始提交等。
要查看可用的单位,请调用\u常量。符合条件的单位
将显示可用单位的列表。
合格单元
要查看可用的单位,请调用\u常量。符合条件的单位
将显示可用单位的列表。
库转换和错误检查
将弧度和度数之间的值(\u conversion.py
)转换为默认选项的专用库
python的数学包是radians。
错误检查库(\u error\u checking.py
)是我要处理的内容。我用笛卡尔规则
通过点时,即(lon,lat)或(x,y)。所以如果你试图通过一个点,它在(纬度,经度)而不是
通过健全性检查,例如lat>;90和lon<;=90,它将立即交换坐标。不确定是不是
对每个人来说都是最好的,但我主要从事lon(大约)为90的项目
最后…
套餐最后更新日期:2019年1月14日。自述文件上次更新时间:2019年1月17日。
< H2>更改日志