找到最接近的纬度和; Lat / Longs python列表中的经度

时间:2013-06-09 04:16:48

标签: python python-3.x

我正在努力寻找一种更快捷的方式来找到最接近的Latitude&来自一个大型文件的Lat / Longs列表中的经度,我必须打开一个csv文件,将其转换为正确的格式。选择我的lat和long所在的列,然后将它们插入我的eqation ...如果它有效。 这就是我到目前为止......我一直在

  

TypeError: float对象不可订阅

def menu3(data):
    lat2 = 47.488611
    long2 = -117.578611
    data = open('eqdata.csv', 'r')
    reader = data.readlines()
    for line in reader:
        lat1 = line[4]
    for line in reader:
        long1 = line[5]
    for ix in range(len(long1)):
        lat1[ix][5]=int(long2[ix][5])

    for ix in range(len(lat1)):
        lat1[ix][4]=int(lat1[ix][4])

    distance =int((lat2-lat1)**2)**.5+int((long2-long1)**2)
    distanceSq = distance**2
    print (distanceSq)

1 个答案:

答案 0 :(得分:1)

reader = data.readlines()将文件的所有行读入字符串列表。

这些行:

for line in reader:
    lat1 = line[4]

lat1分配给每行的第5个字符......但它会循环到最后一行,导致lat1成为文件中最后一行的第5个字符...可能不是你想要什么。

这似乎甚至不是为您提供错误消息的代码,因为给定输入文件这一行:

    lat1[ix][5]=int(long2[ix][5])

由于lat1是单个字符,因此应该给出:

IndexError: string index out of range

long2是先前分配的浮点值,因此对其进行索引也会失败。

使用实际来源,示例输入和错误消息的完整回溯更新您的问题,以获得更好的帮助。

还有一个csv模块可以帮助处理.csv个文件,但仍需要一些示例输入。

另外,我建议使用调试器或至少一些打印语句来查看变量的作用。