我正在研究使用R的空间数据集 .
数据描述
我的主数据集采用 SpatialPointsDataFrame
格式,并且每个月都有表面温度数据(列名称 - "ruralLSTday",01231898) . 数据摘要如下所示:
主数据 - (以SpatialPointsDataFrame格式)
TOWN_ID ruralLSTday ruralLSTnight year month
2920006.11 2920006 303.6800 289.6400 2001 0
2920019.11 2920019 302.6071 289.0357 2001 0
2920015.11 2920015 303.4167 290.2083 2001 0
3214002.11 3214002 274.9762 293.5325 2001 0
3214003.11 3214003 216.0267 293.8704 2001 0
3207010.11 3207010 232.6923 295.5429 2001 0
坐标:
longitude latitude
2802003.11 78.10401 18.66295
2802001.11 77.89019 18.66485
2803003.11 79.14883 18.42483
2809002.11 79.55173 18.00016
2820004.11 78.86179 14.47118
我想在上面有关降雨和气温的数据中添加列 - 这个数据每月在表"secondary_data"的 SpatialGridDataFrame
中显示 . "secondary_data"的片段如下所示:
辅助数据 - (以SpatialGridDataFrame格式)
month meant.69_73 rainfall.69_73
1 1 25.40968 0.6283871
2 2 26.19570 0.4580542
3 3 27.48942 1.0800000
4 4 28.21407 4.9440000
5 5 27.98987 9.3780645
坐标:
longitude latitude
[1,] 76.5 8.5
[2,] 76.5 8.5
[3,] 76.5 8.5
[4,] 76.5 8.5
[5,] 76.5 8.5
题
如何通过匹配纬度经度和月份,将辅助数据中的列添加到主数据中?目前,上面两个表中的纬度/经度信息不完全匹配,因为主数据是一组点,而辅助数据是网格 .
有没有办法在“辅助数据”中找到我的主数据的纬度/经度落入的网格的平方,并进行插值?
1 回答
如果你的
SpatialPointsDataFrame
对象被称为x
,你的SpatialGridDataFrame
被称为y
,那么将
y
匹配的属性(网格单元格值)添加到x
的位置,添加到x
的属性 . 匹配由网格点单元格完成 .插值是一个不同的问题;一种简单的方法是与四个最近邻居的反距离,例如通过
你是否想要一个,或者另一个真正取决于你的网格单元意味着什么:它们是指(i)网格单元中心的点值,(ii)整个网格单元中恒定的值,或者(iii)整个网格单元的平均值 . 第一种情况:插值,第二种情况:使用
over
,第三种情况:使用区域到点插值(此处未说明) .R包
raster
将提供类似的功能,但使用不同的名称 .