首页 > 解决方案 > 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

标签: rmappinggisgeocoding

解决方案


推荐阅读