Я хотел бы найти решение той же проблемы, представленной в этом вопросе. Я цитирую интересующую меня часть:
Я работаю с Нью-Йоркомнабор данных такси. В наборе данных есть столбцы, в том числе дата и время, широта / долгота захвата, широта / долгота и т. Д. Теперь я хочу изменить геокодирование широты / долготы, чтобы найти район / район
В моем наборе данных несколько миллионовстроки, поэтому мне нужен вычислительно эффективный метод. Я скачал этот файл . Он содержит названия окрестностей и их центроиды. Я хотел бы использовать тот же метод, что и этот ответ в этом вопросе , чтобы найти окрестность, центр тяжести которой был ближайшим, а затем классифицировать точку данных в эту окрестность.
from math import radians, cos, sin, asin, sqrt
def haversine(lon1, lat1, lon2, lat2):
"""
Calculate the great circle distance between two points
on the earth (specified in decimal degrees)
"""
# convert decimal degrees to radians
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
# haversine formula
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
# Radius of earth in kilometers is 6371
km = 6371* c
return km
Проблемаявляется то, что я хотел бы использовать тот же метод, но с R. В качестве альтернативы найти другой столь же эффективный метод.
DATASET -> Download 1,8 Gb