Так у меня есть кодДавать каждый набор данных имени
print
latOne = dL[1][3]
lonOne = dL [1][4]
x = [calculateDistance(latOne, lonOne, latTwo, lonTwo) for latTwo, lonTwo in zip(latitude, longitude)]
print x
это производит значение расстояний в списке с выходом
[0.0, 3043.004178666758, 21558.2996208357, 40246.748450913066, 40908.82213277263, 43786.0579097594, 67781.1426515405, 79693.11338661514, 65046.35819797423, 92804.01912347642]
Теперь каждое расстояние на основе координат от отдельной точки (который имеет определенное имя) т.е.
Sydney (-20.7, 100)
Melbourne (-20, 120)
мой код принимает расстояния ок и производить s список расстояний. Что я хочу сделать, так это настроить структуру так, чтобы расстояния печатались с соответствующими именами точек. т.е. взять латы и тоскует от Сиднея вычислить расстояние, а затем иметь Ouput быть
Distance to Syndey is output ..., Distance to Melbourne is output, and so on.
Если и нужно больше моего код, чтобы помочь, пожалуйста, дайте мне знать.
EDIT:
вот полный код сценария.
import math
import csv
def calculateDistance(latOne, lonOne, latTwo, lonTwo):
from decimal import Decimal
latOne, lonOne, latTwo, lonTwo = [Decimal(x) for x in (latOne, lonOne, latTwo,lonTwo)]
DISTANCE_CONSTANT = 111120.0
coLat = math.fabs(lonOne - lonTwo)
alpha = 90 - latTwo
beta = 90 - latOne
cosAlpha = math.cos(math.radians(alpha))
cosBeta = math.cos(math.radians(beta))
sinAlpha = math.sin(math.radians(alpha))
sinBeta = math.sin(math.radians(beta))
cosC = math.cos(math.radians(coLat))
cos_of_angle_a = (cosAlpha * cosBeta)
cos_of_angle_b = (sinAlpha * sinBeta * cosC)
cos_of_angle_c = cos_of_angle_a + cos_of_angle_b
angle = math.degrees(math.acos(cos_of_angle_c))
distance = angle * DISTANCE_CONSTANT
return distance
stations = []
latitude = []
longitude = []
with open('data.csv', 'rU') as input:
dL= list(csv.reader(input))
sL = [row[4] for row in dL[1:]]
longitude.extend(sL)
sL1 = [row[3] for row in dL[1:]]
latitude.extend(sL1)
sL2 = [row[1] for row in dL[1:]]
stations.extend (sL2)
data = []
print "Station Coordinates"
for i in range(0, len(latitude)):
print str(stations[i]) + "(" + str(latitude[i]) + "," + str(longitude[i]) + ")"
ab = str(stations[i]) + "(" + str(latitude[i]) + "," + str(longitude[i]) + ")"
data.append(ab)
print stations
print
latOne = dL[1][3]
lonOne = dL [1][4]
x = [calculateDistance(latOne, lonOne, latTwo, lonTwo) for latTwo, lonTwo in zip(latitude, longitude)]
print x
print
lessthan, greaterthan = [], []
knowndistance = float(raw_input("Please type your radius"))
for v in x:
if v <= knowndistance:
lessthan.append(v)
else:
greaterthan.append(v)
print lessthan
print greaterthan
А с чем именно вам нужна помощь? это непонятно ... Я много разбираюсь в таких вещах, но я не могу сказать, что вам нужно для помощи ... –
Можете ли вы привести пример того, как выглядит dL? это может быть так же просто, как прокрутка для элемента в dL и сохранение расстояния и соответствующего города в файле –
@ RyanSaxe, а то, что я хочу, поможет с использованием кода. Это получает расстояния, я хочу напечатать расстояния и название станции, на которую принадлежит расстояние. Это яснее? – user2430623