r - R:如何有效地将地理编码纬度/经度转换为自治市镇
问题描述
我想找到这个问题中提出的相同问题的解决方案。 我引用我感兴趣的部分:
我正在使用纽约市出租车数据集。数据集的列包括日期时间、皮卡纬度/经度、下落纬度/经度等。现在我想对纬度/经度进行反向地理编码以找到自治市镇/社区
我的数据集有几百万行,所以我需要一种计算效率高的方法。我下载了这个文件。它包含邻域名称及其质心。我想在这个问题中使用与这个答案相同的方法来找到质心最接近的邻域,然后将数据点分类到该邻域。
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。或者找到另一种同样有效的方法。
数据集 ->下载 1,8 Gb
解决方案
推荐阅读
- r - 如何编写函数或循环以用列名替换二进制值?
- html - 如何在Vuetify的布局中居中元素?
- java - 使用两个线程顺序打印奇偶数
- react-native - 发送某人时,我的平面列表未显示新消息。反应原生
- identityserver4 - IdentityServer4 为每个端点返回 404 状态码
- python - 如何检查列表中最大的字符串是什么?
- android - 垂直滑动布局内的水平滚动
- c++ - 有没有办法从ordered_index ed multi_index 中移动一个元素?
- c++ - 如何将此对列表转换为包含数组数组的对象?
- django - 比较 Django ORM 过滤器中的注释