Вот как работает мой код:
- Извлечение данных о ветре с сайта завтра.io (который, насколько я понимаю, дает угол, под которым дует ветер, измеренный по часовой стрелке относительно истинного севера, т.е. 0 градусов — это ветер с юга, 90 градусов - ветер с востока,...)
- Вычисление угла между двумя парами координат
Код: Выделить всё
def angle(lat1, long1, lat2, long2):
dLon = (long2 - long1)
y = math.sin(dLon) * math.cos(lat2)
x = math.cos(lat1) * math.sin(lat2) - math.sin(lat1) * math.cos(lat2) * math.cos(dLon)
brng = math.atan2(y, x)
brng = math.degrees(brng)
return (brng + 180) % 360
- Вычислите разницу между ними
Код: Выделить всё
def angleDifference(row):
segment_angle = np.array(row['Segment Angle'])
wind_angle = np.array(row['Wind Direction'])
difference = abs(segment_angle - wind_angle)
if difference > 180: difference = 360 % difference
return difference
Подробнее здесь: https://stackoverflow.com/questions/784 ... to-segment