Python:坐标转换

时间:2014-07-31 13:26:54

标签: python list coordinates

我有一组坐标列表[:,4]。它是天文坐标,我想将其转换为十进制。但是,它目前不适用于负天文坐标。我目前有:

if any(a[:,4] < 0 ):
    b[:,1] = a[:,4] - a[:,5]/60 - a[:,6]/3600 - a[:,7]/360000
else:
    b[:,1] = a[:,4] + a[:,5]/60 + a[:,6]/3600 + a[:,7]/360000

print b

这样做的目的是让它从a [:,4]坐标中识别坐标是否为负,然后如果是负数则以一种方式处理其他坐标,如果是正数则另一种方式处理。但是,“if any”行似乎不起作用。

例如,-09:24:40.25应转换为-9.41118,但它当前转换为-8.58882,因为负“小时”坐标随后添加了arcminute,arcsecond和milliarcsecond坐标,而不是它们被减去。

我不确定我做错了什么。

谢谢!

1 个答案:

答案 0 :(得分:0)

你不能使用any函数,假设你正在使用python列表,因为它需要一个iterable并且如果该iterable的任何一个为真,则返回true

a < 0

不会返回可迭代的

替换为

[i < 0 for i in a[:,4]]

 map(lambda x: x < 0 ,a[:,4])

以便if语句变为

if any(map(lambda x: x < 0,a[:,4])):

if any([i < 0 for i in a[:,4]])