计算大圆属性的函数集合

great-circle-calculator的Python项目详细描述


大圆计算器

这是一个方程式和公式的集合,我已经在我的许多项目中使用它们来计算各种 使用大圆计算的距离。这里的公式是从 这里这里

因为我已经在几个项目中使用了这些公式,所以我决定将其上传到pypi以便于 保持更新和分发。可以根据需要克隆、分叉或修改代码。我相信有 更有活力的套餐。一个例子是大地测量学。 但我想我可以使用python实践。

任何问题,请随时联系。

如何安装

克隆/下载包到您的项目中,或使用pip install great circle calculatorpypi

如何使用

这是您可用功能的概要。

Great_Circle_Calculator

根据我的需要,我将此库导入为

importgreat_circle_calculator.great_circle_calculatorasgcc

fromgreat_circle_calculator.great_circle_calculatorimport*

其中*可以是一个特定的函数(或保留为*表示所有函数)

这些函数是点之间的距离点对点对点对点点对点对点中点="nofollow">中间点给定点起始点和方向角

函数两点之间的距离()

函数两点之间的距离(p1,p2,单位为米,haversine=true)计算单位参数中给定的两点之间的距离。它将使用余弦定律计算距离,除非用户指定haversinetruep1p2是以十进制度数(lon,lat)形式存在的点(即元组,长度列表2)。unit是一种测量单位,可以通过大圆圈计算器.常量访问。合格单位,默认值为'meters'haversine=true使用haversine公式,该公式在短距离内被认为是优越的(这是我经常使用的用例)。将其更改为haversine=falseyeilds thelaw of cosines它通常具有更快的计算时间。

功能

函数bearing_at_p1(p1,p2)计算给定目的地p2的p1处的方位(即航向)。与middpoint()中间点()一起使用,以查找路线沿线的路线。使用bearing_at_p2()查找端点处的轴承,p2p1p2是以十进制度数(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()在起点处查找轴承,p1p1p2是以十进制度数(lon,lat)形式存在的点(即元组,长度列表2)。

函数中点()

函数中点(p1,p2)是两点之间沿大圆路径的中间点。p1p2是以十进制度数(lon,lat)形式存在的点(即元组,长度列表2)。例如,假设p3=中点(p1,p2)两点之间的距离(p1,p3)==两点之间的距离(p2,p3)

函数中间点()

函数中间点(p1,p2,分数=0.5)给定分数距离时,沿p1p2的路线布置的中间点。分数p1p2之间距离的分数,其中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常量

它的创建有两个目的:

  1. 以各种单位方便地存储地球半径

  2. 为了简化程序中的代码,这样我就不必每次需要sin、cos等时都调用math.*

  3. < > >

    要查看可用的单位,请调用\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>更改日志

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
“电话目录”数据结构的java实现   使用PC remote读取JSP页面上的文件时出现java错误   无法在不同目录中从Java执行Python脚本   java无法在windows 8.1上运行javafx应用程序   java航空公司系统如何防止两个用户同时预订同一个座位?   反射如何在java方法中获取每个参数的名称和值?   阅读中的字符串问题。txt文档并在Java中编辑   java JTextPane行包装问题   使用PowerMock Android Junit时出现java ClassNotFoundException   java输入和If语句   java如何在不使用剪贴板或操作CTRL+C、CTRL+V的情况下将字符串中的“\t”或“tab”发送到selenium中的文本框中   tomcat7将Java应用程序部署到Digitalocean中的Tomcat根目录   响应中嵌套映射的java问题(Jersey)