用于“弧分”计算的python代码,完成经纬度转换功能[关闭]

Posted

技术标签:

【中文标题】用于“弧分”计算的python代码,完成经纬度转换功能[关闭]【英文标题】:python code for "minute of arc" calculation, completing a latitude and longitude conversion function [closed] 【发布时间】:2013-09-29 21:51:05 【问题描述】:

"完整的经纬度转换功能 人类喜欢用度、分和秒来表示纬度和经度。您可以在 Python 中使用这些单位,但是如果您转换为单一单位“度”,使用度的分数来表示弧分和弧秒,您的计算(以及代码)会更加清晰。

您的首要任务是填写函数 convert_to_decimal() 的代码。参数是以度、弧分和弧秒为单位的纬度(或经度)。该函数应返回与以十进制度为单位的单个纬度(或经度)相同的纬度(或经度)(浮点类型的单个值)。如果您不确定如何计算转换,请阅读。” 提供链接:http://www.quickiwiki.com/en/Arcminute

本质上:试图获得一个代码,该代码将返回与十进制度数相同的纬度或经度。我知道我必须从给定的输入中转换值,只是试图找到最有效的方法来做到这一点

【问题讨论】:

从编写 any 代码开始 - 它会足够高效 ;-) 我认为它应该是 (度/60),因为“一分弧、弧分或分弧 (MOA) 是等于六十分之一 (1⁄60) 的角度测量单位一级。” Eric,你已经充分表达了你的问题,但你没有提出问题。你有什么问题? 【参考方案1】:

让我们逐个分解。

您的首要任务是填写函数 convert_to_decimal() 的代码。

你知道如何在 Python 中创建函数吗?我们使用def 关键字来创建函数:

def convert_to_decimal():
    return 42

我省略了数学,稍后会出现。


参数是以度、弧分和弧秒为单位的纬度(或经度)。

函数参数在函数声明的括号内指定,如下所示:

def convert_to_decimal(degrees, argminutes, arcseconds):
    return 42

该函数应该返回相同的纬度(或经度)作为一个十进制度(浮点类型的单个值)。

我们不要忘记记录我们的函数,所以 python 解释器的 help() 函数做了一些有用的事情:

def convert_to_decimal(degrees, arcminutes, arcseconds):
    '''
       Convert degrees, minutes, seconds into the 
       same latitude (or longitude) as a single in
       decimal degrees (a single value of type float)
    '''
    return 42.0

返回值应该是float类型,所以我改变了我们的占位符return语句。


From the wiki, 弧分 ... 等于 1 度的六十分之一 (1⁄60)。

而且,通过扩展,一角秒是 1 度的 1/3600。

def convert_to_decimal(degrees, arcminutes, arcseconds):
    '''
       Convert degrees, minutes, seconds into the 
       same latitude (or longitude) as a single in
       decimal degrees (a single value of type float)
    '''
    return float(degrees + arcminutes/60. + arcseconds/3600.)

请注意,我除以浮点常量,而不是整数常量,以确保使用浮点值完成数学运算。

【讨论】:

以上是关于用于“弧分”计算的python代码,完成经纬度转换功能[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

用于根据纬度、经度计算重叠区域的Python包[重复]

python,基于tkinter模块编写的根据经纬度计算两点间距离的应用程序

python 经纬度坐标转换为UTM坐标方法与结果验证分析

python 经纬度坐标转换为UTM坐标方法与结果验证分析

python 经纬度坐标转换为UTM坐标方法与结果验证分析

如何使用 Python 从导入的 csv 计算纬度/经度点之间的距离?