按纬度、经度和时间模糊合并两个数据集

Fuzzy merging two data sets by Lat, Lon and time

我有两个数据集,fire数据集很大,global temp数据集比它小很多。

所以我想通过DISCOVERY_DATE = date, Latitude = latitude and longitude = longitude来匹配两个数据集。现在我知道他们中的大多数都不会匹配,但我正在寻找尽可能接近的匹配项。我认为 fuzzyjoin 是解决此问题的好方法,但如何将这三个方法与此匹配。

我认为问题可能是我似乎无法为此找到好的功能。

 tempFire <- fuzzy_join(fires, Temps, multi_by = c("DISCOVERY_DATE" = "date", "LONGITUDE" = "Longitude", "LATITUDE" = "Latitude"), multi_match_fun = D, mode = "full")

数据

> head(z, n =10)
   fires.LATITUDE fires.LONGITUDE fires.DISCOVERY_DATE
1        40.03694       -121.0058           1970-01-29
2        38.93306       -120.4044           1970-01-29
3        38.98417       -120.7356           1970-01-29
4        38.55917       -119.9133           1970-01-29
5        38.55917       -119.9331           1970-01-29
6        38.63528       -120.1036           1970-01-29
7        38.68833       -120.1533           1970-01-29
8        40.96806       -122.4339           1970-01-29
9        41.23361       -122.2833           1970-01-29
10       38.54833       -120.1492           1970-01-29
    > head(b, n = 10)
   Temps.Latitude Temps.Longitude Temps.date
1           32.95         -100.53 1992-01-01
2           32.95         -100.53 1992-02-01
3           32.95         -100.53 1992-03-01
4           32.95         -100.53 1992-04-01
5           32.95         -100.53 1992-05-01
6           32.95         -100.53 1992-06-01
7           32.95         -100.53 1992-07-01
8           32.95         -100.53 1992-08-01
9           32.95         -100.53 1992-09-01
10          32.95         -100.53 1992-10-01

我建议您根据时间距离(即减去日期)和空间距离(基于纬度和经度)的加权组合提出适当的距离度量。根据应用程序的空间和时间邻近度的相对重要性确定权重。然后使用此距离度量计算包含从第一个数据集中的每个点到第二个数据集中的每个点的距离的矩阵。最后,找到每行 and/or 列到一个数据集中的 select 个数据点与另一个数据集中的点最接近的最小距离。您可能希望丢弃距离大于某个阈值的任何对。