2015-07-16 3 views
0

Я работаю на пространственных данных с использованием R.Merge пространственная точка набора данных с пространственной сетки набора данных с помощью R. (Master набора данных в формате SP Points)

данных Описание

Мой мастер набор данных в формате SpatialPointsDataFrame и имеет данные о температуре поверхности (названия столбцов - «countryLSTday», «ruralLSTnight») на каждый месяц. Данные фрагмент кода приведен ниже:

Master Data - (в формате 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 

Я хочу, чтобы добавить столбцы в приведенных выше данных о осадков и температуры воздуха - Это данные присутствуют в SpatialGridDataFrame в таблице «secondary_data» за каждый месяц. Отрывок из "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 

Вопрос

Как добавить столбцы из вторичного данные в мои основные данные путем сопоставления по долготе и месяцу широты? В настоящее время информация о широте/долготе в приведенной выше таблице не будет точно совпадать, поскольку основные данные представляют собой набор точек, а вторичные данные - это сетка.

Есть ли способ найти квадрат сетки по «Вторичным данным», который входит в числовых/длинных моих основных данных и интерполируется?

+0

Как вы будете соответствовать им, когда долготы не совпадут? Является ли идея (скажем) найти квадрат сетки на ваших «вторичных данных», что лат/долгое время попадает и интерполируется? –

+0

Да, это именно то, что я хочу сделать. Каков наилучший способ сделать это? – user4250791

+0

Вам придётся дать небольшой воспроизводимый пример (мы не можем получить предоставленные вами данные lat/lon, а месяц в ваших основных данных не соответствует ни одному из месяцев ваших вторичных данных) –

ответ

1

Если ваш объект SpatialPointsDataFrame называется x, и ваш SpatialGridDataFrame называются y, то

x <- cbind(x, over(x, y)) 

добавят атрибуты (значение сетки клеток) y соответствия к местам x, к атрибутам x , Матч выполняется ячейкой «точка-в-сетке».

Интерполяция - это другой вопрос; простой способ был бы обратным расстоянием с четырьмя ближайшими соседями, например. по

library(gstat) 
x = idw(meant.69_73~1, y, x, nmax = 4) 

вы хотите один, или другой действительно зависит от того, что означают ваши ячейки сетки ли: они относятся к (I) значение точки в центре ячейки сетки, (б) значение, которое является постоянным в течение ячейку сетки или (iii) среднее значение по всей ячейке сетки. Первый случай: интерполировать, второй: использовать over, в-третьих: использовать интерполяцию между точками (не поясняется здесь).

R пакет raster предлагает аналогичную функциональность, но использует разные названия.

+0

Спасибо Edzer, это было очень полезно. Мои ячейки сетки ссылаются на (i) значение точки в центре сетки. – user4250791