Изучая ваши данные, ваши значения широты и логики фактически представляют 95 уникальных местоположений, которые кажутся случайными. Вы можете видеть это на рисунке ниже.
length(unique(C.lat)) % 95
length(unique(C.lon)) % 95
scatter(C.lat, C.lon)
Если бы места располагались в сетке, было бы разумно использовать lat
и lon
как оси матрицы данных. Но вместо этого лучше использовать только одну ось, представляющую уникальные местоположения. Затем у вас останется вторая ось, представляющая дату.
length(unique(C.date)) % 360
360 * 95 % 34200 - the number of values we have
Переформатирование данных
Поэтому я бы сохранил данные в двумерной матрице следующим образом.
locations_lat = unique(C.lat, 'stable');
locations_lon = unique(C.lon, 'stable');
dates = unique(C.date, 'stable');
data = reshape(C.pr, length(dates), length(locations_lat)); % size 360 x 95
Затем, чтобы убедиться, что это сработало, выберите случайный пример.
location_num = 27;
date_num = 242;
lat = locations_lat(location_num) % 14.68055556
lon = locations_lon(location_num) % 65.23111111
date = dates(date_num) % 2/1/2009
precipitation = data(date_num, location_num) % 16.7179
Поиск этой позиции и даты в оригинальной сказке дает:
9602| 14.6805555600000 65.2311111100000 '2/1/2009' 16.7179000000000