Вот формула для радиусаКоличество в радиусе известково неприятности питона
import math
def calculateDistance(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
print calculateDistance(latOne, lonOne, latTwo, lonTwo), "metres"
Теперь, если я поставил значения в уравнения, как так
print calculateDistance(-20.73, 116.75, -21.06, 117.44), "metres"
The answer is 80470.8270982 metres
Теперь вот беда. У меня есть переменные, вычисленные из папки CSV таким образом, что lat1 = -20 , lon1 = 100 and lat2 = -30 and lon2 = 120
когда я запускаю следующий код
print calculateDistance(lat1, lon1, lat2, lon2), "metres"
Это появляется TraceBack (самый последний вызов последнего):
File "C:\Documents and Settings\Guest\My Documents\SC\Actual work\distance.py", line 104, in <module>
print calculateDistance(lat0, long0, lat1, long1), "metres"
File "C:\Documents and Settings\Guest\My Documents\SC\Actual work\distance.py", line 5, in calculateDistance
coLat = math.fabs(lonOne - lonTwo)
TypeError: unsupported operand type(s) for -: 'str' and 'str'
там так или иначе разрешить его таким образом, что, когда Я использую мои переменные, которые я вычислил, даст числовое значение?
Что переменная сфера? –
Что вы подразумеваете под переменной областью? – user2430623
Область переменной - это переменная, определенная в функции, неизвестна вне функции. Иногда это может вызвать проблемы, если значение изменяется в одном месте, но не в другом. –