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